summaryrefslogtreecommitdiff
path: root/deps/openssl/openssl/crypto/dh/dh_gen.c
diff options
context:
space:
mode:
authorBert Belder <bertbelder@gmail.com>2012-09-11 14:56:42 +0200
committerBert Belder <bertbelder@gmail.com>2012-09-12 00:40:55 +0200
commitb61ae54e18c9f6ada7e746052ef6b39272b18a15 (patch)
tree44b55a37ef67dd3a85684e44f55b4f698fcfa81c /deps/openssl/openssl/crypto/dh/dh_gen.c
parentc8c638a84195e5571f4ece881375909e1f4b82a8 (diff)
downloadandroid-node-v8-b61ae54e18c9f6ada7e746052ef6b39272b18a15.tar.gz
android-node-v8-b61ae54e18c9f6ada7e746052ef6b39272b18a15.tar.bz2
android-node-v8-b61ae54e18c9f6ada7e746052ef6b39272b18a15.zip
openssl: upgrade to vanilla openssl 1.0.1c
Diffstat (limited to 'deps/openssl/openssl/crypto/dh/dh_gen.c')
-rw-r--r--deps/openssl/openssl/crypto/dh/dh_gen.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/deps/openssl/openssl/crypto/dh/dh_gen.c b/deps/openssl/openssl/crypto/dh/dh_gen.c
index cfd5b11868..7b1fe9c9cb 100644
--- a/deps/openssl/openssl/crypto/dh/dh_gen.c
+++ b/deps/openssl/openssl/crypto/dh/dh_gen.c
@@ -66,12 +66,29 @@
#include <openssl/bn.h>
#include <openssl/dh.h>
+#ifdef OPENSSL_FIPS
+#include <openssl/fips.h>
+#endif
+
static int dh_builtin_genparams(DH *ret, int prime_len, int generator, BN_GENCB *cb);
int DH_generate_parameters_ex(DH *ret, int prime_len, int generator, BN_GENCB *cb)
{
+#ifdef OPENSSL_FIPS
+ if (FIPS_mode() && !(ret->meth->flags & DH_FLAG_FIPS_METHOD)
+ && !(ret->flags & DH_FLAG_NON_FIPS_ALLOW))
+ {
+ DHerr(DH_F_DH_GENERATE_PARAMETERS_EX, DH_R_NON_FIPS_METHOD);
+ return 0;
+ }
+#endif
if(ret->meth->generate_params)
return ret->meth->generate_params(ret, prime_len, generator, cb);
+#ifdef OPENSSL_FIPS
+ if (FIPS_mode())
+ return FIPS_dh_generate_parameters_ex(ret, prime_len,
+ generator, cb);
+#endif
return dh_builtin_genparams(ret, prime_len, generator, cb);
}