summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2018-02-20 17:02:30 +0000
committerjsing <>2018-02-20 17:02:30 +0000
commit5bf183e39d6cd514bbf349bc1c1b2deb8620ea79 (patch)
tree320c0dbc29edbb3bbe014156fdd2a1e6e45daad8 /src/lib
parent65ef88b52f628263e28333ef28dee7d5b1fdf1f7 (diff)
downloadopenbsd-5bf183e39d6cd514bbf349bc1c1b2deb8620ea79.tar.gz
openbsd-5bf183e39d6cd514bbf349bc1c1b2deb8620ea79.tar.bz2
openbsd-5bf183e39d6cd514bbf349bc1c1b2deb8620ea79.zip
Provide BN_get_rfc2409_prime_*() and BN_get_rfc3526_prime_*().
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/Symbols.list10
-rw-r--r--src/lib/libcrypto/bn/bn.h10
-rw-r--r--src/lib/libcrypto/bn/bn_const.c50
3 files changed, 67 insertions, 3 deletions
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list
index b88d6c6182..a2957cf4ac 100644
--- a/src/lib/libcrypto/Symbols.list
+++ b/src/lib/libcrypto/Symbols.list
@@ -336,8 +336,8 @@ BIO_s_socket
336BIO_set 336BIO_set
337BIO_set_callback 337BIO_set_callback
338BIO_set_callback_arg 338BIO_set_callback_arg
339BIO_set_data
340BIO_set_cipher 339BIO_set_cipher
340BIO_set_data
341BIO_set_ex_data 341BIO_set_ex_data
342BIO_set_flags 342BIO_set_flags
343BIO_set_init 343BIO_set_init
@@ -438,6 +438,14 @@ BN_get0_nist_prime_256
438BN_get0_nist_prime_384 438BN_get0_nist_prime_384
439BN_get0_nist_prime_521 439BN_get0_nist_prime_521
440BN_get_params 440BN_get_params
441BN_get_rfc2409_prime_1024
442BN_get_rfc2409_prime_768
443BN_get_rfc3526_prime_1536
444BN_get_rfc3526_prime_2048
445BN_get_rfc3526_prime_3072
446BN_get_rfc3526_prime_4096
447BN_get_rfc3526_prime_6144
448BN_get_rfc3526_prime_8192
441BN_get_word 449BN_get_word
442BN_hex2bn 450BN_hex2bn
443BN_init 451BN_init
diff --git a/src/lib/libcrypto/bn/bn.h b/src/lib/libcrypto/bn/bn.h
index 0dde08a368..cca9def20b 100644
--- a/src/lib/libcrypto/bn/bn.h
+++ b/src/lib/libcrypto/bn/bn.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn.h,v 1.36 2017/01/25 06:15:44 beck Exp $ */ 1/* $OpenBSD: bn.h,v 1.37 2018/02/20 17:02:30 jsing Exp $ */
2/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -628,6 +628,8 @@ const BIGNUM *BN_get0_nist_prime_521(void);
628/* Primes from RFC 2409 */ 628/* Primes from RFC 2409 */
629BIGNUM *get_rfc2409_prime_768(BIGNUM *bn); 629BIGNUM *get_rfc2409_prime_768(BIGNUM *bn);
630BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn); 630BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn);
631BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn);
632BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn);
631 633
632/* Primes from RFC 3526 */ 634/* Primes from RFC 3526 */
633BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn); 635BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn);
@@ -636,6 +638,12 @@ BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn);
636BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn); 638BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn);
637BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn); 639BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn);
638BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn); 640BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn);
641BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn);
642BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn);
643BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn);
644BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn);
645BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn);
646BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn);
639 647
640/* BEGIN ERROR CODES */ 648/* BEGIN ERROR CODES */
641/* The following lines are auto generated by the script mkerr.pl. Any changes 649/* The following lines are auto generated by the script mkerr.pl. Any changes
diff --git a/src/lib/libcrypto/bn/bn_const.c b/src/lib/libcrypto/bn/bn_const.c
index 4be9f4f791..0ceff9160d 100644
--- a/src/lib/libcrypto/bn/bn_const.c
+++ b/src/lib/libcrypto/bn/bn_const.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn_const.c,v 1.4 2014/06/12 15:49:28 deraadt Exp $ */ 1/* $OpenBSD: bn_const.c,v 1.5 2018/02/20 17:02:30 jsing Exp $ */
2/* Insert boilerplate */ 2/* Insert boilerplate */
3 3
4#include <openssl/bn.h> 4#include <openssl/bn.h>
@@ -27,6 +27,12 @@ get_rfc2409_prime_768(BIGNUM *bn)
27 return BN_bin2bn(RFC2409_PRIME_768, sizeof(RFC2409_PRIME_768), bn); 27 return BN_bin2bn(RFC2409_PRIME_768, sizeof(RFC2409_PRIME_768), bn);
28} 28}
29 29
30BIGNUM *
31BN_get_rfc2409_prime_768(BIGNUM *bn)
32{
33 return get_rfc2409_prime_768(bn);
34}
35
30/* "Second Oakley Default Group" from RFC2409, section 6.2. 36/* "Second Oakley Default Group" from RFC2409, section 6.2.
31 * 37 *
32 * The prime is: 2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 }. 38 * The prime is: 2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 }.
@@ -54,6 +60,12 @@ get_rfc2409_prime_1024(BIGNUM *bn)
54 return BN_bin2bn(RFC2409_PRIME_1024, sizeof(RFC2409_PRIME_1024), bn); 60 return BN_bin2bn(RFC2409_PRIME_1024, sizeof(RFC2409_PRIME_1024), bn);
55} 61}
56 62
63BIGNUM *
64BN_get_rfc2409_prime_1024(BIGNUM *bn)
65{
66 return get_rfc2409_prime_1024(bn);
67}
68
57/* "1536-bit MODP Group" from RFC3526, Section 2. 69/* "1536-bit MODP Group" from RFC3526, Section 2.
58 * 70 *
59 * The prime is: 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804 } 71 * The prime is: 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804 }
@@ -86,6 +98,12 @@ get_rfc3526_prime_1536(BIGNUM *bn)
86 return BN_bin2bn(RFC3526_PRIME_1536, sizeof(RFC3526_PRIME_1536), bn); 98 return BN_bin2bn(RFC3526_PRIME_1536, sizeof(RFC3526_PRIME_1536), bn);
87} 99}
88 100
101BIGNUM *
102BN_get_rfc3526_prime_1536(BIGNUM *bn)
103{
104 return get_rfc3526_prime_1536(bn);
105}
106
89/* "2048-bit MODP Group" from RFC3526, Section 3. 107/* "2048-bit MODP Group" from RFC3526, Section 3.
90 * 108 *
91 * The prime is: 2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 } 109 * The prime is: 2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 }
@@ -123,6 +141,12 @@ get_rfc3526_prime_2048(BIGNUM *bn)
123 return BN_bin2bn(RFC3526_PRIME_2048, sizeof(RFC3526_PRIME_2048), bn); 141 return BN_bin2bn(RFC3526_PRIME_2048, sizeof(RFC3526_PRIME_2048), bn);
124} 142}
125 143
144BIGNUM *
145BN_get_rfc3526_prime_2048(BIGNUM *bn)
146{
147 return get_rfc3526_prime_2048(bn);
148}
149
126/* "3072-bit MODP Group" from RFC3526, Section 4. 150/* "3072-bit MODP Group" from RFC3526, Section 4.
127 * 151 *
128 * The prime is: 2^3072 - 2^3008 - 1 + 2^64 * { [2^2942 pi] + 1690314 } 152 * The prime is: 2^3072 - 2^3008 - 1 + 2^64 * { [2^2942 pi] + 1690314 }
@@ -170,6 +194,12 @@ get_rfc3526_prime_3072(BIGNUM *bn)
170 return BN_bin2bn(RFC3526_PRIME_3072, sizeof(RFC3526_PRIME_3072), bn); 194 return BN_bin2bn(RFC3526_PRIME_3072, sizeof(RFC3526_PRIME_3072), bn);
171} 195}
172 196
197BIGNUM *
198BN_get_rfc3526_prime_3072(BIGNUM *bn)
199{
200 return get_rfc3526_prime_3072(bn);
201}
202
173/* "4096-bit MODP Group" from RFC3526, Section 5. 203/* "4096-bit MODP Group" from RFC3526, Section 5.
174 * 204 *
175 * The prime is: 2^4096 - 2^4032 - 1 + 2^64 * { [2^3966 pi] + 240904 } 205 * The prime is: 2^4096 - 2^4032 - 1 + 2^64 * { [2^3966 pi] + 240904 }
@@ -228,6 +258,12 @@ get_rfc3526_prime_4096(BIGNUM *bn)
228 return BN_bin2bn(RFC3526_PRIME_4096, sizeof(RFC3526_PRIME_4096), bn); 258 return BN_bin2bn(RFC3526_PRIME_4096, sizeof(RFC3526_PRIME_4096), bn);
229} 259}
230 260
261BIGNUM *
262BN_get_rfc3526_prime_4096(BIGNUM *bn)
263{
264 return get_rfc3526_prime_4096(bn);
265}
266
231/* "6144-bit MODP Group" from RFC3526, Section 6. 267/* "6144-bit MODP Group" from RFC3526, Section 6.
232 * 268 *
233 * The prime is: 2^6144 - 2^6080 - 1 + 2^64 * { [2^6014 pi] + 929484 } 269 * The prime is: 2^6144 - 2^6080 - 1 + 2^64 * { [2^6014 pi] + 929484 }
@@ -307,6 +343,12 @@ get_rfc3526_prime_6144(BIGNUM *bn)
307 return BN_bin2bn(RFC3526_PRIME_6144, sizeof(RFC3526_PRIME_6144), bn); 343 return BN_bin2bn(RFC3526_PRIME_6144, sizeof(RFC3526_PRIME_6144), bn);
308} 344}
309 345
346BIGNUM *
347BN_get_rfc3526_prime_6144(BIGNUM *bn)
348{
349 return get_rfc3526_prime_6144(bn);
350}
351
310/* "8192-bit MODP Group" from RFC3526, Section 7. 352/* "8192-bit MODP Group" from RFC3526, Section 7.
311 * 353 *
312 * The prime is: 2^8192 - 2^8128 - 1 + 2^64 * { [2^8062 pi] + 4743158 } 354 * The prime is: 2^8192 - 2^8128 - 1 + 2^64 * { [2^8062 pi] + 4743158 }
@@ -407,3 +449,9 @@ get_rfc3526_prime_8192(BIGNUM *bn)
407 }; 449 };
408 return BN_bin2bn(RFC3526_PRIME_8192, sizeof(RFC3526_PRIME_8192), bn); 450 return BN_bin2bn(RFC3526_PRIME_8192, sizeof(RFC3526_PRIME_8192), bn);
409} 451}
452
453BIGNUM *
454BN_get_rfc3526_prime_8192(BIGNUM *bn)
455{
456 return get_rfc3526_prime_8192(bn);
457}