summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2022-07-30 11:24:52 +0000
committertb <>2022-07-30 11:24:52 +0000
commit3a08b15902f61c58203130f824e7130bea11d8bb (patch)
tree5fef96ebe830d161849eaa212285b4a9dffd460d /src
parent564e3b57f90beb721bbd5a7f969b056710dea91b (diff)
downloadopenbsd-3a08b15902f61c58203130f824e7130bea11d8bb.tar.gz
openbsd-3a08b15902f61c58203130f824e7130bea11d8bb.tar.bz2
openbsd-3a08b15902f61c58203130f824e7130bea11d8bb.zip
Transform two || chains into individually checked functions
Requested by and ok jsing
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/pkcs12/p12_key.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_key.c b/src/lib/libcrypto/pkcs12/p12_key.c
index f85190aba9..f4013dbbc9 100644
--- a/src/lib/libcrypto/pkcs12/p12_key.c
+++ b/src/lib/libcrypto/pkcs12/p12_key.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p12_key.c,v 1.29 2022/07/24 18:55:22 tb Exp $ */ 1/* $OpenBSD: p12_key.c,v 1.30 2022/07/30 11:24:52 tb 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 */
@@ -142,15 +142,20 @@ PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt,
142 *p++ = pass[i % passlen]; 142 *p++ = pass[i % passlen];
143 143
144 for (;;) { 144 for (;;) {
145 if (!EVP_DigestInit_ex(ctx, md_type, NULL) || 145 if (!EVP_DigestInit_ex(ctx, md_type, NULL))
146 !EVP_DigestUpdate(ctx, D, v) || 146 goto err;
147 !EVP_DigestUpdate(ctx, I, Ilen) || 147 if (!EVP_DigestUpdate(ctx, D, v))
148 !EVP_DigestFinal_ex(ctx, Ai, NULL)) 148 goto err;
149 if (!EVP_DigestUpdate(ctx, I, Ilen))
150 goto err;
151 if (!EVP_DigestFinal_ex(ctx, Ai, NULL))
149 goto err; 152 goto err;
150 for (j = 1; j < iter; j++) { 153 for (j = 1; j < iter; j++) {
151 if (!EVP_DigestInit_ex(ctx, md_type, NULL) || 154 if (!EVP_DigestInit_ex(ctx, md_type, NULL))
152 !EVP_DigestUpdate(ctx, Ai, u) || 155 goto err;
153 !EVP_DigestFinal_ex(ctx, Ai, NULL)) 156 if (!EVP_DigestUpdate(ctx, Ai, u))
157 goto err;
158 if (!EVP_DigestFinal_ex(ctx, Ai, NULL))
154 goto err; 159 goto err;
155 } 160 }
156 memcpy(out, Ai, min(n, u)); 161 memcpy(out, Ai, min(n, u));