summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/evp/p5_crpt.c9
-rw-r--r--src/lib/libcrypto/evp/p5_crpt2.c8
-rw-r--r--src/lib/libcrypto/pkcs12/p12_crpt.c9
-rw-r--r--src/lib/libcrypto/pkcs12/p12_mutl.c8
-rw-r--r--src/lib/libcrypto/x509v3/v3_purp.c12
5 files changed, 32 insertions, 14 deletions
diff --git a/src/lib/libcrypto/evp/p5_crpt.c b/src/lib/libcrypto/evp/p5_crpt.c
index 626910fd7a..1d02cbf4a6 100644
--- a/src/lib/libcrypto/evp/p5_crpt.c
+++ b/src/lib/libcrypto/evp/p5_crpt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p5_crpt.c,v 1.16 2015/09/10 15:56:25 jsing Exp $ */ 1/* $OpenBSD: p5_crpt.c,v 1.17 2016/11/08 20:01:06 miod Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -106,8 +106,11 @@ PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *cctx, const char *pass, int passlen,
106 106
107 if (!pbe->iter) 107 if (!pbe->iter)
108 iter = 1; 108 iter = 1;
109 else 109 else if ((iter = ASN1_INTEGER_get(pbe->iter)) <= 0) {
110 iter = ASN1_INTEGER_get (pbe->iter); 110 EVPerr(EVP_F_PKCS5_PBE_KEYIVGEN,
111 EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS);
112 return 0;
113 }
111 salt = pbe->salt->data; 114 salt = pbe->salt->data;
112 saltlen = pbe->salt->length; 115 saltlen = pbe->salt->length;
113 116
diff --git a/src/lib/libcrypto/evp/p5_crpt2.c b/src/lib/libcrypto/evp/p5_crpt2.c
index 632c2c76ce..44e8b331fb 100644
--- a/src/lib/libcrypto/evp/p5_crpt2.c
+++ b/src/lib/libcrypto/evp/p5_crpt2.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p5_crpt2.c,v 1.21 2015/09/10 15:56:25 jsing Exp $ */ 1/* $OpenBSD: p5_crpt2.c,v 1.22 2016/11/08 20:01:06 miod Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -293,7 +293,11 @@ PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
293 /* it seems that its all OK */ 293 /* it seems that its all OK */
294 salt = kdf->salt->value.octet_string->data; 294 salt = kdf->salt->value.octet_string->data;
295 saltlen = kdf->salt->value.octet_string->length; 295 saltlen = kdf->salt->value.octet_string->length;
296 iter = ASN1_INTEGER_get(kdf->iter); 296 if ((iter = ASN1_INTEGER_get(kdf->iter)) <= 0) {
297 EVPerr(EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN,
298 EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS);
299 goto err;
300 }
297 if (!PKCS5_PBKDF2_HMAC(pass, passlen, salt, saltlen, iter, prfmd, 301 if (!PKCS5_PBKDF2_HMAC(pass, passlen, salt, saltlen, iter, prfmd,
298 keylen, key)) 302 keylen, key))
299 goto err; 303 goto err;
diff --git a/src/lib/libcrypto/pkcs12/p12_crpt.c b/src/lib/libcrypto/pkcs12/p12_crpt.c
index 0f215d2fe2..f2d635fc62 100644
--- a/src/lib/libcrypto/pkcs12/p12_crpt.c
+++ b/src/lib/libcrypto/pkcs12/p12_crpt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p12_crpt.c,v 1.12 2015/09/10 15:56:25 jsing Exp $ */ 1/* $OpenBSD: p12_crpt.c,v 1.13 2016/11/08 20:01:06 miod Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -94,8 +94,11 @@ PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
94 94
95 if (!pbe->iter) 95 if (!pbe->iter)
96 iter = 1; 96 iter = 1;
97 else 97 else if ((iter = ASN1_INTEGER_get(pbe->iter)) <= 0) {
98 iter = ASN1_INTEGER_get (pbe->iter); 98 PKCS12err(PKCS12_F_PKCS12_PBE_KEYIVGEN, PKCS12_R_DECODE_ERROR);
99 PBEPARAM_free(pbe);
100 return 0;
101 }
99 salt = pbe->salt->data; 102 salt = pbe->salt->data;
100 saltlen = pbe->salt->length; 103 saltlen = pbe->salt->length;
101 if (!PKCS12_key_gen (pass, passlen, salt, saltlen, PKCS12_KEY_ID, 104 if (!PKCS12_key_gen (pass, passlen, salt, saltlen, PKCS12_KEY_ID,
diff --git a/src/lib/libcrypto/pkcs12/p12_mutl.c b/src/lib/libcrypto/pkcs12/p12_mutl.c
index bf88c78270..56a4964a34 100644
--- a/src/lib/libcrypto/pkcs12/p12_mutl.c
+++ b/src/lib/libcrypto/pkcs12/p12_mutl.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p12_mutl.c,v 1.21 2015/09/30 17:30:15 jsing Exp $ */ 1/* $OpenBSD: p12_mutl.c,v 1.22 2016/11/08 20:01:06 miod Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -89,8 +89,10 @@ PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen,
89 saltlen = p12->mac->salt->length; 89 saltlen = p12->mac->salt->length;
90 if (!p12->mac->iter) 90 if (!p12->mac->iter)
91 iter = 1; 91 iter = 1;
92 else 92 else if ((iter = ASN1_INTEGER_get(p12->mac->iter)) <= 0) {
93 iter = ASN1_INTEGER_get(p12->mac->iter); 93 PKCS12err(PKCS12_F_PKCS12_GEN_MAC, PKCS12_R_DECODE_ERROR);
94 return 0;
95 }
94 if (!(md_type = EVP_get_digestbyobj( 96 if (!(md_type = EVP_get_digestbyobj(
95 p12->mac->dinfo->algor->algorithm))) { 97 p12->mac->dinfo->algor->algorithm))) {
96 PKCS12err(PKCS12_F_PKCS12_GEN_MAC, 98 PKCS12err(PKCS12_F_PKCS12_GEN_MAC,
diff --git a/src/lib/libcrypto/x509v3/v3_purp.c b/src/lib/libcrypto/x509v3/v3_purp.c
index 69a8d05f26..a091a7f425 100644
--- a/src/lib/libcrypto/x509v3/v3_purp.c
+++ b/src/lib/libcrypto/x509v3/v3_purp.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_purp.c,v 1.26 2015/02/10 13:28:17 jsing Exp $ */ 1/* $OpenBSD: v3_purp.c,v 1.27 2016/11/08 20:01:06 miod Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2001. 3 * project 2001.
4 */ 4 */
@@ -450,8 +450,14 @@ x509v3_cache_extensions(X509 *x)
450 x->ex_flags |= EXFLAG_INVALID; 450 x->ex_flags |= EXFLAG_INVALID;
451 } 451 }
452 if (pci->pcPathLengthConstraint) { 452 if (pci->pcPathLengthConstraint) {
453 x->ex_pcpathlen = 453 if (pci->pcPathLengthConstraint->type ==
454 ASN1_INTEGER_get(pci->pcPathLengthConstraint); 454 V_ASN1_NEG_INTEGER) {
455 x->ex_flags |= EXFLAG_INVALID;
456 x->ex_pcpathlen = 0;
457 } else
458 x->ex_pcpathlen =
459 ASN1_INTEGER_get(pci->
460 pcPathLengthConstraint);
455 } else 461 } else
456 x->ex_pcpathlen = -1; 462 x->ex_pcpathlen = -1;
457 PROXY_CERT_INFO_EXTENSION_free(pci); 463 PROXY_CERT_INFO_EXTENSION_free(pci);