diff options
-rw-r--r-- | src/lib/libcrypto/bn/bn.h | 6 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_lib.c | 14 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/bn/bn.h | 6 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/bn/bn_lib.c | 14 |
4 files changed, 32 insertions, 8 deletions
diff --git a/src/lib/libcrypto/bn/bn.h b/src/lib/libcrypto/bn/bn.h index 7d11a049d0..4ae6a8195d 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.30 2016/03/04 16:06:38 doug Exp $ */ | 1 | /* $OpenBSD: bn.h,v 1.31 2016/03/04 16:23:30 deraadt 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 | * |
@@ -619,10 +619,10 @@ const BIGNUM *BN_get0_nist_prime_521(void); | |||
619 | 619 | ||
620 | /* library internal functions */ | 620 | /* library internal functions */ |
621 | 621 | ||
622 | #define bn_expand(a,bits) ((((((bits+BN_BITS2-1))/BN_BITS2)) <= (a)->dmax)?\ | ||
623 | (a):bn_expand2((a),(bits+BN_BITS2-1)/BN_BITS2)) | ||
624 | #define bn_wexpand(a,words) (((words) <= (a)->dmax)?(a):bn_expand2((a),(words))) | 622 | #define bn_wexpand(a,words) (((words) <= (a)->dmax)?(a):bn_expand2((a),(words))) |
625 | BIGNUM *bn_expand2(BIGNUM *a, int words); | 623 | BIGNUM *bn_expand2(BIGNUM *a, int words); |
624 | BIGNUM *bn_expand(BIGNUM *a, int bits); | ||
625 | |||
626 | #ifndef OPENSSL_NO_DEPRECATED | 626 | #ifndef OPENSSL_NO_DEPRECATED |
627 | BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ | 627 | BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ |
628 | #endif | 628 | #endif |
diff --git a/src/lib/libcrypto/bn/bn_lib.c b/src/lib/libcrypto/bn/bn_lib.c index 7cc76c1e85..311ec2044d 100644 --- a/src/lib/libcrypto/bn/bn_lib.c +++ b/src/lib/libcrypto/bn/bn_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_lib.c,v 1.34 2015/09/10 15:56:25 jsing Exp $ */ | 1 | /* $OpenBSD: bn_lib.c,v 1.35 2016/03/04 16:23:30 deraadt Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -550,6 +550,18 @@ BN_get_word(const BIGNUM *a) | |||
550 | return 0; | 550 | return 0; |
551 | } | 551 | } |
552 | 552 | ||
553 | BIGNUM * | ||
554 | bn_expand(BIGNUM *a, int bits) | ||
555 | { | ||
556 | if (bits > (INT_MAX - BN_BITS2 + 1)) | ||
557 | return (NULL); | ||
558 | |||
559 | if (((bits + BN_BITS2 - 1) / BN_BITS2) <= a->dmax) | ||
560 | return (a); | ||
561 | |||
562 | return bn_expand2(a, (bits + BN_BITS2 - 1) / BN_BITS2); | ||
563 | } | ||
564 | |||
553 | int | 565 | int |
554 | BN_set_word(BIGNUM *a, BN_ULONG w) | 566 | BN_set_word(BIGNUM *a, BN_ULONG w) |
555 | { | 567 | { |
diff --git a/src/lib/libssl/src/crypto/bn/bn.h b/src/lib/libssl/src/crypto/bn/bn.h index 7d11a049d0..4ae6a8195d 100644 --- a/src/lib/libssl/src/crypto/bn/bn.h +++ b/src/lib/libssl/src/crypto/bn/bn.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn.h,v 1.30 2016/03/04 16:06:38 doug Exp $ */ | 1 | /* $OpenBSD: bn.h,v 1.31 2016/03/04 16:23:30 deraadt 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 | * |
@@ -619,10 +619,10 @@ const BIGNUM *BN_get0_nist_prime_521(void); | |||
619 | 619 | ||
620 | /* library internal functions */ | 620 | /* library internal functions */ |
621 | 621 | ||
622 | #define bn_expand(a,bits) ((((((bits+BN_BITS2-1))/BN_BITS2)) <= (a)->dmax)?\ | ||
623 | (a):bn_expand2((a),(bits+BN_BITS2-1)/BN_BITS2)) | ||
624 | #define bn_wexpand(a,words) (((words) <= (a)->dmax)?(a):bn_expand2((a),(words))) | 622 | #define bn_wexpand(a,words) (((words) <= (a)->dmax)?(a):bn_expand2((a),(words))) |
625 | BIGNUM *bn_expand2(BIGNUM *a, int words); | 623 | BIGNUM *bn_expand2(BIGNUM *a, int words); |
624 | BIGNUM *bn_expand(BIGNUM *a, int bits); | ||
625 | |||
626 | #ifndef OPENSSL_NO_DEPRECATED | 626 | #ifndef OPENSSL_NO_DEPRECATED |
627 | BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ | 627 | BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ |
628 | #endif | 628 | #endif |
diff --git a/src/lib/libssl/src/crypto/bn/bn_lib.c b/src/lib/libssl/src/crypto/bn/bn_lib.c index 7cc76c1e85..311ec2044d 100644 --- a/src/lib/libssl/src/crypto/bn/bn_lib.c +++ b/src/lib/libssl/src/crypto/bn/bn_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_lib.c,v 1.34 2015/09/10 15:56:25 jsing Exp $ */ | 1 | /* $OpenBSD: bn_lib.c,v 1.35 2016/03/04 16:23:30 deraadt Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -550,6 +550,18 @@ BN_get_word(const BIGNUM *a) | |||
550 | return 0; | 550 | return 0; |
551 | } | 551 | } |
552 | 552 | ||
553 | BIGNUM * | ||
554 | bn_expand(BIGNUM *a, int bits) | ||
555 | { | ||
556 | if (bits > (INT_MAX - BN_BITS2 + 1)) | ||
557 | return (NULL); | ||
558 | |||
559 | if (((bits + BN_BITS2 - 1) / BN_BITS2) <= a->dmax) | ||
560 | return (a); | ||
561 | |||
562 | return bn_expand2(a, (bits + BN_BITS2 - 1) / BN_BITS2); | ||
563 | } | ||
564 | |||
553 | int | 565 | int |
554 | BN_set_word(BIGNUM *a, BN_ULONG w) | 566 | BN_set_word(BIGNUM *a, BN_ULONG w) |
555 | { | 567 | { |