Blame SPECS/openssl-1.1.1-fips-dh.patch

Packit Service 084de1
diff -up openssl-1.1.1g/crypto/bn/bn_const.c.fips-dh openssl-1.1.1g/crypto/bn/bn_const.c
Packit Service 084de1
--- openssl-1.1.1g/crypto/bn/bn_const.c.fips-dh	2020-04-21 14:22:39.000000000 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/bn/bn_const.c	2020-07-17 10:36:29.245788441 +0200
Packit Service 084de1
@@ -1,13 +1,17 @@
Packit Service 084de1
 /*
Packit Service 084de1
- * Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved.
Packit Service 084de1
+ * Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved.
Packit Service 084de1
  *
Packit Service 084de1
- * Licensed under the OpenSSL license (the "License").  You may not use
Packit Service 084de1
+ * Licensed under the Apache License 2.0 (the "License").  You may not use
Packit Service 084de1
  * this file except in compliance with the License.  You can obtain a copy
Packit Service 084de1
  * in the file LICENSE in the source distribution or at
Packit Service 084de1
  * https://www.openssl.org/source/license.html
Packit Service 084de1
  */
Packit Service 084de1
 
Packit Service 084de1
 #include <openssl/bn.h>
Packit Service 084de1
+#include "crypto/bn_dh.h"
Packit Service 084de1
+
Packit Service 084de1
+#define COPY_BN(dst, src) (dst != NULL) ? BN_copy(dst, &src) : BN_dup(&src)
Packit Service 084de1
+
Packit Service 084de1
 
Packit Service 084de1
 /*-
Packit Service 084de1
  * "First Oakley Default Group" from RFC2409, section 6.1.
Packit Service 084de1
@@ -80,33 +84,7 @@ BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM
Packit Service 084de1
 
Packit Service 084de1
 BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn)
Packit Service 084de1
 {
Packit Service 084de1
-    static const unsigned char RFC3526_PRIME_1536[] = {
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-        0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
Packit Service 084de1
-        0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
Packit Service 084de1
-        0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
Packit Service 084de1
-        0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
Packit Service 084de1
-        0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
Packit Service 084de1
-        0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
Packit Service 084de1
-        0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
Packit Service 084de1
-        0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
Packit Service 084de1
-        0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
Packit Service 084de1
-        0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
Packit Service 084de1
-        0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
Packit Service 084de1
-        0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
Packit Service 084de1
-        0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
Packit Service 084de1
-        0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
Packit Service 084de1
-        0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
Packit Service 084de1
-        0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
Packit Service 084de1
-        0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
Packit Service 084de1
-        0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
Packit Service 084de1
-        0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
Packit Service 084de1
-        0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
Packit Service 084de1
-        0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
Packit Service 084de1
-        0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x23, 0x73, 0x27,
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-    };
Packit Service 084de1
-    return BN_bin2bn(RFC3526_PRIME_1536, sizeof(RFC3526_PRIME_1536), bn);
Packit Service 084de1
+    return COPY_BN(bn, _bignum_modp_1536_p);
Packit Service 084de1
 }
Packit Service 084de1
 
Packit Service 084de1
 /*-
Packit Service 084de1
@@ -119,41 +97,7 @@ BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM
Packit Service 084de1
 
Packit Service 084de1
 BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn)
Packit Service 084de1
 {
Packit Service 084de1
-    static const unsigned char RFC3526_PRIME_2048[] = {
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-        0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
Packit Service 084de1
-        0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
Packit Service 084de1
-        0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
Packit Service 084de1
-        0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
Packit Service 084de1
-        0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
Packit Service 084de1
-        0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
Packit Service 084de1
-        0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
Packit Service 084de1
-        0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
Packit Service 084de1
-        0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
Packit Service 084de1
-        0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
Packit Service 084de1
-        0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
Packit Service 084de1
-        0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
Packit Service 084de1
-        0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
Packit Service 084de1
-        0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
Packit Service 084de1
-        0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
Packit Service 084de1
-        0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
Packit Service 084de1
-        0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
Packit Service 084de1
-        0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
Packit Service 084de1
-        0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
Packit Service 084de1
-        0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
Packit Service 084de1
-        0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
Packit Service 084de1
-        0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
Packit Service 084de1
-        0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
Packit Service 084de1
-        0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
Packit Service 084de1
-        0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
Packit Service 084de1
-        0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
Packit Service 084de1
-        0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
Packit Service 084de1
-        0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
Packit Service 084de1
-        0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
Packit Service 084de1
-        0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68,
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-    };
Packit Service 084de1
-    return BN_bin2bn(RFC3526_PRIME_2048, sizeof(RFC3526_PRIME_2048), bn);
Packit Service 084de1
+    return COPY_BN(bn, _bignum_modp_2048_p);
Packit Service 084de1
 }
Packit Service 084de1
 
Packit Service 084de1
 /*-
Packit Service 084de1
@@ -166,57 +110,7 @@ BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM
Packit Service 084de1
 
Packit Service 084de1
 BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn)
Packit Service 084de1
 {
Packit Service 084de1
-    static const unsigned char RFC3526_PRIME_3072[] = {
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-        0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
Packit Service 084de1
-        0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
Packit Service 084de1
-        0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
Packit Service 084de1
-        0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
Packit Service 084de1
-        0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
Packit Service 084de1
-        0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
Packit Service 084de1
-        0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
Packit Service 084de1
-        0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
Packit Service 084de1
-        0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
Packit Service 084de1
-        0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
Packit Service 084de1
-        0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
Packit Service 084de1
-        0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
Packit Service 084de1
-        0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
Packit Service 084de1
-        0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
Packit Service 084de1
-        0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
Packit Service 084de1
-        0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
Packit Service 084de1
-        0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
Packit Service 084de1
-        0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
Packit Service 084de1
-        0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
Packit Service 084de1
-        0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
Packit Service 084de1
-        0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
Packit Service 084de1
-        0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
Packit Service 084de1
-        0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
Packit Service 084de1
-        0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
Packit Service 084de1
-        0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
Packit Service 084de1
-        0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
Packit Service 084de1
-        0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
Packit Service 084de1
-        0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
Packit Service 084de1
-        0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
Packit Service 084de1
-        0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D,
Packit Service 084de1
-        0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33,
Packit Service 084de1
-        0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
Packit Service 084de1
-        0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A,
Packit Service 084de1
-        0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
Packit Service 084de1
-        0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
Packit Service 084de1
-        0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7,
Packit Service 084de1
-        0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D,
Packit Service 084de1
-        0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
Packit Service 084de1
-        0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64,
Packit Service 084de1
-        0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64,
Packit Service 084de1
-        0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
Packit Service 084de1
-        0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C,
Packit Service 084de1
-        0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2,
Packit Service 084de1
-        0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
Packit Service 084de1
-        0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E,
Packit Service 084de1
-        0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x3A, 0xD2, 0xCA,
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-    };
Packit Service 084de1
-    return BN_bin2bn(RFC3526_PRIME_3072, sizeof(RFC3526_PRIME_3072), bn);
Packit Service 084de1
+    return COPY_BN(bn, _bignum_modp_3072_p);
Packit Service 084de1
 }
Packit Service 084de1
 
Packit Service 084de1
 /*-
Packit Service 084de1
@@ -229,73 +123,7 @@ BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM
Packit Service 084de1
 
Packit Service 084de1
 BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn)
Packit Service 084de1
 {
Packit Service 084de1
-    static const unsigned char RFC3526_PRIME_4096[] = {
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-        0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
Packit Service 084de1
-        0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
Packit Service 084de1
-        0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
Packit Service 084de1
-        0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
Packit Service 084de1
-        0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
Packit Service 084de1
-        0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
Packit Service 084de1
-        0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
Packit Service 084de1
-        0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
Packit Service 084de1
-        0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
Packit Service 084de1
-        0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
Packit Service 084de1
-        0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
Packit Service 084de1
-        0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
Packit Service 084de1
-        0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
Packit Service 084de1
-        0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
Packit Service 084de1
-        0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
Packit Service 084de1
-        0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
Packit Service 084de1
-        0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
Packit Service 084de1
-        0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
Packit Service 084de1
-        0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
Packit Service 084de1
-        0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
Packit Service 084de1
-        0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
Packit Service 084de1
-        0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
Packit Service 084de1
-        0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
Packit Service 084de1
-        0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
Packit Service 084de1
-        0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
Packit Service 084de1
-        0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
Packit Service 084de1
-        0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
Packit Service 084de1
-        0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
Packit Service 084de1
-        0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
Packit Service 084de1
-        0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D,
Packit Service 084de1
-        0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33,
Packit Service 084de1
-        0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
Packit Service 084de1
-        0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A,
Packit Service 084de1
-        0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
Packit Service 084de1
-        0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
Packit Service 084de1
-        0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7,
Packit Service 084de1
-        0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D,
Packit Service 084de1
-        0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
Packit Service 084de1
-        0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64,
Packit Service 084de1
-        0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64,
Packit Service 084de1
-        0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
Packit Service 084de1
-        0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C,
Packit Service 084de1
-        0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2,
Packit Service 084de1
-        0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
Packit Service 084de1
-        0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E,
Packit Service 084de1
-        0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x21, 0x08, 0x01,
Packit Service 084de1
-        0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
Packit Service 084de1
-        0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26,
Packit Service 084de1
-        0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2, 0x3C,
Packit Service 084de1
-        0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
Packit Service 084de1
-        0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8,
Packit Service 084de1
-        0xDB, 0xBB, 0xC2, 0xDB, 0x04, 0xDE, 0x8E, 0xF9,
Packit Service 084de1
-        0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
Packit Service 084de1
-        0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D,
Packit Service 084de1
-        0x99, 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2,
Packit Service 084de1
-        0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
Packit Service 084de1
-        0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF,
Packit Service 084de1
-        0xB8, 0x1B, 0xDD, 0x76, 0x21, 0x70, 0x48, 0x1C,
Packit Service 084de1
-        0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
Packit Service 084de1
-        0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1,
Packit Service 084de1
-        0x86, 0xFF, 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F,
Packit Service 084de1
-        0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99,
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-    };
Packit Service 084de1
-    return BN_bin2bn(RFC3526_PRIME_4096, sizeof(RFC3526_PRIME_4096), bn);
Packit Service 084de1
+    return COPY_BN(bn, _bignum_modp_4096_p);
Packit Service 084de1
 }
Packit Service 084de1
 
Packit Service 084de1
 /*-
Packit Service 084de1
@@ -308,105 +136,7 @@ BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM
Packit Service 084de1
 
Packit Service 084de1
 BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn)
Packit Service 084de1
 {
Packit Service 084de1
-    static const unsigned char RFC3526_PRIME_6144[] = {
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-        0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
Packit Service 084de1
-        0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
Packit Service 084de1
-        0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
Packit Service 084de1
-        0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
Packit Service 084de1
-        0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
Packit Service 084de1
-        0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
Packit Service 084de1
-        0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
Packit Service 084de1
-        0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
Packit Service 084de1
-        0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
Packit Service 084de1
-        0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
Packit Service 084de1
-        0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
Packit Service 084de1
-        0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
Packit Service 084de1
-        0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
Packit Service 084de1
-        0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
Packit Service 084de1
-        0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
Packit Service 084de1
-        0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
Packit Service 084de1
-        0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
Packit Service 084de1
-        0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
Packit Service 084de1
-        0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
Packit Service 084de1
-        0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
Packit Service 084de1
-        0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
Packit Service 084de1
-        0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
Packit Service 084de1
-        0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
Packit Service 084de1
-        0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
Packit Service 084de1
-        0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
Packit Service 084de1
-        0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
Packit Service 084de1
-        0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
Packit Service 084de1
-        0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
Packit Service 084de1
-        0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
Packit Service 084de1
-        0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D,
Packit Service 084de1
-        0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33,
Packit Service 084de1
-        0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
Packit Service 084de1
-        0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A,
Packit Service 084de1
-        0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
Packit Service 084de1
-        0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
Packit Service 084de1
-        0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7,
Packit Service 084de1
-        0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D,
Packit Service 084de1
-        0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
Packit Service 084de1
-        0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64,
Packit Service 084de1
-        0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64,
Packit Service 084de1
-        0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
Packit Service 084de1
-        0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C,
Packit Service 084de1
-        0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2,
Packit Service 084de1
-        0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
Packit Service 084de1
-        0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E,
Packit Service 084de1
-        0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x21, 0x08, 0x01,
Packit Service 084de1
-        0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
Packit Service 084de1
-        0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26,
Packit Service 084de1
-        0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2, 0x3C,
Packit Service 084de1
-        0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
Packit Service 084de1
-        0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8,
Packit Service 084de1
-        0xDB, 0xBB, 0xC2, 0xDB, 0x04, 0xDE, 0x8E, 0xF9,
Packit Service 084de1
-        0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
Packit Service 084de1
-        0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D,
Packit Service 084de1
-        0x99, 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2,
Packit Service 084de1
-        0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
Packit Service 084de1
-        0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF,
Packit Service 084de1
-        0xB8, 0x1B, 0xDD, 0x76, 0x21, 0x70, 0x48, 0x1C,
Packit Service 084de1
-        0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
Packit Service 084de1
-        0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1,
Packit Service 084de1
-        0x86, 0xFF, 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F,
Packit Service 084de1
-        0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x02, 0x84, 0x92,
Packit Service 084de1
-        0x36, 0xC3, 0xFA, 0xB4, 0xD2, 0x7C, 0x70, 0x26,
Packit Service 084de1
-        0xC1, 0xD4, 0xDC, 0xB2, 0x60, 0x26, 0x46, 0xDE,
Packit Service 084de1
-        0xC9, 0x75, 0x1E, 0x76, 0x3D, 0xBA, 0x37, 0xBD,
Packit Service 084de1
-        0xF8, 0xFF, 0x94, 0x06, 0xAD, 0x9E, 0x53, 0x0E,
Packit Service 084de1
-        0xE5, 0xDB, 0x38, 0x2F, 0x41, 0x30, 0x01, 0xAE,
Packit Service 084de1
-        0xB0, 0x6A, 0x53, 0xED, 0x90, 0x27, 0xD8, 0x31,
Packit Service 084de1
-        0x17, 0x97, 0x27, 0xB0, 0x86, 0x5A, 0x89, 0x18,
Packit Service 084de1
-        0xDA, 0x3E, 0xDB, 0xEB, 0xCF, 0x9B, 0x14, 0xED,
Packit Service 084de1
-        0x44, 0xCE, 0x6C, 0xBA, 0xCE, 0xD4, 0xBB, 0x1B,
Packit Service 084de1
-        0xDB, 0x7F, 0x14, 0x47, 0xE6, 0xCC, 0x25, 0x4B,
Packit Service 084de1
-        0x33, 0x20, 0x51, 0x51, 0x2B, 0xD7, 0xAF, 0x42,
Packit Service 084de1
-        0x6F, 0xB8, 0xF4, 0x01, 0x37, 0x8C, 0xD2, 0xBF,
Packit Service 084de1
-        0x59, 0x83, 0xCA, 0x01, 0xC6, 0x4B, 0x92, 0xEC,
Packit Service 084de1
-        0xF0, 0x32, 0xEA, 0x15, 0xD1, 0x72, 0x1D, 0x03,
Packit Service 084de1
-        0xF4, 0x82, 0xD7, 0xCE, 0x6E, 0x74, 0xFE, 0xF6,
Packit Service 084de1
-        0xD5, 0x5E, 0x70, 0x2F, 0x46, 0x98, 0x0C, 0x82,
Packit Service 084de1
-        0xB5, 0xA8, 0x40, 0x31, 0x90, 0x0B, 0x1C, 0x9E,
Packit Service 084de1
-        0x59, 0xE7, 0xC9, 0x7F, 0xBE, 0xC7, 0xE8, 0xF3,
Packit Service 084de1
-        0x23, 0xA9, 0x7A, 0x7E, 0x36, 0xCC, 0x88, 0xBE,
Packit Service 084de1
-        0x0F, 0x1D, 0x45, 0xB7, 0xFF, 0x58, 0x5A, 0xC5,
Packit Service 084de1
-        0x4B, 0xD4, 0x07, 0xB2, 0x2B, 0x41, 0x54, 0xAA,
Packit Service 084de1
-        0xCC, 0x8F, 0x6D, 0x7E, 0xBF, 0x48, 0xE1, 0xD8,
Packit Service 084de1
-        0x14, 0xCC, 0x5E, 0xD2, 0x0F, 0x80, 0x37, 0xE0,
Packit Service 084de1
-        0xA7, 0x97, 0x15, 0xEE, 0xF2, 0x9B, 0xE3, 0x28,
Packit Service 084de1
-        0x06, 0xA1, 0xD5, 0x8B, 0xB7, 0xC5, 0xDA, 0x76,
Packit Service 084de1
-        0xF5, 0x50, 0xAA, 0x3D, 0x8A, 0x1F, 0xBF, 0xF0,
Packit Service 084de1
-        0xEB, 0x19, 0xCC, 0xB1, 0xA3, 0x13, 0xD5, 0x5C,
Packit Service 084de1
-        0xDA, 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32,
Packit Service 084de1
-        0x38, 0x7F, 0xE8, 0xD7, 0x6E, 0x3C, 0x04, 0x68,
Packit Service 084de1
-        0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48, 0x60, 0xEE,
Packit Service 084de1
-        0x12, 0xBF, 0x2D, 0x5B, 0x0B, 0x74, 0x74, 0xD6,
Packit Service 084de1
-        0xE6, 0x94, 0xF9, 0x1E, 0x6D, 0xCC, 0x40, 0x24,
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-    };
Packit Service 084de1
-    return BN_bin2bn(RFC3526_PRIME_6144, sizeof(RFC3526_PRIME_6144), bn);
Packit Service 084de1
+    return COPY_BN(bn, _bignum_modp_6144_p);
Packit Service 084de1
 }
Packit Service 084de1
 
Packit Service 084de1
 /*-
Packit Service 084de1
@@ -419,135 +149,5 @@ BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM
Packit Service 084de1
 
Packit Service 084de1
 BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn)
Packit Service 084de1
 {
Packit Service 084de1
-    static const unsigned char RFC3526_PRIME_8192[] = {
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-        0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
Packit Service 084de1
-        0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
Packit Service 084de1
-        0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
Packit Service 084de1
-        0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
Packit Service 084de1
-        0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
Packit Service 084de1
-        0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
Packit Service 084de1
-        0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
Packit Service 084de1
-        0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
Packit Service 084de1
-        0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
Packit Service 084de1
-        0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
Packit Service 084de1
-        0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
Packit Service 084de1
-        0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
Packit Service 084de1
-        0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
Packit Service 084de1
-        0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
Packit Service 084de1
-        0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
Packit Service 084de1
-        0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
Packit Service 084de1
-        0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
Packit Service 084de1
-        0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
Packit Service 084de1
-        0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
Packit Service 084de1
-        0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
Packit Service 084de1
-        0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
Packit Service 084de1
-        0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
Packit Service 084de1
-        0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
Packit Service 084de1
-        0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
Packit Service 084de1
-        0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
Packit Service 084de1
-        0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
Packit Service 084de1
-        0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
Packit Service 084de1
-        0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
Packit Service 084de1
-        0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
Packit Service 084de1
-        0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D,
Packit Service 084de1
-        0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33,
Packit Service 084de1
-        0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
Packit Service 084de1
-        0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A,
Packit Service 084de1
-        0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
Packit Service 084de1
-        0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
Packit Service 084de1
-        0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7,
Packit Service 084de1
-        0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D,
Packit Service 084de1
-        0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
Packit Service 084de1
-        0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64,
Packit Service 084de1
-        0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64,
Packit Service 084de1
-        0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
Packit Service 084de1
-        0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C,
Packit Service 084de1
-        0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2,
Packit Service 084de1
-        0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
Packit Service 084de1
-        0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E,
Packit Service 084de1
-        0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x21, 0x08, 0x01,
Packit Service 084de1
-        0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7,
Packit Service 084de1
-        0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26,
Packit Service 084de1
-        0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2, 0x3C,
Packit Service 084de1
-        0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA,
Packit Service 084de1
-        0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8,
Packit Service 084de1
-        0xDB, 0xBB, 0xC2, 0xDB, 0x04, 0xDE, 0x8E, 0xF9,
Packit Service 084de1
-        0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6,
Packit Service 084de1
-        0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D,
Packit Service 084de1
-        0x99, 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2,
Packit Service 084de1
-        0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED,
Packit Service 084de1
-        0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF,
Packit Service 084de1
-        0xB8, 0x1B, 0xDD, 0x76, 0x21, 0x70, 0x48, 0x1C,
Packit Service 084de1
-        0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
Packit Service 084de1
-        0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1,
Packit Service 084de1
-        0x86, 0xFF, 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F,
Packit Service 084de1
-        0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x02, 0x84, 0x92,
Packit Service 084de1
-        0x36, 0xC3, 0xFA, 0xB4, 0xD2, 0x7C, 0x70, 0x26,
Packit Service 084de1
-        0xC1, 0xD4, 0xDC, 0xB2, 0x60, 0x26, 0x46, 0xDE,
Packit Service 084de1
-        0xC9, 0x75, 0x1E, 0x76, 0x3D, 0xBA, 0x37, 0xBD,
Packit Service 084de1
-        0xF8, 0xFF, 0x94, 0x06, 0xAD, 0x9E, 0x53, 0x0E,
Packit Service 084de1
-        0xE5, 0xDB, 0x38, 0x2F, 0x41, 0x30, 0x01, 0xAE,
Packit Service 084de1
-        0xB0, 0x6A, 0x53, 0xED, 0x90, 0x27, 0xD8, 0x31,
Packit Service 084de1
-        0x17, 0x97, 0x27, 0xB0, 0x86, 0x5A, 0x89, 0x18,
Packit Service 084de1
-        0xDA, 0x3E, 0xDB, 0xEB, 0xCF, 0x9B, 0x14, 0xED,
Packit Service 084de1
-        0x44, 0xCE, 0x6C, 0xBA, 0xCE, 0xD4, 0xBB, 0x1B,
Packit Service 084de1
-        0xDB, 0x7F, 0x14, 0x47, 0xE6, 0xCC, 0x25, 0x4B,
Packit Service 084de1
-        0x33, 0x20, 0x51, 0x51, 0x2B, 0xD7, 0xAF, 0x42,
Packit Service 084de1
-        0x6F, 0xB8, 0xF4, 0x01, 0x37, 0x8C, 0xD2, 0xBF,
Packit Service 084de1
-        0x59, 0x83, 0xCA, 0x01, 0xC6, 0x4B, 0x92, 0xEC,
Packit Service 084de1
-        0xF0, 0x32, 0xEA, 0x15, 0xD1, 0x72, 0x1D, 0x03,
Packit Service 084de1
-        0xF4, 0x82, 0xD7, 0xCE, 0x6E, 0x74, 0xFE, 0xF6,
Packit Service 084de1
-        0xD5, 0x5E, 0x70, 0x2F, 0x46, 0x98, 0x0C, 0x82,
Packit Service 084de1
-        0xB5, 0xA8, 0x40, 0x31, 0x90, 0x0B, 0x1C, 0x9E,
Packit Service 084de1
-        0x59, 0xE7, 0xC9, 0x7F, 0xBE, 0xC7, 0xE8, 0xF3,
Packit Service 084de1
-        0x23, 0xA9, 0x7A, 0x7E, 0x36, 0xCC, 0x88, 0xBE,
Packit Service 084de1
-        0x0F, 0x1D, 0x45, 0xB7, 0xFF, 0x58, 0x5A, 0xC5,
Packit Service 084de1
-        0x4B, 0xD4, 0x07, 0xB2, 0x2B, 0x41, 0x54, 0xAA,
Packit Service 084de1
-        0xCC, 0x8F, 0x6D, 0x7E, 0xBF, 0x48, 0xE1, 0xD8,
Packit Service 084de1
-        0x14, 0xCC, 0x5E, 0xD2, 0x0F, 0x80, 0x37, 0xE0,
Packit Service 084de1
-        0xA7, 0x97, 0x15, 0xEE, 0xF2, 0x9B, 0xE3, 0x28,
Packit Service 084de1
-        0x06, 0xA1, 0xD5, 0x8B, 0xB7, 0xC5, 0xDA, 0x76,
Packit Service 084de1
-        0xF5, 0x50, 0xAA, 0x3D, 0x8A, 0x1F, 0xBF, 0xF0,
Packit Service 084de1
-        0xEB, 0x19, 0xCC, 0xB1, 0xA3, 0x13, 0xD5, 0x5C,
Packit Service 084de1
-        0xDA, 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32,
Packit Service 084de1
-        0x38, 0x7F, 0xE8, 0xD7, 0x6E, 0x3C, 0x04, 0x68,
Packit Service 084de1
-        0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48, 0x60, 0xEE,
Packit Service 084de1
-        0x12, 0xBF, 0x2D, 0x5B, 0x0B, 0x74, 0x74, 0xD6,
Packit Service 084de1
-        0xE6, 0x94, 0xF9, 0x1E, 0x6D, 0xBE, 0x11, 0x59,
Packit Service 084de1
-        0x74, 0xA3, 0x92, 0x6F, 0x12, 0xFE, 0xE5, 0xE4,
Packit Service 084de1
-        0x38, 0x77, 0x7C, 0xB6, 0xA9, 0x32, 0xDF, 0x8C,
Packit Service 084de1
-        0xD8, 0xBE, 0xC4, 0xD0, 0x73, 0xB9, 0x31, 0xBA,
Packit Service 084de1
-        0x3B, 0xC8, 0x32, 0xB6, 0x8D, 0x9D, 0xD3, 0x00,
Packit Service 084de1
-        0x74, 0x1F, 0xA7, 0xBF, 0x8A, 0xFC, 0x47, 0xED,
Packit Service 084de1
-        0x25, 0x76, 0xF6, 0x93, 0x6B, 0xA4, 0x24, 0x66,
Packit Service 084de1
-        0x3A, 0xAB, 0x63, 0x9C, 0x5A, 0xE4, 0xF5, 0x68,
Packit Service 084de1
-        0x34, 0x23, 0xB4, 0x74, 0x2B, 0xF1, 0xC9, 0x78,
Packit Service 084de1
-        0x23, 0x8F, 0x16, 0xCB, 0xE3, 0x9D, 0x65, 0x2D,
Packit Service 084de1
-        0xE3, 0xFD, 0xB8, 0xBE, 0xFC, 0x84, 0x8A, 0xD9,
Packit Service 084de1
-        0x22, 0x22, 0x2E, 0x04, 0xA4, 0x03, 0x7C, 0x07,
Packit Service 084de1
-        0x13, 0xEB, 0x57, 0xA8, 0x1A, 0x23, 0xF0, 0xC7,
Packit Service 084de1
-        0x34, 0x73, 0xFC, 0x64, 0x6C, 0xEA, 0x30, 0x6B,
Packit Service 084de1
-        0x4B, 0xCB, 0xC8, 0x86, 0x2F, 0x83, 0x85, 0xDD,
Packit Service 084de1
-        0xFA, 0x9D, 0x4B, 0x7F, 0xA2, 0xC0, 0x87, 0xE8,
Packit Service 084de1
-        0x79, 0x68, 0x33, 0x03, 0xED, 0x5B, 0xDD, 0x3A,
Packit Service 084de1
-        0x06, 0x2B, 0x3C, 0xF5, 0xB3, 0xA2, 0x78, 0xA6,
Packit Service 084de1
-        0x6D, 0x2A, 0x13, 0xF8, 0x3F, 0x44, 0xF8, 0x2D,
Packit Service 084de1
-        0xDF, 0x31, 0x0E, 0xE0, 0x74, 0xAB, 0x6A, 0x36,
Packit Service 084de1
-        0x45, 0x97, 0xE8, 0x99, 0xA0, 0x25, 0x5D, 0xC1,
Packit Service 084de1
-        0x64, 0xF3, 0x1C, 0xC5, 0x08, 0x46, 0x85, 0x1D,
Packit Service 084de1
-        0xF9, 0xAB, 0x48, 0x19, 0x5D, 0xED, 0x7E, 0xA1,
Packit Service 084de1
-        0xB1, 0xD5, 0x10, 0xBD, 0x7E, 0xE7, 0x4D, 0x73,
Packit Service 084de1
-        0xFA, 0xF3, 0x6B, 0xC3, 0x1E, 0xCF, 0xA2, 0x68,
Packit Service 084de1
-        0x35, 0x90, 0x46, 0xF4, 0xEB, 0x87, 0x9F, 0x92,
Packit Service 084de1
-        0x40, 0x09, 0x43, 0x8B, 0x48, 0x1C, 0x6C, 0xD7,
Packit Service 084de1
-        0x88, 0x9A, 0x00, 0x2E, 0xD5, 0xEE, 0x38, 0x2B,
Packit Service 084de1
-        0xC9, 0x19, 0x0D, 0xA6, 0xFC, 0x02, 0x6E, 0x47,
Packit Service 084de1
-        0x95, 0x58, 0xE4, 0x47, 0x56, 0x77, 0xE9, 0xAA,
Packit Service 084de1
-        0x9E, 0x30, 0x50, 0xE2, 0x76, 0x56, 0x94, 0xDF,
Packit Service 084de1
-        0xC8, 0x1F, 0x56, 0xE8, 0x80, 0xB9, 0x6E, 0x71,
Packit Service 084de1
-        0x60, 0xC9, 0x80, 0xDD, 0x98, 0xED, 0xD3, 0xDF,
Packit Service 084de1
-        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Packit Service 084de1
-    };
Packit Service 084de1
-    return BN_bin2bn(RFC3526_PRIME_8192, sizeof(RFC3526_PRIME_8192), bn);
Packit Service 084de1
+    return COPY_BN(bn, _bignum_modp_8192_p);
Packit Service 084de1
 }
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/bn/bn_dh.c.fips-dh openssl-1.1.1g/crypto/bn/bn_dh.c
Packit Service 084de1
--- openssl-1.1.1g/crypto/bn/bn_dh.c.fips-dh	2020-04-21 14:22:39.000000000 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/bn/bn_dh.c	2020-07-17 10:36:29.246788449 +0200
Packit Service 084de1
@@ -1,7 +1,7 @@
Packit Service 084de1
 /*
Packit Service 084de1
- * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved.
Packit Service 084de1
+ * Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved.
Packit Service 084de1
  *
Packit Service 084de1
- * Licensed under the OpenSSL license (the "License").  You may not use
Packit Service 084de1
+ * Licensed under the Apache License 2.0 (the "License").  You may not use
Packit Service 084de1
  * this file except in compliance with the License.  You can obtain a copy
Packit Service 084de1
  * in the file LICENSE in the source distribution or at
Packit Service 084de1
  * https://www.openssl.org/source/license.html
Packit Service 084de1
@@ -11,474 +11,995 @@
Packit Service 084de1
 #include "internal/nelem.h"
Packit Service 084de1
 
Packit Service 084de1
 #ifndef OPENSSL_NO_DH
Packit Service 084de1
-#include <openssl/dh.h>
Packit Service 084de1
-#include "crypto/bn_dh.h"
Packit Service 084de1
-/* DH parameters from RFC5114 */
Packit Service 084de1
+# include <openssl/dh.h>
Packit Service 084de1
+# include "crypto/bn_dh.h"
Packit Service 084de1
 
Packit Service 084de1
 # if BN_BITS2 == 64
Packit Service 084de1
-static const BN_ULONG dh1024_160_p[] = {
Packit Service 084de1
-    0xDF1FB2BC2E4A4371ULL, 0xE68CFDA76D4DA708ULL, 0x45BF37DF365C1A65ULL,
Packit Service 084de1
-    0xA151AF5F0DC8B4BDULL, 0xFAA31A4FF55BCCC0ULL, 0x4EFFD6FAE5644738ULL,
Packit Service 084de1
-    0x98488E9C219A7372ULL, 0xACCBDD7D90C4BD70ULL, 0x24975C3CD49B83BFULL,
Packit Service 084de1
-    0x13ECB4AEA9061123ULL, 0x9838EF1E2EE652C0ULL, 0x6073E28675A23D18ULL,
Packit Service 084de1
-    0x9A6A9DCA52D23B61ULL, 0x52C99FBCFB06A3C6ULL, 0xDE92DE5EAE5D54ECULL,
Packit Service 084de1
-    0xB10B8F96A080E01DULL
Packit Service 084de1
-};
Packit Service 084de1
-
Packit Service 084de1
-static const BN_ULONG dh1024_160_g[] = {
Packit Service 084de1
-    0x855E6EEB22B3B2E5ULL, 0x858F4DCEF97C2A24ULL, 0x2D779D5918D08BC8ULL,
Packit Service 084de1
-    0xD662A4D18E73AFA3ULL, 0x1DBF0A0169B6A28AULL, 0xA6A24C087A091F53ULL,
Packit Service 084de1
-    0x909D0D2263F80A76ULL, 0xD7FBD7D3B9A92EE1ULL, 0x5E91547F9E2749F4ULL,
Packit Service 084de1
-    0x160217B4B01B886AULL, 0x777E690F5504F213ULL, 0x266FEA1E5C41564BULL,
Packit Service 084de1
-    0xD6406CFF14266D31ULL, 0xF8104DD258AC507FULL, 0x6765A442EFB99905ULL,
Packit Service 084de1
-    0xA4D1CBD5C3FD3412ULL
Packit Service 084de1
-};
Packit Service 084de1
-
Packit Service 084de1
-static const BN_ULONG dh1024_160_q[] = {
Packit Service 084de1
-    0x64B7CB9D49462353ULL, 0x81A8DF278ABA4E7DULL, 0x00000000F518AA87ULL
Packit Service 084de1
-};
Packit Service 084de1
-
Packit Service 084de1
-static const BN_ULONG dh2048_224_p[] = {
Packit Service 084de1
-    0x0AC4DFFE0C10E64FULL, 0xCF9DE5384E71B81CULL, 0x7EF363E2FFA31F71ULL,
Packit Service 084de1
-    0xE3FB73C16B8E75B9ULL, 0xC9B53DCF4BA80A29ULL, 0x23F10B0E16E79763ULL,
Packit Service 084de1
-    0xC52172E413042E9BULL, 0xBE60E69CC928B2B9ULL, 0x80CD86A1B9E587E8ULL,
Packit Service 084de1
-    0x315D75E198C641A4ULL, 0xCDF93ACC44328387ULL, 0x15987D9ADC0A486DULL,
Packit Service 084de1
-    0x7310F7121FD5A074ULL, 0x278273C7DE31EFDCULL, 0x1602E714415D9330ULL,
Packit Service 084de1
-    0x81286130BC8985DBULL, 0xB3BF8A3170918836ULL, 0x6A00E0A0B9C49708ULL,
Packit Service 084de1
-    0xC6BA0B2C8BBC27BEULL, 0xC9F98D11ED34DBF6ULL, 0x7AD5B7D0B6C12207ULL,
Packit Service 084de1
-    0xD91E8FEF55B7394BULL, 0x9037C9EDEFDA4DF8ULL, 0x6D3F8152AD6AC212ULL,
Packit Service 084de1
-    0x1DE6B85A1274A0A6ULL, 0xEB3D688A309C180EULL, 0xAF9A3C407BA1DF15ULL,
Packit Service 084de1
-    0xE6FA141DF95A56DBULL, 0xB54B1597B61D0A75ULL, 0xA20D64E5683B9FD1ULL,
Packit Service 084de1
-    0xD660FAA79559C51FULL, 0xAD107E1E9123A9D0ULL
Packit Service 084de1
-};
Packit Service 084de1
-
Packit Service 084de1
-static const BN_ULONG dh2048_224_g[] = {
Packit Service 084de1
-    0x84B890D3191F2BFAULL, 0x81BC087F2A7065B3ULL, 0x19C418E1F6EC0179ULL,
Packit Service 084de1
-    0x7B5A0F1C71CFFF4CULL, 0xEDFE72FE9B6AA4BDULL, 0x81E1BCFE94B30269ULL,
Packit Service 084de1
-    0x566AFBB48D6C0191ULL, 0xB539CCE3409D13CDULL, 0x6AA21E7F5F2FF381ULL,
Packit Service 084de1
-    0xD9E263E4770589EFULL, 0x10E183EDD19963DDULL, 0xB70A8137150B8EEBULL,
Packit Service 084de1
-    0x051AE3D428C8F8ACULL, 0xBB77A86F0C1AB15BULL, 0x6E3025E316A330EFULL,
Packit Service 084de1
-    0x19529A45D6F83456ULL, 0xF180EB34118E98D1ULL, 0xB5F6C6B250717CBEULL,
Packit Service 084de1
-    0x09939D54DA7460CDULL, 0xE247150422EA1ED4ULL, 0xB8A762D0521BC98AULL,
Packit Service 084de1
-    0xF4D027275AC1348BULL, 0xC17669101999024AULL, 0xBE5E9001A8D66AD7ULL,
Packit Service 084de1
-    0xC57DB17C620A8652ULL, 0xAB739D7700C29F52ULL, 0xDD921F01A70C4AFAULL,
Packit Service 084de1
-    0xA6824A4E10B9A6F0ULL, 0x74866A08CFE4FFE3ULL, 0x6CDEBE7B89998CAFULL,
Packit Service 084de1
-    0x9DF30B5C8FFDAC50ULL, 0xAC4032EF4F2D9AE3ULL
Packit Service 084de1
-};
Packit Service 084de1
-
Packit Service 084de1
-static const BN_ULONG dh2048_224_q[] = {
Packit Service 084de1
-    0xBF389A99B36371EBULL, 0x1F80535A4738CEBCULL, 0xC58D93FE99717710ULL,
Packit Service 084de1
-    0x00000000801C0D34ULL
Packit Service 084de1
-};
Packit Service 084de1
-
Packit Service 084de1
-static const BN_ULONG dh2048_256_p[] = {
Packit Service 084de1
-    0xDB094AE91E1A1597ULL, 0x693877FAD7EF09CAULL, 0x6116D2276E11715FULL,
Packit Service 084de1
-    0xA4B54330C198AF12ULL, 0x75F26375D7014103ULL, 0xC3A3960A54E710C3ULL,
Packit Service 084de1
-    0xDED4010ABD0BE621ULL, 0xC0B857F689962856ULL, 0xB3CA3F7971506026ULL,
Packit Service 084de1
-    0x1CCACB83E6B486F6ULL, 0x67E144E514056425ULL, 0xF6A167B5A41825D9ULL,
Packit Service 084de1
-    0x3AD8347796524D8EULL, 0xF13C6D9A51BFA4ABULL, 0x2D52526735488A0EULL,
Packit Service 084de1
-    0xB63ACAE1CAA6B790ULL, 0x4FDB70C581B23F76ULL, 0xBC39A0BF12307F5CULL,
Packit Service 084de1
-    0xB941F54EB1E59BB8ULL, 0x6C5BFC11D45F9088ULL, 0x22E0B1EF4275BF7BULL,
Packit Service 084de1
-    0x91F9E6725B4758C0ULL, 0x5A8A9D306BCF67EDULL, 0x209E0C6497517ABDULL,
Packit Service 084de1
-    0x3BF4296D830E9A7CULL, 0x16C3D91134096FAAULL, 0xFAF7DF4561B2AA30ULL,
Packit Service 084de1
-    0xE00DF8F1D61957D4ULL, 0x5D2CEED4435E3B00ULL, 0x8CEEF608660DD0F2ULL,
Packit Service 084de1
-    0xFFBBD19C65195999ULL, 0x87A8E61DB4B6663CULL
Packit Service 084de1
-};
Packit Service 084de1
+#  define BN_DEF(lo, hi) (BN_ULONG)hi << 32 | lo
Packit Service 084de1
+# else
Packit Service 084de1
+#  define BN_DEF(lo, hi) lo, hi
Packit Service 084de1
+# endif
Packit Service 084de1
 
Packit Service 084de1
-static const BN_ULONG dh2048_256_g[] = {
Packit Service 084de1
-    0x664B4C0F6CC41659ULL, 0x5E2327CFEF98C582ULL, 0xD647D148D4795451ULL,
Packit Service 084de1
-    0x2F63078490F00EF8ULL, 0x184B523D1DB246C3ULL, 0xC7891428CDC67EB6ULL,
Packit Service 084de1
-    0x7FD028370DF92B52ULL, 0xB3353BBB64E0EC37ULL, 0xECD06E1557CD0915ULL,
Packit Service 084de1
-    0xB7D2BBD2DF016199ULL, 0xC8484B1E052588B9ULL, 0xDB2A3B7313D3FE14ULL,
Packit Service 084de1
-    0xD052B985D182EA0AULL, 0xA4BD1BFFE83B9C80ULL, 0xDFC967C1FB3F2E55ULL,
Packit Service 084de1
-    0xB5045AF2767164E1ULL, 0x1D14348F6F2F9193ULL, 0x64E67982428EBC83ULL,
Packit Service 084de1
-    0x8AC376D282D6ED38ULL, 0x777DE62AAAB8A862ULL, 0xDDF463E5E9EC144BULL,
Packit Service 084de1
-    0x0196F931C77A57F2ULL, 0xA55AE31341000A65ULL, 0x901228F8C28CBB18ULL,
Packit Service 084de1
-    0xBC3773BF7E8C6F62ULL, 0xBE3A6C1B0C6B47B1ULL, 0xFF4FED4AAC0BB555ULL,
Packit Service 084de1
-    0x10DBC15077BE463FULL, 0x07F4793A1A0BA125ULL, 0x4CA7B18F21EF2054ULL,
Packit Service 084de1
-    0x2E77506660EDBD48ULL, 0x3FB32C9B73134D0BULL
Packit Service 084de1
-};
Packit Service 084de1
+/* DH parameters from RFC3526 */
Packit Service 084de1
 
Packit Service 084de1
-static const BN_ULONG dh2048_256_q[] = {
Packit Service 084de1
-    0xA308B0FE64F5FBD3ULL, 0x99B1A47D1EB3750BULL, 0xB447997640129DA2ULL,
Packit Service 084de1
-    0x8CF83642A709A097ULL
Packit Service 084de1
+/*
Packit Service 084de1
+ * "1536-bit MODP Group" from RFC3526, Section 2.
Packit Service 084de1
+ *
Packit Service 084de1
+ * The prime is: 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804 }
Packit Service 084de1
+ *
Packit Service 084de1
+ * RFC3526 specifies a generator of 2.
Packit Service 084de1
+ * RFC2312 specifies a generator of 22.
Packit Service 084de1
+ */
Packit Service 084de1
+static const BN_ULONG modp_1536_p[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0xCA237327, 0xF1746C08),
Packit Service 084de1
+    BN_DEF(0x4ABC9804, 0x670C354E), BN_DEF(0x7096966D, 0x9ED52907),
Packit Service 084de1
+    BN_DEF(0x208552BB, 0x1C62F356), BN_DEF(0xDCA3AD96, 0x83655D23),
Packit Service 084de1
+    BN_DEF(0xFD24CF5F, 0x69163FA8), BN_DEF(0x1C55D39A, 0x98DA4836),
Packit Service 084de1
+    BN_DEF(0xA163BF05, 0xC2007CB8), BN_DEF(0xECE45B3D, 0x49286651),
Packit Service 084de1
+    BN_DEF(0x7C4B1FE6, 0xAE9F2411), BN_DEF(0x5A899FA5, 0xEE386BFB),
Packit Service 084de1
+    BN_DEF(0xF406B7ED, 0x0BFF5CB6), BN_DEF(0xA637ED6B, 0xF44C42E9),
Packit Service 084de1
+    BN_DEF(0x625E7EC6, 0xE485B576), BN_DEF(0x6D51C245, 0x4FE1356D),
Packit Service 084de1
+    BN_DEF(0xF25F1437, 0x302B0A6D), BN_DEF(0xCD3A431B, 0xEF9519B3),
Packit Service 084de1
+    BN_DEF(0x8E3404DD, 0x514A0879), BN_DEF(0x3B139B22, 0x020BBEA6),
Packit Service 084de1
+    BN_DEF(0x8A67CC74, 0x29024E08), BN_DEF(0x80DC1CD1, 0xC4C6628B),
Packit Service 084de1
+    BN_DEF(0x2168C234, 0xC90FDAA2), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG modp_1536_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0x6511B993, 0x78BA3604),
Packit Service 084de1
+    BN_DEF(0x255E4C02, 0xB3861AA7), BN_DEF(0xB84B4B36, 0xCF6A9483),
Packit Service 084de1
+    BN_DEF(0x1042A95D, 0x0E3179AB), BN_DEF(0xEE51D6CB, 0xC1B2AE91),
Packit Service 084de1
+    BN_DEF(0x7E9267AF, 0x348B1FD4), BN_DEF(0x0E2AE9CD, 0xCC6D241B),
Packit Service 084de1
+    BN_DEF(0x50B1DF82, 0xE1003E5C), BN_DEF(0xF6722D9E, 0x24943328),
Packit Service 084de1
+    BN_DEF(0xBE258FF3, 0xD74F9208), BN_DEF(0xAD44CFD2, 0xF71C35FD),
Packit Service 084de1
+    BN_DEF(0x7A035BF6, 0x85FFAE5B), BN_DEF(0xD31BF6B5, 0x7A262174),
Packit Service 084de1
+    BN_DEF(0x312F3F63, 0xF242DABB), BN_DEF(0xB6A8E122, 0xA7F09AB6),
Packit Service 084de1
+    BN_DEF(0xF92F8A1B, 0x98158536), BN_DEF(0xE69D218D, 0xF7CA8CD9),
Packit Service 084de1
+    BN_DEF(0xC71A026E, 0x28A5043C), BN_DEF(0x1D89CD91, 0x0105DF53),
Packit Service 084de1
+    BN_DEF(0x4533E63A, 0x94812704), BN_DEF(0xC06E0E68, 0x62633145),
Packit Service 084de1
+    BN_DEF(0x10B4611A, 0xE487ED51), BN_DEF(0xFFFFFFFF, 0x7FFFFFFF)
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-/* Primes from RFC 7919 */
Packit Service 084de1
-static const BN_ULONG ffdhe2048_p[] = {
Packit Service 084de1
-    0xFFFFFFFFFFFFFFFFULL, 0x886B423861285C97ULL, 0xC6F34A26C1B2EFFAULL,
Packit Service 084de1
-    0xC58EF1837D1683B2ULL, 0x3BB5FCBC2EC22005ULL, 0xC3FE3B1B4C6FAD73ULL,
Packit Service 084de1
-    0x8E4F1232EEF28183ULL, 0x9172FE9CE98583FFULL, 0xC03404CD28342F61ULL,
Packit Service 084de1
-    0x9E02FCE1CDF7E2ECULL, 0x0B07A7C8EE0A6D70ULL, 0xAE56EDE76372BB19ULL,
Packit Service 084de1
-    0x1D4F42A3DE394DF4ULL, 0xB96ADAB760D7F468ULL, 0xD108A94BB2C8E3FBULL,
Packit Service 084de1
-    0xBC0AB182B324FB61ULL, 0x30ACCA4F483A797AULL, 0x1DF158A136ADE735ULL,
Packit Service 084de1
-    0xE2A689DAF3EFE872ULL, 0x984F0C70E0E68B77ULL, 0xB557135E7F57C935ULL,
Packit Service 084de1
-    0x856365553DED1AF3ULL, 0x2433F51F5F066ED0ULL, 0xD3DF1ED5D5FD6561ULL,
Packit Service 084de1
-    0xF681B202AEC4617AULL, 0x7D2FE363630C75D8ULL, 0xCC939DCE249B3EF9ULL,
Packit Service 084de1
-    0xA9E13641146433FBULL, 0xD8B9C583CE2D3695ULL, 0xAFDC5620273D3CF1ULL,
Packit Service 084de1
-    0xADF85458A2BB4A9AULL, 0xFFFFFFFFFFFFFFFFULL
Packit Service 084de1
+/*-
Packit Service 084de1
+ * "2048-bit MODP Group" from RFC3526, Section 3.
Packit Service 084de1
+ *
Packit Service 084de1
+ * The prime is: 2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 }
Packit Service 084de1
+ *
Packit Service 084de1
+ * RFC3526 specifies a generator of 2.
Packit Service 084de1
+ */
Packit Service 084de1
+static const BN_ULONG modp_2048_p[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0x8AACAA68, 0x15728E5A),
Packit Service 084de1
+    BN_DEF(0x98FA0510, 0x15D22618), BN_DEF(0xEA956AE5, 0x3995497C),
Packit Service 084de1
+    BN_DEF(0x95581718, 0xDE2BCBF6), BN_DEF(0x6F4C52C9, 0xB5C55DF0),
Packit Service 084de1
+    BN_DEF(0xEC07A28F, 0x9B2783A2), BN_DEF(0x180E8603, 0xE39E772C),
Packit Service 084de1
+    BN_DEF(0x2E36CE3B, 0x32905E46), BN_DEF(0xCA18217C, 0xF1746C08),
Packit Service 084de1
+    BN_DEF(0x4ABC9804, 0x670C354E), BN_DEF(0x7096966D, 0x9ED52907),
Packit Service 084de1
+    BN_DEF(0x208552BB, 0x1C62F356), BN_DEF(0xDCA3AD96, 0x83655D23),
Packit Service 084de1
+    BN_DEF(0xFD24CF5F, 0x69163FA8), BN_DEF(0x1C55D39A, 0x98DA4836),
Packit Service 084de1
+    BN_DEF(0xA163BF05, 0xC2007CB8), BN_DEF(0xECE45B3D, 0x49286651),
Packit Service 084de1
+    BN_DEF(0x7C4B1FE6, 0xAE9F2411), BN_DEF(0x5A899FA5, 0xEE386BFB),
Packit Service 084de1
+    BN_DEF(0xF406B7ED, 0x0BFF5CB6), BN_DEF(0xA637ED6B, 0xF44C42E9),
Packit Service 084de1
+    BN_DEF(0x625E7EC6, 0xE485B576), BN_DEF(0x6D51C245, 0x4FE1356D),
Packit Service 084de1
+    BN_DEF(0xF25F1437, 0x302B0A6D), BN_DEF(0xCD3A431B, 0xEF9519B3),
Packit Service 084de1
+    BN_DEF(0x8E3404DD, 0x514A0879), BN_DEF(0x3B139B22, 0x020BBEA6),
Packit Service 084de1
+    BN_DEF(0x8A67CC74, 0x29024E08), BN_DEF(0x80DC1CD1, 0xC4C6628B),
Packit Service 084de1
+    BN_DEF(0x2168C234, 0xC90FDAA2), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG modp_2048_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF,  0x7FFFFFFF), BN_DEF(0x45565534,  0x0AB9472D),
Packit Service 084de1
+    BN_DEF(0x4C7D0288,  0x8AE9130C), BN_DEF(0x754AB572,  0x1CCAA4BE),
Packit Service 084de1
+    BN_DEF(0x4AAC0B8C,  0xEF15E5FB), BN_DEF(0x37A62964,  0xDAE2AEF8),
Packit Service 084de1
+    BN_DEF(0x7603D147,  0xCD93C1D1), BN_DEF(0x0C074301,  0xF1CF3B96),
Packit Service 084de1
+    BN_DEF(0x171B671D,  0x19482F23), BN_DEF(0x650C10BE,  0x78BA3604),
Packit Service 084de1
+    BN_DEF(0x255E4C02,  0xB3861AA7), BN_DEF(0xB84B4B36,  0xCF6A9483),
Packit Service 084de1
+    BN_DEF(0x1042A95D,  0x0E3179AB), BN_DEF(0xEE51D6CB,  0xC1B2AE91),
Packit Service 084de1
+    BN_DEF(0x7E9267AF,  0x348B1FD4), BN_DEF(0x0E2AE9CD,  0xCC6D241B),
Packit Service 084de1
+    BN_DEF(0x50B1DF82,  0xE1003E5C), BN_DEF(0xF6722D9E,  0x24943328),
Packit Service 084de1
+    BN_DEF(0xBE258FF3,  0xD74F9208), BN_DEF(0xAD44CFD2,  0xF71C35FD),
Packit Service 084de1
+    BN_DEF(0x7A035BF6,  0x85FFAE5B), BN_DEF(0xD31BF6B5,  0x7A262174),
Packit Service 084de1
+    BN_DEF(0x312F3F63,  0xF242DABB), BN_DEF(0xB6A8E122,  0xA7F09AB6),
Packit Service 084de1
+    BN_DEF(0xF92F8A1B,  0x98158536), BN_DEF(0xE69D218D,  0xF7CA8CD9),
Packit Service 084de1
+    BN_DEF(0xC71A026E,  0x28A5043C), BN_DEF(0x1D89CD91,  0x0105DF53),
Packit Service 084de1
+    BN_DEF(0x4533E63A,  0x94812704), BN_DEF(0xC06E0E68,  0x62633145),
Packit Service 084de1
+    BN_DEF(0x10B4611A,  0xE487ED51), BN_DEF(0xFFFFFFFF,  0x7FFFFFFF),
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-static const BN_ULONG ffdhe3072_p[] = {
Packit Service 084de1
-    0xFFFFFFFFFFFFFFFFULL, 0x25E41D2B66C62E37ULL, 0x3C1B20EE3FD59D7CULL,
Packit Service 084de1
-    0x0ABCD06BFA53DDEFULL, 0x1DBF9A42D5C4484EULL, 0xABC521979B0DEADAULL,
Packit Service 084de1
-    0xE86D2BC522363A0DULL, 0x5CAE82AB9C9DF69EULL, 0x64F2E21E71F54BFFULL,
Packit Service 084de1
-    0xF4FD4452E2D74DD3ULL, 0xB4130C93BC437944ULL, 0xAEFE130985139270ULL,
Packit Service 084de1
-    0x598CB0FAC186D91CULL, 0x7AD91D2691F7F7EEULL, 0x61B46FC9D6E6C907ULL,
Packit Service 084de1
-    0xBC34F4DEF99C0238ULL, 0xDE355B3B6519035BULL, 0x886B4238611FCFDCULL,
Packit Service 084de1
-    0xC6F34A26C1B2EFFAULL, 0xC58EF1837D1683B2ULL, 0x3BB5FCBC2EC22005ULL,
Packit Service 084de1
-    0xC3FE3B1B4C6FAD73ULL, 0x8E4F1232EEF28183ULL, 0x9172FE9CE98583FFULL,
Packit Service 084de1
-    0xC03404CD28342F61ULL, 0x9E02FCE1CDF7E2ECULL, 0x0B07A7C8EE0A6D70ULL,
Packit Service 084de1
-    0xAE56EDE76372BB19ULL, 0x1D4F42A3DE394DF4ULL, 0xB96ADAB760D7F468ULL,
Packit Service 084de1
-    0xD108A94BB2C8E3FBULL, 0xBC0AB182B324FB61ULL, 0x30ACCA4F483A797AULL,
Packit Service 084de1
-    0x1DF158A136ADE735ULL, 0xE2A689DAF3EFE872ULL, 0x984F0C70E0E68B77ULL,
Packit Service 084de1
-    0xB557135E7F57C935ULL, 0x856365553DED1AF3ULL, 0x2433F51F5F066ED0ULL,
Packit Service 084de1
-    0xD3DF1ED5D5FD6561ULL, 0xF681B202AEC4617AULL, 0x7D2FE363630C75D8ULL,
Packit Service 084de1
-    0xCC939DCE249B3EF9ULL, 0xA9E13641146433FBULL, 0xD8B9C583CE2D3695ULL,
Packit Service 084de1
-    0xAFDC5620273D3CF1ULL, 0xADF85458A2BB4A9AULL, 0xFFFFFFFFFFFFFFFFULL
Packit Service 084de1
+/*-
Packit Service 084de1
+ * "3072-bit MODP Group" from RFC3526, Section 4.
Packit Service 084de1
+ *
Packit Service 084de1
+ * The prime is: 2^3072 - 2^3008 - 1 + 2^64 * { [2^2942 pi] + 1690314 }
Packit Service 084de1
+ *
Packit Service 084de1
+ * RFC3526 specifies a generator of 2.
Packit Service 084de1
+ */
Packit Service 084de1
+static const BN_ULONG modp_3072_p[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0xA93AD2CA, 0x4B82D120),
Packit Service 084de1
+    BN_DEF(0xE0FD108E, 0x43DB5BFC), BN_DEF(0x74E5AB31, 0x08E24FA0),
Packit Service 084de1
+    BN_DEF(0xBAD946E2, 0x770988C0), BN_DEF(0x7A615D6C, 0xBBE11757),
Packit Service 084de1
+    BN_DEF(0x177B200C, 0x521F2B18), BN_DEF(0x3EC86A64, 0xD8760273),
Packit Service 084de1
+    BN_DEF(0xD98A0864, 0xF12FFA06), BN_DEF(0x1AD2EE6B, 0xCEE3D226),
Packit Service 084de1
+    BN_DEF(0x4A25619D, 0x1E8C94E0), BN_DEF(0xDB0933D7, 0xABF5AE8C),
Packit Service 084de1
+    BN_DEF(0xA6E1E4C7, 0xB3970F85), BN_DEF(0x5D060C7D, 0x8AEA7157),
Packit Service 084de1
+    BN_DEF(0x58DBEF0A, 0xECFB8504), BN_DEF(0xDF1CBA64, 0xA85521AB),
Packit Service 084de1
+    BN_DEF(0x04507A33, 0xAD33170D), BN_DEF(0x8AAAC42D, 0x15728E5A),
Packit Service 084de1
+    BN_DEF(0x98FA0510, 0x15D22618), BN_DEF(0xEA956AE5, 0x3995497C),
Packit Service 084de1
+    BN_DEF(0x95581718, 0xDE2BCBF6), BN_DEF(0x6F4C52C9, 0xB5C55DF0),
Packit Service 084de1
+    BN_DEF(0xEC07A28F, 0x9B2783A2), BN_DEF(0x180E8603, 0xE39E772C),
Packit Service 084de1
+    BN_DEF(0x2E36CE3B, 0x32905E46), BN_DEF(0xCA18217C, 0xF1746C08),
Packit Service 084de1
+    BN_DEF(0x4ABC9804, 0x670C354E), BN_DEF(0x7096966D, 0x9ED52907),
Packit Service 084de1
+    BN_DEF(0x208552BB, 0x1C62F356), BN_DEF(0xDCA3AD96, 0x83655D23),
Packit Service 084de1
+    BN_DEF(0xFD24CF5F, 0x69163FA8), BN_DEF(0x1C55D39A, 0x98DA4836),
Packit Service 084de1
+    BN_DEF(0xA163BF05, 0xC2007CB8), BN_DEF(0xECE45B3D, 0x49286651),
Packit Service 084de1
+    BN_DEF(0x7C4B1FE6, 0xAE9F2411), BN_DEF(0x5A899FA5, 0xEE386BFB),
Packit Service 084de1
+    BN_DEF(0xF406B7ED, 0x0BFF5CB6), BN_DEF(0xA637ED6B, 0xF44C42E9),
Packit Service 084de1
+    BN_DEF(0x625E7EC6, 0xE485B576), BN_DEF(0x6D51C245, 0x4FE1356D),
Packit Service 084de1
+    BN_DEF(0xF25F1437, 0x302B0A6D), BN_DEF(0xCD3A431B, 0xEF9519B3),
Packit Service 084de1
+    BN_DEF(0x8E3404DD, 0x514A0879), BN_DEF(0x3B139B22, 0x020BBEA6),
Packit Service 084de1
+    BN_DEF(0x8A67CC74, 0x29024E08), BN_DEF(0x80DC1CD1, 0xC4C6628B),
Packit Service 084de1
+    BN_DEF(0x2168C234, 0xC90FDAA2), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG modp_3072_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF,  0x7FFFFFFF), BN_DEF(0x549D6965,  0x25C16890),
Packit Service 084de1
+    BN_DEF(0x707E8847,  0xA1EDADFE), BN_DEF(0x3A72D598,  0x047127D0),
Packit Service 084de1
+    BN_DEF(0x5D6CA371,  0x3B84C460), BN_DEF(0xBD30AEB6,  0x5DF08BAB),
Packit Service 084de1
+    BN_DEF(0x0BBD9006,  0x290F958C), BN_DEF(0x9F643532,  0x6C3B0139),
Packit Service 084de1
+    BN_DEF(0x6CC50432,  0xF897FD03), BN_DEF(0x0D697735,  0xE771E913),
Packit Service 084de1
+    BN_DEF(0x2512B0CE,  0x8F464A70), BN_DEF(0x6D8499EB,  0xD5FAD746),
Packit Service 084de1
+    BN_DEF(0xD370F263,  0xD9CB87C2), BN_DEF(0xAE83063E,  0x457538AB),
Packit Service 084de1
+    BN_DEF(0x2C6DF785,  0x767DC282), BN_DEF(0xEF8E5D32,  0xD42A90D5),
Packit Service 084de1
+    BN_DEF(0x82283D19,  0xD6998B86), BN_DEF(0x45556216,  0x0AB9472D),
Packit Service 084de1
+    BN_DEF(0x4C7D0288,  0x8AE9130C), BN_DEF(0x754AB572,  0x1CCAA4BE),
Packit Service 084de1
+    BN_DEF(0x4AAC0B8C,  0xEF15E5FB), BN_DEF(0x37A62964,  0xDAE2AEF8),
Packit Service 084de1
+    BN_DEF(0x7603D147,  0xCD93C1D1), BN_DEF(0x0C074301,  0xF1CF3B96),
Packit Service 084de1
+    BN_DEF(0x171B671D,  0x19482F23), BN_DEF(0x650C10BE,  0x78BA3604),
Packit Service 084de1
+    BN_DEF(0x255E4C02,  0xB3861AA7), BN_DEF(0xB84B4B36,  0xCF6A9483),
Packit Service 084de1
+    BN_DEF(0x1042A95D,  0x0E3179AB), BN_DEF(0xEE51D6CB,  0xC1B2AE91),
Packit Service 084de1
+    BN_DEF(0x7E9267AF,  0x348B1FD4), BN_DEF(0x0E2AE9CD,  0xCC6D241B),
Packit Service 084de1
+    BN_DEF(0x50B1DF82,  0xE1003E5C), BN_DEF(0xF6722D9E,  0x24943328),
Packit Service 084de1
+    BN_DEF(0xBE258FF3,  0xD74F9208), BN_DEF(0xAD44CFD2,  0xF71C35FD),
Packit Service 084de1
+    BN_DEF(0x7A035BF6,  0x85FFAE5B), BN_DEF(0xD31BF6B5,  0x7A262174),
Packit Service 084de1
+    BN_DEF(0x312F3F63,  0xF242DABB), BN_DEF(0xB6A8E122,  0xA7F09AB6),
Packit Service 084de1
+    BN_DEF(0xF92F8A1B,  0x98158536), BN_DEF(0xE69D218D,  0xF7CA8CD9),
Packit Service 084de1
+    BN_DEF(0xC71A026E,  0x28A5043C), BN_DEF(0x1D89CD91,  0x0105DF53),
Packit Service 084de1
+    BN_DEF(0x4533E63A,  0x94812704), BN_DEF(0xC06E0E68,  0x62633145),
Packit Service 084de1
+    BN_DEF(0x10B4611A,  0xE487ED51), BN_DEF(0xFFFFFFFF,  0x7FFFFFFF),
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-static const BN_ULONG ffdhe4096_p[] = {
Packit Service 084de1
-    0xFFFFFFFFFFFFFFFFULL, 0xC68A007E5E655F6AULL, 0x4DB5A851F44182E1ULL,
Packit Service 084de1
-    0x8EC9B55A7F88A46BULL, 0x0A8291CDCEC97DCFULL, 0x2A4ECEA9F98D0ACCULL,
Packit Service 084de1
-    0x1A1DB93D7140003CULL, 0x092999A333CB8B7AULL, 0x6DC778F971AD0038ULL,
Packit Service 084de1
-    0xA907600A918130C4ULL, 0xED6A1E012D9E6832ULL, 0x7135C886EFB4318AULL,
Packit Service 084de1
-    0x87F55BA57E31CC7AULL, 0x7763CF1D55034004ULL, 0xAC7D5F42D69F6D18ULL,
Packit Service 084de1
-    0x7930E9E4E58857B6ULL, 0x6E6F52C3164DF4FBULL, 0x25E41D2B669E1EF1ULL,
Packit Service 084de1
-    0x3C1B20EE3FD59D7CULL, 0x0ABCD06BFA53DDEFULL, 0x1DBF9A42D5C4484EULL,
Packit Service 084de1
-    0xABC521979B0DEADAULL, 0xE86D2BC522363A0DULL, 0x5CAE82AB9C9DF69EULL,
Packit Service 084de1
-    0x64F2E21E71F54BFFULL, 0xF4FD4452E2D74DD3ULL, 0xB4130C93BC437944ULL,
Packit Service 084de1
-    0xAEFE130985139270ULL, 0x598CB0FAC186D91CULL, 0x7AD91D2691F7F7EEULL,
Packit Service 084de1
-    0x61B46FC9D6E6C907ULL, 0xBC34F4DEF99C0238ULL, 0xDE355B3B6519035BULL,
Packit Service 084de1
-    0x886B4238611FCFDCULL, 0xC6F34A26C1B2EFFAULL, 0xC58EF1837D1683B2ULL,
Packit Service 084de1
-    0x3BB5FCBC2EC22005ULL, 0xC3FE3B1B4C6FAD73ULL, 0x8E4F1232EEF28183ULL,
Packit Service 084de1
-    0x9172FE9CE98583FFULL, 0xC03404CD28342F61ULL, 0x9E02FCE1CDF7E2ECULL,
Packit Service 084de1
-    0x0B07A7C8EE0A6D70ULL, 0xAE56EDE76372BB19ULL, 0x1D4F42A3DE394DF4ULL,
Packit Service 084de1
-    0xB96ADAB760D7F468ULL, 0xD108A94BB2C8E3FBULL, 0xBC0AB182B324FB61ULL,
Packit Service 084de1
-    0x30ACCA4F483A797AULL, 0x1DF158A136ADE735ULL, 0xE2A689DAF3EFE872ULL,
Packit Service 084de1
-    0x984F0C70E0E68B77ULL, 0xB557135E7F57C935ULL, 0x856365553DED1AF3ULL,
Packit Service 084de1
-    0x2433F51F5F066ED0ULL, 0xD3DF1ED5D5FD6561ULL, 0xF681B202AEC4617AULL,
Packit Service 084de1
-    0x7D2FE363630C75D8ULL, 0xCC939DCE249B3EF9ULL, 0xA9E13641146433FBULL,
Packit Service 084de1
-    0xD8B9C583CE2D3695ULL, 0xAFDC5620273D3CF1ULL, 0xADF85458A2BB4A9AULL,
Packit Service 084de1
-    0xFFFFFFFFFFFFFFFFULL
Packit Service 084de1
+/*-
Packit Service 084de1
+ * "4096-bit MODP Group" from RFC3526, Section 5.
Packit Service 084de1
+ *
Packit Service 084de1
+ * The prime is: 2^4096 - 2^4032 - 1 + 2^64 * { [2^3966 pi] + 240904 }
Packit Service 084de1
+ *
Packit Service 084de1
+ * RFC3526 specifies a generator of 2.
Packit Service 084de1
+ */
Packit Service 084de1
+static const BN_ULONG modp_4096_p[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0x34063199, 0x4DF435C9),
Packit Service 084de1
+    BN_DEF(0x90A6C08F, 0x86FFB7DC), BN_DEF(0x8D8FDDC1, 0x93B4EA98),
Packit Service 084de1
+    BN_DEF(0xD5B05AA9, 0xD0069127), BN_DEF(0x2170481C, 0xB81BDD76),
Packit Service 084de1
+    BN_DEF(0xCEE2D7AF, 0x1F612970), BN_DEF(0x515BE7ED, 0x233BA186),
Packit Service 084de1
+    BN_DEF(0xA090C3A2, 0x99B2964F), BN_DEF(0x4E6BC05D, 0x287C5947),
Packit Service 084de1
+    BN_DEF(0x1FBECAA6, 0x2E8EFC14), BN_DEF(0x04DE8EF9, 0xDBBBC2DB),
Packit Service 084de1
+    BN_DEF(0x2AD44CE8, 0x2583E9CA), BN_DEF(0xB6150BDA, 0x1A946834),
Packit Service 084de1
+    BN_DEF(0x6AF4E23C, 0x99C32718), BN_DEF(0xBDBA5B26, 0x88719A10),
Packit Service 084de1
+    BN_DEF(0xA787E6D7, 0x1A723C12), BN_DEF(0xA9210801, 0x4B82D120),
Packit Service 084de1
+    BN_DEF(0xE0FD108E, 0x43DB5BFC), BN_DEF(0x74E5AB31, 0x08E24FA0),
Packit Service 084de1
+    BN_DEF(0xBAD946E2, 0x770988C0), BN_DEF(0x7A615D6C, 0xBBE11757),
Packit Service 084de1
+    BN_DEF(0x177B200C, 0x521F2B18), BN_DEF(0x3EC86A64, 0xD8760273),
Packit Service 084de1
+    BN_DEF(0xD98A0864, 0xF12FFA06), BN_DEF(0x1AD2EE6B, 0xCEE3D226),
Packit Service 084de1
+    BN_DEF(0x4A25619D, 0x1E8C94E0), BN_DEF(0xDB0933D7, 0xABF5AE8C),
Packit Service 084de1
+    BN_DEF(0xA6E1E4C7, 0xB3970F85), BN_DEF(0x5D060C7D, 0x8AEA7157),
Packit Service 084de1
+    BN_DEF(0x58DBEF0A, 0xECFB8504), BN_DEF(0xDF1CBA64, 0xA85521AB),
Packit Service 084de1
+    BN_DEF(0x04507A33, 0xAD33170D), BN_DEF(0x8AAAC42D, 0x15728E5A),
Packit Service 084de1
+    BN_DEF(0x98FA0510, 0x15D22618), BN_DEF(0xEA956AE5, 0x3995497C),
Packit Service 084de1
+    BN_DEF(0x95581718, 0xDE2BCBF6), BN_DEF(0x6F4C52C9, 0xB5C55DF0),
Packit Service 084de1
+    BN_DEF(0xEC07A28F, 0x9B2783A2), BN_DEF(0x180E8603, 0xE39E772C),
Packit Service 084de1
+    BN_DEF(0x2E36CE3B, 0x32905E46), BN_DEF(0xCA18217C, 0xF1746C08),
Packit Service 084de1
+    BN_DEF(0x4ABC9804, 0x670C354E), BN_DEF(0x7096966D, 0x9ED52907),
Packit Service 084de1
+    BN_DEF(0x208552BB, 0x1C62F356), BN_DEF(0xDCA3AD96, 0x83655D23),
Packit Service 084de1
+    BN_DEF(0xFD24CF5F, 0x69163FA8), BN_DEF(0x1C55D39A, 0x98DA4836),
Packit Service 084de1
+    BN_DEF(0xA163BF05, 0xC2007CB8), BN_DEF(0xECE45B3D, 0x49286651),
Packit Service 084de1
+    BN_DEF(0x7C4B1FE6, 0xAE9F2411), BN_DEF(0x5A899FA5, 0xEE386BFB),
Packit Service 084de1
+    BN_DEF(0xF406B7ED, 0x0BFF5CB6), BN_DEF(0xA637ED6B, 0xF44C42E9),
Packit Service 084de1
+    BN_DEF(0x625E7EC6, 0xE485B576), BN_DEF(0x6D51C245, 0x4FE1356D),
Packit Service 084de1
+    BN_DEF(0xF25F1437, 0x302B0A6D), BN_DEF(0xCD3A431B, 0xEF9519B3),
Packit Service 084de1
+    BN_DEF(0x8E3404DD, 0x514A0879), BN_DEF(0x3B139B22, 0x020BBEA6),
Packit Service 084de1
+    BN_DEF(0x8A67CC74, 0x29024E08), BN_DEF(0x80DC1CD1, 0xC4C6628B),
Packit Service 084de1
+    BN_DEF(0x2168C234, 0xC90FDAA2), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG modp_4096_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF,  0xFFFFFFFF), BN_DEF(0x9A0318CC,  0xA6FA1AE4),
Packit Service 084de1
+    BN_DEF(0x48536047,  0xC37FDBEE), BN_DEF(0x46C7EEE0,  0xC9DA754C),
Packit Service 084de1
+    BN_DEF(0xEAD82D54,  0x68034893), BN_DEF(0x10B8240E,  0xDC0DEEBB),
Packit Service 084de1
+    BN_DEF(0x67716BD7,  0x8FB094B8), BN_DEF(0x28ADF3F6,  0x119DD0C3),
Packit Service 084de1
+    BN_DEF(0xD04861D1,  0xCCD94B27), BN_DEF(0xA735E02E,  0x143E2CA3),
Packit Service 084de1
+    BN_DEF(0x0FDF6553,  0x97477E0A), BN_DEF(0x826F477C,  0x6DDDE16D),
Packit Service 084de1
+    BN_DEF(0x156A2674,  0x12C1F4E5), BN_DEF(0x5B0A85ED,  0x0D4A341A),
Packit Service 084de1
+    BN_DEF(0x357A711E,  0x4CE1938C), BN_DEF(0x5EDD2D93,  0xC438CD08),
Packit Service 084de1
+    BN_DEF(0x53C3F36B,  0x8D391E09), BN_DEF(0x54908400,  0x25C16890),
Packit Service 084de1
+    BN_DEF(0x707E8847,  0xA1EDADFE), BN_DEF(0x3A72D598,  0x047127D0),
Packit Service 084de1
+    BN_DEF(0x5D6CA371,  0x3B84C460), BN_DEF(0xBD30AEB6,  0x5DF08BAB),
Packit Service 084de1
+    BN_DEF(0x0BBD9006,  0x290F958C), BN_DEF(0x9F643532,  0x6C3B0139),
Packit Service 084de1
+    BN_DEF(0x6CC50432,  0xF897FD03), BN_DEF(0x0D697735,  0xE771E913),
Packit Service 084de1
+    BN_DEF(0x2512B0CE,  0x8F464A70), BN_DEF(0x6D8499EB,  0xD5FAD746),
Packit Service 084de1
+    BN_DEF(0xD370F263,  0xD9CB87C2), BN_DEF(0xAE83063E,  0x457538AB),
Packit Service 084de1
+    BN_DEF(0x2C6DF785,  0x767DC282), BN_DEF(0xEF8E5D32,  0xD42A90D5),
Packit Service 084de1
+    BN_DEF(0x82283D19,  0xD6998B86), BN_DEF(0x45556216,  0x0AB9472D),
Packit Service 084de1
+    BN_DEF(0x4C7D0288,  0x8AE9130C), BN_DEF(0x754AB572,  0x1CCAA4BE),
Packit Service 084de1
+    BN_DEF(0x4AAC0B8C,  0xEF15E5FB), BN_DEF(0x37A62964,  0xDAE2AEF8),
Packit Service 084de1
+    BN_DEF(0x7603D147,  0xCD93C1D1), BN_DEF(0x0C074301,  0xF1CF3B96),
Packit Service 084de1
+    BN_DEF(0x171B671D,  0x19482F23), BN_DEF(0x650C10BE,  0x78BA3604),
Packit Service 084de1
+    BN_DEF(0x255E4C02,  0xB3861AA7), BN_DEF(0xB84B4B36,  0xCF6A9483),
Packit Service 084de1
+    BN_DEF(0x1042A95D,  0x0E3179AB), BN_DEF(0xEE51D6CB,  0xC1B2AE91),
Packit Service 084de1
+    BN_DEF(0x7E9267AF,  0x348B1FD4), BN_DEF(0x0E2AE9CD,  0xCC6D241B),
Packit Service 084de1
+    BN_DEF(0x50B1DF82,  0xE1003E5C), BN_DEF(0xF6722D9E,  0x24943328),
Packit Service 084de1
+    BN_DEF(0xBE258FF3,  0xD74F9208), BN_DEF(0xAD44CFD2,  0xF71C35FD),
Packit Service 084de1
+    BN_DEF(0x7A035BF6,  0x85FFAE5B), BN_DEF(0xD31BF6B5,  0x7A262174),
Packit Service 084de1
+    BN_DEF(0x312F3F63,  0xF242DABB), BN_DEF(0xB6A8E122,  0xA7F09AB6),
Packit Service 084de1
+    BN_DEF(0xF92F8A1B,  0x98158536), BN_DEF(0xE69D218D,  0xF7CA8CD9),
Packit Service 084de1
+    BN_DEF(0xC71A026E,  0x28A5043C), BN_DEF(0x1D89CD91,  0x0105DF53),
Packit Service 084de1
+    BN_DEF(0x4533E63A,  0x94812704), BN_DEF(0xC06E0E68,  0x62633145),
Packit Service 084de1
+    BN_DEF(0x10B4611A,  0xE487ED51), BN_DEF(0xFFFFFFFF,  0x7FFFFFFF),
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-static const BN_ULONG ffdhe6144_p[] = {
Packit Service 084de1
-    0xFFFFFFFFFFFFFFFFULL, 0xA40E329CD0E40E65ULL, 0xA41D570D7938DAD4ULL,
Packit Service 084de1
-    0x62A69526D43161C1ULL, 0x3FDD4A8E9ADB1E69ULL, 0x5B3B71F9DC6B80D6ULL,
Packit Service 084de1
-    0xEC9D1810C6272B04ULL, 0x8CCF2DD5CACEF403ULL, 0xE49F5235C95B9117ULL,
Packit Service 084de1
-    0x505DC82DB854338AULL, 0x62292C311562A846ULL, 0xD72B03746AE77F5EULL,
Packit Service 084de1
-    0xF9C9091B462D538CULL, 0x0AE8DB5847A67CBEULL, 0xB3A739C122611682ULL,
Packit Service 084de1
-    0xEEAAC0232A281BF6ULL, 0x94C6651E77CAF992ULL, 0x763E4E4B94B2BBC1ULL,
Packit Service 084de1
-    0x587E38DA0077D9B4ULL, 0x7FB29F8C183023C3ULL, 0x0ABEC1FFF9E3A26EULL,
Packit Service 084de1
-    0xA00EF092350511E3ULL, 0xB855322EDB6340D8ULL, 0xA52471F7A9A96910ULL,
Packit Service 084de1
-    0x388147FB4CFDB477ULL, 0x9B1F5C3E4E46041FULL, 0xCDAD0657FCCFEC71ULL,
Packit Service 084de1
-    0xB38E8C334C701C3AULL, 0x917BDD64B1C0FD4CULL, 0x3BB454329B7624C8ULL,
Packit Service 084de1
-    0x23BA4442CAF53EA6ULL, 0x4E677D2C38532A3AULL, 0x0BFD64B645036C7AULL,
Packit Service 084de1
-    0xC68A007E5E0DD902ULL, 0x4DB5A851F44182E1ULL, 0x8EC9B55A7F88A46BULL,
Packit Service 084de1
-    0x0A8291CDCEC97DCFULL, 0x2A4ECEA9F98D0ACCULL, 0x1A1DB93D7140003CULL,
Packit Service 084de1
-    0x092999A333CB8B7AULL, 0x6DC778F971AD0038ULL, 0xA907600A918130C4ULL,
Packit Service 084de1
-    0xED6A1E012D9E6832ULL, 0x7135C886EFB4318AULL, 0x87F55BA57E31CC7AULL,
Packit Service 084de1
-    0x7763CF1D55034004ULL, 0xAC7D5F42D69F6D18ULL, 0x7930E9E4E58857B6ULL,
Packit Service 084de1
-    0x6E6F52C3164DF4FBULL, 0x25E41D2B669E1EF1ULL, 0x3C1B20EE3FD59D7CULL,
Packit Service 084de1
-    0x0ABCD06BFA53DDEFULL, 0x1DBF9A42D5C4484EULL, 0xABC521979B0DEADAULL,
Packit Service 084de1
-    0xE86D2BC522363A0DULL, 0x5CAE82AB9C9DF69EULL, 0x64F2E21E71F54BFFULL,
Packit Service 084de1
-    0xF4FD4452E2D74DD3ULL, 0xB4130C93BC437944ULL, 0xAEFE130985139270ULL,
Packit Service 084de1
-    0x598CB0FAC186D91CULL, 0x7AD91D2691F7F7EEULL, 0x61B46FC9D6E6C907ULL,
Packit Service 084de1
-    0xBC34F4DEF99C0238ULL, 0xDE355B3B6519035BULL, 0x886B4238611FCFDCULL,
Packit Service 084de1
-    0xC6F34A26C1B2EFFAULL, 0xC58EF1837D1683B2ULL, 0x3BB5FCBC2EC22005ULL,
Packit Service 084de1
-    0xC3FE3B1B4C6FAD73ULL, 0x8E4F1232EEF28183ULL, 0x9172FE9CE98583FFULL,
Packit Service 084de1
-    0xC03404CD28342F61ULL, 0x9E02FCE1CDF7E2ECULL, 0x0B07A7C8EE0A6D70ULL,
Packit Service 084de1
-    0xAE56EDE76372BB19ULL, 0x1D4F42A3DE394DF4ULL, 0xB96ADAB760D7F468ULL,
Packit Service 084de1
-    0xD108A94BB2C8E3FBULL, 0xBC0AB182B324FB61ULL, 0x30ACCA4F483A797AULL,
Packit Service 084de1
-    0x1DF158A136ADE735ULL, 0xE2A689DAF3EFE872ULL, 0x984F0C70E0E68B77ULL,
Packit Service 084de1
-    0xB557135E7F57C935ULL, 0x856365553DED1AF3ULL, 0x2433F51F5F066ED0ULL,
Packit Service 084de1
-    0xD3DF1ED5D5FD6561ULL, 0xF681B202AEC4617AULL, 0x7D2FE363630C75D8ULL,
Packit Service 084de1
-    0xCC939DCE249B3EF9ULL, 0xA9E13641146433FBULL, 0xD8B9C583CE2D3695ULL,
Packit Service 084de1
-    0xAFDC5620273D3CF1ULL, 0xADF85458A2BB4A9AULL, 0xFFFFFFFFFFFFFFFFULL
Packit Service 084de1
+/*-
Packit Service 084de1
+ * "6144-bit MODP Group" from RFC3526, Section 6.
Packit Service 084de1
+ *
Packit Service 084de1
+ * The prime is: 2^6144 - 2^6080 - 1 + 2^64 * { [2^6014 pi] + 929484 }
Packit Service 084de1
+ *
Packit Service 084de1
+ * RFC3526 specifies a generator of 2.
Packit Service 084de1
+ */
Packit Service 084de1
+static const BN_ULONG modp_6144_p[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0x6DCC4024, 0xE694F91E),
Packit Service 084de1
+    BN_DEF(0x0B7474D6, 0x12BF2D5B), BN_DEF(0x3F4860EE, 0x043E8F66),
Packit Service 084de1
+    BN_DEF(0x6E3C0468, 0x387FE8D7), BN_DEF(0x2EF29632, 0xDA56C9EC),
Packit Service 084de1
+    BN_DEF(0xA313D55C, 0xEB19CCB1), BN_DEF(0x8A1FBFF0, 0xF550AA3D),
Packit Service 084de1
+    BN_DEF(0xB7C5DA76, 0x06A1D58B), BN_DEF(0xF29BE328, 0xA79715EE),
Packit Service 084de1
+    BN_DEF(0x0F8037E0, 0x14CC5ED2), BN_DEF(0xBF48E1D8, 0xCC8F6D7E),
Packit Service 084de1
+    BN_DEF(0x2B4154AA, 0x4BD407B2), BN_DEF(0xFF585AC5, 0x0F1D45B7),
Packit Service 084de1
+    BN_DEF(0x36CC88BE, 0x23A97A7E), BN_DEF(0xBEC7E8F3, 0x59E7C97F),
Packit Service 084de1
+    BN_DEF(0x900B1C9E, 0xB5A84031), BN_DEF(0x46980C82, 0xD55E702F),
Packit Service 084de1
+    BN_DEF(0x6E74FEF6, 0xF482D7CE), BN_DEF(0xD1721D03, 0xF032EA15),
Packit Service 084de1
+    BN_DEF(0xC64B92EC, 0x5983CA01), BN_DEF(0x378CD2BF, 0x6FB8F401),
Packit Service 084de1
+    BN_DEF(0x2BD7AF42, 0x33205151), BN_DEF(0xE6CC254B, 0xDB7F1447),
Packit Service 084de1
+    BN_DEF(0xCED4BB1B, 0x44CE6CBA), BN_DEF(0xCF9B14ED, 0xDA3EDBEB),
Packit Service 084de1
+    BN_DEF(0x865A8918, 0x179727B0), BN_DEF(0x9027D831, 0xB06A53ED),
Packit Service 084de1
+    BN_DEF(0x413001AE, 0xE5DB382F), BN_DEF(0xAD9E530E, 0xF8FF9406),
Packit Service 084de1
+    BN_DEF(0x3DBA37BD, 0xC9751E76), BN_DEF(0x602646DE, 0xC1D4DCB2),
Packit Service 084de1
+    BN_DEF(0xD27C7026, 0x36C3FAB4), BN_DEF(0x34028492, 0x4DF435C9),
Packit Service 084de1
+    BN_DEF(0x90A6C08F, 0x86FFB7DC), BN_DEF(0x8D8FDDC1, 0x93B4EA98),
Packit Service 084de1
+    BN_DEF(0xD5B05AA9, 0xD0069127), BN_DEF(0x2170481C, 0xB81BDD76),
Packit Service 084de1
+    BN_DEF(0xCEE2D7AF, 0x1F612970), BN_DEF(0x515BE7ED, 0x233BA186),
Packit Service 084de1
+    BN_DEF(0xA090C3A2, 0x99B2964F), BN_DEF(0x4E6BC05D, 0x287C5947),
Packit Service 084de1
+    BN_DEF(0x1FBECAA6, 0x2E8EFC14), BN_DEF(0x04DE8EF9, 0xDBBBC2DB),
Packit Service 084de1
+    BN_DEF(0x2AD44CE8, 0x2583E9CA), BN_DEF(0xB6150BDA, 0x1A946834),
Packit Service 084de1
+    BN_DEF(0x6AF4E23C, 0x99C32718), BN_DEF(0xBDBA5B26, 0x88719A10),
Packit Service 084de1
+    BN_DEF(0xA787E6D7, 0x1A723C12), BN_DEF(0xA9210801, 0x4B82D120),
Packit Service 084de1
+    BN_DEF(0xE0FD108E, 0x43DB5BFC), BN_DEF(0x74E5AB31, 0x08E24FA0),
Packit Service 084de1
+    BN_DEF(0xBAD946E2, 0x770988C0), BN_DEF(0x7A615D6C, 0xBBE11757),
Packit Service 084de1
+    BN_DEF(0x177B200C, 0x521F2B18), BN_DEF(0x3EC86A64, 0xD8760273),
Packit Service 084de1
+    BN_DEF(0xD98A0864, 0xF12FFA06), BN_DEF(0x1AD2EE6B, 0xCEE3D226),
Packit Service 084de1
+    BN_DEF(0x4A25619D, 0x1E8C94E0), BN_DEF(0xDB0933D7, 0xABF5AE8C),
Packit Service 084de1
+    BN_DEF(0xA6E1E4C7, 0xB3970F85), BN_DEF(0x5D060C7D, 0x8AEA7157),
Packit Service 084de1
+    BN_DEF(0x58DBEF0A, 0xECFB8504), BN_DEF(0xDF1CBA64, 0xA85521AB),
Packit Service 084de1
+    BN_DEF(0x04507A33, 0xAD33170D), BN_DEF(0x8AAAC42D, 0x15728E5A),
Packit Service 084de1
+    BN_DEF(0x98FA0510, 0x15D22618), BN_DEF(0xEA956AE5, 0x3995497C),
Packit Service 084de1
+    BN_DEF(0x95581718, 0xDE2BCBF6), BN_DEF(0x6F4C52C9, 0xB5C55DF0),
Packit Service 084de1
+    BN_DEF(0xEC07A28F, 0x9B2783A2), BN_DEF(0x180E8603, 0xE39E772C),
Packit Service 084de1
+    BN_DEF(0x2E36CE3B, 0x32905E46), BN_DEF(0xCA18217C, 0xF1746C08),
Packit Service 084de1
+    BN_DEF(0x4ABC9804, 0x670C354E), BN_DEF(0x7096966D, 0x9ED52907),
Packit Service 084de1
+    BN_DEF(0x208552BB, 0x1C62F356), BN_DEF(0xDCA3AD96, 0x83655D23),
Packit Service 084de1
+    BN_DEF(0xFD24CF5F, 0x69163FA8), BN_DEF(0x1C55D39A, 0x98DA4836),
Packit Service 084de1
+    BN_DEF(0xA163BF05, 0xC2007CB8), BN_DEF(0xECE45B3D, 0x49286651),
Packit Service 084de1
+    BN_DEF(0x7C4B1FE6, 0xAE9F2411), BN_DEF(0x5A899FA5, 0xEE386BFB),
Packit Service 084de1
+    BN_DEF(0xF406B7ED, 0x0BFF5CB6), BN_DEF(0xA637ED6B, 0xF44C42E9),
Packit Service 084de1
+    BN_DEF(0x625E7EC6, 0xE485B576), BN_DEF(0x6D51C245, 0x4FE1356D),
Packit Service 084de1
+    BN_DEF(0xF25F1437, 0x302B0A6D), BN_DEF(0xCD3A431B, 0xEF9519B3),
Packit Service 084de1
+    BN_DEF(0x8E3404DD, 0x514A0879), BN_DEF(0x3B139B22, 0x020BBEA6),
Packit Service 084de1
+    BN_DEF(0x8A67CC74, 0x29024E08), BN_DEF(0x80DC1CD1, 0xC4C6628B),
Packit Service 084de1
+    BN_DEF(0x2168C234, 0xC90FDAA2), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG modp_6144_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF,  0x7FFFFFFF), BN_DEF(0x36E62012,  0x734A7C8F),
Packit Service 084de1
+    BN_DEF(0x85BA3A6B,  0x095F96AD), BN_DEF(0x1FA43077,  0x021F47B3),
Packit Service 084de1
+    BN_DEF(0xB71E0234,  0x1C3FF46B), BN_DEF(0x17794B19,  0x6D2B64F6),
Packit Service 084de1
+    BN_DEF(0xD189EAAE,  0x758CE658), BN_DEF(0xC50FDFF8,  0x7AA8551E),
Packit Service 084de1
+    BN_DEF(0xDBE2ED3B,  0x0350EAC5), BN_DEF(0x794DF194,  0x53CB8AF7),
Packit Service 084de1
+    BN_DEF(0x07C01BF0,  0x0A662F69), BN_DEF(0x5FA470EC,  0x6647B6BF),
Packit Service 084de1
+    BN_DEF(0x15A0AA55,  0xA5EA03D9), BN_DEF(0xFFAC2D62,  0x078EA2DB),
Packit Service 084de1
+    BN_DEF(0x1B66445F,  0x91D4BD3F), BN_DEF(0xDF63F479,  0x2CF3E4BF),
Packit Service 084de1
+    BN_DEF(0xC8058E4F,  0x5AD42018), BN_DEF(0xA34C0641,  0x6AAF3817),
Packit Service 084de1
+    BN_DEF(0x373A7F7B,  0xFA416BE7), BN_DEF(0xE8B90E81,  0x7819750A),
Packit Service 084de1
+    BN_DEF(0xE325C976,  0xACC1E500), BN_DEF(0x9BC6695F,  0x37DC7A00),
Packit Service 084de1
+    BN_DEF(0x95EBD7A1,  0x999028A8), BN_DEF(0xF36612A5,  0xEDBF8A23),
Packit Service 084de1
+    BN_DEF(0x676A5D8D,  0xA267365D), BN_DEF(0xE7CD8A76,  0x6D1F6DF5),
Packit Service 084de1
+    BN_DEF(0x432D448C,  0x8BCB93D8), BN_DEF(0xC813EC18,  0x583529F6),
Packit Service 084de1
+    BN_DEF(0xA09800D7,  0x72ED9C17), BN_DEF(0x56CF2987,  0xFC7FCA03),
Packit Service 084de1
+    BN_DEF(0x1EDD1BDE,  0x64BA8F3B), BN_DEF(0x3013236F,  0x60EA6E59),
Packit Service 084de1
+    BN_DEF(0x693E3813,  0x1B61FD5A), BN_DEF(0x9A014249,  0xA6FA1AE4),
Packit Service 084de1
+    BN_DEF(0x48536047,  0xC37FDBEE), BN_DEF(0x46C7EEE0,  0xC9DA754C),
Packit Service 084de1
+    BN_DEF(0xEAD82D54,  0x68034893), BN_DEF(0x10B8240E,  0xDC0DEEBB),
Packit Service 084de1
+    BN_DEF(0x67716BD7,  0x8FB094B8), BN_DEF(0x28ADF3F6,  0x119DD0C3),
Packit Service 084de1
+    BN_DEF(0xD04861D1,  0xCCD94B27), BN_DEF(0xA735E02E,  0x143E2CA3),
Packit Service 084de1
+    BN_DEF(0x0FDF6553,  0x97477E0A), BN_DEF(0x826F477C,  0x6DDDE16D),
Packit Service 084de1
+    BN_DEF(0x156A2674,  0x12C1F4E5), BN_DEF(0x5B0A85ED,  0x0D4A341A),
Packit Service 084de1
+    BN_DEF(0x357A711E,  0x4CE1938C), BN_DEF(0x5EDD2D93,  0xC438CD08),
Packit Service 084de1
+    BN_DEF(0x53C3F36B,  0x8D391E09), BN_DEF(0x54908400,  0x25C16890),
Packit Service 084de1
+    BN_DEF(0x707E8847,  0xA1EDADFE), BN_DEF(0x3A72D598,  0x047127D0),
Packit Service 084de1
+    BN_DEF(0x5D6CA371,  0x3B84C460), BN_DEF(0xBD30AEB6,  0x5DF08BAB),
Packit Service 084de1
+    BN_DEF(0x0BBD9006,  0x290F958C), BN_DEF(0x9F643532,  0x6C3B0139),
Packit Service 084de1
+    BN_DEF(0x6CC50432,  0xF897FD03), BN_DEF(0x0D697735,  0xE771E913),
Packit Service 084de1
+    BN_DEF(0x2512B0CE,  0x8F464A70), BN_DEF(0x6D8499EB,  0xD5FAD746),
Packit Service 084de1
+    BN_DEF(0xD370F263,  0xD9CB87C2), BN_DEF(0xAE83063E,  0x457538AB),
Packit Service 084de1
+    BN_DEF(0x2C6DF785,  0x767DC282), BN_DEF(0xEF8E5D32,  0xD42A90D5),
Packit Service 084de1
+    BN_DEF(0x82283D19,  0xD6998B86), BN_DEF(0x45556216,  0x0AB9472D),
Packit Service 084de1
+    BN_DEF(0x4C7D0288,  0x8AE9130C), BN_DEF(0x754AB572,  0x1CCAA4BE),
Packit Service 084de1
+    BN_DEF(0x4AAC0B8C,  0xEF15E5FB), BN_DEF(0x37A62964,  0xDAE2AEF8),
Packit Service 084de1
+    BN_DEF(0x7603D147,  0xCD93C1D1), BN_DEF(0x0C074301,  0xF1CF3B96),
Packit Service 084de1
+    BN_DEF(0x171B671D,  0x19482F23), BN_DEF(0x650C10BE,  0x78BA3604),
Packit Service 084de1
+    BN_DEF(0x255E4C02,  0xB3861AA7), BN_DEF(0xB84B4B36,  0xCF6A9483),
Packit Service 084de1
+    BN_DEF(0x1042A95D,  0x0E3179AB), BN_DEF(0xEE51D6CB,  0xC1B2AE91),
Packit Service 084de1
+    BN_DEF(0x7E9267AF,  0x348B1FD4), BN_DEF(0x0E2AE9CD,  0xCC6D241B),
Packit Service 084de1
+    BN_DEF(0x50B1DF82,  0xE1003E5C), BN_DEF(0xF6722D9E,  0x24943328),
Packit Service 084de1
+    BN_DEF(0xBE258FF3,  0xD74F9208), BN_DEF(0xAD44CFD2,  0xF71C35FD),
Packit Service 084de1
+    BN_DEF(0x7A035BF6,  0x85FFAE5B), BN_DEF(0xD31BF6B5,  0x7A262174),
Packit Service 084de1
+    BN_DEF(0x312F3F63,  0xF242DABB), BN_DEF(0xB6A8E122,  0xA7F09AB6),
Packit Service 084de1
+    BN_DEF(0xF92F8A1B,  0x98158536), BN_DEF(0xE69D218D,  0xF7CA8CD9),
Packit Service 084de1
+    BN_DEF(0xC71A026E,  0x28A5043C), BN_DEF(0x1D89CD91,  0x0105DF53),
Packit Service 084de1
+    BN_DEF(0x4533E63A,  0x94812704), BN_DEF(0xC06E0E68,  0x62633145),
Packit Service 084de1
+    BN_DEF(0x10B4611A,  0xE487ED51), BN_DEF(0xFFFFFFFF,  0x7FFFFFFF),
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-static const BN_ULONG ffdhe8192_p[] = {
Packit Service 084de1
-    0xFFFFFFFFFFFFFFFFULL, 0xD68C8BB7C5C6424CULL, 0x011E2A94838FF88CULL,
Packit Service 084de1
-    0x0822E506A9F4614EULL, 0x97D11D49F7A8443DULL, 0xA6BBFDE530677F0DULL,
Packit Service 084de1
-    0x2F741EF8C1FE86FEULL, 0xFAFABE1C5D71A87EULL, 0xDED2FBABFBE58A30ULL,
Packit Service 084de1
-    0xB6855DFE72B0A66EULL, 0x1EFC8CE0BA8A4FE8ULL, 0x83F81D4A3F2FA457ULL,
Packit Service 084de1
-    0xA1FE3075A577E231ULL, 0xD5B8019488D9C0A0ULL, 0x624816CDAD9A95F9ULL,
Packit Service 084de1
-    0x99E9E31650C1217BULL, 0x51AA691E0E423CFCULL, 0x1C217E6C3826E52CULL,
Packit Service 084de1
-    0x51A8A93109703FEEULL, 0xBB7099876A460E74ULL, 0x541FC68C9C86B022ULL,
Packit Service 084de1
-    0x59160CC046FD8251ULL, 0x2846C0BA35C35F5CULL, 0x54504AC78B758282ULL,
Packit Service 084de1
-    0x29388839D2AF05E4ULL, 0xCB2C0F1CC01BD702ULL, 0x555B2F747C932665ULL,
Packit Service 084de1
-    0x86B63142A3AB8829ULL, 0x0B8CC3BDF64B10EFULL, 0x687FEB69EDD1CC5EULL,
Packit Service 084de1
-    0xFDB23FCEC9509D43ULL, 0x1E425A31D951AE64ULL, 0x36AD004CF600C838ULL,
Packit Service 084de1
-    0xA40E329CCFF46AAAULL, 0xA41D570D7938DAD4ULL, 0x62A69526D43161C1ULL,
Packit Service 084de1
-    0x3FDD4A8E9ADB1E69ULL, 0x5B3B71F9DC6B80D6ULL, 0xEC9D1810C6272B04ULL,
Packit Service 084de1
-    0x8CCF2DD5CACEF403ULL, 0xE49F5235C95B9117ULL, 0x505DC82DB854338AULL,
Packit Service 084de1
-    0x62292C311562A846ULL, 0xD72B03746AE77F5EULL, 0xF9C9091B462D538CULL,
Packit Service 084de1
-    0x0AE8DB5847A67CBEULL, 0xB3A739C122611682ULL, 0xEEAAC0232A281BF6ULL,
Packit Service 084de1
-    0x94C6651E77CAF992ULL, 0x763E4E4B94B2BBC1ULL, 0x587E38DA0077D9B4ULL,
Packit Service 084de1
-    0x7FB29F8C183023C3ULL, 0x0ABEC1FFF9E3A26EULL, 0xA00EF092350511E3ULL,
Packit Service 084de1
-    0xB855322EDB6340D8ULL, 0xA52471F7A9A96910ULL, 0x388147FB4CFDB477ULL,
Packit Service 084de1
-    0x9B1F5C3E4E46041FULL, 0xCDAD0657FCCFEC71ULL, 0xB38E8C334C701C3AULL,
Packit Service 084de1
-    0x917BDD64B1C0FD4CULL, 0x3BB454329B7624C8ULL, 0x23BA4442CAF53EA6ULL,
Packit Service 084de1
-    0x4E677D2C38532A3AULL, 0x0BFD64B645036C7AULL, 0xC68A007E5E0DD902ULL,
Packit Service 084de1
-    0x4DB5A851F44182E1ULL, 0x8EC9B55A7F88A46BULL, 0x0A8291CDCEC97DCFULL,
Packit Service 084de1
-    0x2A4ECEA9F98D0ACCULL, 0x1A1DB93D7140003CULL, 0x092999A333CB8B7AULL,
Packit Service 084de1
-    0x6DC778F971AD0038ULL, 0xA907600A918130C4ULL, 0xED6A1E012D9E6832ULL,
Packit Service 084de1
-    0x7135C886EFB4318AULL, 0x87F55BA57E31CC7AULL, 0x7763CF1D55034004ULL,
Packit Service 084de1
-    0xAC7D5F42D69F6D18ULL, 0x7930E9E4E58857B6ULL, 0x6E6F52C3164DF4FBULL,
Packit Service 084de1
-    0x25E41D2B669E1EF1ULL, 0x3C1B20EE3FD59D7CULL, 0x0ABCD06BFA53DDEFULL,
Packit Service 084de1
-    0x1DBF9A42D5C4484EULL, 0xABC521979B0DEADAULL, 0xE86D2BC522363A0DULL,
Packit Service 084de1
-    0x5CAE82AB9C9DF69EULL, 0x64F2E21E71F54BFFULL, 0xF4FD4452E2D74DD3ULL,
Packit Service 084de1
-    0xB4130C93BC437944ULL, 0xAEFE130985139270ULL, 0x598CB0FAC186D91CULL,
Packit Service 084de1
-    0x7AD91D2691F7F7EEULL, 0x61B46FC9D6E6C907ULL, 0xBC34F4DEF99C0238ULL,
Packit Service 084de1
-    0xDE355B3B6519035BULL, 0x886B4238611FCFDCULL, 0xC6F34A26C1B2EFFAULL,
Packit Service 084de1
-    0xC58EF1837D1683B2ULL, 0x3BB5FCBC2EC22005ULL, 0xC3FE3B1B4C6FAD73ULL,
Packit Service 084de1
-    0x8E4F1232EEF28183ULL, 0x9172FE9CE98583FFULL, 0xC03404CD28342F61ULL,
Packit Service 084de1
-    0x9E02FCE1CDF7E2ECULL, 0x0B07A7C8EE0A6D70ULL, 0xAE56EDE76372BB19ULL,
Packit Service 084de1
-    0x1D4F42A3DE394DF4ULL, 0xB96ADAB760D7F468ULL, 0xD108A94BB2C8E3FBULL,
Packit Service 084de1
-    0xBC0AB182B324FB61ULL, 0x30ACCA4F483A797AULL, 0x1DF158A136ADE735ULL,
Packit Service 084de1
-    0xE2A689DAF3EFE872ULL, 0x984F0C70E0E68B77ULL, 0xB557135E7F57C935ULL,
Packit Service 084de1
-    0x856365553DED1AF3ULL, 0x2433F51F5F066ED0ULL, 0xD3DF1ED5D5FD6561ULL,
Packit Service 084de1
-    0xF681B202AEC4617AULL, 0x7D2FE363630C75D8ULL, 0xCC939DCE249B3EF9ULL,
Packit Service 084de1
-    0xA9E13641146433FBULL, 0xD8B9C583CE2D3695ULL, 0xAFDC5620273D3CF1ULL,
Packit Service 084de1
-    0xADF85458A2BB4A9AULL, 0xFFFFFFFFFFFFFFFFULL
Packit Service 084de1
+/*
Packit Service 084de1
+ * "8192-bit MODP Group" from RFC3526, Section 7.
Packit Service 084de1
+ *
Packit Service 084de1
+ * The prime is: 2^8192 - 2^8128 - 1 + 2^64 * { [2^8062 pi] + 4743158 }
Packit Service 084de1
+ *
Packit Service 084de1
+ * RFC3526 specifies a generator of 2.
Packit Service 084de1
+ */
Packit Service 084de1
+static const BN_ULONG modp_8192_p[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0x98EDD3DF, 0x60C980DD),
Packit Service 084de1
+    BN_DEF(0x80B96E71, 0xC81F56E8), BN_DEF(0x765694DF, 0x9E3050E2),
Packit Service 084de1
+    BN_DEF(0x5677E9AA, 0x9558E447), BN_DEF(0xFC026E47, 0xC9190DA6),
Packit Service 084de1
+    BN_DEF(0xD5EE382B, 0x889A002E), BN_DEF(0x481C6CD7, 0x4009438B),
Packit Service 084de1
+    BN_DEF(0xEB879F92, 0x359046F4), BN_DEF(0x1ECFA268, 0xFAF36BC3),
Packit Service 084de1
+    BN_DEF(0x7EE74D73, 0xB1D510BD), BN_DEF(0x5DED7EA1, 0xF9AB4819),
Packit Service 084de1
+    BN_DEF(0x0846851D, 0x64F31CC5), BN_DEF(0xA0255DC1, 0x4597E899),
Packit Service 084de1
+    BN_DEF(0x74AB6A36, 0xDF310EE0), BN_DEF(0x3F44F82D, 0x6D2A13F8),
Packit Service 084de1
+    BN_DEF(0xB3A278A6, 0x062B3CF5), BN_DEF(0xED5BDD3A, 0x79683303),
Packit Service 084de1
+    BN_DEF(0xA2C087E8, 0xFA9D4B7F), BN_DEF(0x2F8385DD, 0x4BCBC886),
Packit Service 084de1
+    BN_DEF(0x6CEA306B, 0x3473FC64), BN_DEF(0x1A23F0C7, 0x13EB57A8),
Packit Service 084de1
+    BN_DEF(0xA4037C07, 0x22222E04), BN_DEF(0xFC848AD9, 0xE3FDB8BE),
Packit Service 084de1
+    BN_DEF(0xE39D652D, 0x238F16CB), BN_DEF(0x2BF1C978, 0x3423B474),
Packit Service 084de1
+    BN_DEF(0x5AE4F568, 0x3AAB639C), BN_DEF(0x6BA42466, 0x2576F693),
Packit Service 084de1
+    BN_DEF(0x8AFC47ED, 0x741FA7BF), BN_DEF(0x8D9DD300, 0x3BC832B6),
Packit Service 084de1
+    BN_DEF(0x73B931BA, 0xD8BEC4D0), BN_DEF(0xA932DF8C, 0x38777CB6),
Packit Service 084de1
+    BN_DEF(0x12FEE5E4, 0x74A3926F), BN_DEF(0x6DBE1159, 0xE694F91E),
Packit Service 084de1
+    BN_DEF(0x0B7474D6, 0x12BF2D5B), BN_DEF(0x3F4860EE, 0x043E8F66),
Packit Service 084de1
+    BN_DEF(0x6E3C0468, 0x387FE8D7), BN_DEF(0x2EF29632, 0xDA56C9EC),
Packit Service 084de1
+    BN_DEF(0xA313D55C, 0xEB19CCB1), BN_DEF(0x8A1FBFF0, 0xF550AA3D),
Packit Service 084de1
+    BN_DEF(0xB7C5DA76, 0x06A1D58B), BN_DEF(0xF29BE328, 0xA79715EE),
Packit Service 084de1
+    BN_DEF(0x0F8037E0, 0x14CC5ED2), BN_DEF(0xBF48E1D8, 0xCC8F6D7E),
Packit Service 084de1
+    BN_DEF(0x2B4154AA, 0x4BD407B2), BN_DEF(0xFF585AC5, 0x0F1D45B7),
Packit Service 084de1
+    BN_DEF(0x36CC88BE, 0x23A97A7E), BN_DEF(0xBEC7E8F3, 0x59E7C97F),
Packit Service 084de1
+    BN_DEF(0x900B1C9E, 0xB5A84031), BN_DEF(0x46980C82, 0xD55E702F),
Packit Service 084de1
+    BN_DEF(0x6E74FEF6, 0xF482D7CE), BN_DEF(0xD1721D03, 0xF032EA15),
Packit Service 084de1
+    BN_DEF(0xC64B92EC, 0x5983CA01), BN_DEF(0x378CD2BF, 0x6FB8F401),
Packit Service 084de1
+    BN_DEF(0x2BD7AF42, 0x33205151), BN_DEF(0xE6CC254B, 0xDB7F1447),
Packit Service 084de1
+    BN_DEF(0xCED4BB1B, 0x44CE6CBA), BN_DEF(0xCF9B14ED, 0xDA3EDBEB),
Packit Service 084de1
+    BN_DEF(0x865A8918, 0x179727B0), BN_DEF(0x9027D831, 0xB06A53ED),
Packit Service 084de1
+    BN_DEF(0x413001AE, 0xE5DB382F), BN_DEF(0xAD9E530E, 0xF8FF9406),
Packit Service 084de1
+    BN_DEF(0x3DBA37BD, 0xC9751E76), BN_DEF(0x602646DE, 0xC1D4DCB2),
Packit Service 084de1
+    BN_DEF(0xD27C7026, 0x36C3FAB4), BN_DEF(0x34028492, 0x4DF435C9),
Packit Service 084de1
+    BN_DEF(0x90A6C08F, 0x86FFB7DC), BN_DEF(0x8D8FDDC1, 0x93B4EA98),
Packit Service 084de1
+    BN_DEF(0xD5B05AA9, 0xD0069127), BN_DEF(0x2170481C, 0xB81BDD76),
Packit Service 084de1
+    BN_DEF(0xCEE2D7AF, 0x1F612970), BN_DEF(0x515BE7ED, 0x233BA186),
Packit Service 084de1
+    BN_DEF(0xA090C3A2, 0x99B2964F), BN_DEF(0x4E6BC05D, 0x287C5947),
Packit Service 084de1
+    BN_DEF(0x1FBECAA6, 0x2E8EFC14), BN_DEF(0x04DE8EF9, 0xDBBBC2DB),
Packit Service 084de1
+    BN_DEF(0x2AD44CE8, 0x2583E9CA), BN_DEF(0xB6150BDA, 0x1A946834),
Packit Service 084de1
+    BN_DEF(0x6AF4E23C, 0x99C32718), BN_DEF(0xBDBA5B26, 0x88719A10),
Packit Service 084de1
+    BN_DEF(0xA787E6D7, 0x1A723C12), BN_DEF(0xA9210801, 0x4B82D120),
Packit Service 084de1
+    BN_DEF(0xE0FD108E, 0x43DB5BFC), BN_DEF(0x74E5AB31, 0x08E24FA0),
Packit Service 084de1
+    BN_DEF(0xBAD946E2, 0x770988C0), BN_DEF(0x7A615D6C, 0xBBE11757),
Packit Service 084de1
+    BN_DEF(0x177B200C, 0x521F2B18), BN_DEF(0x3EC86A64, 0xD8760273),
Packit Service 084de1
+    BN_DEF(0xD98A0864, 0xF12FFA06), BN_DEF(0x1AD2EE6B, 0xCEE3D226),
Packit Service 084de1
+    BN_DEF(0x4A25619D, 0x1E8C94E0), BN_DEF(0xDB0933D7, 0xABF5AE8C),
Packit Service 084de1
+    BN_DEF(0xA6E1E4C7, 0xB3970F85), BN_DEF(0x5D060C7D, 0x8AEA7157),
Packit Service 084de1
+    BN_DEF(0x58DBEF0A, 0xECFB8504), BN_DEF(0xDF1CBA64, 0xA85521AB),
Packit Service 084de1
+    BN_DEF(0x04507A33, 0xAD33170D), BN_DEF(0x8AAAC42D, 0x15728E5A),
Packit Service 084de1
+    BN_DEF(0x98FA0510, 0x15D22618), BN_DEF(0xEA956AE5, 0x3995497C),
Packit Service 084de1
+    BN_DEF(0x95581718, 0xDE2BCBF6), BN_DEF(0x6F4C52C9, 0xB5C55DF0),
Packit Service 084de1
+    BN_DEF(0xEC07A28F, 0x9B2783A2), BN_DEF(0x180E8603, 0xE39E772C),
Packit Service 084de1
+    BN_DEF(0x2E36CE3B, 0x32905E46), BN_DEF(0xCA18217C, 0xF1746C08),
Packit Service 084de1
+    BN_DEF(0x4ABC9804, 0x670C354E), BN_DEF(0x7096966D, 0x9ED52907),
Packit Service 084de1
+    BN_DEF(0x208552BB, 0x1C62F356), BN_DEF(0xDCA3AD96, 0x83655D23),
Packit Service 084de1
+    BN_DEF(0xFD24CF5F, 0x69163FA8), BN_DEF(0x1C55D39A, 0x98DA4836),
Packit Service 084de1
+    BN_DEF(0xA163BF05, 0xC2007CB8), BN_DEF(0xECE45B3D, 0x49286651),
Packit Service 084de1
+    BN_DEF(0x7C4B1FE6, 0xAE9F2411), BN_DEF(0x5A899FA5, 0xEE386BFB),
Packit Service 084de1
+    BN_DEF(0xF406B7ED, 0x0BFF5CB6), BN_DEF(0xA637ED6B, 0xF44C42E9),
Packit Service 084de1
+    BN_DEF(0x625E7EC6, 0xE485B576), BN_DEF(0x6D51C245, 0x4FE1356D),
Packit Service 084de1
+    BN_DEF(0xF25F1437, 0x302B0A6D), BN_DEF(0xCD3A431B, 0xEF9519B3),
Packit Service 084de1
+    BN_DEF(0x8E3404DD, 0x514A0879), BN_DEF(0x3B139B22, 0x020BBEA6),
Packit Service 084de1
+    BN_DEF(0x8A67CC74, 0x29024E08), BN_DEF(0x80DC1CD1, 0xC4C6628B),
Packit Service 084de1
+    BN_DEF(0x2168C234, 0xC90FDAA2), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG modp_8192_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF,  0xFFFFFFFF), BN_DEF(0xCC76E9EF,  0xB064C06E),
Packit Service 084de1
+    BN_DEF(0x405CB738,  0xE40FAB74), BN_DEF(0x3B2B4A6F,  0x4F182871),
Packit Service 084de1
+    BN_DEF(0xAB3BF4D5,  0xCAAC7223), BN_DEF(0x7E013723,  0xE48C86D3),
Packit Service 084de1
+    BN_DEF(0x6AF71C15,  0xC44D0017), BN_DEF(0xA40E366B,  0x2004A1C5),
Packit Service 084de1
+    BN_DEF(0x75C3CFC9,  0x1AC8237A), BN_DEF(0x8F67D134,  0xFD79B5E1),
Packit Service 084de1
+    BN_DEF(0xBF73A6B9,  0xD8EA885E), BN_DEF(0xAEF6BF50,  0xFCD5A40C),
Packit Service 084de1
+    BN_DEF(0x8423428E,  0xB2798E62), BN_DEF(0xD012AEE0,  0x22CBF44C),
Packit Service 084de1
+    BN_DEF(0x3A55B51B,  0xEF988770), BN_DEF(0x1FA27C16,  0x369509FC),
Packit Service 084de1
+    BN_DEF(0xD9D13C53,  0x03159E7A), BN_DEF(0xF6ADEE9D,  0x3CB41981),
Packit Service 084de1
+    BN_DEF(0xD16043F4,  0xFD4EA5BF), BN_DEF(0x17C1C2EE,  0xA5E5E443),
Packit Service 084de1
+    BN_DEF(0x36751835,  0x9A39FE32), BN_DEF(0x0D11F863,  0x89F5ABD4),
Packit Service 084de1
+    BN_DEF(0x5201BE03,  0x91111702), BN_DEF(0x7E42456C,  0xF1FEDC5F),
Packit Service 084de1
+    BN_DEF(0xF1CEB296,  0x11C78B65), BN_DEF(0x15F8E4BC,  0x1A11DA3A),
Packit Service 084de1
+    BN_DEF(0x2D727AB4,  0x1D55B1CE), BN_DEF(0xB5D21233,  0x92BB7B49),
Packit Service 084de1
+    BN_DEF(0xC57E23F6,  0x3A0FD3DF), BN_DEF(0x46CEE980,  0x1DE4195B),
Packit Service 084de1
+    BN_DEF(0x39DC98DD,  0x6C5F6268), BN_DEF(0x54996FC6,  0x1C3BBE5B),
Packit Service 084de1
+    BN_DEF(0x897F72F2,  0xBA51C937), BN_DEF(0x36DF08AC,  0x734A7C8F),
Packit Service 084de1
+    BN_DEF(0x85BA3A6B,  0x095F96AD), BN_DEF(0x1FA43077,  0x021F47B3),
Packit Service 084de1
+    BN_DEF(0xB71E0234,  0x1C3FF46B), BN_DEF(0x17794B19,  0x6D2B64F6),
Packit Service 084de1
+    BN_DEF(0xD189EAAE,  0x758CE658), BN_DEF(0xC50FDFF8,  0x7AA8551E),
Packit Service 084de1
+    BN_DEF(0xDBE2ED3B,  0x0350EAC5), BN_DEF(0x794DF194,  0x53CB8AF7),
Packit Service 084de1
+    BN_DEF(0x07C01BF0,  0x0A662F69), BN_DEF(0x5FA470EC,  0x6647B6BF),
Packit Service 084de1
+    BN_DEF(0x15A0AA55,  0xA5EA03D9), BN_DEF(0xFFAC2D62,  0x078EA2DB),
Packit Service 084de1
+    BN_DEF(0x1B66445F,  0x91D4BD3F), BN_DEF(0xDF63F479,  0x2CF3E4BF),
Packit Service 084de1
+    BN_DEF(0xC8058E4F,  0x5AD42018), BN_DEF(0xA34C0641,  0x6AAF3817),
Packit Service 084de1
+    BN_DEF(0x373A7F7B,  0xFA416BE7), BN_DEF(0xE8B90E81,  0x7819750A),
Packit Service 084de1
+    BN_DEF(0xE325C976,  0xACC1E500), BN_DEF(0x9BC6695F,  0x37DC7A00),
Packit Service 084de1
+    BN_DEF(0x95EBD7A1,  0x999028A8), BN_DEF(0xF36612A5,  0xEDBF8A23),
Packit Service 084de1
+    BN_DEF(0x676A5D8D,  0xA267365D), BN_DEF(0xE7CD8A76,  0x6D1F6DF5),
Packit Service 084de1
+    BN_DEF(0x432D448C,  0x8BCB93D8), BN_DEF(0xC813EC18,  0x583529F6),
Packit Service 084de1
+    BN_DEF(0xA09800D7,  0x72ED9C17), BN_DEF(0x56CF2987,  0xFC7FCA03),
Packit Service 084de1
+    BN_DEF(0x1EDD1BDE,  0x64BA8F3B), BN_DEF(0x3013236F,  0x60EA6E59),
Packit Service 084de1
+    BN_DEF(0x693E3813,  0x1B61FD5A), BN_DEF(0x9A014249,  0xA6FA1AE4),
Packit Service 084de1
+    BN_DEF(0x48536047,  0xC37FDBEE), BN_DEF(0x46C7EEE0,  0xC9DA754C),
Packit Service 084de1
+    BN_DEF(0xEAD82D54,  0x68034893), BN_DEF(0x10B8240E,  0xDC0DEEBB),
Packit Service 084de1
+    BN_DEF(0x67716BD7,  0x8FB094B8), BN_DEF(0x28ADF3F6,  0x119DD0C3),
Packit Service 084de1
+    BN_DEF(0xD04861D1,  0xCCD94B27), BN_DEF(0xA735E02E,  0x143E2CA3),
Packit Service 084de1
+    BN_DEF(0x0FDF6553,  0x97477E0A), BN_DEF(0x826F477C,  0x6DDDE16D),
Packit Service 084de1
+    BN_DEF(0x156A2674,  0x12C1F4E5), BN_DEF(0x5B0A85ED,  0x0D4A341A),
Packit Service 084de1
+    BN_DEF(0x357A711E,  0x4CE1938C), BN_DEF(0x5EDD2D93,  0xC438CD08),
Packit Service 084de1
+    BN_DEF(0x53C3F36B,  0x8D391E09), BN_DEF(0x54908400,  0x25C16890),
Packit Service 084de1
+    BN_DEF(0x707E8847,  0xA1EDADFE), BN_DEF(0x3A72D598,  0x047127D0),
Packit Service 084de1
+    BN_DEF(0x5D6CA371,  0x3B84C460), BN_DEF(0xBD30AEB6,  0x5DF08BAB),
Packit Service 084de1
+    BN_DEF(0x0BBD9006,  0x290F958C), BN_DEF(0x9F643532,  0x6C3B0139),
Packit Service 084de1
+    BN_DEF(0x6CC50432,  0xF897FD03), BN_DEF(0x0D697735,  0xE771E913),
Packit Service 084de1
+    BN_DEF(0x2512B0CE,  0x8F464A70), BN_DEF(0x6D8499EB,  0xD5FAD746),
Packit Service 084de1
+    BN_DEF(0xD370F263,  0xD9CB87C2), BN_DEF(0xAE83063E,  0x457538AB),
Packit Service 084de1
+    BN_DEF(0x2C6DF785,  0x767DC282), BN_DEF(0xEF8E5D32,  0xD42A90D5),
Packit Service 084de1
+    BN_DEF(0x82283D19,  0xD6998B86), BN_DEF(0x45556216,  0x0AB9472D),
Packit Service 084de1
+    BN_DEF(0x4C7D0288,  0x8AE9130C), BN_DEF(0x754AB572,  0x1CCAA4BE),
Packit Service 084de1
+    BN_DEF(0x4AAC0B8C,  0xEF15E5FB), BN_DEF(0x37A62964,  0xDAE2AEF8),
Packit Service 084de1
+    BN_DEF(0x7603D147,  0xCD93C1D1), BN_DEF(0x0C074301,  0xF1CF3B96),
Packit Service 084de1
+    BN_DEF(0x171B671D,  0x19482F23), BN_DEF(0x650C10BE,  0x78BA3604),
Packit Service 084de1
+    BN_DEF(0x255E4C02,  0xB3861AA7), BN_DEF(0xB84B4B36,  0xCF6A9483),
Packit Service 084de1
+    BN_DEF(0x1042A95D,  0x0E3179AB), BN_DEF(0xEE51D6CB,  0xC1B2AE91),
Packit Service 084de1
+    BN_DEF(0x7E9267AF,  0x348B1FD4), BN_DEF(0x0E2AE9CD,  0xCC6D241B),
Packit Service 084de1
+    BN_DEF(0x50B1DF82,  0xE1003E5C), BN_DEF(0xF6722D9E,  0x24943328),
Packit Service 084de1
+    BN_DEF(0xBE258FF3,  0xD74F9208), BN_DEF(0xAD44CFD2,  0xF71C35FD),
Packit Service 084de1
+    BN_DEF(0x7A035BF6,  0x85FFAE5B), BN_DEF(0xD31BF6B5,  0x7A262174),
Packit Service 084de1
+    BN_DEF(0x312F3F63,  0xF242DABB), BN_DEF(0xB6A8E122,  0xA7F09AB6),
Packit Service 084de1
+    BN_DEF(0xF92F8A1B,  0x98158536), BN_DEF(0xE69D218D,  0xF7CA8CD9),
Packit Service 084de1
+    BN_DEF(0xC71A026E,  0x28A5043C), BN_DEF(0x1D89CD91,  0x0105DF53),
Packit Service 084de1
+    BN_DEF(0x4533E63A,  0x94812704), BN_DEF(0xC06E0E68,  0x62633145),
Packit Service 084de1
+    BN_DEF(0x10B4611A,  0xE487ED51), BN_DEF(0xFFFFFFFF,  0x7FFFFFFF),
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-# elif BN_BITS2 == 32
Packit Service 084de1
-
Packit Service 084de1
+/* DH parameters from RFC5114 */
Packit Service 084de1
 static const BN_ULONG dh1024_160_p[] = {
Packit Service 084de1
-    0x2E4A4371, 0xDF1FB2BC, 0x6D4DA708, 0xE68CFDA7, 0x365C1A65, 0x45BF37DF,
Packit Service 084de1
-    0x0DC8B4BD, 0xA151AF5F, 0xF55BCCC0, 0xFAA31A4F, 0xE5644738, 0x4EFFD6FA,
Packit Service 084de1
-    0x219A7372, 0x98488E9C, 0x90C4BD70, 0xACCBDD7D, 0xD49B83BF, 0x24975C3C,
Packit Service 084de1
-    0xA9061123, 0x13ECB4AE, 0x2EE652C0, 0x9838EF1E, 0x75A23D18, 0x6073E286,
Packit Service 084de1
-    0x52D23B61, 0x9A6A9DCA, 0xFB06A3C6, 0x52C99FBC, 0xAE5D54EC, 0xDE92DE5E,
Packit Service 084de1
-    0xA080E01D, 0xB10B8F96
Packit Service 084de1
+    BN_DEF(0x2E4A4371, 0xDF1FB2BC), BN_DEF(0x6D4DA708, 0xE68CFDA7),
Packit Service 084de1
+    BN_DEF(0x365C1A65, 0x45BF37DF), BN_DEF(0x0DC8B4BD, 0xA151AF5F),
Packit Service 084de1
+    BN_DEF(0xF55BCCC0, 0xFAA31A4F), BN_DEF(0xE5644738, 0x4EFFD6FA),
Packit Service 084de1
+    BN_DEF(0x219A7372, 0x98488E9C), BN_DEF(0x90C4BD70, 0xACCBDD7D),
Packit Service 084de1
+    BN_DEF(0xD49B83BF, 0x24975C3C), BN_DEF(0xA9061123, 0x13ECB4AE),
Packit Service 084de1
+    BN_DEF(0x2EE652C0, 0x9838EF1E), BN_DEF(0x75A23D18, 0x6073E286),
Packit Service 084de1
+    BN_DEF(0x52D23B61, 0x9A6A9DCA), BN_DEF(0xFB06A3C6, 0x52C99FBC),
Packit Service 084de1
+    BN_DEF(0xAE5D54EC, 0xDE92DE5E), BN_DEF(0xA080E01D, 0xB10B8F96)
Packit Service 084de1
 };
Packit Service 084de1
-
Packit Service 084de1
-static const BN_ULONG dh1024_160_g[] = {
Packit Service 084de1
-    0x22B3B2E5, 0x855E6EEB, 0xF97C2A24, 0x858F4DCE, 0x18D08BC8, 0x2D779D59,
Packit Service 084de1
-    0x8E73AFA3, 0xD662A4D1, 0x69B6A28A, 0x1DBF0A01, 0x7A091F53, 0xA6A24C08,
Packit Service 084de1
-    0x63F80A76, 0x909D0D22, 0xB9A92EE1, 0xD7FBD7D3, 0x9E2749F4, 0x5E91547F,
Packit Service 084de1
-    0xB01B886A, 0x160217B4, 0x5504F213, 0x777E690F, 0x5C41564B, 0x266FEA1E,
Packit Service 084de1
-    0x14266D31, 0xD6406CFF, 0x58AC507F, 0xF8104DD2, 0xEFB99905, 0x6765A442,
Packit Service 084de1
-    0xC3FD3412, 0xA4D1CBD5
Packit Service 084de1
-};
Packit Service 084de1
-
Packit Service 084de1
 static const BN_ULONG dh1024_160_q[] = {
Packit Service 084de1
-    0x49462353, 0x64B7CB9D, 0x8ABA4E7D, 0x81A8DF27, 0xF518AA87
Packit Service 084de1
+    BN_DEF(0x49462353, 0x64B7CB9D), BN_DEF(0x8ABA4E7D, 0x81A8DF27),
Packit Service 084de1
+    (BN_ULONG)0xF518AA87
Packit Service 084de1
 };
Packit Service 084de1
-
Packit Service 084de1
-static const BN_ULONG dh2048_224_p[] = {
Packit Service 084de1
-    0x0C10E64F, 0x0AC4DFFE, 0x4E71B81C, 0xCF9DE538, 0xFFA31F71, 0x7EF363E2,
Packit Service 084de1
-    0x6B8E75B9, 0xE3FB73C1, 0x4BA80A29, 0xC9B53DCF, 0x16E79763, 0x23F10B0E,
Packit Service 084de1
-    0x13042E9B, 0xC52172E4, 0xC928B2B9, 0xBE60E69C, 0xB9E587E8, 0x80CD86A1,
Packit Service 084de1
-    0x98C641A4, 0x315D75E1, 0x44328387, 0xCDF93ACC, 0xDC0A486D, 0x15987D9A,
Packit Service 084de1
-    0x1FD5A074, 0x7310F712, 0xDE31EFDC, 0x278273C7, 0x415D9330, 0x1602E714,
Packit Service 084de1
-    0xBC8985DB, 0x81286130, 0x70918836, 0xB3BF8A31, 0xB9C49708, 0x6A00E0A0,
Packit Service 084de1
-    0x8BBC27BE, 0xC6BA0B2C, 0xED34DBF6, 0xC9F98D11, 0xB6C12207, 0x7AD5B7D0,
Packit Service 084de1
-    0x55B7394B, 0xD91E8FEF, 0xEFDA4DF8, 0x9037C9ED, 0xAD6AC212, 0x6D3F8152,
Packit Service 084de1
-    0x1274A0A6, 0x1DE6B85A, 0x309C180E, 0xEB3D688A, 0x7BA1DF15, 0xAF9A3C40,
Packit Service 084de1
-    0xF95A56DB, 0xE6FA141D, 0xB61D0A75, 0xB54B1597, 0x683B9FD1, 0xA20D64E5,
Packit Service 084de1
-    0x9559C51F, 0xD660FAA7, 0x9123A9D0, 0xAD107E1E
Packit Service 084de1
+static const BN_ULONG dh1024_160_g[] = {
Packit Service 084de1
+    BN_DEF(0x22B3B2E5, 0x855E6EEB), BN_DEF(0xF97C2A24, 0x858F4DCE),
Packit Service 084de1
+    BN_DEF(0x18D08BC8, 0x2D779D59), BN_DEF(0x8E73AFA3, 0xD662A4D1),
Packit Service 084de1
+    BN_DEF(0x69B6A28A, 0x1DBF0A01), BN_DEF(0x7A091F53, 0xA6A24C08),
Packit Service 084de1
+    BN_DEF(0x63F80A76, 0x909D0D22), BN_DEF(0xB9A92EE1, 0xD7FBD7D3),
Packit Service 084de1
+    BN_DEF(0x9E2749F4, 0x5E91547F), BN_DEF(0xB01B886A, 0x160217B4),
Packit Service 084de1
+    BN_DEF(0x5504F213, 0x777E690F), BN_DEF(0x5C41564B, 0x266FEA1E),
Packit Service 084de1
+    BN_DEF(0x14266D31, 0xD6406CFF), BN_DEF(0x58AC507F, 0xF8104DD2),
Packit Service 084de1
+    BN_DEF(0xEFB99905, 0x6765A442), BN_DEF(0xC3FD3412, 0xA4D1CBD5)
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-static const BN_ULONG dh2048_224_g[] = {
Packit Service 084de1
-    0x191F2BFA, 0x84B890D3, 0x2A7065B3, 0x81BC087F, 0xF6EC0179, 0x19C418E1,
Packit Service 084de1
-    0x71CFFF4C, 0x7B5A0F1C, 0x9B6AA4BD, 0xEDFE72FE, 0x94B30269, 0x81E1BCFE,
Packit Service 084de1
-    0x8D6C0191, 0x566AFBB4, 0x409D13CD, 0xB539CCE3, 0x5F2FF381, 0x6AA21E7F,
Packit Service 084de1
-    0x770589EF, 0xD9E263E4, 0xD19963DD, 0x10E183ED, 0x150B8EEB, 0xB70A8137,
Packit Service 084de1
-    0x28C8F8AC, 0x051AE3D4, 0x0C1AB15B, 0xBB77A86F, 0x16A330EF, 0x6E3025E3,
Packit Service 084de1
-    0xD6F83456, 0x19529A45, 0x118E98D1, 0xF180EB34, 0x50717CBE, 0xB5F6C6B2,
Packit Service 084de1
-    0xDA7460CD, 0x09939D54, 0x22EA1ED4, 0xE2471504, 0x521BC98A, 0xB8A762D0,
Packit Service 084de1
-    0x5AC1348B, 0xF4D02727, 0x1999024A, 0xC1766910, 0xA8D66AD7, 0xBE5E9001,
Packit Service 084de1
-    0x620A8652, 0xC57DB17C, 0x00C29F52, 0xAB739D77, 0xA70C4AFA, 0xDD921F01,
Packit Service 084de1
-    0x10B9A6F0, 0xA6824A4E, 0xCFE4FFE3, 0x74866A08, 0x89998CAF, 0x6CDEBE7B,
Packit Service 084de1
-    0x8FFDAC50, 0x9DF30B5C, 0x4F2D9AE3, 0xAC4032EF
Packit Service 084de1
+static const BN_ULONG dh2048_224_p[] = {
Packit Service 084de1
+    BN_DEF(0x0C10E64F, 0x0AC4DFFE), BN_DEF(0x4E71B81C, 0xCF9DE538),
Packit Service 084de1
+    BN_DEF(0xFFA31F71, 0x7EF363E2), BN_DEF(0x6B8E75B9, 0xE3FB73C1),
Packit Service 084de1
+    BN_DEF(0x4BA80A29, 0xC9B53DCF), BN_DEF(0x16E79763, 0x23F10B0E),
Packit Service 084de1
+    BN_DEF(0x13042E9B, 0xC52172E4), BN_DEF(0xC928B2B9, 0xBE60E69C),
Packit Service 084de1
+    BN_DEF(0xB9E587E8, 0x80CD86A1), BN_DEF(0x98C641A4, 0x315D75E1),
Packit Service 084de1
+    BN_DEF(0x44328387, 0xCDF93ACC), BN_DEF(0xDC0A486D, 0x15987D9A),
Packit Service 084de1
+    BN_DEF(0x1FD5A074, 0x7310F712), BN_DEF(0xDE31EFDC, 0x278273C7),
Packit Service 084de1
+    BN_DEF(0x415D9330, 0x1602E714), BN_DEF(0xBC8985DB, 0x81286130),
Packit Service 084de1
+    BN_DEF(0x70918836, 0xB3BF8A31), BN_DEF(0xB9C49708, 0x6A00E0A0),
Packit Service 084de1
+    BN_DEF(0x8BBC27BE, 0xC6BA0B2C), BN_DEF(0xED34DBF6, 0xC9F98D11),
Packit Service 084de1
+    BN_DEF(0xB6C12207, 0x7AD5B7D0), BN_DEF(0x55B7394B, 0xD91E8FEF),
Packit Service 084de1
+    BN_DEF(0xEFDA4DF8, 0x9037C9ED), BN_DEF(0xAD6AC212, 0x6D3F8152),
Packit Service 084de1
+    BN_DEF(0x1274A0A6, 0x1DE6B85A), BN_DEF(0x309C180E, 0xEB3D688A),
Packit Service 084de1
+    BN_DEF(0x7BA1DF15, 0xAF9A3C40), BN_DEF(0xF95A56DB, 0xE6FA141D),
Packit Service 084de1
+    BN_DEF(0xB61D0A75, 0xB54B1597), BN_DEF(0x683B9FD1, 0xA20D64E5),
Packit Service 084de1
+    BN_DEF(0x9559C51F, 0xD660FAA7), BN_DEF(0x9123A9D0, 0xAD107E1E)
Packit Service 084de1
 };
Packit Service 084de1
-
Packit Service 084de1
 static const BN_ULONG dh2048_224_q[] = {
Packit Service 084de1
-    0xB36371EB, 0xBF389A99, 0x4738CEBC, 0x1F80535A, 0x99717710, 0xC58D93FE,
Packit Service 084de1
-    0x801C0D34
Packit Service 084de1
+    BN_DEF(0xB36371EB, 0xBF389A99), BN_DEF(0x4738CEBC, 0x1F80535A),
Packit Service 084de1
+    BN_DEF(0x99717710, 0xC58D93FE), (BN_ULONG)0x801C0D34
Packit Service 084de1
 };
Packit Service 084de1
-
Packit Service 084de1
-static const BN_ULONG dh2048_256_p[] = {
Packit Service 084de1
-    0x1E1A1597, 0xDB094AE9, 0xD7EF09CA, 0x693877FA, 0x6E11715F, 0x6116D227,
Packit Service 084de1
-    0xC198AF12, 0xA4B54330, 0xD7014103, 0x75F26375, 0x54E710C3, 0xC3A3960A,
Packit Service 084de1
-    0xBD0BE621, 0xDED4010A, 0x89962856, 0xC0B857F6, 0x71506026, 0xB3CA3F79,
Packit Service 084de1
-    0xE6B486F6, 0x1CCACB83, 0x14056425, 0x67E144E5, 0xA41825D9, 0xF6A167B5,
Packit Service 084de1
-    0x96524D8E, 0x3AD83477, 0x51BFA4AB, 0xF13C6D9A, 0x35488A0E, 0x2D525267,
Packit Service 084de1
-    0xCAA6B790, 0xB63ACAE1, 0x81B23F76, 0x4FDB70C5, 0x12307F5C, 0xBC39A0BF,
Packit Service 084de1
-    0xB1E59BB8, 0xB941F54E, 0xD45F9088, 0x6C5BFC11, 0x4275BF7B, 0x22E0B1EF,
Packit Service 084de1
-    0x5B4758C0, 0x91F9E672, 0x6BCF67ED, 0x5A8A9D30, 0x97517ABD, 0x209E0C64,
Packit Service 084de1
-    0x830E9A7C, 0x3BF4296D, 0x34096FAA, 0x16C3D911, 0x61B2AA30, 0xFAF7DF45,
Packit Service 084de1
-    0xD61957D4, 0xE00DF8F1, 0x435E3B00, 0x5D2CEED4, 0x660DD0F2, 0x8CEEF608,
Packit Service 084de1
-    0x65195999, 0xFFBBD19C, 0xB4B6663C, 0x87A8E61D
Packit Service 084de1
+static const BN_ULONG dh2048_224_g[] = {
Packit Service 084de1
+    BN_DEF(0x191F2BFA, 0x84B890D3), BN_DEF(0x2A7065B3, 0x81BC087F),
Packit Service 084de1
+    BN_DEF(0xF6EC0179, 0x19C418E1), BN_DEF(0x71CFFF4C, 0x7B5A0F1C),
Packit Service 084de1
+    BN_DEF(0x9B6AA4BD, 0xEDFE72FE), BN_DEF(0x94B30269, 0x81E1BCFE),
Packit Service 084de1
+    BN_DEF(0x8D6C0191, 0x566AFBB4), BN_DEF(0x409D13CD, 0xB539CCE3),
Packit Service 084de1
+    BN_DEF(0x5F2FF381, 0x6AA21E7F), BN_DEF(0x770589EF, 0xD9E263E4),
Packit Service 084de1
+    BN_DEF(0xD19963DD, 0x10E183ED), BN_DEF(0x150B8EEB, 0xB70A8137),
Packit Service 084de1
+    BN_DEF(0x28C8F8AC, 0x051AE3D4), BN_DEF(0x0C1AB15B, 0xBB77A86F),
Packit Service 084de1
+    BN_DEF(0x16A330EF, 0x6E3025E3), BN_DEF(0xD6F83456, 0x19529A45),
Packit Service 084de1
+    BN_DEF(0x118E98D1, 0xF180EB34), BN_DEF(0x50717CBE, 0xB5F6C6B2),
Packit Service 084de1
+    BN_DEF(0xDA7460CD, 0x09939D54), BN_DEF(0x22EA1ED4, 0xE2471504),
Packit Service 084de1
+    BN_DEF(0x521BC98A, 0xB8A762D0), BN_DEF(0x5AC1348B, 0xF4D02727),
Packit Service 084de1
+    BN_DEF(0x1999024A, 0xC1766910), BN_DEF(0xA8D66AD7, 0xBE5E9001),
Packit Service 084de1
+    BN_DEF(0x620A8652, 0xC57DB17C), BN_DEF(0x00C29F52, 0xAB739D77),
Packit Service 084de1
+    BN_DEF(0xA70C4AFA, 0xDD921F01), BN_DEF(0x10B9A6F0, 0xA6824A4E),
Packit Service 084de1
+    BN_DEF(0xCFE4FFE3, 0x74866A08), BN_DEF(0x89998CAF, 0x6CDEBE7B),
Packit Service 084de1
+    BN_DEF(0x8FFDAC50, 0x9DF30B5C), BN_DEF(0x4F2D9AE3, 0xAC4032EF)
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-static const BN_ULONG dh2048_256_g[] = {
Packit Service 084de1
-    0x6CC41659, 0x664B4C0F, 0xEF98C582, 0x5E2327CF, 0xD4795451, 0xD647D148,
Packit Service 084de1
-    0x90F00EF8, 0x2F630784, 0x1DB246C3, 0x184B523D, 0xCDC67EB6, 0xC7891428,
Packit Service 084de1
-    0x0DF92B52, 0x7FD02837, 0x64E0EC37, 0xB3353BBB, 0x57CD0915, 0xECD06E15,
Packit Service 084de1
-    0xDF016199, 0xB7D2BBD2, 0x052588B9, 0xC8484B1E, 0x13D3FE14, 0xDB2A3B73,
Packit Service 084de1
-    0xD182EA0A, 0xD052B985, 0xE83B9C80, 0xA4BD1BFF, 0xFB3F2E55, 0xDFC967C1,
Packit Service 084de1
-    0x767164E1, 0xB5045AF2, 0x6F2F9193, 0x1D14348F, 0x428EBC83, 0x64E67982,
Packit Service 084de1
-    0x82D6ED38, 0x8AC376D2, 0xAAB8A862, 0x777DE62A, 0xE9EC144B, 0xDDF463E5,
Packit Service 084de1
-    0xC77A57F2, 0x0196F931, 0x41000A65, 0xA55AE313, 0xC28CBB18, 0x901228F8,
Packit Service 084de1
-    0x7E8C6F62, 0xBC3773BF, 0x0C6B47B1, 0xBE3A6C1B, 0xAC0BB555, 0xFF4FED4A,
Packit Service 084de1
-    0x77BE463F, 0x10DBC150, 0x1A0BA125, 0x07F4793A, 0x21EF2054, 0x4CA7B18F,
Packit Service 084de1
-    0x60EDBD48, 0x2E775066, 0x73134D0B, 0x3FB32C9B
Packit Service 084de1
+static const BN_ULONG dh2048_256_p[] = {
Packit Service 084de1
+    BN_DEF(0x1E1A1597, 0xDB094AE9), BN_DEF(0xD7EF09CA, 0x693877FA),
Packit Service 084de1
+    BN_DEF(0x6E11715F, 0x6116D227), BN_DEF(0xC198AF12, 0xA4B54330),
Packit Service 084de1
+    BN_DEF(0xD7014103, 0x75F26375), BN_DEF(0x54E710C3, 0xC3A3960A),
Packit Service 084de1
+    BN_DEF(0xBD0BE621, 0xDED4010A), BN_DEF(0x89962856, 0xC0B857F6),
Packit Service 084de1
+    BN_DEF(0x71506026, 0xB3CA3F79), BN_DEF(0xE6B486F6, 0x1CCACB83),
Packit Service 084de1
+    BN_DEF(0x14056425, 0x67E144E5), BN_DEF(0xA41825D9, 0xF6A167B5),
Packit Service 084de1
+    BN_DEF(0x96524D8E, 0x3AD83477), BN_DEF(0x51BFA4AB, 0xF13C6D9A),
Packit Service 084de1
+    BN_DEF(0x35488A0E, 0x2D525267), BN_DEF(0xCAA6B790, 0xB63ACAE1),
Packit Service 084de1
+    BN_DEF(0x81B23F76, 0x4FDB70C5), BN_DEF(0x12307F5C, 0xBC39A0BF),
Packit Service 084de1
+    BN_DEF(0xB1E59BB8, 0xB941F54E), BN_DEF(0xD45F9088, 0x6C5BFC11),
Packit Service 084de1
+    BN_DEF(0x4275BF7B, 0x22E0B1EF), BN_DEF(0x5B4758C0, 0x91F9E672),
Packit Service 084de1
+    BN_DEF(0x6BCF67ED, 0x5A8A9D30), BN_DEF(0x97517ABD, 0x209E0C64),
Packit Service 084de1
+    BN_DEF(0x830E9A7C, 0x3BF4296D), BN_DEF(0x34096FAA, 0x16C3D911),
Packit Service 084de1
+    BN_DEF(0x61B2AA30, 0xFAF7DF45), BN_DEF(0xD61957D4, 0xE00DF8F1),
Packit Service 084de1
+    BN_DEF(0x435E3B00, 0x5D2CEED4), BN_DEF(0x660DD0F2, 0x8CEEF608),
Packit Service 084de1
+    BN_DEF(0x65195999, 0xFFBBD19C), BN_DEF(0xB4B6663C, 0x87A8E61D)
Packit Service 084de1
 };
Packit Service 084de1
-
Packit Service 084de1
 static const BN_ULONG dh2048_256_q[] = {
Packit Service 084de1
-    0x64F5FBD3, 0xA308B0FE, 0x1EB3750B, 0x99B1A47D, 0x40129DA2, 0xB4479976,
Packit Service 084de1
-    0xA709A097, 0x8CF83642
Packit Service 084de1
+    BN_DEF(0x64F5FBD3, 0xA308B0FE), BN_DEF(0x1EB3750B, 0x99B1A47D),
Packit Service 084de1
+    BN_DEF(0x40129DA2, 0xB4479976), BN_DEF(0xA709A097, 0x8CF83642)
Packit Service 084de1
+};
Packit Service 084de1
+static const BN_ULONG dh2048_256_g[] = {
Packit Service 084de1
+    BN_DEF(0x6CC41659, 0x664B4C0F), BN_DEF(0xEF98C582, 0x5E2327CF),
Packit Service 084de1
+    BN_DEF(0xD4795451, 0xD647D148), BN_DEF(0x90F00EF8, 0x2F630784),
Packit Service 084de1
+    BN_DEF(0x1DB246C3, 0x184B523D), BN_DEF(0xCDC67EB6, 0xC7891428),
Packit Service 084de1
+    BN_DEF(0x0DF92B52, 0x7FD02837), BN_DEF(0x64E0EC37, 0xB3353BBB),
Packit Service 084de1
+    BN_DEF(0x57CD0915, 0xECD06E15), BN_DEF(0xDF016199, 0xB7D2BBD2),
Packit Service 084de1
+    BN_DEF(0x052588B9, 0xC8484B1E), BN_DEF(0x13D3FE14, 0xDB2A3B73),
Packit Service 084de1
+    BN_DEF(0xD182EA0A, 0xD052B985), BN_DEF(0xE83B9C80, 0xA4BD1BFF),
Packit Service 084de1
+    BN_DEF(0xFB3F2E55, 0xDFC967C1), BN_DEF(0x767164E1, 0xB5045AF2),
Packit Service 084de1
+    BN_DEF(0x6F2F9193, 0x1D14348F), BN_DEF(0x428EBC83, 0x64E67982),
Packit Service 084de1
+    BN_DEF(0x82D6ED38, 0x8AC376D2), BN_DEF(0xAAB8A862, 0x777DE62A),
Packit Service 084de1
+    BN_DEF(0xE9EC144B, 0xDDF463E5), BN_DEF(0xC77A57F2, 0x0196F931),
Packit Service 084de1
+    BN_DEF(0x41000A65, 0xA55AE313), BN_DEF(0xC28CBB18, 0x901228F8),
Packit Service 084de1
+    BN_DEF(0x7E8C6F62, 0xBC3773BF), BN_DEF(0x0C6B47B1, 0xBE3A6C1B),
Packit Service 084de1
+    BN_DEF(0xAC0BB555, 0xFF4FED4A), BN_DEF(0x77BE463F, 0x10DBC150),
Packit Service 084de1
+    BN_DEF(0x1A0BA125, 0x07F4793A), BN_DEF(0x21EF2054, 0x4CA7B18F),
Packit Service 084de1
+    BN_DEF(0x60EDBD48, 0x2E775066), BN_DEF(0x73134D0B, 0x3FB32C9B)
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
 /* Primes from RFC 7919 */
Packit Service 084de1
-
Packit Service 084de1
 static const BN_ULONG ffdhe2048_p[] = {
Packit Service 084de1
-    0xFFFFFFFF, 0xFFFFFFFF, 0x61285C97, 0x886B4238, 0xC1B2EFFA, 0xC6F34A26,
Packit Service 084de1
-    0x7D1683B2, 0xC58EF183, 0x2EC22005, 0x3BB5FCBC, 0x4C6FAD73, 0xC3FE3B1B,
Packit Service 084de1
-    0xEEF28183, 0x8E4F1232, 0xE98583FF, 0x9172FE9C, 0x28342F61, 0xC03404CD,
Packit Service 084de1
-    0xCDF7E2EC, 0x9E02FCE1, 0xEE0A6D70, 0x0B07A7C8, 0x6372BB19, 0xAE56EDE7,
Packit Service 084de1
-    0xDE394DF4, 0x1D4F42A3, 0x60D7F468, 0xB96ADAB7, 0xB2C8E3FB, 0xD108A94B,
Packit Service 084de1
-    0xB324FB61, 0xBC0AB182, 0x483A797A, 0x30ACCA4F, 0x36ADE735, 0x1DF158A1,
Packit Service 084de1
-    0xF3EFE872, 0xE2A689DA, 0xE0E68B77, 0x984F0C70, 0x7F57C935, 0xB557135E,
Packit Service 084de1
-    0x3DED1AF3, 0x85636555, 0x5F066ED0, 0x2433F51F, 0xD5FD6561, 0xD3DF1ED5,
Packit Service 084de1
-    0xAEC4617A, 0xF681B202, 0x630C75D8, 0x7D2FE363, 0x249B3EF9, 0xCC939DCE,
Packit Service 084de1
-    0x146433FB, 0xA9E13641, 0xCE2D3695, 0xD8B9C583, 0x273D3CF1, 0xAFDC5620,
Packit Service 084de1
-    0xA2BB4A9A, 0xADF85458, 0xFFFFFFFF, 0xFFFFFFFF
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0x61285C97, 0x886B4238),
Packit Service 084de1
+    BN_DEF(0xC1B2EFFA, 0xC6F34A26), BN_DEF(0x7D1683B2, 0xC58EF183),
Packit Service 084de1
+    BN_DEF(0x2EC22005, 0x3BB5FCBC), BN_DEF(0x4C6FAD73, 0xC3FE3B1B),
Packit Service 084de1
+    BN_DEF(0xEEF28183, 0x8E4F1232), BN_DEF(0xE98583FF, 0x9172FE9C),
Packit Service 084de1
+    BN_DEF(0x28342F61, 0xC03404CD), BN_DEF(0xCDF7E2EC, 0x9E02FCE1),
Packit Service 084de1
+    BN_DEF(0xEE0A6D70, 0x0B07A7C8), BN_DEF(0x6372BB19, 0xAE56EDE7),
Packit Service 084de1
+    BN_DEF(0xDE394DF4, 0x1D4F42A3), BN_DEF(0x60D7F468, 0xB96ADAB7),
Packit Service 084de1
+    BN_DEF(0xB2C8E3FB, 0xD108A94B), BN_DEF(0xB324FB61, 0xBC0AB182),
Packit Service 084de1
+    BN_DEF(0x483A797A, 0x30ACCA4F), BN_DEF(0x36ADE735, 0x1DF158A1),
Packit Service 084de1
+    BN_DEF(0xF3EFE872, 0xE2A689DA), BN_DEF(0xE0E68B77, 0x984F0C70),
Packit Service 084de1
+    BN_DEF(0x7F57C935, 0xB557135E), BN_DEF(0x3DED1AF3, 0x85636555),
Packit Service 084de1
+    BN_DEF(0x5F066ED0, 0x2433F51F), BN_DEF(0xD5FD6561, 0xD3DF1ED5),
Packit Service 084de1
+    BN_DEF(0xAEC4617A, 0xF681B202), BN_DEF(0x630C75D8, 0x7D2FE363),
Packit Service 084de1
+    BN_DEF(0x249B3EF9, 0xCC939DCE), BN_DEF(0x146433FB, 0xA9E13641),
Packit Service 084de1
+    BN_DEF(0xCE2D3695, 0xD8B9C583), BN_DEF(0x273D3CF1, 0xAFDC5620),
Packit Service 084de1
+    BN_DEF(0xA2BB4A9A, 0xADF85458), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG ffdhe2048_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF,  0xFFFFFFFF), BN_DEF(0x30942E4B,  0x4435A11C),
Packit Service 084de1
+    BN_DEF(0x60D977FD,  0x6379A513), BN_DEF(0xBE8B41D9,  0xE2C778C1),
Packit Service 084de1
+    BN_DEF(0x17611002,  0x9DDAFE5E), BN_DEF(0xA637D6B9,  0xE1FF1D8D),
Packit Service 084de1
+    BN_DEF(0x777940C1,  0xC7278919), BN_DEF(0x74C2C1FF,  0xC8B97F4E),
Packit Service 084de1
+    BN_DEF(0x941A17B0,  0x601A0266), BN_DEF(0xE6FBF176,  0x4F017E70),
Packit Service 084de1
+    BN_DEF(0x770536B8,  0x8583D3E4), BN_DEF(0xB1B95D8C,  0x572B76F3),
Packit Service 084de1
+    BN_DEF(0xEF1CA6FA,  0x0EA7A151), BN_DEF(0xB06BFA34,  0xDCB56D5B),
Packit Service 084de1
+    BN_DEF(0xD96471FD,  0xE88454A5), BN_DEF(0x59927DB0,  0x5E0558C1),
Packit Service 084de1
+    BN_DEF(0xA41D3CBD,  0x98566527), BN_DEF(0x9B56F39A,  0x0EF8AC50),
Packit Service 084de1
+    BN_DEF(0x79F7F439,  0xF15344ED), BN_DEF(0x707345BB,  0xCC278638),
Packit Service 084de1
+    BN_DEF(0x3FABE49A,  0xDAAB89AF), BN_DEF(0x9EF68D79,  0x42B1B2AA),
Packit Service 084de1
+    BN_DEF(0xAF833768,  0x9219FA8F), BN_DEF(0xEAFEB2B0,  0x69EF8F6A),
Packit Service 084de1
+    BN_DEF(0x576230BD,  0x7B40D901), BN_DEF(0xB1863AEC,  0xBE97F1B1),
Packit Service 084de1
+    BN_DEF(0x124D9F7C,  0xE649CEE7), BN_DEF(0x8A3219FD,  0xD4F09B20),
Packit Service 084de1
+    BN_DEF(0xE7169B4A,  0xEC5CE2C1), BN_DEF(0x139E9E78,  0x57EE2B10),
Packit Service 084de1
+    BN_DEF(0x515DA54D,  0xD6FC2A2C), BN_DEF(0xFFFFFFFF,  0x7FFFFFFF),
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
 static const BN_ULONG ffdhe3072_p[] = {
Packit Service 084de1
-    0xFFFFFFFF, 0xFFFFFFFF, 0x66C62E37, 0x25E41D2B, 0x3FD59D7C, 0x3C1B20EE,
Packit Service 084de1
-    0xFA53DDEF, 0x0ABCD06B, 0xD5C4484E, 0x1DBF9A42, 0x9B0DEADA, 0xABC52197,
Packit Service 084de1
-    0x22363A0D, 0xE86D2BC5, 0x9C9DF69E, 0x5CAE82AB, 0x71F54BFF, 0x64F2E21E,
Packit Service 084de1
-    0xE2D74DD3, 0xF4FD4452, 0xBC437944, 0xB4130C93, 0x85139270, 0xAEFE1309,
Packit Service 084de1
-    0xC186D91C, 0x598CB0FA, 0x91F7F7EE, 0x7AD91D26, 0xD6E6C907, 0x61B46FC9,
Packit Service 084de1
-    0xF99C0238, 0xBC34F4DE, 0x6519035B, 0xDE355B3B, 0x611FCFDC, 0x886B4238,
Packit Service 084de1
-    0xC1B2EFFA, 0xC6F34A26, 0x7D1683B2, 0xC58EF183, 0x2EC22005, 0x3BB5FCBC,
Packit Service 084de1
-    0x4C6FAD73, 0xC3FE3B1B, 0xEEF28183, 0x8E4F1232, 0xE98583FF, 0x9172FE9C,
Packit Service 084de1
-    0x28342F61, 0xC03404CD, 0xCDF7E2EC, 0x9E02FCE1, 0xEE0A6D70, 0x0B07A7C8,
Packit Service 084de1
-    0x6372BB19, 0xAE56EDE7, 0xDE394DF4, 0x1D4F42A3, 0x60D7F468, 0xB96ADAB7,
Packit Service 084de1
-    0xB2C8E3FB, 0xD108A94B, 0xB324FB61, 0xBC0AB182, 0x483A797A, 0x30ACCA4F,
Packit Service 084de1
-    0x36ADE735, 0x1DF158A1, 0xF3EFE872, 0xE2A689DA, 0xE0E68B77, 0x984F0C70,
Packit Service 084de1
-    0x7F57C935, 0xB557135E, 0x3DED1AF3, 0x85636555, 0x5F066ED0, 0x2433F51F,
Packit Service 084de1
-    0xD5FD6561, 0xD3DF1ED5, 0xAEC4617A, 0xF681B202, 0x630C75D8, 0x7D2FE363,
Packit Service 084de1
-    0x249B3EF9, 0xCC939DCE, 0x146433FB, 0xA9E13641, 0xCE2D3695, 0xD8B9C583,
Packit Service 084de1
-    0x273D3CF1, 0xAFDC5620, 0xA2BB4A9A, 0xADF85458, 0xFFFFFFFF, 0xFFFFFFFF
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0x66C62E37, 0x25E41D2B),
Packit Service 084de1
+    BN_DEF(0x3FD59D7C, 0x3C1B20EE), BN_DEF(0xFA53DDEF, 0x0ABCD06B),
Packit Service 084de1
+    BN_DEF(0xD5C4484E, 0x1DBF9A42), BN_DEF(0x9B0DEADA, 0xABC52197),
Packit Service 084de1
+    BN_DEF(0x22363A0D, 0xE86D2BC5), BN_DEF(0x9C9DF69E, 0x5CAE82AB),
Packit Service 084de1
+    BN_DEF(0x71F54BFF, 0x64F2E21E), BN_DEF(0xE2D74DD3, 0xF4FD4452),
Packit Service 084de1
+    BN_DEF(0xBC437944, 0xB4130C93), BN_DEF(0x85139270, 0xAEFE1309),
Packit Service 084de1
+    BN_DEF(0xC186D91C, 0x598CB0FA), BN_DEF(0x91F7F7EE, 0x7AD91D26),
Packit Service 084de1
+    BN_DEF(0xD6E6C907, 0x61B46FC9), BN_DEF(0xF99C0238, 0xBC34F4DE),
Packit Service 084de1
+    BN_DEF(0x6519035B, 0xDE355B3B), BN_DEF(0x611FCFDC, 0x886B4238),
Packit Service 084de1
+    BN_DEF(0xC1B2EFFA, 0xC6F34A26), BN_DEF(0x7D1683B2, 0xC58EF183),
Packit Service 084de1
+    BN_DEF(0x2EC22005, 0x3BB5FCBC), BN_DEF(0x4C6FAD73, 0xC3FE3B1B),
Packit Service 084de1
+    BN_DEF(0xEEF28183, 0x8E4F1232), BN_DEF(0xE98583FF, 0x9172FE9C),
Packit Service 084de1
+    BN_DEF(0x28342F61, 0xC03404CD), BN_DEF(0xCDF7E2EC, 0x9E02FCE1),
Packit Service 084de1
+    BN_DEF(0xEE0A6D70, 0x0B07A7C8), BN_DEF(0x6372BB19, 0xAE56EDE7),
Packit Service 084de1
+    BN_DEF(0xDE394DF4, 0x1D4F42A3), BN_DEF(0x60D7F468, 0xB96ADAB7),
Packit Service 084de1
+    BN_DEF(0xB2C8E3FB, 0xD108A94B), BN_DEF(0xB324FB61, 0xBC0AB182),
Packit Service 084de1
+    BN_DEF(0x483A797A, 0x30ACCA4F), BN_DEF(0x36ADE735, 0x1DF158A1),
Packit Service 084de1
+    BN_DEF(0xF3EFE872, 0xE2A689DA), BN_DEF(0xE0E68B77, 0x984F0C70),
Packit Service 084de1
+    BN_DEF(0x7F57C935, 0xB557135E), BN_DEF(0x3DED1AF3, 0x85636555),
Packit Service 084de1
+    BN_DEF(0x5F066ED0, 0x2433F51F), BN_DEF(0xD5FD6561, 0xD3DF1ED5),
Packit Service 084de1
+    BN_DEF(0xAEC4617A, 0xF681B202), BN_DEF(0x630C75D8, 0x7D2FE363),
Packit Service 084de1
+    BN_DEF(0x249B3EF9, 0xCC939DCE), BN_DEF(0x146433FB, 0xA9E13641),
Packit Service 084de1
+    BN_DEF(0xCE2D3695, 0xD8B9C583), BN_DEF(0x273D3CF1, 0xAFDC5620),
Packit Service 084de1
+    BN_DEF(0xA2BB4A9A, 0xADF85458), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG ffdhe3072_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF,  0xFFFFFFFF), BN_DEF(0xB363171B,  0x12F20E95),
Packit Service 084de1
+    BN_DEF(0x1FEACEBE,  0x9E0D9077), BN_DEF(0xFD29EEF7,  0x055E6835),
Packit Service 084de1
+    BN_DEF(0x6AE22427,  0x0EDFCD21), BN_DEF(0xCD86F56D,  0xD5E290CB),
Packit Service 084de1
+    BN_DEF(0x911B1D06,  0x743695E2), BN_DEF(0xCE4EFB4F,  0xAE574155),
Packit Service 084de1
+    BN_DEF(0x38FAA5FF,  0xB279710F), BN_DEF(0x716BA6E9,  0x7A7EA229),
Packit Service 084de1
+    BN_DEF(0xDE21BCA2,  0x5A098649), BN_DEF(0xC289C938,  0x577F0984),
Packit Service 084de1
+    BN_DEF(0x60C36C8E,  0x2CC6587D), BN_DEF(0x48FBFBF7,  0xBD6C8E93),
Packit Service 084de1
+    BN_DEF(0xEB736483,  0x30DA37E4), BN_DEF(0x7CCE011C,  0xDE1A7A6F),
Packit Service 084de1
+    BN_DEF(0xB28C81AD,  0x6F1AAD9D), BN_DEF(0x308FE7EE,  0x4435A11C),
Packit Service 084de1
+    BN_DEF(0x60D977FD,  0x6379A513), BN_DEF(0xBE8B41D9,  0xE2C778C1),
Packit Service 084de1
+    BN_DEF(0x17611002,  0x9DDAFE5E), BN_DEF(0xA637D6B9,  0xE1FF1D8D),
Packit Service 084de1
+    BN_DEF(0x777940C1,  0xC7278919), BN_DEF(0x74C2C1FF,  0xC8B97F4E),
Packit Service 084de1
+    BN_DEF(0x941A17B0,  0x601A0266), BN_DEF(0xE6FBF176,  0x4F017E70),
Packit Service 084de1
+    BN_DEF(0x770536B8,  0x8583D3E4), BN_DEF(0xB1B95D8C,  0x572B76F3),
Packit Service 084de1
+    BN_DEF(0xEF1CA6FA,  0x0EA7A151), BN_DEF(0xB06BFA34,  0xDCB56D5B),
Packit Service 084de1
+    BN_DEF(0xD96471FD,  0xE88454A5), BN_DEF(0x59927DB0,  0x5E0558C1),
Packit Service 084de1
+    BN_DEF(0xA41D3CBD,  0x98566527), BN_DEF(0x9B56F39A,  0x0EF8AC50),
Packit Service 084de1
+    BN_DEF(0x79F7F439,  0xF15344ED), BN_DEF(0x707345BB,  0xCC278638),
Packit Service 084de1
+    BN_DEF(0x3FABE49A,  0xDAAB89AF), BN_DEF(0x9EF68D79,  0x42B1B2AA),
Packit Service 084de1
+    BN_DEF(0xAF833768,  0x9219FA8F), BN_DEF(0xEAFEB2B0,  0x69EF8F6A),
Packit Service 084de1
+    BN_DEF(0x576230BD,  0x7B40D901), BN_DEF(0xB1863AEC,  0xBE97F1B1),
Packit Service 084de1
+    BN_DEF(0x124D9F7C,  0xE649CEE7), BN_DEF(0x8A3219FD,  0xD4F09B20),
Packit Service 084de1
+    BN_DEF(0xE7169B4A,  0xEC5CE2C1), BN_DEF(0x139E9E78,  0x57EE2B10),
Packit Service 084de1
+    BN_DEF(0x515DA54D,  0xD6FC2A2C), BN_DEF(0xFFFFFFFF,  0x7FFFFFFF),
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
 static const BN_ULONG ffdhe4096_p[] = {
Packit Service 084de1
-    0xFFFFFFFF, 0xFFFFFFFF, 0x5E655F6A, 0xC68A007E, 0xF44182E1, 0x4DB5A851,
Packit Service 084de1
-    0x7F88A46B, 0x8EC9B55A, 0xCEC97DCF, 0x0A8291CD, 0xF98D0ACC, 0x2A4ECEA9,
Packit Service 084de1
-    0x7140003C, 0x1A1DB93D, 0x33CB8B7A, 0x092999A3, 0x71AD0038, 0x6DC778F9,
Packit Service 084de1
-    0x918130C4, 0xA907600A, 0x2D9E6832, 0xED6A1E01, 0xEFB4318A, 0x7135C886,
Packit Service 084de1
-    0x7E31CC7A, 0x87F55BA5, 0x55034004, 0x7763CF1D, 0xD69F6D18, 0xAC7D5F42,
Packit Service 084de1
-    0xE58857B6, 0x7930E9E4, 0x164DF4FB, 0x6E6F52C3, 0x669E1EF1, 0x25E41D2B,
Packit Service 084de1
-    0x3FD59D7C, 0x3C1B20EE, 0xFA53DDEF, 0x0ABCD06B, 0xD5C4484E, 0x1DBF9A42,
Packit Service 084de1
-    0x9B0DEADA, 0xABC52197, 0x22363A0D, 0xE86D2BC5, 0x9C9DF69E, 0x5CAE82AB,
Packit Service 084de1
-    0x71F54BFF, 0x64F2E21E, 0xE2D74DD3, 0xF4FD4452, 0xBC437944, 0xB4130C93,
Packit Service 084de1
-    0x85139270, 0xAEFE1309, 0xC186D91C, 0x598CB0FA, 0x91F7F7EE, 0x7AD91D26,
Packit Service 084de1
-    0xD6E6C907, 0x61B46FC9, 0xF99C0238, 0xBC34F4DE, 0x6519035B, 0xDE355B3B,
Packit Service 084de1
-    0x611FCFDC, 0x886B4238, 0xC1B2EFFA, 0xC6F34A26, 0x7D1683B2, 0xC58EF183,
Packit Service 084de1
-    0x2EC22005, 0x3BB5FCBC, 0x4C6FAD73, 0xC3FE3B1B, 0xEEF28183, 0x8E4F1232,
Packit Service 084de1
-    0xE98583FF, 0x9172FE9C, 0x28342F61, 0xC03404CD, 0xCDF7E2EC, 0x9E02FCE1,
Packit Service 084de1
-    0xEE0A6D70, 0x0B07A7C8, 0x6372BB19, 0xAE56EDE7, 0xDE394DF4, 0x1D4F42A3,
Packit Service 084de1
-    0x60D7F468, 0xB96ADAB7, 0xB2C8E3FB, 0xD108A94B, 0xB324FB61, 0xBC0AB182,
Packit Service 084de1
-    0x483A797A, 0x30ACCA4F, 0x36ADE735, 0x1DF158A1, 0xF3EFE872, 0xE2A689DA,
Packit Service 084de1
-    0xE0E68B77, 0x984F0C70, 0x7F57C935, 0xB557135E, 0x3DED1AF3, 0x85636555,
Packit Service 084de1
-    0x5F066ED0, 0x2433F51F, 0xD5FD6561, 0xD3DF1ED5, 0xAEC4617A, 0xF681B202,
Packit Service 084de1
-    0x630C75D8, 0x7D2FE363, 0x249B3EF9, 0xCC939DCE, 0x146433FB, 0xA9E13641,
Packit Service 084de1
-    0xCE2D3695, 0xD8B9C583, 0x273D3CF1, 0xAFDC5620, 0xA2BB4A9A, 0xADF85458,
Packit Service 084de1
-    0xFFFFFFFF, 0xFFFFFFFF
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0x5E655F6A, 0xC68A007E),
Packit Service 084de1
+    BN_DEF(0xF44182E1, 0x4DB5A851), BN_DEF(0x7F88A46B, 0x8EC9B55A),
Packit Service 084de1
+    BN_DEF(0xCEC97DCF, 0x0A8291CD), BN_DEF(0xF98D0ACC, 0x2A4ECEA9),
Packit Service 084de1
+    BN_DEF(0x7140003C, 0x1A1DB93D), BN_DEF(0x33CB8B7A, 0x092999A3),
Packit Service 084de1
+    BN_DEF(0x71AD0038, 0x6DC778F9), BN_DEF(0x918130C4, 0xA907600A),
Packit Service 084de1
+    BN_DEF(0x2D9E6832, 0xED6A1E01), BN_DEF(0xEFB4318A, 0x7135C886),
Packit Service 084de1
+    BN_DEF(0x7E31CC7A, 0x87F55BA5), BN_DEF(0x55034004, 0x7763CF1D),
Packit Service 084de1
+    BN_DEF(0xD69F6D18, 0xAC7D5F42), BN_DEF(0xE58857B6, 0x7930E9E4),
Packit Service 084de1
+    BN_DEF(0x164DF4FB, 0x6E6F52C3), BN_DEF(0x669E1EF1, 0x25E41D2B),
Packit Service 084de1
+    BN_DEF(0x3FD59D7C, 0x3C1B20EE), BN_DEF(0xFA53DDEF, 0x0ABCD06B),
Packit Service 084de1
+    BN_DEF(0xD5C4484E, 0x1DBF9A42), BN_DEF(0x9B0DEADA, 0xABC52197),
Packit Service 084de1
+    BN_DEF(0x22363A0D, 0xE86D2BC5), BN_DEF(0x9C9DF69E, 0x5CAE82AB),
Packit Service 084de1
+    BN_DEF(0x71F54BFF, 0x64F2E21E), BN_DEF(0xE2D74DD3, 0xF4FD4452),
Packit Service 084de1
+    BN_DEF(0xBC437944, 0xB4130C93), BN_DEF(0x85139270, 0xAEFE1309),
Packit Service 084de1
+    BN_DEF(0xC186D91C, 0x598CB0FA), BN_DEF(0x91F7F7EE, 0x7AD91D26),
Packit Service 084de1
+    BN_DEF(0xD6E6C907, 0x61B46FC9), BN_DEF(0xF99C0238, 0xBC34F4DE),
Packit Service 084de1
+    BN_DEF(0x6519035B, 0xDE355B3B), BN_DEF(0x611FCFDC, 0x886B4238),
Packit Service 084de1
+    BN_DEF(0xC1B2EFFA, 0xC6F34A26), BN_DEF(0x7D1683B2, 0xC58EF183),
Packit Service 084de1
+    BN_DEF(0x2EC22005, 0x3BB5FCBC), BN_DEF(0x4C6FAD73, 0xC3FE3B1B),
Packit Service 084de1
+    BN_DEF(0xEEF28183, 0x8E4F1232), BN_DEF(0xE98583FF, 0x9172FE9C),
Packit Service 084de1
+    BN_DEF(0x28342F61, 0xC03404CD), BN_DEF(0xCDF7E2EC, 0x9E02FCE1),
Packit Service 084de1
+    BN_DEF(0xEE0A6D70, 0x0B07A7C8), BN_DEF(0x6372BB19, 0xAE56EDE7),
Packit Service 084de1
+    BN_DEF(0xDE394DF4, 0x1D4F42A3), BN_DEF(0x60D7F468, 0xB96ADAB7),
Packit Service 084de1
+    BN_DEF(0xB2C8E3FB, 0xD108A94B), BN_DEF(0xB324FB61, 0xBC0AB182),
Packit Service 084de1
+    BN_DEF(0x483A797A, 0x30ACCA4F), BN_DEF(0x36ADE735, 0x1DF158A1),
Packit Service 084de1
+    BN_DEF(0xF3EFE872, 0xE2A689DA), BN_DEF(0xE0E68B77, 0x984F0C70),
Packit Service 084de1
+    BN_DEF(0x7F57C935, 0xB557135E), BN_DEF(0x3DED1AF3, 0x85636555),
Packit Service 084de1
+    BN_DEF(0x5F066ED0, 0x2433F51F), BN_DEF(0xD5FD6561, 0xD3DF1ED5),
Packit Service 084de1
+    BN_DEF(0xAEC4617A, 0xF681B202), BN_DEF(0x630C75D8, 0x7D2FE363),
Packit Service 084de1
+    BN_DEF(0x249B3EF9, 0xCC939DCE), BN_DEF(0x146433FB, 0xA9E13641),
Packit Service 084de1
+    BN_DEF(0xCE2D3695, 0xD8B9C583), BN_DEF(0x273D3CF1, 0xAFDC5620),
Packit Service 084de1
+    BN_DEF(0xA2BB4A9A, 0xADF85458), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG ffdhe4096_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF,  0x7FFFFFFF), BN_DEF(0x2F32AFB5,  0xE345003F),
Packit Service 084de1
+    BN_DEF(0xFA20C170,  0xA6DAD428), BN_DEF(0x3FC45235,  0xC764DAAD),
Packit Service 084de1
+    BN_DEF(0xE764BEE7,  0x054148E6), BN_DEF(0xFCC68566,  0x15276754),
Packit Service 084de1
+    BN_DEF(0xB8A0001E,  0x0D0EDC9E), BN_DEF(0x99E5C5BD,  0x0494CCD1),
Packit Service 084de1
+    BN_DEF(0xB8D6801C,  0x36E3BC7C), BN_DEF(0x48C09862,  0x5483B005),
Packit Service 084de1
+    BN_DEF(0x96CF3419,  0x76B50F00), BN_DEF(0x77DA18C5,  0x389AE443),
Packit Service 084de1
+    BN_DEF(0xBF18E63D,  0x43FAADD2), BN_DEF(0xAA81A002,  0x3BB1E78E),
Packit Service 084de1
+    BN_DEF(0x6B4FB68C,  0x563EAFA1), BN_DEF(0x72C42BDB,  0xBC9874F2),
Packit Service 084de1
+    BN_DEF(0x8B26FA7D,  0xB737A961), BN_DEF(0xB34F0F78,  0x12F20E95),
Packit Service 084de1
+    BN_DEF(0x1FEACEBE,  0x9E0D9077), BN_DEF(0xFD29EEF7,  0x055E6835),
Packit Service 084de1
+    BN_DEF(0x6AE22427,  0x0EDFCD21), BN_DEF(0xCD86F56D,  0xD5E290CB),
Packit Service 084de1
+    BN_DEF(0x911B1D06,  0x743695E2), BN_DEF(0xCE4EFB4F,  0xAE574155),
Packit Service 084de1
+    BN_DEF(0x38FAA5FF,  0xB279710F), BN_DEF(0x716BA6E9,  0x7A7EA229),
Packit Service 084de1
+    BN_DEF(0xDE21BCA2,  0x5A098649), BN_DEF(0xC289C938,  0x577F0984),
Packit Service 084de1
+    BN_DEF(0x60C36C8E,  0x2CC6587D), BN_DEF(0x48FBFBF7,  0xBD6C8E93),
Packit Service 084de1
+    BN_DEF(0xEB736483,  0x30DA37E4), BN_DEF(0x7CCE011C,  0xDE1A7A6F),
Packit Service 084de1
+    BN_DEF(0xB28C81AD,  0x6F1AAD9D), BN_DEF(0x308FE7EE,  0x4435A11C),
Packit Service 084de1
+    BN_DEF(0x60D977FD,  0x6379A513), BN_DEF(0xBE8B41D9,  0xE2C778C1),
Packit Service 084de1
+    BN_DEF(0x17611002,  0x9DDAFE5E), BN_DEF(0xA637D6B9,  0xE1FF1D8D),
Packit Service 084de1
+    BN_DEF(0x777940C1,  0xC7278919), BN_DEF(0x74C2C1FF,  0xC8B97F4E),
Packit Service 084de1
+    BN_DEF(0x941A17B0,  0x601A0266), BN_DEF(0xE6FBF176,  0x4F017E70),
Packit Service 084de1
+    BN_DEF(0x770536B8,  0x8583D3E4), BN_DEF(0xB1B95D8C,  0x572B76F3),
Packit Service 084de1
+    BN_DEF(0xEF1CA6FA,  0x0EA7A151), BN_DEF(0xB06BFA34,  0xDCB56D5B),
Packit Service 084de1
+    BN_DEF(0xD96471FD,  0xE88454A5), BN_DEF(0x59927DB0,  0x5E0558C1),
Packit Service 084de1
+    BN_DEF(0xA41D3CBD,  0x98566527), BN_DEF(0x9B56F39A,  0x0EF8AC50),
Packit Service 084de1
+    BN_DEF(0x79F7F439,  0xF15344ED), BN_DEF(0x707345BB,  0xCC278638),
Packit Service 084de1
+    BN_DEF(0x3FABE49A,  0xDAAB89AF), BN_DEF(0x9EF68D79,  0x42B1B2AA),
Packit Service 084de1
+    BN_DEF(0xAF833768,  0x9219FA8F), BN_DEF(0xEAFEB2B0,  0x69EF8F6A),
Packit Service 084de1
+    BN_DEF(0x576230BD,  0x7B40D901), BN_DEF(0xB1863AEC,  0xBE97F1B1),
Packit Service 084de1
+    BN_DEF(0x124D9F7C,  0xE649CEE7), BN_DEF(0x8A3219FD,  0xD4F09B20),
Packit Service 084de1
+    BN_DEF(0xE7169B4A,  0xEC5CE2C1), BN_DEF(0x139E9E78,  0x57EE2B10),
Packit Service 084de1
+    BN_DEF(0x515DA54D,  0xD6FC2A2C), BN_DEF(0xFFFFFFFF,  0x7FFFFFFF),
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
 static const BN_ULONG ffdhe6144_p[] = {
Packit Service 084de1
-    0xFFFFFFFF, 0xFFFFFFFF, 0xD0E40E65, 0xA40E329C, 0x7938DAD4, 0xA41D570D,
Packit Service 084de1
-    0xD43161C1, 0x62A69526, 0x9ADB1E69, 0x3FDD4A8E, 0xDC6B80D6, 0x5B3B71F9,
Packit Service 084de1
-    0xC6272B04, 0xEC9D1810, 0xCACEF403, 0x8CCF2DD5, 0xC95B9117, 0xE49F5235,
Packit Service 084de1
-    0xB854338A, 0x505DC82D, 0x1562A846, 0x62292C31, 0x6AE77F5E, 0xD72B0374,
Packit Service 084de1
-    0x462D538C, 0xF9C9091B, 0x47A67CBE, 0x0AE8DB58, 0x22611682, 0xB3A739C1,
Packit Service 084de1
-    0x2A281BF6, 0xEEAAC023, 0x77CAF992, 0x94C6651E, 0x94B2BBC1, 0x763E4E4B,
Packit Service 084de1
-    0x0077D9B4, 0x587E38DA, 0x183023C3, 0x7FB29F8C, 0xF9E3A26E, 0x0ABEC1FF,
Packit Service 084de1
-    0x350511E3, 0xA00EF092, 0xDB6340D8, 0xB855322E, 0xA9A96910, 0xA52471F7,
Packit Service 084de1
-    0x4CFDB477, 0x388147FB, 0x4E46041F, 0x9B1F5C3E, 0xFCCFEC71, 0xCDAD0657,
Packit Service 084de1
-    0x4C701C3A, 0xB38E8C33, 0xB1C0FD4C, 0x917BDD64, 0x9B7624C8, 0x3BB45432,
Packit Service 084de1
-    0xCAF53EA6, 0x23BA4442, 0x38532A3A, 0x4E677D2C, 0x45036C7A, 0x0BFD64B6,
Packit Service 084de1
-    0x5E0DD902, 0xC68A007E, 0xF44182E1, 0x4DB5A851, 0x7F88A46B, 0x8EC9B55A,
Packit Service 084de1
-    0xCEC97DCF, 0x0A8291CD, 0xF98D0ACC, 0x2A4ECEA9, 0x7140003C, 0x1A1DB93D,
Packit Service 084de1
-    0x33CB8B7A, 0x092999A3, 0x71AD0038, 0x6DC778F9, 0x918130C4, 0xA907600A,
Packit Service 084de1
-    0x2D9E6832, 0xED6A1E01, 0xEFB4318A, 0x7135C886, 0x7E31CC7A, 0x87F55BA5,
Packit Service 084de1
-    0x55034004, 0x7763CF1D, 0xD69F6D18, 0xAC7D5F42, 0xE58857B6, 0x7930E9E4,
Packit Service 084de1
-    0x164DF4FB, 0x6E6F52C3, 0x669E1EF1, 0x25E41D2B, 0x3FD59D7C, 0x3C1B20EE,
Packit Service 084de1
-    0xFA53DDEF, 0x0ABCD06B, 0xD5C4484E, 0x1DBF9A42, 0x9B0DEADA, 0xABC52197,
Packit Service 084de1
-    0x22363A0D, 0xE86D2BC5, 0x9C9DF69E, 0x5CAE82AB, 0x71F54BFF, 0x64F2E21E,
Packit Service 084de1
-    0xE2D74DD3, 0xF4FD4452, 0xBC437944, 0xB4130C93, 0x85139270, 0xAEFE1309,
Packit Service 084de1
-    0xC186D91C, 0x598CB0FA, 0x91F7F7EE, 0x7AD91D26, 0xD6E6C907, 0x61B46FC9,
Packit Service 084de1
-    0xF99C0238, 0xBC34F4DE, 0x6519035B, 0xDE355B3B, 0x611FCFDC, 0x886B4238,
Packit Service 084de1
-    0xC1B2EFFA, 0xC6F34A26, 0x7D1683B2, 0xC58EF183, 0x2EC22005, 0x3BB5FCBC,
Packit Service 084de1
-    0x4C6FAD73, 0xC3FE3B1B, 0xEEF28183, 0x8E4F1232, 0xE98583FF, 0x9172FE9C,
Packit Service 084de1
-    0x28342F61, 0xC03404CD, 0xCDF7E2EC, 0x9E02FCE1, 0xEE0A6D70, 0x0B07A7C8,
Packit Service 084de1
-    0x6372BB19, 0xAE56EDE7, 0xDE394DF4, 0x1D4F42A3, 0x60D7F468, 0xB96ADAB7,
Packit Service 084de1
-    0xB2C8E3FB, 0xD108A94B, 0xB324FB61, 0xBC0AB182, 0x483A797A, 0x30ACCA4F,
Packit Service 084de1
-    0x36ADE735, 0x1DF158A1, 0xF3EFE872, 0xE2A689DA, 0xE0E68B77, 0x984F0C70,
Packit Service 084de1
-    0x7F57C935, 0xB557135E, 0x3DED1AF3, 0x85636555, 0x5F066ED0, 0x2433F51F,
Packit Service 084de1
-    0xD5FD6561, 0xD3DF1ED5, 0xAEC4617A, 0xF681B202, 0x630C75D8, 0x7D2FE363,
Packit Service 084de1
-    0x249B3EF9, 0xCC939DCE, 0x146433FB, 0xA9E13641, 0xCE2D3695, 0xD8B9C583,
Packit Service 084de1
-    0x273D3CF1, 0xAFDC5620, 0xA2BB4A9A, 0xADF85458, 0xFFFFFFFF, 0xFFFFFFFF
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0xD0E40E65, 0xA40E329C),
Packit Service 084de1
+    BN_DEF(0x7938DAD4, 0xA41D570D), BN_DEF(0xD43161C1, 0x62A69526),
Packit Service 084de1
+    BN_DEF(0x9ADB1E69, 0x3FDD4A8E), BN_DEF(0xDC6B80D6, 0x5B3B71F9),
Packit Service 084de1
+    BN_DEF(0xC6272B04, 0xEC9D1810), BN_DEF(0xCACEF403, 0x8CCF2DD5),
Packit Service 084de1
+    BN_DEF(0xC95B9117, 0xE49F5235), BN_DEF(0xB854338A, 0x505DC82D),
Packit Service 084de1
+    BN_DEF(0x1562A846, 0x62292C31), BN_DEF(0x6AE77F5E, 0xD72B0374),
Packit Service 084de1
+    BN_DEF(0x462D538C, 0xF9C9091B), BN_DEF(0x47A67CBE, 0x0AE8DB58),
Packit Service 084de1
+    BN_DEF(0x22611682, 0xB3A739C1), BN_DEF(0x2A281BF6, 0xEEAAC023),
Packit Service 084de1
+    BN_DEF(0x77CAF992, 0x94C6651E), BN_DEF(0x94B2BBC1, 0x763E4E4B),
Packit Service 084de1
+    BN_DEF(0x0077D9B4, 0x587E38DA), BN_DEF(0x183023C3, 0x7FB29F8C),
Packit Service 084de1
+    BN_DEF(0xF9E3A26E, 0x0ABEC1FF), BN_DEF(0x350511E3, 0xA00EF092),
Packit Service 084de1
+    BN_DEF(0xDB6340D8, 0xB855322E), BN_DEF(0xA9A96910, 0xA52471F7),
Packit Service 084de1
+    BN_DEF(0x4CFDB477, 0x388147FB), BN_DEF(0x4E46041F, 0x9B1F5C3E),
Packit Service 084de1
+    BN_DEF(0xFCCFEC71, 0xCDAD0657), BN_DEF(0x4C701C3A, 0xB38E8C33),
Packit Service 084de1
+    BN_DEF(0xB1C0FD4C, 0x917BDD64), BN_DEF(0x9B7624C8, 0x3BB45432),
Packit Service 084de1
+    BN_DEF(0xCAF53EA6, 0x23BA4442), BN_DEF(0x38532A3A, 0x4E677D2C),
Packit Service 084de1
+    BN_DEF(0x45036C7A, 0x0BFD64B6), BN_DEF(0x5E0DD902, 0xC68A007E),
Packit Service 084de1
+    BN_DEF(0xF44182E1, 0x4DB5A851), BN_DEF(0x7F88A46B, 0x8EC9B55A),
Packit Service 084de1
+    BN_DEF(0xCEC97DCF, 0x0A8291CD), BN_DEF(0xF98D0ACC, 0x2A4ECEA9),
Packit Service 084de1
+    BN_DEF(0x7140003C, 0x1A1DB93D), BN_DEF(0x33CB8B7A, 0x092999A3),
Packit Service 084de1
+    BN_DEF(0x71AD0038, 0x6DC778F9), BN_DEF(0x918130C4, 0xA907600A),
Packit Service 084de1
+    BN_DEF(0x2D9E6832, 0xED6A1E01), BN_DEF(0xEFB4318A, 0x7135C886),
Packit Service 084de1
+    BN_DEF(0x7E31CC7A, 0x87F55BA5), BN_DEF(0x55034004, 0x7763CF1D),
Packit Service 084de1
+    BN_DEF(0xD69F6D18, 0xAC7D5F42), BN_DEF(0xE58857B6, 0x7930E9E4),
Packit Service 084de1
+    BN_DEF(0x164DF4FB, 0x6E6F52C3), BN_DEF(0x669E1EF1, 0x25E41D2B),
Packit Service 084de1
+    BN_DEF(0x3FD59D7C, 0x3C1B20EE), BN_DEF(0xFA53DDEF, 0x0ABCD06B),
Packit Service 084de1
+    BN_DEF(0xD5C4484E, 0x1DBF9A42), BN_DEF(0x9B0DEADA, 0xABC52197),
Packit Service 084de1
+    BN_DEF(0x22363A0D, 0xE86D2BC5), BN_DEF(0x9C9DF69E, 0x5CAE82AB),
Packit Service 084de1
+    BN_DEF(0x71F54BFF, 0x64F2E21E), BN_DEF(0xE2D74DD3, 0xF4FD4452),
Packit Service 084de1
+    BN_DEF(0xBC437944, 0xB4130C93), BN_DEF(0x85139270, 0xAEFE1309),
Packit Service 084de1
+    BN_DEF(0xC186D91C, 0x598CB0FA), BN_DEF(0x91F7F7EE, 0x7AD91D26),
Packit Service 084de1
+    BN_DEF(0xD6E6C907, 0x61B46FC9), BN_DEF(0xF99C0238, 0xBC34F4DE),
Packit Service 084de1
+    BN_DEF(0x6519035B, 0xDE355B3B), BN_DEF(0x611FCFDC, 0x886B4238),
Packit Service 084de1
+    BN_DEF(0xC1B2EFFA, 0xC6F34A26), BN_DEF(0x7D1683B2, 0xC58EF183),
Packit Service 084de1
+    BN_DEF(0x2EC22005, 0x3BB5FCBC), BN_DEF(0x4C6FAD73, 0xC3FE3B1B),
Packit Service 084de1
+    BN_DEF(0xEEF28183, 0x8E4F1232), BN_DEF(0xE98583FF, 0x9172FE9C),
Packit Service 084de1
+    BN_DEF(0x28342F61, 0xC03404CD), BN_DEF(0xCDF7E2EC, 0x9E02FCE1),
Packit Service 084de1
+    BN_DEF(0xEE0A6D70, 0x0B07A7C8), BN_DEF(0x6372BB19, 0xAE56EDE7),
Packit Service 084de1
+    BN_DEF(0xDE394DF4, 0x1D4F42A3), BN_DEF(0x60D7F468, 0xB96ADAB7),
Packit Service 084de1
+    BN_DEF(0xB2C8E3FB, 0xD108A94B), BN_DEF(0xB324FB61, 0xBC0AB182),
Packit Service 084de1
+    BN_DEF(0x483A797A, 0x30ACCA4F), BN_DEF(0x36ADE735, 0x1DF158A1),
Packit Service 084de1
+    BN_DEF(0xF3EFE872, 0xE2A689DA), BN_DEF(0xE0E68B77, 0x984F0C70),
Packit Service 084de1
+    BN_DEF(0x7F57C935, 0xB557135E), BN_DEF(0x3DED1AF3, 0x85636555),
Packit Service 084de1
+    BN_DEF(0x5F066ED0, 0x2433F51F), BN_DEF(0xD5FD6561, 0xD3DF1ED5),
Packit Service 084de1
+    BN_DEF(0xAEC4617A, 0xF681B202), BN_DEF(0x630C75D8, 0x7D2FE363),
Packit Service 084de1
+    BN_DEF(0x249B3EF9, 0xCC939DCE), BN_DEF(0x146433FB, 0xA9E13641),
Packit Service 084de1
+    BN_DEF(0xCE2D3695, 0xD8B9C583), BN_DEF(0x273D3CF1, 0xAFDC5620),
Packit Service 084de1
+    BN_DEF(0xA2BB4A9A, 0xADF85458), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG ffdhe6144_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF,  0xFFFFFFFF), BN_DEF(0x68720732,  0x5207194E),
Packit Service 084de1
+    BN_DEF(0xBC9C6D6A,  0xD20EAB86), BN_DEF(0x6A18B0E0,  0xB1534A93),
Packit Service 084de1
+    BN_DEF(0x4D6D8F34,  0x1FEEA547), BN_DEF(0xEE35C06B,  0x2D9DB8FC),
Packit Service 084de1
+    BN_DEF(0x63139582,  0xF64E8C08), BN_DEF(0xE5677A01,  0xC66796EA),
Packit Service 084de1
+    BN_DEF(0xE4ADC88B,  0x724FA91A), BN_DEF(0xDC2A19C5,  0x282EE416),
Packit Service 084de1
+    BN_DEF(0x8AB15423,  0x31149618), BN_DEF(0x3573BFAF,  0x6B9581BA),
Packit Service 084de1
+    BN_DEF(0xA316A9C6,  0x7CE4848D), BN_DEF(0x23D33E5F,  0x05746DAC),
Packit Service 084de1
+    BN_DEF(0x91308B41,  0x59D39CE0), BN_DEF(0x95140DFB,  0x77556011),
Packit Service 084de1
+    BN_DEF(0x3BE57CC9,  0xCA63328F), BN_DEF(0xCA595DE0,  0x3B1F2725),
Packit Service 084de1
+    BN_DEF(0x003BECDA,  0xAC3F1C6D), BN_DEF(0x0C1811E1,  0x3FD94FC6),
Packit Service 084de1
+    BN_DEF(0xFCF1D137,  0x855F60FF), BN_DEF(0x1A8288F1,  0x50077849),
Packit Service 084de1
+    BN_DEF(0x6DB1A06C,  0x5C2A9917), BN_DEF(0xD4D4B488,  0xD29238FB),
Packit Service 084de1
+    BN_DEF(0xA67EDA3B,  0x9C40A3FD), BN_DEF(0x2723020F,  0xCD8FAE1F),
Packit Service 084de1
+    BN_DEF(0xFE67F638,  0x66D6832B), BN_DEF(0xA6380E1D,  0x59C74619),
Packit Service 084de1
+    BN_DEF(0x58E07EA6,  0x48BDEEB2), BN_DEF(0x4DBB1264,  0x1DDA2A19),
Packit Service 084de1
+    BN_DEF(0x657A9F53,  0x11DD2221), BN_DEF(0x1C29951D,  0x2733BE96),
Packit Service 084de1
+    BN_DEF(0x2281B63D,  0x05FEB25B), BN_DEF(0x2F06EC81,  0xE345003F),
Packit Service 084de1
+    BN_DEF(0xFA20C170,  0xA6DAD428), BN_DEF(0x3FC45235,  0xC764DAAD),
Packit Service 084de1
+    BN_DEF(0xE764BEE7,  0x054148E6), BN_DEF(0xFCC68566,  0x15276754),
Packit Service 084de1
+    BN_DEF(0xB8A0001E,  0x0D0EDC9E), BN_DEF(0x99E5C5BD,  0x0494CCD1),
Packit Service 084de1
+    BN_DEF(0xB8D6801C,  0x36E3BC7C), BN_DEF(0x48C09862,  0x5483B005),
Packit Service 084de1
+    BN_DEF(0x96CF3419,  0x76B50F00), BN_DEF(0x77DA18C5,  0x389AE443),
Packit Service 084de1
+    BN_DEF(0xBF18E63D,  0x43FAADD2), BN_DEF(0xAA81A002,  0x3BB1E78E),
Packit Service 084de1
+    BN_DEF(0x6B4FB68C,  0x563EAFA1), BN_DEF(0x72C42BDB,  0xBC9874F2),
Packit Service 084de1
+    BN_DEF(0x8B26FA7D,  0xB737A961), BN_DEF(0xB34F0F78,  0x12F20E95),
Packit Service 084de1
+    BN_DEF(0x1FEACEBE,  0x9E0D9077), BN_DEF(0xFD29EEF7,  0x055E6835),
Packit Service 084de1
+    BN_DEF(0x6AE22427,  0x0EDFCD21), BN_DEF(0xCD86F56D,  0xD5E290CB),
Packit Service 084de1
+    BN_DEF(0x911B1D06,  0x743695E2), BN_DEF(0xCE4EFB4F,  0xAE574155),
Packit Service 084de1
+    BN_DEF(0x38FAA5FF,  0xB279710F), BN_DEF(0x716BA6E9,  0x7A7EA229),
Packit Service 084de1
+    BN_DEF(0xDE21BCA2,  0x5A098649), BN_DEF(0xC289C938,  0x577F0984),
Packit Service 084de1
+    BN_DEF(0x60C36C8E,  0x2CC6587D), BN_DEF(0x48FBFBF7,  0xBD6C8E93),
Packit Service 084de1
+    BN_DEF(0xEB736483,  0x30DA37E4), BN_DEF(0x7CCE011C,  0xDE1A7A6F),
Packit Service 084de1
+    BN_DEF(0xB28C81AD,  0x6F1AAD9D), BN_DEF(0x308FE7EE,  0x4435A11C),
Packit Service 084de1
+    BN_DEF(0x60D977FD,  0x6379A513), BN_DEF(0xBE8B41D9,  0xE2C778C1),
Packit Service 084de1
+    BN_DEF(0x17611002,  0x9DDAFE5E), BN_DEF(0xA637D6B9,  0xE1FF1D8D),
Packit Service 084de1
+    BN_DEF(0x777940C1,  0xC7278919), BN_DEF(0x74C2C1FF,  0xC8B97F4E),
Packit Service 084de1
+    BN_DEF(0x941A17B0,  0x601A0266), BN_DEF(0xE6FBF176,  0x4F017E70),
Packit Service 084de1
+    BN_DEF(0x770536B8,  0x8583D3E4), BN_DEF(0xB1B95D8C,  0x572B76F3),
Packit Service 084de1
+    BN_DEF(0xEF1CA6FA,  0x0EA7A151), BN_DEF(0xB06BFA34,  0xDCB56D5B),
Packit Service 084de1
+    BN_DEF(0xD96471FD,  0xE88454A5), BN_DEF(0x59927DB0,  0x5E0558C1),
Packit Service 084de1
+    BN_DEF(0xA41D3CBD,  0x98566527), BN_DEF(0x9B56F39A,  0x0EF8AC50),
Packit Service 084de1
+    BN_DEF(0x79F7F439,  0xF15344ED), BN_DEF(0x707345BB,  0xCC278638),
Packit Service 084de1
+    BN_DEF(0x3FABE49A,  0xDAAB89AF), BN_DEF(0x9EF68D79,  0x42B1B2AA),
Packit Service 084de1
+    BN_DEF(0xAF833768,  0x9219FA8F), BN_DEF(0xEAFEB2B0,  0x69EF8F6A),
Packit Service 084de1
+    BN_DEF(0x576230BD,  0x7B40D901), BN_DEF(0xB1863AEC,  0xBE97F1B1),
Packit Service 084de1
+    BN_DEF(0x124D9F7C,  0xE649CEE7), BN_DEF(0x8A3219FD,  0xD4F09B20),
Packit Service 084de1
+    BN_DEF(0xE7169B4A,  0xEC5CE2C1), BN_DEF(0x139E9E78,  0x57EE2B10),
Packit Service 084de1
+    BN_DEF(0x515DA54D,  0xD6FC2A2C), BN_DEF(0xFFFFFFFF,  0x7FFFFFFF),
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
 static const BN_ULONG ffdhe8192_p[] = {
Packit Service 084de1
-    0xFFFFFFFF, 0xFFFFFFFF, 0xC5C6424C, 0xD68C8BB7, 0x838FF88C, 0x011E2A94,
Packit Service 084de1
-    0xA9F4614E, 0x0822E506, 0xF7A8443D, 0x97D11D49, 0x30677F0D, 0xA6BBFDE5,
Packit Service 084de1
-    0xC1FE86FE, 0x2F741EF8, 0x5D71A87E, 0xFAFABE1C, 0xFBE58A30, 0xDED2FBAB,
Packit Service 084de1
-    0x72B0A66E, 0xB6855DFE, 0xBA8A4FE8, 0x1EFC8CE0, 0x3F2FA457, 0x83F81D4A,
Packit Service 084de1
-    0xA577E231, 0xA1FE3075, 0x88D9C0A0, 0xD5B80194, 0xAD9A95F9, 0x624816CD,
Packit Service 084de1
-    0x50C1217B, 0x99E9E316, 0x0E423CFC, 0x51AA691E, 0x3826E52C, 0x1C217E6C,
Packit Service 084de1
-    0x09703FEE, 0x51A8A931, 0x6A460E74, 0xBB709987, 0x9C86B022, 0x541FC68C,
Packit Service 084de1
-    0x46FD8251, 0x59160CC0, 0x35C35F5C, 0x2846C0BA, 0x8B758282, 0x54504AC7,
Packit Service 084de1
-    0xD2AF05E4, 0x29388839, 0xC01BD702, 0xCB2C0F1C, 0x7C932665, 0x555B2F74,
Packit Service 084de1
-    0xA3AB8829, 0x86B63142, 0xF64B10EF, 0x0B8CC3BD, 0xEDD1CC5E, 0x687FEB69,
Packit Service 084de1
-    0xC9509D43, 0xFDB23FCE, 0xD951AE64, 0x1E425A31, 0xF600C838, 0x36AD004C,
Packit Service 084de1
-    0xCFF46AAA, 0xA40E329C, 0x7938DAD4, 0xA41D570D, 0xD43161C1, 0x62A69526,
Packit Service 084de1
-    0x9ADB1E69, 0x3FDD4A8E, 0xDC6B80D6, 0x5B3B71F9, 0xC6272B04, 0xEC9D1810,
Packit Service 084de1
-    0xCACEF403, 0x8CCF2DD5, 0xC95B9117, 0xE49F5235, 0xB854338A, 0x505DC82D,
Packit Service 084de1
-    0x1562A846, 0x62292C31, 0x6AE77F5E, 0xD72B0374, 0x462D538C, 0xF9C9091B,
Packit Service 084de1
-    0x47A67CBE, 0x0AE8DB58, 0x22611682, 0xB3A739C1, 0x2A281BF6, 0xEEAAC023,
Packit Service 084de1
-    0x77CAF992, 0x94C6651E, 0x94B2BBC1, 0x763E4E4B, 0x0077D9B4, 0x587E38DA,
Packit Service 084de1
-    0x183023C3, 0x7FB29F8C, 0xF9E3A26E, 0x0ABEC1FF, 0x350511E3, 0xA00EF092,
Packit Service 084de1
-    0xDB6340D8, 0xB855322E, 0xA9A96910, 0xA52471F7, 0x4CFDB477, 0x388147FB,
Packit Service 084de1
-    0x4E46041F, 0x9B1F5C3E, 0xFCCFEC71, 0xCDAD0657, 0x4C701C3A, 0xB38E8C33,
Packit Service 084de1
-    0xB1C0FD4C, 0x917BDD64, 0x9B7624C8, 0x3BB45432, 0xCAF53EA6, 0x23BA4442,
Packit Service 084de1
-    0x38532A3A, 0x4E677D2C, 0x45036C7A, 0x0BFD64B6, 0x5E0DD902, 0xC68A007E,
Packit Service 084de1
-    0xF44182E1, 0x4DB5A851, 0x7F88A46B, 0x8EC9B55A, 0xCEC97DCF, 0x0A8291CD,
Packit Service 084de1
-    0xF98D0ACC, 0x2A4ECEA9, 0x7140003C, 0x1A1DB93D, 0x33CB8B7A, 0x092999A3,
Packit Service 084de1
-    0x71AD0038, 0x6DC778F9, 0x918130C4, 0xA907600A, 0x2D9E6832, 0xED6A1E01,
Packit Service 084de1
-    0xEFB4318A, 0x7135C886, 0x7E31CC7A, 0x87F55BA5, 0x55034004, 0x7763CF1D,
Packit Service 084de1
-    0xD69F6D18, 0xAC7D5F42, 0xE58857B6, 0x7930E9E4, 0x164DF4FB, 0x6E6F52C3,
Packit Service 084de1
-    0x669E1EF1, 0x25E41D2B, 0x3FD59D7C, 0x3C1B20EE, 0xFA53DDEF, 0x0ABCD06B,
Packit Service 084de1
-    0xD5C4484E, 0x1DBF9A42, 0x9B0DEADA, 0xABC52197, 0x22363A0D, 0xE86D2BC5,
Packit Service 084de1
-    0x9C9DF69E, 0x5CAE82AB, 0x71F54BFF, 0x64F2E21E, 0xE2D74DD3, 0xF4FD4452,
Packit Service 084de1
-    0xBC437944, 0xB4130C93, 0x85139270, 0xAEFE1309, 0xC186D91C, 0x598CB0FA,
Packit Service 084de1
-    0x91F7F7EE, 0x7AD91D26, 0xD6E6C907, 0x61B46FC9, 0xF99C0238, 0xBC34F4DE,
Packit Service 084de1
-    0x6519035B, 0xDE355B3B, 0x611FCFDC, 0x886B4238, 0xC1B2EFFA, 0xC6F34A26,
Packit Service 084de1
-    0x7D1683B2, 0xC58EF183, 0x2EC22005, 0x3BB5FCBC, 0x4C6FAD73, 0xC3FE3B1B,
Packit Service 084de1
-    0xEEF28183, 0x8E4F1232, 0xE98583FF, 0x9172FE9C, 0x28342F61, 0xC03404CD,
Packit Service 084de1
-    0xCDF7E2EC, 0x9E02FCE1, 0xEE0A6D70, 0x0B07A7C8, 0x6372BB19, 0xAE56EDE7,
Packit Service 084de1
-    0xDE394DF4, 0x1D4F42A3, 0x60D7F468, 0xB96ADAB7, 0xB2C8E3FB, 0xD108A94B,
Packit Service 084de1
-    0xB324FB61, 0xBC0AB182, 0x483A797A, 0x30ACCA4F, 0x36ADE735, 0x1DF158A1,
Packit Service 084de1
-    0xF3EFE872, 0xE2A689DA, 0xE0E68B77, 0x984F0C70, 0x7F57C935, 0xB557135E,
Packit Service 084de1
-    0x3DED1AF3, 0x85636555, 0x5F066ED0, 0x2433F51F, 0xD5FD6561, 0xD3DF1ED5,
Packit Service 084de1
-    0xAEC4617A, 0xF681B202, 0x630C75D8, 0x7D2FE363, 0x249B3EF9, 0xCC939DCE,
Packit Service 084de1
-    0x146433FB, 0xA9E13641, 0xCE2D3695, 0xD8B9C583, 0x273D3CF1, 0xAFDC5620,
Packit Service 084de1
-    0xA2BB4A9A, 0xADF85458, 0xFFFFFFFF, 0xFFFFFFFF
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF, 0xFFFFFFFF), BN_DEF(0xC5C6424C, 0xD68C8BB7),
Packit Service 084de1
+    BN_DEF(0x838FF88C, 0x011E2A94), BN_DEF(0xA9F4614E, 0x0822E506),
Packit Service 084de1
+    BN_DEF(0xF7A8443D, 0x97D11D49), BN_DEF(0x30677F0D, 0xA6BBFDE5),
Packit Service 084de1
+    BN_DEF(0xC1FE86FE, 0x2F741EF8), BN_DEF(0x5D71A87E, 0xFAFABE1C),
Packit Service 084de1
+    BN_DEF(0xFBE58A30, 0xDED2FBAB), BN_DEF(0x72B0A66E, 0xB6855DFE),
Packit Service 084de1
+    BN_DEF(0xBA8A4FE8, 0x1EFC8CE0), BN_DEF(0x3F2FA457, 0x83F81D4A),
Packit Service 084de1
+    BN_DEF(0xA577E231, 0xA1FE3075), BN_DEF(0x88D9C0A0, 0xD5B80194),
Packit Service 084de1
+    BN_DEF(0xAD9A95F9, 0x624816CD), BN_DEF(0x50C1217B, 0x99E9E316),
Packit Service 084de1
+    BN_DEF(0x0E423CFC, 0x51AA691E), BN_DEF(0x3826E52C, 0x1C217E6C),
Packit Service 084de1
+    BN_DEF(0x09703FEE, 0x51A8A931), BN_DEF(0x6A460E74, 0xBB709987),
Packit Service 084de1
+    BN_DEF(0x9C86B022, 0x541FC68C), BN_DEF(0x46FD8251, 0x59160CC0),
Packit Service 084de1
+    BN_DEF(0x35C35F5C, 0x2846C0BA), BN_DEF(0x8B758282, 0x54504AC7),
Packit Service 084de1
+    BN_DEF(0xD2AF05E4, 0x29388839), BN_DEF(0xC01BD702, 0xCB2C0F1C),
Packit Service 084de1
+    BN_DEF(0x7C932665, 0x555B2F74), BN_DEF(0xA3AB8829, 0x86B63142),
Packit Service 084de1
+    BN_DEF(0xF64B10EF, 0x0B8CC3BD), BN_DEF(0xEDD1CC5E, 0x687FEB69),
Packit Service 084de1
+    BN_DEF(0xC9509D43, 0xFDB23FCE), BN_DEF(0xD951AE64, 0x1E425A31),
Packit Service 084de1
+    BN_DEF(0xF600C838, 0x36AD004C), BN_DEF(0xCFF46AAA, 0xA40E329C),
Packit Service 084de1
+    BN_DEF(0x7938DAD4, 0xA41D570D), BN_DEF(0xD43161C1, 0x62A69526),
Packit Service 084de1
+    BN_DEF(0x9ADB1E69, 0x3FDD4A8E), BN_DEF(0xDC6B80D6, 0x5B3B71F9),
Packit Service 084de1
+    BN_DEF(0xC6272B04, 0xEC9D1810), BN_DEF(0xCACEF403, 0x8CCF2DD5),
Packit Service 084de1
+    BN_DEF(0xC95B9117, 0xE49F5235), BN_DEF(0xB854338A, 0x505DC82D),
Packit Service 084de1
+    BN_DEF(0x1562A846, 0x62292C31), BN_DEF(0x6AE77F5E, 0xD72B0374),
Packit Service 084de1
+    BN_DEF(0x462D538C, 0xF9C9091B), BN_DEF(0x47A67CBE, 0x0AE8DB58),
Packit Service 084de1
+    BN_DEF(0x22611682, 0xB3A739C1), BN_DEF(0x2A281BF6, 0xEEAAC023),
Packit Service 084de1
+    BN_DEF(0x77CAF992, 0x94C6651E), BN_DEF(0x94B2BBC1, 0x763E4E4B),
Packit Service 084de1
+    BN_DEF(0x0077D9B4, 0x587E38DA), BN_DEF(0x183023C3, 0x7FB29F8C),
Packit Service 084de1
+    BN_DEF(0xF9E3A26E, 0x0ABEC1FF), BN_DEF(0x350511E3, 0xA00EF092),
Packit Service 084de1
+    BN_DEF(0xDB6340D8, 0xB855322E), BN_DEF(0xA9A96910, 0xA52471F7),
Packit Service 084de1
+    BN_DEF(0x4CFDB477, 0x388147FB), BN_DEF(0x4E46041F, 0x9B1F5C3E),
Packit Service 084de1
+    BN_DEF(0xFCCFEC71, 0xCDAD0657), BN_DEF(0x4C701C3A, 0xB38E8C33),
Packit Service 084de1
+    BN_DEF(0xB1C0FD4C, 0x917BDD64), BN_DEF(0x9B7624C8, 0x3BB45432),
Packit Service 084de1
+    BN_DEF(0xCAF53EA6, 0x23BA4442), BN_DEF(0x38532A3A, 0x4E677D2C),
Packit Service 084de1
+    BN_DEF(0x45036C7A, 0x0BFD64B6), BN_DEF(0x5E0DD902, 0xC68A007E),
Packit Service 084de1
+    BN_DEF(0xF44182E1, 0x4DB5A851), BN_DEF(0x7F88A46B, 0x8EC9B55A),
Packit Service 084de1
+    BN_DEF(0xCEC97DCF, 0x0A8291CD), BN_DEF(0xF98D0ACC, 0x2A4ECEA9),
Packit Service 084de1
+    BN_DEF(0x7140003C, 0x1A1DB93D), BN_DEF(0x33CB8B7A, 0x092999A3),
Packit Service 084de1
+    BN_DEF(0x71AD0038, 0x6DC778F9), BN_DEF(0x918130C4, 0xA907600A),
Packit Service 084de1
+    BN_DEF(0x2D9E6832, 0xED6A1E01), BN_DEF(0xEFB4318A, 0x7135C886),
Packit Service 084de1
+    BN_DEF(0x7E31CC7A, 0x87F55BA5), BN_DEF(0x55034004, 0x7763CF1D),
Packit Service 084de1
+    BN_DEF(0xD69F6D18, 0xAC7D5F42), BN_DEF(0xE58857B6, 0x7930E9E4),
Packit Service 084de1
+    BN_DEF(0x164DF4FB, 0x6E6F52C3), BN_DEF(0x669E1EF1, 0x25E41D2B),
Packit Service 084de1
+    BN_DEF(0x3FD59D7C, 0x3C1B20EE), BN_DEF(0xFA53DDEF, 0x0ABCD06B),
Packit Service 084de1
+    BN_DEF(0xD5C4484E, 0x1DBF9A42), BN_DEF(0x9B0DEADA, 0xABC52197),
Packit Service 084de1
+    BN_DEF(0x22363A0D, 0xE86D2BC5), BN_DEF(0x9C9DF69E, 0x5CAE82AB),
Packit Service 084de1
+    BN_DEF(0x71F54BFF, 0x64F2E21E), BN_DEF(0xE2D74DD3, 0xF4FD4452),
Packit Service 084de1
+    BN_DEF(0xBC437944, 0xB4130C93), BN_DEF(0x85139270, 0xAEFE1309),
Packit Service 084de1
+    BN_DEF(0xC186D91C, 0x598CB0FA), BN_DEF(0x91F7F7EE, 0x7AD91D26),
Packit Service 084de1
+    BN_DEF(0xD6E6C907, 0x61B46FC9), BN_DEF(0xF99C0238, 0xBC34F4DE),
Packit Service 084de1
+    BN_DEF(0x6519035B, 0xDE355B3B), BN_DEF(0x611FCFDC, 0x886B4238),
Packit Service 084de1
+    BN_DEF(0xC1B2EFFA, 0xC6F34A26), BN_DEF(0x7D1683B2, 0xC58EF183),
Packit Service 084de1
+    BN_DEF(0x2EC22005, 0x3BB5FCBC), BN_DEF(0x4C6FAD73, 0xC3FE3B1B),
Packit Service 084de1
+    BN_DEF(0xEEF28183, 0x8E4F1232), BN_DEF(0xE98583FF, 0x9172FE9C),
Packit Service 084de1
+    BN_DEF(0x28342F61, 0xC03404CD), BN_DEF(0xCDF7E2EC, 0x9E02FCE1),
Packit Service 084de1
+    BN_DEF(0xEE0A6D70, 0x0B07A7C8), BN_DEF(0x6372BB19, 0xAE56EDE7),
Packit Service 084de1
+    BN_DEF(0xDE394DF4, 0x1D4F42A3), BN_DEF(0x60D7F468, 0xB96ADAB7),
Packit Service 084de1
+    BN_DEF(0xB2C8E3FB, 0xD108A94B), BN_DEF(0xB324FB61, 0xBC0AB182),
Packit Service 084de1
+    BN_DEF(0x483A797A, 0x30ACCA4F), BN_DEF(0x36ADE735, 0x1DF158A1),
Packit Service 084de1
+    BN_DEF(0xF3EFE872, 0xE2A689DA), BN_DEF(0xE0E68B77, 0x984F0C70),
Packit Service 084de1
+    BN_DEF(0x7F57C935, 0xB557135E), BN_DEF(0x3DED1AF3, 0x85636555),
Packit Service 084de1
+    BN_DEF(0x5F066ED0, 0x2433F51F), BN_DEF(0xD5FD6561, 0xD3DF1ED5),
Packit Service 084de1
+    BN_DEF(0xAEC4617A, 0xF681B202), BN_DEF(0x630C75D8, 0x7D2FE363),
Packit Service 084de1
+    BN_DEF(0x249B3EF9, 0xCC939DCE), BN_DEF(0x146433FB, 0xA9E13641),
Packit Service 084de1
+    BN_DEF(0xCE2D3695, 0xD8B9C583), BN_DEF(0x273D3CF1, 0xAFDC5620),
Packit Service 084de1
+    BN_DEF(0xA2BB4A9A, 0xADF85458), BN_DEF(0xFFFFFFFF, 0xFFFFFFFF)
Packit Service 084de1
+};
Packit Service 084de1
+/* q = (p - 1) / 2 */
Packit Service 084de1
+static const BN_ULONG ffdhe8192_q[] = {
Packit Service 084de1
+    BN_DEF(0xFFFFFFFF,  0x7FFFFFFF), BN_DEF(0xE2E32126,  0x6B4645DB),
Packit Service 084de1
+    BN_DEF(0x41C7FC46,  0x008F154A), BN_DEF(0x54FA30A7,  0x84117283),
Packit Service 084de1
+    BN_DEF(0xFBD4221E,  0xCBE88EA4), BN_DEF(0x9833BF86,  0x535DFEF2),
Packit Service 084de1
+    BN_DEF(0x60FF437F,  0x17BA0F7C), BN_DEF(0x2EB8D43F,  0x7D7D5F0E),
Packit Service 084de1
+    BN_DEF(0xFDF2C518,  0x6F697DD5), BN_DEF(0x39585337,  0x5B42AEFF),
Packit Service 084de1
+    BN_DEF(0x5D4527F4,  0x8F7E4670), BN_DEF(0x1F97D22B,  0xC1FC0EA5),
Packit Service 084de1
+    BN_DEF(0xD2BBF118,  0x50FF183A), BN_DEF(0x446CE050,  0xEADC00CA),
Packit Service 084de1
+    BN_DEF(0xD6CD4AFC,  0xB1240B66), BN_DEF(0x286090BD,  0x4CF4F18B),
Packit Service 084de1
+    BN_DEF(0x07211E7E,  0x28D5348F), BN_DEF(0x1C137296,  0x0E10BF36),
Packit Service 084de1
+    BN_DEF(0x84B81FF7,  0x28D45498), BN_DEF(0xB523073A,  0x5DB84CC3),
Packit Service 084de1
+    BN_DEF(0x4E435811,  0xAA0FE346), BN_DEF(0x237EC128,  0x2C8B0660),
Packit Service 084de1
+    BN_DEF(0x1AE1AFAE,  0x1423605D), BN_DEF(0xC5BAC141,  0x2A282563),
Packit Service 084de1
+    BN_DEF(0xE95782F2,  0x149C441C), BN_DEF(0x600DEB81,  0xE596078E),
Packit Service 084de1
+    BN_DEF(0x3E499332,  0xAAAD97BA), BN_DEF(0x51D5C414,  0xC35B18A1),
Packit Service 084de1
+    BN_DEF(0xFB258877,  0x05C661DE), BN_DEF(0xF6E8E62F,  0xB43FF5B4),
Packit Service 084de1
+    BN_DEF(0x64A84EA1,  0x7ED91FE7), BN_DEF(0xECA8D732,  0x0F212D18),
Packit Service 084de1
+    BN_DEF(0x7B00641C,  0x1B568026), BN_DEF(0x67FA3555,  0x5207194E),
Packit Service 084de1
+    BN_DEF(0xBC9C6D6A,  0xD20EAB86), BN_DEF(0x6A18B0E0,  0xB1534A93),
Packit Service 084de1
+    BN_DEF(0x4D6D8F34,  0x1FEEA547), BN_DEF(0xEE35C06B,  0x2D9DB8FC),
Packit Service 084de1
+    BN_DEF(0x63139582,  0xF64E8C08), BN_DEF(0xE5677A01,  0xC66796EA),
Packit Service 084de1
+    BN_DEF(0xE4ADC88B,  0x724FA91A), BN_DEF(0xDC2A19C5,  0x282EE416),
Packit Service 084de1
+    BN_DEF(0x8AB15423,  0x31149618), BN_DEF(0x3573BFAF,  0x6B9581BA),
Packit Service 084de1
+    BN_DEF(0xA316A9C6,  0x7CE4848D), BN_DEF(0x23D33E5F,  0x05746DAC),
Packit Service 084de1
+    BN_DEF(0x91308B41,  0x59D39CE0), BN_DEF(0x95140DFB,  0x77556011),
Packit Service 084de1
+    BN_DEF(0x3BE57CC9,  0xCA63328F), BN_DEF(0xCA595DE0,  0x3B1F2725),
Packit Service 084de1
+    BN_DEF(0x003BECDA,  0xAC3F1C6D), BN_DEF(0x0C1811E1,  0x3FD94FC6),
Packit Service 084de1
+    BN_DEF(0xFCF1D137,  0x855F60FF), BN_DEF(0x1A8288F1,  0x50077849),
Packit Service 084de1
+    BN_DEF(0x6DB1A06C,  0x5C2A9917), BN_DEF(0xD4D4B488,  0xD29238FB),
Packit Service 084de1
+    BN_DEF(0xA67EDA3B,  0x9C40A3FD), BN_DEF(0x2723020F,  0xCD8FAE1F),
Packit Service 084de1
+    BN_DEF(0xFE67F638,  0x66D6832B), BN_DEF(0xA6380E1D,  0x59C74619),
Packit Service 084de1
+    BN_DEF(0x58E07EA6,  0x48BDEEB2), BN_DEF(0x4DBB1264,  0x1DDA2A19),
Packit Service 084de1
+    BN_DEF(0x657A9F53,  0x11DD2221), BN_DEF(0x1C29951D,  0x2733BE96),
Packit Service 084de1
+    BN_DEF(0x2281B63D,  0x05FEB25B), BN_DEF(0x2F06EC81,  0xE345003F),
Packit Service 084de1
+    BN_DEF(0xFA20C170,  0xA6DAD428), BN_DEF(0x3FC45235,  0xC764DAAD),
Packit Service 084de1
+    BN_DEF(0xE764BEE7,  0x054148E6), BN_DEF(0xFCC68566,  0x15276754),
Packit Service 084de1
+    BN_DEF(0xB8A0001E,  0x0D0EDC9E), BN_DEF(0x99E5C5BD,  0x0494CCD1),
Packit Service 084de1
+    BN_DEF(0xB8D6801C,  0x36E3BC7C), BN_DEF(0x48C09862,  0x5483B005),
Packit Service 084de1
+    BN_DEF(0x96CF3419,  0x76B50F00), BN_DEF(0x77DA18C5,  0x389AE443),
Packit Service 084de1
+    BN_DEF(0xBF18E63D,  0x43FAADD2), BN_DEF(0xAA81A002,  0x3BB1E78E),
Packit Service 084de1
+    BN_DEF(0x6B4FB68C,  0x563EAFA1), BN_DEF(0x72C42BDB,  0xBC9874F2),
Packit Service 084de1
+    BN_DEF(0x8B26FA7D,  0xB737A961), BN_DEF(0xB34F0F78,  0x12F20E95),
Packit Service 084de1
+    BN_DEF(0x1FEACEBE,  0x9E0D9077), BN_DEF(0xFD29EEF7,  0x055E6835),
Packit Service 084de1
+    BN_DEF(0x6AE22427,  0x0EDFCD21), BN_DEF(0xCD86F56D,  0xD5E290CB),
Packit Service 084de1
+    BN_DEF(0x911B1D06,  0x743695E2), BN_DEF(0xCE4EFB4F,  0xAE574155),
Packit Service 084de1
+    BN_DEF(0x38FAA5FF,  0xB279710F), BN_DEF(0x716BA6E9,  0x7A7EA229),
Packit Service 084de1
+    BN_DEF(0xDE21BCA2,  0x5A098649), BN_DEF(0xC289C938,  0x577F0984),
Packit Service 084de1
+    BN_DEF(0x60C36C8E,  0x2CC6587D), BN_DEF(0x48FBFBF7,  0xBD6C8E93),
Packit Service 084de1
+    BN_DEF(0xEB736483,  0x30DA37E4), BN_DEF(0x7CCE011C,  0xDE1A7A6F),
Packit Service 084de1
+    BN_DEF(0xB28C81AD,  0x6F1AAD9D), BN_DEF(0x308FE7EE,  0x4435A11C),
Packit Service 084de1
+    BN_DEF(0x60D977FD,  0x6379A513), BN_DEF(0xBE8B41D9,  0xE2C778C1),
Packit Service 084de1
+    BN_DEF(0x17611002,  0x9DDAFE5E), BN_DEF(0xA637D6B9,  0xE1FF1D8D),
Packit Service 084de1
+    BN_DEF(0x777940C1,  0xC7278919), BN_DEF(0x74C2C1FF,  0xC8B97F4E),
Packit Service 084de1
+    BN_DEF(0x941A17B0,  0x601A0266), BN_DEF(0xE6FBF176,  0x4F017E70),
Packit Service 084de1
+    BN_DEF(0x770536B8,  0x8583D3E4), BN_DEF(0xB1B95D8C,  0x572B76F3),
Packit Service 084de1
+    BN_DEF(0xEF1CA6FA,  0x0EA7A151), BN_DEF(0xB06BFA34,  0xDCB56D5B),
Packit Service 084de1
+    BN_DEF(0xD96471FD,  0xE88454A5), BN_DEF(0x59927DB0,  0x5E0558C1),
Packit Service 084de1
+    BN_DEF(0xA41D3CBD,  0x98566527), BN_DEF(0x9B56F39A,  0x0EF8AC50),
Packit Service 084de1
+    BN_DEF(0x79F7F439,  0xF15344ED), BN_DEF(0x707345BB,  0xCC278638),
Packit Service 084de1
+    BN_DEF(0x3FABE49A,  0xDAAB89AF), BN_DEF(0x9EF68D79,  0x42B1B2AA),
Packit Service 084de1
+    BN_DEF(0xAF833768,  0x9219FA8F), BN_DEF(0xEAFEB2B0,  0x69EF8F6A),
Packit Service 084de1
+    BN_DEF(0x576230BD,  0x7B40D901), BN_DEF(0xB1863AEC,  0xBE97F1B1),
Packit Service 084de1
+    BN_DEF(0x124D9F7C,  0xE649CEE7), BN_DEF(0x8A3219FD,  0xD4F09B20),
Packit Service 084de1
+    BN_DEF(0xE7169B4A,  0xEC5CE2C1), BN_DEF(0x139E9E78,  0x57EE2B10),
Packit Service 084de1
+    BN_DEF(0x515DA54D,  0xD6FC2A2C), BN_DEF(0xFFFFFFFF,  0x7FFFFFFF),
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-# else
Packit Service 084de1
-#  error "unsupported BN_BITS2"
Packit Service 084de1
-# endif
Packit Service 084de1
-
Packit Service 084de1
 /* Macro to make a BIGNUM from static data */
Packit Service 084de1
 
Packit Service 084de1
 # define make_dh_bn(x) extern const BIGNUM _bignum_##x; \
Packit Service 084de1
@@ -489,24 +1010,42 @@ static const BN_ULONG ffdhe8192_p[] = {
Packit Service 084de1
 
Packit Service 084de1
 static const BN_ULONG value_2 = 2;
Packit Service 084de1
 
Packit Service 084de1
-const BIGNUM _bignum_const_2 =
Packit Service 084de1
-    { (BN_ULONG *)&value_2, 1, 1, 0, BN_FLG_STATIC_DATA };
Packit Service 084de1
+const BIGNUM _bignum_const_2 = {
Packit Service 084de1
+    (BN_ULONG *)&value_2, 1, 1, 0, BN_FLG_STATIC_DATA
Packit Service 084de1
+};
Packit Service 084de1
 
Packit Service 084de1
 make_dh_bn(dh1024_160_p)
Packit Service 084de1
-make_dh_bn(dh1024_160_g)
Packit Service 084de1
 make_dh_bn(dh1024_160_q)
Packit Service 084de1
+make_dh_bn(dh1024_160_g)
Packit Service 084de1
 make_dh_bn(dh2048_224_p)
Packit Service 084de1
-make_dh_bn(dh2048_224_g)
Packit Service 084de1
 make_dh_bn(dh2048_224_q)
Packit Service 084de1
+make_dh_bn(dh2048_224_g)
Packit Service 084de1
 make_dh_bn(dh2048_256_p)
Packit Service 084de1
-make_dh_bn(dh2048_256_g)
Packit Service 084de1
 make_dh_bn(dh2048_256_q)
Packit Service 084de1
+make_dh_bn(dh2048_256_g)
Packit Service 084de1
 
Packit Service 084de1
 make_dh_bn(ffdhe2048_p)
Packit Service 084de1
+make_dh_bn(ffdhe2048_q)
Packit Service 084de1
 make_dh_bn(ffdhe3072_p)
Packit Service 084de1
+make_dh_bn(ffdhe3072_q)
Packit Service 084de1
 make_dh_bn(ffdhe4096_p)
Packit Service 084de1
+make_dh_bn(ffdhe4096_q)
Packit Service 084de1
 make_dh_bn(ffdhe6144_p)
Packit Service 084de1
+make_dh_bn(ffdhe6144_q)
Packit Service 084de1
 make_dh_bn(ffdhe8192_p)
Packit Service 084de1
+make_dh_bn(ffdhe8192_q)
Packit Service 084de1
 
Packit Service 084de1
+make_dh_bn(modp_1536_p)
Packit Service 084de1
+make_dh_bn(modp_1536_q)
Packit Service 084de1
+make_dh_bn(modp_2048_p)
Packit Service 084de1
+make_dh_bn(modp_2048_q)
Packit Service 084de1
+make_dh_bn(modp_3072_p)
Packit Service 084de1
+make_dh_bn(modp_3072_q)
Packit Service 084de1
+make_dh_bn(modp_4096_p)
Packit Service 084de1
+make_dh_bn(modp_4096_q)
Packit Service 084de1
+make_dh_bn(modp_6144_p)
Packit Service 084de1
+make_dh_bn(modp_6144_q)
Packit Service 084de1
+make_dh_bn(modp_8192_p)
Packit Service 084de1
+make_dh_bn(modp_8192_q)
Packit Service 084de1
 
Packit Service 084de1
-#endif
Packit Service 084de1
+#endif /* OPENSSL_NO_DH */
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/dh/dh_check.c.fips-dh openssl-1.1.1g/crypto/dh/dh_check.c
Packit Service 084de1
--- openssl-1.1.1g/crypto/dh/dh_check.c.fips-dh	2020-04-21 14:22:39.000000000 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/dh/dh_check.c	2020-07-17 10:36:29.246788449 +0200
Packit Service 084de1
@@ -10,6 +10,7 @@
Packit Service 084de1
 #include <stdio.h>
Packit Service 084de1
 #include "internal/cryptlib.h"
Packit Service 084de1
 #include <openssl/bn.h>
Packit Service 084de1
+#include <openssl/obj_mac.h>
Packit Service 084de1
 #include "dh_local.h"
Packit Service 084de1
 
Packit Service 084de1
 # define DH_NUMBER_ITERATIONS_FOR_PRIME 64
Packit Service 084de1
@@ -41,6 +42,12 @@ int DH_check_params(const DH *dh, int *r
Packit Service 084de1
     BIGNUM *tmp = NULL;
Packit Service 084de1
     BN_CTX *ctx = NULL;
Packit Service 084de1
 
Packit Service 084de1
+    if (FIPS_mode()) {
Packit Service 084de1
+        int nid = dh->nid == NID_undef ? DH_get_nid(dh) : dh->nid;
Packit Service 084de1
+
Packit Service 084de1
+        return nid != NID_undef;
Packit Service 084de1
+    }
Packit Service 084de1
+
Packit Service 084de1
     *ret = 0;
Packit Service 084de1
     ctx = BN_CTX_new();
Packit Service 084de1
     if (ctx == NULL)
Packit Service 084de1
@@ -95,6 +102,7 @@ int DH_check_ex(const DH *dh)
Packit Service 084de1
     return errflags == 0;
Packit Service 084de1
 }
Packit Service 084de1
 
Packit Service 084de1
+/* Note: according to documentation - this only checks the params */
Packit Service 084de1
 int DH_check(const DH *dh, int *ret)
Packit Service 084de1
 {
Packit Service 084de1
     int ok = 0, r;
Packit Service 084de1
@@ -104,6 +112,9 @@ int DH_check(const DH *dh, int *ret)
Packit Service 084de1
     if (!DH_check_params(dh, ret))
Packit Service 084de1
         return 0;
Packit Service 084de1
 
Packit Service 084de1
+    if (FIPS_mode()) /* we allow only well-known params */
Packit Service 084de1
+        return 1;
Packit Service 084de1
+
Packit Service 084de1
     ctx = BN_CTX_new();
Packit Service 084de1
     if (ctx == NULL)
Packit Service 084de1
         goto err;
Packit Service 084de1
@@ -177,7 +188,7 @@ int DH_check_pub_key_ex(const DH *dh, co
Packit Service 084de1
     return errflags == 0;
Packit Service 084de1
 }
Packit Service 084de1
 
Packit Service 084de1
-int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *ret)
Packit Service 084de1
+static int dh_check_pub_key_int(const DH *dh, const BIGNUM *q, const BIGNUM *pub_key, int *ret)
Packit Service 084de1
 {
Packit Service 084de1
     int ok = 0;
Packit Service 084de1
     BIGNUM *tmp = NULL;
Packit Service 084de1
@@ -198,9 +209,9 @@ int DH_check_pub_key(const DH *dh, const
Packit Service 084de1
     if (BN_cmp(pub_key, tmp) >= 0)
Packit Service 084de1
         *ret |= DH_CHECK_PUBKEY_TOO_LARGE;
Packit Service 084de1
 
Packit Service 084de1
-    if (dh->q != NULL) {
Packit Service 084de1
+    if (q != NULL) {
Packit Service 084de1
         /* Check pub_key^q == 1 mod p */
Packit Service 084de1
-        if (!BN_mod_exp(tmp, pub_key, dh->q, dh->p, ctx))
Packit Service 084de1
+        if (!BN_mod_exp(tmp, pub_key, q, dh->p, ctx))
Packit Service 084de1
             goto err;
Packit Service 084de1
         if (!BN_is_one(tmp))
Packit Service 084de1
             *ret |= DH_CHECK_PUBKEY_INVALID;
Packit Service 084de1
@@ -212,3 +223,23 @@ int DH_check_pub_key(const DH *dh, const
Packit Service 084de1
     BN_CTX_free(ctx);
Packit Service 084de1
     return ok;
Packit Service 084de1
 }
Packit Service 084de1
+
Packit Service 084de1
+int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *ret)
Packit Service 084de1
+{
Packit Service 084de1
+    return dh_check_pub_key_int(dh, dh->q, pub_key, ret);
Packit Service 084de1
+}
Packit Service 084de1
+
Packit Service 084de1
+int dh_check_pub_key_full(const DH *dh, const BIGNUM *pub_key, int *ret)
Packit Service 084de1
+{
Packit Service 084de1
+    BIGNUM *q = dh->q;
Packit Service 084de1
+
Packit Service 084de1
+    if (q == NULL) {
Packit Service 084de1
+        if (dh_get_known_q(dh, &q) == 0) {
Packit Service 084de1
+            *ret |= DH_CHECK_INVALID_Q_VALUE;
Packit Service 084de1
+            return 0;
Packit Service 084de1
+        }
Packit Service 084de1
+    }
Packit Service 084de1
+
Packit Service 084de1
+    return dh_check_pub_key_int(dh, q, pub_key, ret);
Packit Service 084de1
+}
Packit Service 084de1
+
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/dh/dh_gen.c.fips-dh openssl-1.1.1g/crypto/dh/dh_gen.c
Packit Service 084de1
--- openssl-1.1.1g/crypto/dh/dh_gen.c.fips-dh	2020-07-17 10:36:29.182787923 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/dh/dh_gen.c	2020-07-17 10:36:29.246788449 +0200
Packit Service 084de1
@@ -27,8 +27,7 @@ int DH_generate_parameters_ex(DH *ret, i
Packit Service 084de1
                               BN_GENCB *cb)
Packit Service 084de1
 {
Packit Service 084de1
 #ifdef OPENSSL_FIPS
Packit Service 084de1
-    if (FIPS_mode() && !(ret->meth->flags & DH_FLAG_FIPS_METHOD)
Packit Service 084de1
-        && !(ret->flags & DH_FLAG_NON_FIPS_ALLOW)) {
Packit Service 084de1
+    if (FIPS_mode()) {
Packit Service 084de1
         DHerr(DH_F_DH_GENERATE_PARAMETERS_EX, DH_R_NON_FIPS_METHOD);
Packit Service 084de1
         return 0;
Packit Service 084de1
     }
Packit Service 084de1
@@ -75,18 +74,6 @@ static int dh_builtin_genparams(DH *ret,
Packit Service 084de1
     int g, ok = -1;
Packit Service 084de1
     BN_CTX *ctx = NULL;
Packit Service 084de1
 
Packit Service 084de1
-#ifdef OPENSSL_FIPS
Packit Service 084de1
-    if (FIPS_selftest_failed()) {
Packit Service 084de1
-        FIPSerr(FIPS_F_DH_BUILTIN_GENPARAMS, FIPS_R_FIPS_SELFTEST_FAILED);
Packit Service 084de1
-        return 0;
Packit Service 084de1
-    }
Packit Service 084de1
-
Packit Service 084de1
-    if (FIPS_mode() && (prime_len < OPENSSL_DH_FIPS_MIN_MODULUS_BITS_GEN)) {
Packit Service 084de1
-        DHerr(DH_F_DH_BUILTIN_GENPARAMS, DH_R_KEY_SIZE_TOO_SMALL);
Packit Service 084de1
-        goto err;
Packit Service 084de1
-    }
Packit Service 084de1
-#endif
Packit Service 084de1
-
Packit Service 084de1
     ctx = BN_CTX_new();
Packit Service 084de1
     if (ctx == NULL)
Packit Service 084de1
         goto err;
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/dh/dh_key.c.fips-dh openssl-1.1.1g/crypto/dh/dh_key.c
Packit Service 084de1
--- openssl-1.1.1g/crypto/dh/dh_key.c.fips-dh	2020-07-17 10:36:29.182787923 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/dh/dh_key.c	2020-07-17 11:00:07.783777846 +0200
Packit Service 084de1
@@ -100,10 +100,18 @@ static int generate_key(DH *dh)
Packit Service 084de1
     BIGNUM *pub_key = NULL, *priv_key = NULL;
Packit Service 084de1
 
Packit Service 084de1
 #ifdef OPENSSL_FIPS
Packit Service 084de1
-    if (FIPS_mode()
Packit Service 084de1
-        && (BN_num_bits(dh->p) < OPENSSL_DH_FIPS_MIN_MODULUS_BITS)) {
Packit Service 084de1
-        DHerr(DH_F_GENERATE_KEY, DH_R_KEY_SIZE_TOO_SMALL);
Packit Service 084de1
-        return 0;
Packit Service 084de1
+    if (FIPS_mode()) {
Packit Service 084de1
+        if (BN_num_bits(dh->p) < OPENSSL_DH_FIPS_MIN_MODULUS_BITS) {
Packit Service 084de1
+            DHerr(DH_F_GENERATE_KEY, DH_R_KEY_SIZE_TOO_SMALL);
Packit Service 084de1
+            return 0;
Packit Service 084de1
+        }
Packit Service 084de1
+        if (dh->nid == NID_undef)
Packit Service 084de1
+            dh_cache_nid(dh);
Packit Service 084de1
+        if (dh->nid == NID_undef || dh->length > BN_num_bits(dh->p) - 2
Packit Service 084de1
+            || dh->length < 224) {
Packit Service 084de1
+            DHerr(DH_F_GENERATE_KEY, DH_R_NON_FIPS_METHOD);
Packit Service 084de1
+            return 0;
Packit Service 084de1
+        }
Packit Service 084de1
     }
Packit Service 084de1
 #endif
Packit Service 084de1
 
Packit Service 084de1
@@ -139,7 +147,15 @@ static int generate_key(DH *dh)
Packit Service 084de1
     }
Packit Service 084de1
 
Packit Service 084de1
     if (generate_new_key) {
Packit Service 084de1
-        if (dh->q) {
Packit Service 084de1
+        if (FIPS_mode()) {
Packit Service 084de1
+            do {
Packit Service 084de1
+                if (!BN_priv_rand(priv_key, dh->length, BN_RAND_TOP_ANY, BN_RAND_BOTTOM_ANY))
Packit Service 084de1
+                    goto err;
Packit Service 084de1
+                if (!BN_add_word(priv_key, 1))
Packit Service 084de1
+                    goto err;
Packit Service 084de1
+            }
Packit Service 084de1
+            while (BN_num_bits(priv_key) > dh->length);
Packit Service 084de1
+        } else if (dh->q) {
Packit Service 084de1
             do {
Packit Service 084de1
                 if (!BN_priv_rand_range(priv_key, dh->q))
Packit Service 084de1
                     goto err;
Packit Service 084de1
@@ -175,6 +191,15 @@ static int generate_key(DH *dh)
Packit Service 084de1
         }
Packit Service 084de1
         /* We MUST free prk before any further use of priv_key */
Packit Service 084de1
         BN_clear_free(prk);
Packit Service 084de1
+
Packit Service 084de1
+        if (FIPS_mode()) {
Packit Service 084de1
+            int check_result;
Packit Service 084de1
+
Packit Service 084de1
+            if (!dh_check_pub_key_full(dh, pub_key, &check_result) || check_result) {
Packit Service 084de1
+                DHerr(DH_F_GENERATE_KEY, DH_R_INVALID_PUBKEY);
Packit Service 084de1
+                goto err;
Packit Service 084de1
+            }
Packit Service 084de1
+        }
Packit Service 084de1
     }
Packit Service 084de1
 
Packit Service 084de1
     dh->pub_key = pub_key;
Packit Service 084de1
@@ -197,6 +222,7 @@ static int compute_key(unsigned char *ke
Packit Service 084de1
     BN_CTX *ctx = NULL;
Packit Service 084de1
     BN_MONT_CTX *mont = NULL;
Packit Service 084de1
     BIGNUM *tmp;
Packit Service 084de1
+    BIGNUM *p1;
Packit Service 084de1
     int ret = -1;
Packit Service 084de1
     int check_result;
Packit Service 084de1
 
Packit Service 084de1
@@ -243,6 +269,18 @@ static int compute_key(unsigned char *ke
Packit Service 084de1
         DHerr(DH_F_COMPUTE_KEY, ERR_R_BN_LIB);
Packit Service 084de1
         goto err;
Packit Service 084de1
     }
Packit Service 084de1
+
Packit Service 084de1
+    if (BN_is_zero(tmp) || BN_is_one(tmp) || BN_is_negative(tmp)) {
Packit Service 084de1
+        DHerr(DH_F_COMPUTE_KEY, ERR_R_BN_LIB);
Packit Service 084de1
+        goto err;
Packit Service 084de1
+    }
Packit Service 084de1
+
Packit Service 084de1
+    if ((p1 = BN_CTX_get(ctx)) == NULL
Packit Service 084de1
+        || !BN_sub(p1, dh->p, BN_value_one())
Packit Service 084de1
+        || BN_cmp(p1, tmp) <= 0) {
Packit Service 084de1
+        DHerr(DH_F_COMPUTE_KEY, ERR_R_BN_LIB);
Packit Service 084de1
+        goto err;
Packit Service 084de1
+    }
Packit Service 084de1
 
Packit Service 084de1
     ret = BN_bn2bin(tmp, key);
Packit Service 084de1
  err:
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/dh/dh_lib.c.fips-dh openssl-1.1.1g/crypto/dh/dh_lib.c
Packit Service 084de1
--- openssl-1.1.1g/crypto/dh/dh_lib.c.fips-dh	2020-04-21 14:22:39.000000000 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/dh/dh_lib.c	2020-07-17 10:36:29.246788449 +0200
Packit Service 084de1
@@ -8,6 +8,7 @@
Packit Service 084de1
  */
Packit Service 084de1
 
Packit Service 084de1
 #include <stdio.h>
Packit Service 084de1
+#include <openssl/objects.h>
Packit Service 084de1
 #include "internal/cryptlib.h"
Packit Service 084de1
 #include "internal/refcount.h"
Packit Service 084de1
 #include <openssl/bn.h>
Packit Service 084de1
@@ -86,6 +87,8 @@ DH *DH_new_method(ENGINE *engine)
Packit Service 084de1
         goto err;
Packit Service 084de1
     }
Packit Service 084de1
 
Packit Service 084de1
+    ret->nid = NID_undef;
Packit Service 084de1
+
Packit Service 084de1
     return ret;
Packit Service 084de1
 
Packit Service 084de1
  err:
Packit Service 084de1
@@ -205,7 +208,10 @@ int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNU
Packit Service 084de1
         dh->g = g;
Packit Service 084de1
     }
Packit Service 084de1
 
Packit Service 084de1
-    if (q != NULL) {
Packit Service 084de1
+    dh->nid = NID_undef;
Packit Service 084de1
+    dh_cache_nid(dh);
Packit Service 084de1
+
Packit Service 084de1
+    if (q != NULL && dh->nid == NID_undef) {
Packit Service 084de1
         dh->length = BN_num_bits(q);
Packit Service 084de1
     }
Packit Service 084de1
 
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/dh/dh_local.h.fips-dh openssl-1.1.1g/crypto/dh/dh_local.h
Packit Service 084de1
--- openssl-1.1.1g/crypto/dh/dh_local.h.fips-dh	2020-07-17 10:36:28.968786163 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/dh/dh_local.h	2020-07-17 10:36:29.246788449 +0200
Packit Service 084de1
@@ -35,6 +35,7 @@ struct dh_st {
Packit Service 084de1
     const DH_METHOD *meth;
Packit Service 084de1
     ENGINE *engine;
Packit Service 084de1
     CRYPTO_RWLOCK *lock;
Packit Service 084de1
+    int nid;
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
 struct dh_method {
Packit Service 084de1
@@ -55,3 +56,10 @@ struct dh_method {
Packit Service 084de1
     int (*generate_params) (DH *dh, int prime_len, int generator,
Packit Service 084de1
                             BN_GENCB *cb);
Packit Service 084de1
 };
Packit Service 084de1
+
Packit Service 084de1
+void dh_cache_nid(DH *dh);
Packit Service 084de1
+/* Obtain known q value based on nid or p */
Packit Service 084de1
+int dh_get_known_q(const DH *dh, BIGNUM **q);
Packit Service 084de1
+/* FIPS mode only check which requires nid set and looks up q based on it. */
Packit Service 084de1
+int dh_check_pub_key_full(const DH *dh, const BIGNUM *pub_key, int *ret);
Packit Service 084de1
+
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/dh/dh_rfc7919.c.fips-dh openssl-1.1.1g/crypto/dh/dh_rfc7919.c
Packit Service 084de1
--- openssl-1.1.1g/crypto/dh/dh_rfc7919.c.fips-dh	2020-04-21 14:22:39.000000000 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/dh/dh_rfc7919.c	2020-07-17 10:36:29.246788449 +0200
Packit Service 084de1
@@ -7,6 +7,8 @@
Packit Service 084de1
  * https://www.openssl.org/source/license.html
Packit Service 084de1
  */
Packit Service 084de1
 
Packit Service 084de1
+/* DH parameters from RFC7919 and RFC3526 */
Packit Service 084de1
+
Packit Service 084de1
 #include <stdio.h>
Packit Service 084de1
 #include "internal/cryptlib.h"
Packit Service 084de1
 #include "dh_local.h"
Packit Service 084de1
@@ -14,14 +16,19 @@
Packit Service 084de1
 #include <openssl/objects.h>
Packit Service 084de1
 #include "crypto/bn_dh.h"
Packit Service 084de1
 
Packit Service 084de1
-static DH *dh_param_init(const BIGNUM *p, int32_t nbits)
Packit Service 084de1
+static DH *dh_param_init(int nid, const BIGNUM *p, const BIGNUM *q, int32_t nbits)
Packit Service 084de1
 {
Packit Service 084de1
     DH *dh = DH_new();
Packit Service 084de1
     if (dh == NULL)
Packit Service 084de1
         return NULL;
Packit Service 084de1
     dh->p = (BIGNUM *)p;
Packit Service 084de1
+    /*
Packit Service 084de1
+     * We do not set q as it would enable the inefficient and
Packit Service 084de1
+     * unnecessary pubkey modular exponentiation check.
Packit Service 084de1
+     */
Packit Service 084de1
     dh->g = (BIGNUM *)&_bignum_const_2;
Packit Service 084de1
     dh->length = nbits;
Packit Service 084de1
+    dh->nid = nid;
Packit Service 084de1
     return dh;
Packit Service 084de1
 }
Packit Service 084de1
 
Packit Service 084de1
@@ -29,46 +36,121 @@ DH *DH_new_by_nid(int nid)
Packit Service 084de1
 {
Packit Service 084de1
     switch (nid) {
Packit Service 084de1
     case NID_ffdhe2048:
Packit Service 084de1
-        return dh_param_init(&_bignum_ffdhe2048_p, 225);
Packit Service 084de1
+        return dh_param_init(nid, &_bignum_ffdhe2048_p, &_bignum_ffdhe2048_q, 225);
Packit Service 084de1
     case NID_ffdhe3072:
Packit Service 084de1
-        return dh_param_init(&_bignum_ffdhe3072_p, 275);
Packit Service 084de1
+        return dh_param_init(nid, &_bignum_ffdhe3072_p, &_bignum_ffdhe3072_q, 275);
Packit Service 084de1
     case NID_ffdhe4096:
Packit Service 084de1
-        return dh_param_init(&_bignum_ffdhe4096_p, 325);
Packit Service 084de1
+        return dh_param_init(nid, &_bignum_ffdhe4096_p, &_bignum_ffdhe4096_q, 325);
Packit Service 084de1
     case NID_ffdhe6144:
Packit Service 084de1
-        return dh_param_init(&_bignum_ffdhe6144_p, 375);
Packit Service 084de1
+        return dh_param_init(nid, &_bignum_ffdhe6144_p, &_bignum_ffdhe6144_q, 375);
Packit Service 084de1
     case NID_ffdhe8192:
Packit Service 084de1
-        return dh_param_init(&_bignum_ffdhe8192_p, 400);
Packit Service 084de1
+        return dh_param_init(nid, &_bignum_ffdhe8192_p, &_bignum_ffdhe8192_q, 400);
Packit Service 084de1
+    case NID_modp_2048:
Packit Service 084de1
+        return dh_param_init(nid, &_bignum_modp_2048_p, &_bignum_modp_2048_q, 225);
Packit Service 084de1
+    case NID_modp_3072:
Packit Service 084de1
+        return dh_param_init(nid, &_bignum_modp_3072_p, &_bignum_modp_3072_q, 275);
Packit Service 084de1
+    case NID_modp_4096:
Packit Service 084de1
+        return dh_param_init(nid, &_bignum_modp_4096_p, &_bignum_modp_4096_q, 325);
Packit Service 084de1
+    case NID_modp_6144:
Packit Service 084de1
+        return dh_param_init(nid, &_bignum_modp_6144_p, &_bignum_modp_6144_q, 375);
Packit Service 084de1
+    case NID_modp_8192:
Packit Service 084de1
+        return dh_param_init(nid, &_bignum_modp_8192_p, &_bignum_modp_8192_q, 400);
Packit Service 084de1
+    case NID_modp_1536:
Packit Service 084de1
+        if (!FIPS_mode())
Packit Service 084de1
+            return dh_param_init(nid, &_bignum_modp_1536_p, &_bignum_modp_1536_q, 175);
Packit Service 084de1
+        /* fallthrough */
Packit Service 084de1
     default:
Packit Service 084de1
         DHerr(DH_F_DH_NEW_BY_NID, DH_R_INVALID_PARAMETER_NID);
Packit Service 084de1
         return NULL;
Packit Service 084de1
     }
Packit Service 084de1
 }
Packit Service 084de1
 
Packit Service 084de1
-int DH_get_nid(const DH *dh)
Packit Service 084de1
+static int dh_match_group(const DH *dh, BIGNUM **qout, int *lout)
Packit Service 084de1
 {
Packit Service 084de1
     int nid;
Packit Service 084de1
+    const BIGNUM *q;
Packit Service 084de1
+    int length;
Packit Service 084de1
 
Packit Service 084de1
     if (BN_get_word(dh->g) != 2)
Packit Service 084de1
         return NID_undef;
Packit Service 084de1
-    if (!BN_cmp(dh->p, &_bignum_ffdhe2048_p))
Packit Service 084de1
+
Packit Service 084de1
+    if (dh->nid == NID_ffdhe2048 || !BN_cmp(dh->p, &_bignum_ffdhe2048_p)) {
Packit Service 084de1
         nid = NID_ffdhe2048;
Packit Service 084de1
-    else if (!BN_cmp(dh->p, &_bignum_ffdhe3072_p))
Packit Service 084de1
+        q = &_bignum_ffdhe2048_q;
Packit Service 084de1
+        length = 225;
Packit Service 084de1
+    } else if (dh->nid == NID_ffdhe3072 || !BN_cmp(dh->p, &_bignum_ffdhe3072_p)) {
Packit Service 084de1
         nid = NID_ffdhe3072;
Packit Service 084de1
-    else if (!BN_cmp(dh->p, &_bignum_ffdhe4096_p))
Packit Service 084de1
+        q = &_bignum_ffdhe3072_q;
Packit Service 084de1
+        length = 275;
Packit Service 084de1
+    } else if (dh->nid == NID_ffdhe4096 || !BN_cmp(dh->p, &_bignum_ffdhe4096_p)) {
Packit Service 084de1
         nid = NID_ffdhe4096;
Packit Service 084de1
-    else if (!BN_cmp(dh->p, &_bignum_ffdhe6144_p))
Packit Service 084de1
+        q = &_bignum_ffdhe4096_q;
Packit Service 084de1
+        length = 325;
Packit Service 084de1
+    } else if (dh->nid == NID_ffdhe6144 || !BN_cmp(dh->p, &_bignum_ffdhe6144_p)) {
Packit Service 084de1
         nid = NID_ffdhe6144;
Packit Service 084de1
-    else if (!BN_cmp(dh->p, &_bignum_ffdhe8192_p))
Packit Service 084de1
+        q = &_bignum_ffdhe6144_q;
Packit Service 084de1
+        length = 375;
Packit Service 084de1
+    } else if (dh->nid == NID_ffdhe8192 || !BN_cmp(dh->p, &_bignum_ffdhe8192_p)) {
Packit Service 084de1
         nid = NID_ffdhe8192;
Packit Service 084de1
-    else
Packit Service 084de1
+        q = &_bignum_ffdhe8192_q;
Packit Service 084de1
+        length = 400;
Packit Service 084de1
+    } else if (dh->nid == NID_modp_2048 || !BN_cmp(dh->p, &_bignum_modp_2048_p)) {
Packit Service 084de1
+        nid = NID_modp_2048;
Packit Service 084de1
+        q = &_bignum_modp_2048_q;
Packit Service 084de1
+        length = 225;
Packit Service 084de1
+    } else if (dh->nid == NID_modp_3072 || !BN_cmp(dh->p, &_bignum_modp_3072_p)) {
Packit Service 084de1
+        nid = NID_modp_3072;
Packit Service 084de1
+        q = &_bignum_modp_3072_q;
Packit Service 084de1
+        length = 275;
Packit Service 084de1
+    } else if (dh->nid == NID_modp_4096 || !BN_cmp(dh->p, &_bignum_modp_4096_p)) {
Packit Service 084de1
+        nid = NID_modp_4096;
Packit Service 084de1
+        q = &_bignum_modp_4096_q;
Packit Service 084de1
+        length = 325;
Packit Service 084de1
+    } else if (dh->nid == NID_modp_6144 || !BN_cmp(dh->p, &_bignum_modp_6144_p)) {
Packit Service 084de1
+        nid = NID_modp_6144;
Packit Service 084de1
+        q = &_bignum_modp_6144_q;
Packit Service 084de1
+        length = 375;
Packit Service 084de1
+    } else if (dh->nid == NID_modp_8192 || !BN_cmp(dh->p, &_bignum_modp_8192_p)) {
Packit Service 084de1
+        nid = NID_modp_8192;
Packit Service 084de1
+        q = &_bignum_modp_8192_q;
Packit Service 084de1
+        length = 400;
Packit Service 084de1
+    } else if (!FIPS_mode() && (dh->nid == NID_modp_1536 || !BN_cmp(dh->p, &_bignum_modp_1536_p))) {
Packit Service 084de1
+        nid = NID_modp_1536;
Packit Service 084de1
+        q = &_bignum_modp_1536_q;
Packit Service 084de1
+        length = 175;
Packit Service 084de1
+    } else {
Packit Service 084de1
         return NID_undef;
Packit Service 084de1
+    }
Packit Service 084de1
+
Packit Service 084de1
     if (dh->q != NULL) {
Packit Service 084de1
-        BIGNUM *q = BN_dup(dh->p);
Packit Service 084de1
+        /* Check that q matches the known q. */
Packit Service 084de1
+        if (BN_cmp(dh->q, q))
Packit Service 084de1
+            return NID_undef;
Packit Service 084de1
+    } else if (qout != NULL) {
Packit Service 084de1
+        *qout = (BIGNUM *)q;
Packit Service 084de1
+    }
Packit Service 084de1
 
Packit Service 084de1
-        /* Check q = p * 2 + 1 we already know q is odd, so just shift right */
Packit Service 084de1
-        if (q == NULL || !BN_rshift1(q, q) || !BN_cmp(dh->q, q))
Packit Service 084de1
-            nid = NID_undef;
Packit Service 084de1
-        BN_free(q);
Packit Service 084de1
+    if (lout != NULL) {
Packit Service 084de1
+        *lout = length;
Packit Service 084de1
     }
Packit Service 084de1
     return nid;
Packit Service 084de1
 }
Packit Service 084de1
+
Packit Service 084de1
+int DH_get_nid(const DH *dh)
Packit Service 084de1
+{
Packit Service 084de1
+    if (dh->nid != NID_undef) {
Packit Service 084de1
+        return dh->nid;
Packit Service 084de1
+    }
Packit Service 084de1
+    return dh_match_group(dh, NULL, NULL);
Packit Service 084de1
+}
Packit Service 084de1
+
Packit Service 084de1
+void dh_cache_nid(DH *dh)
Packit Service 084de1
+{
Packit Service 084de1
+    dh->nid = dh_match_group(dh, NULL, &dh->length);
Packit Service 084de1
+}
Packit Service 084de1
+
Packit Service 084de1
+int dh_get_known_q(const DH *dh, BIGNUM **q)
Packit Service 084de1
+{
Packit Service 084de1
+    return dh_match_group(dh, q, NULL) != NID_undef;
Packit Service 084de1
+}
Packit Service 084de1
+
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/ec/ec_key.c.fips-dh openssl-1.1.1g/crypto/ec/ec_key.c
Packit Service 084de1
--- openssl-1.1.1g/crypto/ec/ec_key.c.fips-dh	2020-07-17 11:00:53.958175227 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/ec/ec_key.c	2020-07-20 13:24:03.941107320 +0200
Packit Service 084de1
@@ -280,9 +280,18 @@ int ec_key_simple_generate_key(EC_KEY *e
Packit Service 084de1
     if (!EC_POINT_mul(eckey->group, pub_key, priv_key, NULL, NULL, ctx))
Packit Service 084de1
         goto err;
Packit Service 084de1
 
Packit Service 084de1
-    eckey->priv_key = priv_key;
Packit Service 084de1
     eckey->pub_key = pub_key;
Packit Service 084de1
 
Packit Service 084de1
+    if (FIPS_mode()) {
Packit Service 084de1
+        eckey->priv_key = NULL;
Packit Service 084de1
+        if (EC_KEY_check_key(eckey) <= 0) {
Packit Service 084de1
+            eckey->pub_key = NULL;
Packit Service 084de1
+            goto err;
Packit Service 084de1
+        }
Packit Service 084de1
+    }
Packit Service 084de1
+
Packit Service 084de1
+    eckey->priv_key = priv_key;
Packit Service 084de1
+
Packit Service 084de1
     ok = 1;
Packit Service 084de1
 
Packit Service 084de1
  err:
Packit Service 084de1
@@ -296,8 +305,23 @@ int ec_key_simple_generate_key(EC_KEY *e
Packit Service 084de1
 
Packit Service 084de1
 int ec_key_simple_generate_public_key(EC_KEY *eckey)
Packit Service 084de1
 {
Packit Service 084de1
-    return EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, NULL,
Packit Service 084de1
+    BIGNUM *priv_key;
Packit Service 084de1
+    int ret = EC_POINT_mul(eckey->group, eckey->pub_key, eckey->priv_key, NULL,
Packit Service 084de1
                         NULL, NULL);
Packit Service 084de1
+
Packit Service 084de1
+    if (ret <= 0 || !FIPS_mode())
Packit Service 084de1
+        return ret;
Packit Service 084de1
+
Packit Service 084de1
+    /* no need to perform private key test, temporarily hide it */
Packit Service 084de1
+    priv_key = eckey->priv_key;
Packit Service 084de1
+    eckey->priv_key = NULL;
Packit Service 084de1
+    ret = EC_KEY_check_key(eckey);
Packit Service 084de1
+    eckey->priv_key = priv_key;
Packit Service 084de1
+
Packit Service 084de1
+    if (ret <= 0)
Packit Service 084de1
+        EC_POINT_set_to_infinity(eckey->group, eckey->pub_key);
Packit Service 084de1
+
Packit Service 084de1
+    return ret;
Packit Service 084de1
 }
Packit Service 084de1
 
Packit Service 084de1
 int EC_KEY_check_key(const EC_KEY *eckey)
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/evp/p_lib.c.fips-dh openssl-1.1.1g/crypto/evp/p_lib.c
Packit Service 084de1
--- openssl-1.1.1g/crypto/evp/p_lib.c.fips-dh	2020-04-21 14:22:39.000000000 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/evp/p_lib.c	2020-07-17 10:36:29.247788458 +0200
Packit Service 084de1
@@ -540,7 +540,8 @@ EC_KEY *EVP_PKEY_get1_EC_KEY(EVP_PKEY *p
Packit Service 084de1
 
Packit Service 084de1
 int EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key)
Packit Service 084de1
 {
Packit Service 084de1
-    int type = DH_get0_q(key) == NULL ? EVP_PKEY_DH : EVP_PKEY_DHX;
Packit Service 084de1
+    int type = DH_get0_q(key) == NULL || DH_get_nid(key) != NID_undef ?
Packit Service 084de1
+               EVP_PKEY_DH : EVP_PKEY_DHX;
Packit Service 084de1
     int ret = EVP_PKEY_assign(pkey, type, key);
Packit Service 084de1
 
Packit Service 084de1
     if (ret)
Packit Service dd46e1
diff -up openssl-1.1.1g/crypto/fips/fips_dh_selftest.c.fips-dh openssl-1.1.1g/crypto/fips/fips_dh_selftest.c
Packit Service dd46e1
--- openssl-1.1.1g/crypto/fips/fips_dh_selftest.c.fips-dh	2020-09-17 14:38:55.074927727 +0200
Packit Service dd46e1
+++ openssl-1.1.1g/crypto/fips/fips_dh_selftest.c	2020-10-22 16:06:54.406229842 +0200
Packit Service dd46e1
@@ -59,107 +59,141 @@
Packit Service dd46e1
 
Packit Service dd46e1
 #ifdef OPENSSL_FIPS
Packit Service dd46e1
 
Packit Service dd46e1
-static const unsigned char dh_test_2048_p[] = {
Packit Service dd46e1
-    0xAE, 0xEC, 0xEE, 0x22, 0xFA, 0x3A, 0xA5, 0x22, 0xC0, 0xDE, 0x0F, 0x09,
Packit Service dd46e1
-    0x7E, 0x17, 0xC0, 0x05, 0xF9, 0xF1, 0xE7, 0xC6, 0x87, 0x14, 0x6D, 0x11,
Packit Service dd46e1
-    0xE7, 0xAE, 0xED, 0x2F, 0x72, 0x59, 0xC5, 0xA9, 0x9B, 0xB8, 0x02, 0xA5,
Packit Service dd46e1
-    0xF3, 0x69, 0x70, 0xD6, 0xDD, 0x90, 0xF9, 0x19, 0x79, 0xBE, 0x60, 0x8F,
Packit Service dd46e1
-    0x25, 0x92, 0x30, 0x1C, 0x51, 0x51, 0x38, 0x26, 0x82, 0x25, 0xE6, 0xFC,
Packit Service dd46e1
-    0xED, 0x65, 0x96, 0x8F, 0x57, 0xE5, 0x53, 0x8B, 0x38, 0x63, 0xC7, 0xCE,
Packit Service dd46e1
-    0xBC, 0x1B, 0x4D, 0x18, 0x2A, 0x5B, 0x04, 0x3F, 0x6A, 0x3C, 0x94, 0x39,
Packit Service dd46e1
-    0xAE, 0x36, 0xD6, 0x5E, 0x0F, 0xA2, 0xCC, 0xD0, 0xD4, 0xD5, 0xC6, 0x1E,
Packit Service dd46e1
-    0xF6, 0xA0, 0xF5, 0x89, 0x4E, 0xB4, 0x0B, 0xA4, 0xB3, 0x2B, 0x3D, 0xE2,
Packit Service dd46e1
-    0x4E, 0xE1, 0x49, 0x25, 0x99, 0x5F, 0x32, 0x16, 0x33, 0x32, 0x1B, 0x7A,
Packit Service dd46e1
-    0xA5, 0x5C, 0x6B, 0x34, 0x0D, 0x39, 0x99, 0xDC, 0xF0, 0x76, 0xE5, 0x5A,
Packit Service dd46e1
-    0xD4, 0x71, 0x00, 0xED, 0x5A, 0x73, 0xFB, 0xC8, 0x01, 0xAD, 0x99, 0xCF,
Packit Service dd46e1
-    0x99, 0x52, 0x7C, 0x9C, 0x64, 0xC6, 0x76, 0x40, 0x57, 0xAF, 0x59, 0xD7,
Packit Service dd46e1
-    0x38, 0x0B, 0x40, 0xDE, 0x33, 0x0D, 0xB8, 0x76, 0xEC, 0xA9, 0xD8, 0x73,
Packit Service dd46e1
-    0xF8, 0xEF, 0x26, 0x66, 0x06, 0x27, 0xDD, 0x7C, 0xA4, 0x10, 0x9C, 0xA6,
Packit Service dd46e1
-    0xAA, 0xF9, 0x53, 0x62, 0x73, 0x1D, 0xBA, 0x1C, 0xF1, 0x67, 0xF4, 0x35,
Packit Service dd46e1
-    0xED, 0x6F, 0x37, 0x92, 0xE8, 0x4F, 0x6C, 0xBA, 0x52, 0x6E, 0xA1, 0xED,
Packit Service dd46e1
-    0xDA, 0x9F, 0x85, 0x11, 0x82, 0x52, 0x62, 0x08, 0x44, 0xF1, 0x30, 0x03,
Packit Service dd46e1
-    0xC3, 0x38, 0x2C, 0x79, 0xBD, 0xD4, 0x43, 0x45, 0xEE, 0x8E, 0x50, 0xFC,
Packit Service dd46e1
-    0x29, 0x46, 0x9A, 0xFE, 0x54, 0x1A, 0x19, 0x8F, 0x4B, 0x84, 0x08, 0xDE,
Packit Service dd46e1
-    0x20, 0x62, 0x73, 0xCC, 0xDD, 0x7E, 0xF0, 0xEF, 0xA2, 0xFD, 0x86, 0x58,
Packit Service dd46e1
-    0x4B, 0xD8, 0x37, 0xEB
Packit Service dd46e1
+static const unsigned char dh_test_2048_priv_key[] = {
Packit Service dd46e1
+    0x0C, 0x4B, 0x30, 0x89, 0xD1, 0xB8, 0x62, 0xCB,
Packit Service dd46e1
+    0x3C, 0x43, 0x64, 0x91, 0xF0, 0x91, 0x54, 0x70,
Packit Service dd46e1
+    0xC5, 0x27, 0x96, 0xE3, 0xAC, 0xBE, 0xE8, 0x00,
Packit Service dd46e1
+    0xEC, 0x55, 0xF6, 0xCC
Packit Service dd46e1
 };
Packit Service dd46e1
 
Packit Service dd46e1
-static const unsigned char dh_test_2048_g[] = {
Packit Service dd46e1
-    0x02
Packit Service dd46e1
+static const unsigned char dh_test_2048_pub_key[] = {
Packit Service dd46e1
+    0xE8, 0x8B, 0xEC, 0x36, 0x93, 0xB4, 0x94, 0x44,
Packit Service dd46e1
+    0xA3, 0x7D, 0x09, 0x5C, 0x0B, 0x60, 0x79, 0x4B,
Packit Service dd46e1
+    0x2B, 0xCA, 0xCF, 0xB7, 0x16, 0x30, 0x4A, 0xD0,
Packit Service dd46e1
+    0xEA, 0x23, 0x04, 0x24, 0x8C, 0x50, 0x82, 0x11,
Packit Service dd46e1
+    0x79, 0x4C, 0x57, 0x6F, 0x96, 0xAC, 0xF9, 0x78,
Packit Service dd46e1
+    0x38, 0x83, 0x03, 0x0B, 0x77, 0x47, 0xB7, 0x84,
Packit Service dd46e1
+    0xB9, 0x6F, 0xE6, 0xB9, 0xCC, 0xA7, 0x2B, 0x94,
Packit Service dd46e1
+    0xAE, 0x8A, 0xCA, 0x58, 0x15, 0x7B, 0xA0, 0x73,
Packit Service dd46e1
+    0x5D, 0xD4, 0xD7, 0xC6, 0xBA, 0xA6, 0x03, 0x30,
Packit Service dd46e1
+    0x6B, 0x52, 0x85, 0x94, 0x57, 0x11, 0xFB, 0xAA,
Packit Service dd46e1
+    0x83, 0x71, 0x5E, 0x0E, 0xC4, 0x86, 0x89, 0xF8,
Packit Service dd46e1
+    0x38, 0x5A, 0xAE, 0x66, 0xF2, 0xA1, 0x67, 0xE0,
Packit Service dd46e1
+    0xF5, 0x7A, 0x38, 0xE6, 0x21, 0x98, 0xF0, 0x33,
Packit Service dd46e1
+    0xD6, 0xD7, 0x27, 0x82, 0xED, 0xDE, 0x73, 0x52,
Packit Service dd46e1
+    0xD4, 0x2C, 0xCF, 0x0A, 0xB1, 0xA1, 0xA0, 0x5A,
Packit Service dd46e1
+    0xCE, 0x05, 0x40, 0xE7, 0xF7, 0x0C, 0xE2, 0x63,
Packit Service dd46e1
+    0x21, 0xA0, 0xF3, 0x26, 0x9B, 0xEC, 0x6B, 0x33,
Packit Service dd46e1
+    0x4D, 0x34, 0x9B, 0x8D, 0x86, 0x10, 0xB8, 0xE8,
Packit Service dd46e1
+    0x96, 0x84, 0x66, 0x49, 0x27, 0xED, 0x2B, 0x76,
Packit Service dd46e1
+    0x19, 0xF6, 0x9C, 0xCB, 0x71, 0x4F, 0xF9, 0x16,
Packit Service dd46e1
+    0xB4, 0xD0, 0xC6, 0x49, 0x7A, 0x53, 0xDD, 0x53,
Packit Service dd46e1
+    0xA1, 0x0E, 0x0B, 0xB6, 0x33, 0xC4, 0xE9, 0xCF,
Packit Service dd46e1
+    0x5A, 0x1E, 0x4D, 0xC8, 0xE3, 0x1F, 0x14, 0x9D,
Packit Service dd46e1
+    0xF0, 0x14, 0x70, 0x39, 0x50, 0x21, 0x8A, 0xEA,
Packit Service dd46e1
+    0x7C, 0x72, 0xA3, 0x3F, 0x67, 0x5C, 0x1E, 0x32,
Packit Service dd46e1
+    0xA7, 0x5D, 0x78, 0xCC, 0xE3, 0xA9, 0x03, 0x76,
Packit Service dd46e1
+    0x4A, 0xD4, 0x65, 0x0E, 0x11, 0xEF, 0x56, 0x25,
Packit Service dd46e1
+    0xE5, 0x78, 0x1A, 0xA8, 0x49, 0x8C, 0x14, 0x2E,
Packit Service dd46e1
+    0xF7, 0xFA, 0x70, 0x27, 0xB1, 0x89, 0x66, 0x8F,
Packit Service dd46e1
+    0xFA, 0xFC, 0xED, 0x15, 0x98, 0xE8, 0x0D, 0x72,
Packit Service dd46e1
+    0x17, 0x02, 0x67, 0x14, 0x55, 0x6C, 0x32, 0x98,
Packit Service dd46e1
+    0x59, 0xF3, 0x17, 0xBC, 0x55, 0xA1, 0x39, 0x69
Packit Service dd46e1
 };
Packit Service dd46e1
 
Packit Service dd46e1
-static const unsigned char dh_test_2048_pub_key[] = {
Packit Service dd46e1
-    0xA0, 0x39, 0x11, 0x77, 0x9A, 0xC1, 0x30, 0x1F, 0xBE, 0x48, 0xA7, 0xAA,
Packit Service dd46e1
-    0xA0, 0x84, 0x54, 0x64, 0xAD, 0x1B, 0x70, 0xFA, 0x13, 0x55, 0x63, 0xD2,
Packit Service dd46e1
-    0x1F, 0x62, 0x32, 0x93, 0x8E, 0xC9, 0x3E, 0x09, 0xA7, 0x64, 0xE4, 0x12,
Packit Service dd46e1
-    0x6E, 0x1B, 0xF2, 0x92, 0x3B, 0xB9, 0xCB, 0x56, 0xEA, 0x07, 0x88, 0xB5,
Packit Service dd46e1
-    0xA6, 0xBC, 0x16, 0x1F, 0x27, 0xFE, 0xD8, 0xAA, 0x40, 0xB2, 0xB0, 0x2D,
Packit Service dd46e1
-    0x37, 0x76, 0xA6, 0xA4, 0x82, 0x2C, 0x0E, 0x22, 0x64, 0x9D, 0xCB, 0xD1,
Packit Service dd46e1
-    0x00, 0xB7, 0x89, 0x14, 0x72, 0x4E, 0xBE, 0x48, 0x41, 0xF8, 0xB2, 0x51,
Packit Service dd46e1
-    0x11, 0x09, 0x4B, 0x22, 0x01, 0x23, 0x39, 0x96, 0xE0, 0x15, 0xD7, 0x9F,
Packit Service dd46e1
-    0x60, 0xD1, 0xB7, 0xAE, 0xFE, 0x5F, 0xDB, 0xE7, 0x03, 0x17, 0x97, 0xA6,
Packit Service dd46e1
-    0x16, 0x74, 0xBD, 0x53, 0x81, 0x19, 0xC5, 0x47, 0x5E, 0xCE, 0x8D, 0xED,
Packit Service dd46e1
-    0x45, 0x5D, 0x3C, 0x00, 0xA0, 0x0A, 0x68, 0x6A, 0xE0, 0x8E, 0x06, 0x46,
Packit Service dd46e1
-    0x6F, 0xD7, 0xF9, 0xDF, 0x31, 0x7E, 0x77, 0x44, 0x0D, 0x98, 0xE0, 0xCA,
Packit Service dd46e1
-    0x98, 0x09, 0x52, 0x04, 0x90, 0xEA, 0x6D, 0xF4, 0x30, 0x69, 0x8F, 0xB1,
Packit Service dd46e1
-    0x9B, 0xC1, 0x43, 0xDB, 0xD5, 0x8D, 0xC8, 0x8E, 0xB6, 0x0B, 0x05, 0xBE,
Packit Service dd46e1
-    0x0E, 0xC5, 0x99, 0xC8, 0x6E, 0x4E, 0xF3, 0xCB, 0xC3, 0x5E, 0x9B, 0x53,
Packit Service dd46e1
-    0xF7, 0x06, 0x1C, 0x4F, 0xC7, 0xB8, 0x6E, 0x30, 0x18, 0xCA, 0x9B, 0xB9,
Packit Service dd46e1
-    0xBC, 0x5F, 0x17, 0x72, 0x29, 0x5A, 0xE5, 0xD9, 0x96, 0xB7, 0x0B, 0xF3,
Packit Service dd46e1
-    0x2D, 0x8C, 0xF1, 0xE1, 0x0E, 0x0D, 0x74, 0xD5, 0x9D, 0xF0, 0x06, 0xA9,
Packit Service dd46e1
-    0xB4, 0x95, 0x63, 0x76, 0x46, 0x55, 0x48, 0x82, 0x39, 0x90, 0xEF, 0x56,
Packit Service dd46e1
-    0x75, 0x34, 0xB8, 0x34, 0xC3, 0x18, 0x6E, 0x1E, 0xAD, 0xE3, 0x48, 0x7E,
Packit Service dd46e1
-    0x93, 0x2C, 0x23, 0xE7, 0xF8, 0x90, 0x73, 0xB1, 0x77, 0x80, 0x67, 0xA9,
Packit Service dd46e1
-    0x36, 0x9E, 0xDA, 0xD2
Packit Service dd46e1
+static const unsigned char dh_test_2048_peer_key[] = {
Packit Service dd46e1
+    0xD3, 0xAA, 0x26, 0x20, 0x2C, 0x02, 0x38, 0x0A,
Packit Service dd46e1
+    0x2E, 0x4D, 0xC0, 0x62, 0xCB, 0xD8, 0x7F, 0xF2,
Packit Service dd46e1
+    0x54, 0x23, 0xC3, 0x90, 0x33, 0xD8, 0xF7, 0x93,
Packit Service dd46e1
+    0xAD, 0x5F, 0xDA, 0xE6, 0xA4, 0xAB, 0x29, 0xE1,
Packit Service dd46e1
+    0x4B, 0x75, 0xE8, 0x3B, 0x4E, 0xC7, 0xB5, 0x43,
Packit Service dd46e1
+    0xCD, 0xF7, 0xB9, 0x0F, 0x43, 0x68, 0xED, 0xF7,
Packit Service dd46e1
+    0xD1, 0xFD, 0x13, 0x39, 0xCA, 0x39, 0x35, 0x39,
Packit Service dd46e1
+    0xB4, 0x5A, 0x12, 0x96, 0xC6, 0x85, 0xEC, 0x80,
Packit Service dd46e1
+    0xC0, 0x0D, 0xBC, 0xC6, 0x59, 0xC0, 0xAD, 0xB6,
Packit Service dd46e1
+    0xD8, 0x68, 0xD4, 0xE0, 0x2A, 0x8B, 0x21, 0x09,
Packit Service dd46e1
+    0xC0, 0xDB, 0xD9, 0xBA, 0x63, 0xC0, 0x11, 0x22,
Packit Service dd46e1
+    0xBB, 0xF2, 0x81, 0x35, 0x5C, 0xE0, 0xCE, 0xBE,
Packit Service dd46e1
+    0xAB, 0x2E, 0x83, 0x44, 0xCA, 0x05, 0x07, 0xDF,
Packit Service dd46e1
+    0xAD, 0x1D, 0xAD, 0x12, 0x15, 0xD3, 0x9C, 0x8C,
Packit Service dd46e1
+    0x92, 0xD3, 0xDE, 0x02, 0x00, 0x7B, 0x30, 0x97,
Packit Service dd46e1
+    0x07, 0xC0, 0x7C, 0x58, 0xF8, 0x98, 0xAE, 0xB9,
Packit Service dd46e1
+    0xE8, 0x82, 0x56, 0x0A, 0xEC, 0x4B, 0xF7, 0xEC,
Packit Service dd46e1
+    0x85, 0xBA, 0xDF, 0xD7, 0xEA, 0x9D, 0x68, 0xAE,
Packit Service dd46e1
+    0x1A, 0x2C, 0xEC, 0x25, 0x6A, 0x07, 0x2B, 0xFE,
Packit Service dd46e1
+    0x6D, 0x49, 0xD7, 0x8A, 0x1C, 0x5E, 0xC9, 0xA5,
Packit Service dd46e1
+    0x2C, 0xF2, 0xB5, 0x8A, 0x14, 0x91, 0x15, 0x6B,
Packit Service dd46e1
+    0x71, 0x2E, 0x6D, 0x31, 0x1F, 0xC8, 0x61, 0x46,
Packit Service dd46e1
+    0xF2, 0x0D, 0xCC, 0x10, 0xF7, 0x08, 0x9E, 0xBB,
Packit Service dd46e1
+    0x66, 0x0D, 0x0D, 0x6D, 0xE7, 0x82, 0x0E, 0x71,
Packit Service dd46e1
+    0xA4, 0x51, 0xC2, 0x63, 0xA5, 0xDC, 0xFA, 0xF1,
Packit Service dd46e1
+    0x04, 0xD8, 0xCF, 0x16, 0x9F, 0x7F, 0x73, 0xA2,
Packit Service dd46e1
+    0x3B, 0xF9, 0x0D, 0xC7, 0xDD, 0x9A, 0x3A, 0x2B,
Packit Service dd46e1
+    0x0F, 0xB0, 0xB3, 0x97, 0x9D, 0xF1, 0xF0, 0x73,
Packit Service dd46e1
+    0x7C, 0xFD, 0x76, 0x3A, 0xEB, 0x34, 0xDD, 0x87,
Packit Service dd46e1
+    0xE6, 0x52, 0x79, 0xDD, 0x53, 0x9A, 0xCB, 0x62,
Packit Service dd46e1
+    0xE4, 0xF1, 0xB2, 0xCA, 0x6B, 0xD8, 0xC2, 0x69,
Packit Service dd46e1
+    0xBD, 0xA9, 0xB8, 0xE8, 0x76, 0x88, 0x91, 0x6D
Packit Service dd46e1
 };
Packit Service dd46e1
 
Packit Service dd46e1
-static const unsigned char dh_test_2048_priv_key[] = {
Packit Service dd46e1
-    0x0C, 0x4B, 0x30, 0x89, 0xD1, 0xB8, 0x62, 0xCB, 0x3C, 0x43, 0x64, 0x91,
Packit Service dd46e1
-    0xF0, 0x91, 0x54, 0x70, 0xC5, 0x27, 0x96, 0xE3, 0xAC, 0xBE, 0xE8, 0x00,
Packit Service dd46e1
-    0xEC, 0x55, 0xF6, 0xCC
Packit Service dd46e1
+static const unsigned char dh_test_2048_expected_key[] = {
Packit Service dd46e1
+    0xB1, 0x26, 0x63, 0xAD, 0xB9, 0x4D, 0x9A, 0x38,
Packit Service dd46e1
+    0x14, 0x25, 0x16, 0x4D, 0x3A, 0x18, 0x36, 0x10,
Packit Service dd46e1
+    0xF8, 0xB1, 0x2C, 0x22, 0x4F, 0xD6, 0xA6, 0x2B,
Packit Service dd46e1
+    0xEB, 0xDF, 0x39, 0xAA, 0x31, 0x8E, 0x44, 0x40,
Packit Service dd46e1
+    0x09, 0xB6, 0x55, 0x7C, 0x95, 0x6E, 0x1F, 0x00,
Packit Service dd46e1
+    0x5B, 0xF8, 0x94, 0x1E, 0x5B, 0x69, 0x7A, 0x63,
Packit Service dd46e1
+    0x38, 0x12, 0x7B, 0xE6, 0xDD, 0x58, 0x08, 0x8E,
Packit Service dd46e1
+    0x88, 0xF7, 0x82, 0xA5, 0x5D, 0xED, 0x24, 0x10,
Packit Service dd46e1
+    0x0E, 0x87, 0x2E, 0x9A, 0x3A, 0xF0, 0xDB, 0xA5,
Packit Service dd46e1
+    0x0E, 0x85, 0xAE, 0xFC, 0xD0, 0x35, 0x30, 0x79,
Packit Service dd46e1
+    0xFE, 0x84, 0x84, 0xF1, 0x15, 0x14, 0x9C, 0x84,
Packit Service dd46e1
+    0x72, 0xA6, 0xB3, 0x7C, 0xB7, 0xEF, 0x38, 0xF5,
Packit Service dd46e1
+    0x2C, 0x90, 0x1B, 0xFC, 0x41, 0x85, 0x0A, 0xDE,
Packit Service dd46e1
+    0x1B, 0xD3, 0x7E, 0x93, 0xCB, 0x59, 0xE8, 0x7C,
Packit Service dd46e1
+    0xAB, 0x47, 0x3A, 0x02, 0x22, 0x4F, 0xAC, 0xAD,
Packit Service dd46e1
+    0xE9, 0x56, 0x32, 0xEB, 0x3D, 0x02, 0x9B, 0x1F,
Packit Service dd46e1
+    0x7C, 0x70, 0x0F, 0x83, 0xEF, 0x4D, 0x88, 0xE8,
Packit Service dd46e1
+    0x70, 0x91, 0x34, 0xDD, 0x1C, 0xEF, 0x56, 0x97,
Packit Service dd46e1
+    0xA3, 0x6E, 0xF6, 0x88, 0xAC, 0xF3, 0xA2, 0xBE,
Packit Service dd46e1
+    0x30, 0xBD, 0xE0, 0xC0, 0xCD, 0x01, 0x46, 0x5E,
Packit Service dd46e1
+    0x96, 0xC6, 0x14, 0x44, 0x60, 0xC0, 0x99, 0xFD,
Packit Service dd46e1
+    0xF0, 0x0A, 0xF6, 0x7D, 0x29, 0xD6, 0x0D, 0xEE,
Packit Service dd46e1
+    0x10, 0x91, 0x0F, 0x55, 0x71, 0x29, 0xA7, 0x6A,
Packit Service dd46e1
+    0xEB, 0x18, 0x9B, 0x40, 0xF7, 0x37, 0x50, 0x91,
Packit Service dd46e1
+    0xBC, 0x16, 0x5D, 0x29, 0x24, 0x63, 0xA2, 0x73,
Packit Service dd46e1
+    0x0F, 0xA7, 0xA4, 0x0D, 0x00, 0xD4, 0x5F, 0x61,
Packit Service dd46e1
+    0x74, 0x73, 0x99, 0x14, 0x73, 0xC7, 0x35, 0x2A,
Packit Service dd46e1
+    0xC0, 0xBA, 0x38, 0x9E, 0x05, 0x09, 0x81, 0xA5,
Packit Service dd46e1
+    0xDE, 0x8E, 0xB5, 0xE0, 0x77, 0xA7, 0x2F, 0x1A,
Packit Service dd46e1
+    0x47, 0xD2, 0x68, 0xD4, 0x3E, 0x9A, 0x02, 0xA0,
Packit Service dd46e1
+    0x5C, 0xC7, 0xFB, 0xE4, 0x2C, 0x7B, 0xC6, 0x26,
Packit Service dd46e1
+    0x35, 0x92, 0x12, 0x88, 0x62, 0x36, 0x98, 0xFE
Packit Service dd46e1
 };
Packit Service dd46e1
 
Packit Service dd46e1
 int FIPS_selftest_dh()
Packit Service dd46e1
 {
Packit Service dd46e1
     DH *dh = NULL;
Packit Service dd46e1
     int ret = 0;
Packit Service dd46e1
-    void *pub_key_bin = NULL;
Packit Service dd46e1
+    unsigned char shared_key[sizeof(dh_test_2048_expected_key)];
Packit Service dd46e1
     int len;
Packit Service dd46e1
-    BIGNUM *p = NULL, *g = NULL, *priv_key = NULL, *tmp_pub_key = NULL;
Packit Service dd46e1
-    const BIGNUM *pub_key;
Packit Service dd46e1
+    BIGNUM *priv_key = NULL;
Packit Service dd46e1
+    BIGNUM *pub_key = NULL;
Packit Service dd46e1
+    BIGNUM *peer_key = NULL;
Packit Service dd46e1
 
Packit Service dd46e1
-    fips_load_key_component(p, dh_test_2048);
Packit Service dd46e1
-    fips_load_key_component(g, dh_test_2048);
Packit Service dd46e1
-    /* note that the private key is much shorter than normally used
Packit Service dd46e1
-     * but still g ** priv_key > p
Packit Service dd46e1
-     */
Packit Service dd46e1
     fips_load_key_component(priv_key, dh_test_2048);
Packit Service dd46e1
-    if ((tmp_pub_key = BN_new()) == NULL)
Packit Service dd46e1
-        goto err;
Packit Service dd46e1
-
Packit Service dd46e1
-    dh = DH_new();
Packit Service dd46e1
+    fips_load_key_component(pub_key, dh_test_2048);
Packit Service dd46e1
+    fips_load_key_component(peer_key, dh_test_2048);
Packit Service dd46e1
 
Packit Service dd46e1
-    if (dh == NULL)
Packit Service dd46e1
+    if ((dh = DH_new_by_nid(NID_ffdhe2048)) == NULL)
Packit Service dd46e1
         goto err;
Packit Service dd46e1
 
Packit Service dd46e1
-    DH_set0_pqg(dh, p, NULL, g);
Packit Service dd46e1
-    DH_set0_key(dh, tmp_pub_key, priv_key);
Packit Service dd46e1
+    DH_set0_key(dh, pub_key, priv_key);
Packit Service dd46e1
 
Packit Service dd46e1
-    if (DH_generate_key(dh) <= 0)
Packit Service dd46e1
-        goto err;
Packit Service dd46e1
-
Packit Service dd46e1
-    DH_get0_key(dh, &pub_key, NULL);
Packit Service dd46e1
-
Packit Service dd46e1
-    if (pub_key == NULL)
Packit Service dd46e1
-        goto err;
Packit Service dd46e1
+    len = DH_compute_key(shared_key, peer_key, dh);
Packit Service dd46e1
 
Packit Service dd46e1
-    len = BN_num_bytes(pub_key);
Packit Service dd46e1
-    if ((pub_key_bin = OPENSSL_malloc(len)) == NULL)
Packit Service dd46e1
-        goto err;
Packit Service dd46e1
-    BN_bn2bin(pub_key, pub_key_bin);
Packit Service dd46e1
-
Packit Service dd46e1
-    if (len != sizeof(dh_test_2048_pub_key) ||
Packit Service dd46e1
-        memcmp(pub_key_bin, dh_test_2048_pub_key, len) != 0)
Packit Service dd46e1
+    if (len != sizeof(dh_test_2048_expected_key) ||
Packit Service dd46e1
+        memcmp(shared_key, dh_test_2048_expected_key, len) != 0)
Packit Service dd46e1
         goto err;
Packit Service dd46e1
 
Packit Service dd46e1
     ret = 1;
Packit Service dd46e1
@@ -168,13 +202,10 @@ int FIPS_selftest_dh()
Packit Service dd46e1
     if (dh)
Packit Service dd46e1
         DH_free(dh);
Packit Service dd46e1
     else {
Packit Service dd46e1
-        BN_free(p);
Packit Service dd46e1
-        BN_free(g);
Packit Service dd46e1
         BN_free(priv_key);
Packit Service dd46e1
-        BN_free(tmp_pub_key);
Packit Service dd46e1
+        BN_free(pub_key);
Packit Service dd46e1
     }
Packit Service dd46e1
-
Packit Service dd46e1
-    OPENSSL_free(pub_key_bin);
Packit Service dd46e1
+    BN_free(peer_key);
Packit Service dd46e1
     return ret;
Packit Service dd46e1
 }
Packit Service dd46e1
 #endif
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/objects/obj_dat.h.fips-dh openssl-1.1.1g/crypto/objects/obj_dat.h
Packit Service 084de1
--- openssl-1.1.1g/crypto/objects/obj_dat.h.fips-dh	2020-07-17 10:36:29.239788392 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/objects/obj_dat.h	2020-07-17 10:36:29.247788458 +0200
Packit Service 084de1
@@ -1078,7 +1078,7 @@ static const unsigned char so[7762] = {
Packit Service 084de1
     0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x0D,       /* [ 7753] OBJ_hmacWithSHA512_256 */
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-#define NUM_NID 1199
Packit Service 084de1
+#define NUM_NID 1205
Packit Service 084de1
 static const ASN1_OBJECT nid_objs[NUM_NID] = {
Packit Service 084de1
     {"UNDEF", "undefined", NID_undef},
Packit Service 084de1
     {"rsadsi", "RSA Data Security, Inc.", NID_rsadsi, 6, &so[0]},
Packit Service 084de1
@@ -2279,9 +2279,15 @@ static const ASN1_OBJECT nid_objs[NUM_NI
Packit Service 084de1
     {"KBKDF", "kbkdf", NID_kbkdf},
Packit Service 084de1
     {"KRB5KDF", "krb5kdf", NID_krb5kdf},
Packit Service 084de1
     {"SSKDF", "sskdf", NID_sskdf},
Packit Service 084de1
+    {"modp_1536", "modp_1536", NID_modp_1536},
Packit Service 084de1
+    {"modp_2048", "modp_2048", NID_modp_2048},
Packit Service 084de1
+    {"modp_3072", "modp_3072", NID_modp_3072},
Packit Service 084de1
+    {"modp_4096", "modp_4096", NID_modp_4096},
Packit Service 084de1
+    {"modp_6144", "modp_6144", NID_modp_6144},
Packit Service 084de1
+    {"modp_8192", "modp_8192", NID_modp_8192},
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-#define NUM_SN 1190
Packit Service 084de1
+#define NUM_SN 1196
Packit Service 084de1
 static const unsigned int sn_objs[NUM_SN] = {
Packit Service 084de1
      364,    /* "AD_DVCS" */
Packit Service 084de1
      419,    /* "AES-128-CBC" */
Packit Service 084de1
@@ -3127,6 +3133,12 @@ static const unsigned int sn_objs[NUM_SN
Packit Service 084de1
      506,    /* "mime-mhs-bodies" */
Packit Service 084de1
      505,    /* "mime-mhs-headings" */
Packit Service 084de1
      488,    /* "mobileTelephoneNumber" */
Packit Service 084de1
+    1199,    /* "modp_1536" */
Packit Service 084de1
+    1200,    /* "modp_2048" */
Packit Service 084de1
+    1201,    /* "modp_3072" */
Packit Service 084de1
+    1202,    /* "modp_4096" */
Packit Service 084de1
+    1203,    /* "modp_6144" */
Packit Service 084de1
+    1204,    /* "modp_8192" */
Packit Service 084de1
      136,    /* "msCTLSign" */
Packit Service 084de1
      135,    /* "msCodeCom" */
Packit Service 084de1
      134,    /* "msCodeInd" */
Packit Service 084de1
@@ -3475,7 +3487,7 @@ static const unsigned int sn_objs[NUM_SN
Packit Service 084de1
     1093,    /* "x509ExtAdmission" */
Packit Service 084de1
 };
Packit Service 084de1
 
Packit Service 084de1
-#define NUM_LN 1190
Packit Service 084de1
+#define NUM_LN 1196
Packit Service 084de1
 static const unsigned int ln_objs[NUM_LN] = {
Packit Service 084de1
      363,    /* "AD Time Stamping" */
Packit Service 084de1
      405,    /* "ANSI X9.62" */
Packit Service 084de1
@@ -4313,6 +4325,12 @@ static const unsigned int ln_objs[NUM_LN
Packit Service 084de1
      506,    /* "mime-mhs-bodies" */
Packit Service 084de1
      505,    /* "mime-mhs-headings" */
Packit Service 084de1
      488,    /* "mobileTelephoneNumber" */
Packit Service 084de1
+    1199,    /* "modp_1536" */
Packit Service 084de1
+    1200,    /* "modp_2048" */
Packit Service 084de1
+    1201,    /* "modp_3072" */
Packit Service 084de1
+    1202,    /* "modp_4096" */
Packit Service 084de1
+    1203,    /* "modp_6144" */
Packit Service 084de1
+    1204,    /* "modp_8192" */
Packit Service 084de1
      481,    /* "nSRecord" */
Packit Service 084de1
      173,    /* "name" */
Packit Service 084de1
      681,    /* "onBasis" */
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/objects/objects.txt.fips-dh openssl-1.1.1g/crypto/objects/objects.txt
Packit Service 084de1
--- openssl-1.1.1g/crypto/objects/objects.txt.fips-dh	2020-07-17 10:36:29.239788392 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/objects/objects.txt	2020-07-17 10:36:29.247788458 +0200
Packit Service 084de1
@@ -1657,6 +1657,13 @@ id-pkinit 5                     : pkInit
Packit Service 084de1
                             : ffdhe4096
Packit Service 084de1
                             : ffdhe6144
Packit Service 084de1
                             : ffdhe8192
Packit Service 084de1
+# NIDs for RFC3526 DH parameters
Packit Service 084de1
+                            : modp_1536
Packit Service 084de1
+                            : modp_2048
Packit Service 084de1
+                            : modp_3072
Packit Service 084de1
+                            : modp_4096
Packit Service 084de1
+                            : modp_6144
Packit Service 084de1
+                            : modp_8192
Packit Service 084de1
 
Packit Service 084de1
 # OIDs for DSTU-4145/DSTU-7564 (http://zakon2.rada.gov.ua/laws/show/z0423-17)
Packit Service 084de1
 
Packit Service 084de1
diff -up openssl-1.1.1g/crypto/objects/obj_mac.num.fips-dh openssl-1.1.1g/crypto/objects/obj_mac.num
Packit Service 084de1
--- openssl-1.1.1g/crypto/objects/obj_mac.num.fips-dh	2020-07-17 10:36:29.239788392 +0200
Packit Service 084de1
+++ openssl-1.1.1g/crypto/objects/obj_mac.num	2020-07-17 10:36:29.248788466 +0200
Packit Service 084de1
@@ -1196,3 +1196,9 @@ sshkdf		1195
Packit Service 084de1
 kbkdf		1196
Packit Service 084de1
 krb5kdf		1197
Packit Service 084de1
 sskdf		1198
Packit Service 084de1
+modp_1536		1199
Packit Service 084de1
+modp_2048		1200
Packit Service 084de1
+modp_3072		1201
Packit Service 084de1
+modp_4096		1202
Packit Service 084de1
+modp_6144		1203
Packit Service 084de1
+modp_8192		1204
Packit Service 084de1
diff -up openssl-1.1.1g/doc/man3/DH_new_by_nid.pod.fips-dh openssl-1.1.1g/doc/man3/DH_new_by_nid.pod
Packit Service 084de1
--- openssl-1.1.1g/doc/man3/DH_new_by_nid.pod.fips-dh	2020-04-21 14:22:39.000000000 +0200
Packit Service 084de1
+++ openssl-1.1.1g/doc/man3/DH_new_by_nid.pod	2020-07-17 10:36:29.248788466 +0200
Packit Service 084de1
@@ -8,13 +8,15 @@ DH_new_by_nid, DH_get_nid - get or find
Packit Service 084de1
 
Packit Service 084de1
  #include <openssl/dh.h>
Packit Service 084de1
  DH *DH_new_by_nid(int nid);
Packit Service 084de1
- int *DH_get_nid(const DH *dh);
Packit Service 084de1
+ int DH_get_nid(const DH *dh);
Packit Service 084de1
 
Packit Service 084de1
 =head1 DESCRIPTION
Packit Service 084de1
 
Packit Service 084de1
 DH_new_by_nid() creates and returns a DH structure containing named parameters
Packit Service 084de1
 B<nid>. Currently B<nid> must be B<NID_ffdhe2048>, B<NID_ffdhe3072>,
Packit Service 084de1
-B<NID_ffdhe4096>, B<NID_ffdhe6144> or B<NID_ffdhe8192>.
Packit Service 084de1
+B<NID_ffdhe4096>, B<NID_ffdhe6144>, B<NID_ffdhe8192>,
Packit Service 084de1
+B<NID_modp_1536>, B<NID_modp_2048>, B<NID_modp_3072>,
Packit Service 084de1
+B<NID_modp_4096>, B<NID_modp_6144> or B<NID_modp_8192>.
Packit Service 084de1
 
Packit Service 084de1
 DH_get_nid() determines if the parameters contained in B<dh> match
Packit Service 084de1
 any named set. It returns the NID corresponding to the matching parameters or
Packit Service 084de1
diff -up openssl-1.1.1g/doc/man3/EVP_PKEY_CTX_ctrl.pod.fips-dh openssl-1.1.1g/doc/man3/EVP_PKEY_CTX_ctrl.pod
Packit Service 084de1
--- openssl-1.1.1g/doc/man3/EVP_PKEY_CTX_ctrl.pod.fips-dh	2020-04-21 14:22:39.000000000 +0200
Packit Service 084de1
+++ openssl-1.1.1g/doc/man3/EVP_PKEY_CTX_ctrl.pod	2020-07-17 10:36:29.248788466 +0200
Packit Service 084de1
@@ -294,10 +294,11 @@ The EVP_PKEY_CTX_set_dh_pad() macro sets
Packit Service 084de1
 If B<pad> is zero (the default) then no padding is performed.
Packit Service 084de1
 
Packit Service 084de1
 EVP_PKEY_CTX_set_dh_nid() sets the DH parameters to values corresponding to
Packit Service 084de1
-B<nid> as defined in RFC7919. The B<nid> parameter must be B<NID_ffdhe2048>,
Packit Service 084de1
-B<NID_ffdhe3072>, B<NID_ffdhe4096>, B<NID_ffdhe6144>, B<NID_ffdhe8192>
Packit Service 084de1
-or B<NID_undef> to clear the stored value. This macro can be called during
Packit Service 084de1
-parameter or key generation.
Packit Service 084de1
+I<nid> as defined in RFC7919 or RFC3526. The I<nid> parameter must be
Packit Service 084de1
+B<NID_ffdhe2048>, B<NID_ffdhe3072>, B<NID_ffdhe4096>, B<NID_ffdhe6144>,
Packit Service 084de1
+B<NID_ffdhe8192>, B<NID_modp_1536>, B<NID_modp_2048>, B<NID_modp_3072>,
Packit Service 084de1
+B<NID_modp_4096>, B<NID_modp_6144>, B<NID_modp_8192> or B<NID_undef> to clear
Packit Service 084de1
+the stored value. This macro can be called during parameter or key generation.
Packit Service 084de1
 The nid parameter and the rfc5114 parameter are mutually exclusive.
Packit Service 084de1
 
Packit Service 084de1
 The EVP_PKEY_CTX_set_dh_rfc5114() and EVP_PKEY_CTX_set_dhx_rfc5114() macros are
Packit Service 084de1
diff -up openssl-1.1.1g/include/crypto/bn_dh.h.fips-dh openssl-1.1.1g/include/crypto/bn_dh.h
Packit Service 084de1
--- openssl-1.1.1g/include/crypto/bn_dh.h.fips-dh	2020-04-21 14:22:39.000000000 +0200
Packit Service 084de1
+++ openssl-1.1.1g/include/crypto/bn_dh.h	2020-07-17 10:36:29.248788466 +0200
Packit Service 084de1
@@ -1,7 +1,7 @@
Packit Service 084de1
 /*
Packit Service 084de1
- * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
Packit Service 084de1
+ * Copyright 2015-2020 The OpenSSL Project Authors. All Rights Reserved.
Packit Service 084de1
  *
Packit Service 084de1
- * Licensed under the OpenSSL license (the "License").  You may not use
Packit Service 084de1
+ * Licensed under the Apache License 2.0 (the "License").  You may not use
Packit Service 084de1
  * this file except in compliance with the License.  You can obtain a copy
Packit Service 084de1
  * in the file LICENSE in the source distribution or at
Packit Service 084de1
  * https://www.openssl.org/source/license.html
Packit Service 084de1
@@ -9,16 +9,35 @@
Packit Service 084de1
 
Packit Service 084de1
 #define declare_dh_bn(x) \
Packit Service 084de1
     extern const BIGNUM _bignum_dh##x##_p;              \
Packit Service 084de1
+    extern const BIGNUM _bignum_dh##x##_q;              \
Packit Service 084de1
     extern const BIGNUM _bignum_dh##x##_g;              \
Packit Service 084de1
-    extern const BIGNUM _bignum_dh##x##_q;
Packit Service 084de1
 
Packit Service 084de1
 declare_dh_bn(1024_160)
Packit Service 084de1
 declare_dh_bn(2048_224)
Packit Service 084de1
 declare_dh_bn(2048_256)
Packit Service 084de1
 
Packit Service 084de1
+extern const BIGNUM _bignum_const_2;
Packit Service 084de1
+
Packit Service 084de1
 extern const BIGNUM _bignum_ffdhe2048_p;
Packit Service 084de1
 extern const BIGNUM _bignum_ffdhe3072_p;
Packit Service 084de1
 extern const BIGNUM _bignum_ffdhe4096_p;
Packit Service 084de1
 extern const BIGNUM _bignum_ffdhe6144_p;
Packit Service 084de1
 extern const BIGNUM _bignum_ffdhe8192_p;
Packit Service 084de1
-extern const BIGNUM _bignum_const_2;
Packit Service 084de1
+extern const BIGNUM _bignum_ffdhe2048_q;
Packit Service 084de1
+extern const BIGNUM _bignum_ffdhe3072_q;
Packit Service 084de1
+extern const BIGNUM _bignum_ffdhe4096_q;
Packit Service 084de1
+extern const BIGNUM _bignum_ffdhe6144_q;
Packit Service 084de1
+extern const BIGNUM _bignum_ffdhe8192_q;
Packit Service 084de1
+
Packit Service 084de1
+extern const BIGNUM _bignum_modp_1536_p;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_2048_p;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_3072_p;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_4096_p;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_6144_p;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_8192_p;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_1536_q;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_2048_q;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_3072_q;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_4096_q;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_6144_q;
Packit Service 084de1
+extern const BIGNUM _bignum_modp_8192_q;
Packit Service 084de1
diff -up openssl-1.1.1g/include/openssl/obj_mac.h.fips-dh openssl-1.1.1g/include/openssl/obj_mac.h
Packit Service 084de1
--- openssl-1.1.1g/include/openssl/obj_mac.h.fips-dh	2020-07-17 10:36:29.240788400 +0200
Packit Service 084de1
+++ openssl-1.1.1g/include/openssl/obj_mac.h	2020-07-17 10:36:29.248788466 +0200
Packit Service 084de1
@@ -5115,6 +5115,24 @@
Packit Service 084de1
 #define SN_ffdhe8192            "ffdhe8192"
Packit Service 084de1
 #define NID_ffdhe8192           1130
Packit Service 084de1
 
Packit Service 084de1
+#define SN_modp_1536            "modp_1536"
Packit Service 084de1
+#define NID_modp_1536           1199
Packit Service 084de1
+
Packit Service 084de1
+#define SN_modp_2048            "modp_2048"
Packit Service 084de1
+#define NID_modp_2048           1200
Packit Service 084de1
+
Packit Service 084de1
+#define SN_modp_3072            "modp_3072"
Packit Service 084de1
+#define NID_modp_3072           1201
Packit Service 084de1
+
Packit Service 084de1
+#define SN_modp_4096            "modp_4096"
Packit Service 084de1
+#define NID_modp_4096           1202
Packit Service 084de1
+
Packit Service 084de1
+#define SN_modp_6144            "modp_6144"
Packit Service 084de1
+#define NID_modp_6144           1203
Packit Service 084de1
+
Packit Service 084de1
+#define SN_modp_8192            "modp_8192"
Packit Service 084de1
+#define NID_modp_8192           1204
Packit Service 084de1
+
Packit Service 084de1
 #define SN_ISO_UA               "ISO-UA"
Packit Service 084de1
 #define NID_ISO_UA              1150
Packit Service 084de1
 #define OBJ_ISO_UA              OBJ_member_body,804L
Packit Service 084de1
diff -up openssl-1.1.1g/ssl/s3_lib.c.fips-dh openssl-1.1.1g/ssl/s3_lib.c
Packit Service 084de1
--- openssl-1.1.1g/ssl/s3_lib.c.fips-dh	2020-07-17 10:36:29.199788063 +0200
Packit Service 084de1
+++ openssl-1.1.1g/ssl/s3_lib.c	2020-07-17 10:36:29.248788466 +0200
Packit Service 084de1
@@ -4858,13 +4858,51 @@ int ssl_derive(SSL *s, EVP_PKEY *privkey
Packit Service 084de1
 EVP_PKEY *ssl_dh_to_pkey(DH *dh)
Packit Service 084de1
 {
Packit Service 084de1
     EVP_PKEY *ret;
Packit Service 084de1
+    DH *dhp = NULL;
Packit Service 084de1
+
Packit Service 084de1
     if (dh == NULL)
Packit Service 084de1
         return NULL;
Packit Service 084de1
+
Packit Service 084de1
+    if (FIPS_mode() && DH_get_nid(dh) == NID_undef) {
Packit Service 084de1
+        int bits = DH_bits(dh);
Packit Service 084de1
+        BIGNUM *p, *g;
Packit Service 084de1
+
Packit Service 084de1
+        dhp = DH_new();
Packit Service 084de1
+        if (dhp == NULL)
Packit Service 084de1
+            return NULL;
Packit Service 084de1
+        g = BN_new();
Packit Service 084de1
+        if (g == NULL || !BN_set_word(g, 2)) {
Packit Service 084de1
+            DH_free(dhp);
Packit Service 084de1
+            BN_free(g);
Packit Service 084de1
+            return NULL;
Packit Service 084de1
+        }
Packit Service 084de1
+
Packit Service 084de1
+        if (bits >= 7000)
Packit Service 084de1
+            p = BN_get_rfc3526_prime_8192(NULL);
Packit Service 084de1
+        else if (bits >= 5000)
Packit Service 084de1
+            p = BN_get_rfc3526_prime_6144(NULL);
Packit Service 084de1
+        else if (bits >= 3800)
Packit Service 084de1
+            p = BN_get_rfc3526_prime_4096(NULL);
Packit Service 084de1
+        else if (bits >= 2500)
Packit Service 084de1
+            p = BN_get_rfc3526_prime_3072(NULL);
Packit Service 084de1
+        else
Packit Service 084de1
+            p = BN_get_rfc3526_prime_2048(NULL);
Packit Service 084de1
+        if (p == NULL || !DH_set0_pqg(dhp, p, NULL, g)) {
Packit Service 084de1
+            DH_free(dhp);
Packit Service 084de1
+            BN_free(p);
Packit Service 084de1
+            BN_free(g);
Packit Service 084de1
+            return NULL;
Packit Service 084de1
+        }
Packit Service 084de1
+        dh = dhp;
Packit Service 084de1
+    }
Packit Service 084de1
+
Packit Service 084de1
     ret = EVP_PKEY_new();
Packit Service 084de1
     if (EVP_PKEY_set1_DH(ret, dh) <= 0) {
Packit Service 084de1
+        DH_free(dhp);
Packit Service 084de1
         EVP_PKEY_free(ret);
Packit Service 084de1
         return NULL;
Packit Service 084de1
     }
Packit Service 084de1
+    DH_free(dhp);
Packit Service 084de1
     return ret;
Packit Service 084de1
 }
Packit Service 084de1
 #endif
Packit Service 084de1
diff -up openssl-1.1.1g/ssl/t1_lib.c.fips-dh openssl-1.1.1g/ssl/t1_lib.c
Packit Service 084de1
--- openssl-1.1.1g/ssl/t1_lib.c.fips-dh	2020-07-17 10:36:29.243788425 +0200
Packit Service 084de1
+++ openssl-1.1.1g/ssl/t1_lib.c	2020-07-17 10:36:29.249788474 +0200
Packit Service 084de1
@@ -2511,46 +2511,48 @@ int SSL_check_chain(SSL *s, X509 *x, EVP
Packit Service 084de1
 #ifndef OPENSSL_NO_DH
Packit Service 084de1
 DH *ssl_get_auto_dh(SSL *s)
Packit Service 084de1
 {
Packit Service 084de1
+    DH *dhp = NULL;
Packit Service 084de1
+    BIGNUM *p = NULL, *g = NULL;
Packit Service 084de1
     int dh_secbits = 80;
Packit Service 084de1
-    if (s->cert->dh_tmp_auto == 2)
Packit Service 084de1
-        return DH_get_1024_160();
Packit Service 084de1
-    if (s->s3->tmp.new_cipher->algorithm_auth & (SSL_aNULL | SSL_aPSK)) {
Packit Service 084de1
-        if (s->s3->tmp.new_cipher->strength_bits == 256)
Packit Service 084de1
-            dh_secbits = 128;
Packit Service 084de1
-        else
Packit Service 084de1
-            dh_secbits = 80;
Packit Service 084de1
-    } else {
Packit Service 084de1
-        if (s->s3->tmp.cert == NULL)
Packit Service 084de1
-            return NULL;
Packit Service 084de1
-        dh_secbits = EVP_PKEY_security_bits(s->s3->tmp.cert->privatekey);
Packit Service 084de1
+    if (s->cert->dh_tmp_auto != 2) {
Packit Service 084de1
+        if (s->s3->tmp.new_cipher->algorithm_auth & (SSL_aNULL | SSL_aPSK)) {
Packit Service 084de1
+            if (s->s3->tmp.new_cipher->strength_bits == 256)
Packit Service 084de1
+                dh_secbits = 128;
Packit Service 084de1
+            else
Packit Service 084de1
+                dh_secbits = 80;
Packit Service 084de1
+        } else {
Packit Service 084de1
+            if (s->s3->tmp.cert == NULL)
Packit Service 084de1
+                return NULL;
Packit Service 084de1
+            dh_secbits = EVP_PKEY_security_bits(s->s3->tmp.cert->privatekey);
Packit Service 084de1
+        }
Packit Service 084de1
     }
Packit Service 084de1
 
Packit Service 084de1
-    if (dh_secbits >= 128) {
Packit Service 084de1
-        DH *dhp = DH_new();
Packit Service 084de1
-        BIGNUM *p, *g;
Packit Service 084de1
-        if (dhp == NULL)
Packit Service 084de1
-            return NULL;
Packit Service 084de1
-        g = BN_new();
Packit Service 084de1
-        if (g == NULL || !BN_set_word(g, 2)) {
Packit Service 084de1
-            DH_free(dhp);
Packit Service 084de1
-            BN_free(g);
Packit Service 084de1
-            return NULL;
Packit Service 084de1
-        }
Packit Service 084de1
-        if (dh_secbits >= 192)
Packit Service 084de1
-            p = BN_get_rfc3526_prime_8192(NULL);
Packit Service 084de1
-        else
Packit Service 084de1
-            p = BN_get_rfc3526_prime_3072(NULL);
Packit Service 084de1
-        if (p == NULL || !DH_set0_pqg(dhp, p, NULL, g)) {
Packit Service 084de1
-            DH_free(dhp);
Packit Service 084de1
-            BN_free(p);
Packit Service 084de1
-            BN_free(g);
Packit Service 084de1
-            return NULL;
Packit Service 084de1
-        }
Packit Service 084de1
-        return dhp;
Packit Service 084de1
+    dhp = DH_new();
Packit Service 084de1
+    if (dhp == NULL)
Packit Service 084de1
+        return NULL;
Packit Service 084de1
+    g = BN_new();
Packit Service 084de1
+    if (g == NULL || !BN_set_word(g, 2)) {
Packit Service 084de1
+        DH_free(dhp);
Packit Service 084de1
+        BN_free(g);
Packit Service 084de1
+        return NULL;
Packit Service 084de1
+    }
Packit Service 084de1
+    if (dh_secbits >= 192)
Packit Service 084de1
+        p = BN_get_rfc3526_prime_8192(NULL);
Packit Service 084de1
+    else if (dh_secbits >= 152)
Packit Service 084de1
+        p = BN_get_rfc3526_prime_4096(NULL);
Packit Service 084de1
+    else if (dh_secbits >= 128)
Packit Service 084de1
+        p = BN_get_rfc3526_prime_3072(NULL);
Packit Service 084de1
+    else if (dh_secbits >= 112 || FIPS_mode())
Packit Service 084de1
+        p = BN_get_rfc3526_prime_2048(NULL);
Packit Service 084de1
+    else
Packit Service 084de1
+        p = BN_get_rfc2409_prime_1024(NULL);
Packit Service 084de1
+    if (p == NULL || !DH_set0_pqg(dhp, p, NULL, g)) {
Packit Service 084de1
+        DH_free(dhp);
Packit Service 084de1
+        BN_free(p);
Packit Service 084de1
+        BN_free(g);
Packit Service 084de1
+        return NULL;
Packit Service 084de1
     }
Packit Service 084de1
-    if (dh_secbits >= 112)
Packit Service 084de1
-        return DH_get_2048_224();
Packit Service 084de1
-    return DH_get_1024_160();
Packit Service 084de1
+    return dhp;
Packit Service 084de1
 }
Packit Service 084de1
 #endif
Packit Service 084de1