diff options
Diffstat (limited to 'src/lib/libcrypto/rsa/rsa_oaep.c')
-rw-r--r-- | src/lib/libcrypto/rsa/rsa_oaep.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_oaep.c b/src/lib/libcrypto/rsa/rsa_oaep.c index 18d307ea9e..553d212ebe 100644 --- a/src/lib/libcrypto/rsa/rsa_oaep.c +++ b/src/lib/libcrypto/rsa/rsa_oaep.c | |||
@@ -56,7 +56,8 @@ int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, | |||
56 | seed = to + 1; | 56 | seed = to + 1; |
57 | db = to + SHA_DIGEST_LENGTH + 1; | 57 | db = to + SHA_DIGEST_LENGTH + 1; |
58 | 58 | ||
59 | EVP_Digest((void *)param, plen, db, NULL, EVP_sha1(), NULL); | 59 | if (!EVP_Digest((void *)param, plen, db, NULL, EVP_sha1(), NULL)) |
60 | return 0; | ||
60 | memset(db + SHA_DIGEST_LENGTH, 0, | 61 | memset(db + SHA_DIGEST_LENGTH, 0, |
61 | emlen - flen - 2 * SHA_DIGEST_LENGTH - 1); | 62 | emlen - flen - 2 * SHA_DIGEST_LENGTH - 1); |
62 | db[emlen - flen - SHA_DIGEST_LENGTH - 1] = 0x01; | 63 | db[emlen - flen - SHA_DIGEST_LENGTH - 1] = 0x01; |
@@ -145,7 +146,8 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, | |||
145 | for (i = 0; i < dblen; i++) | 146 | for (i = 0; i < dblen; i++) |
146 | db[i] ^= maskeddb[i]; | 147 | db[i] ^= maskeddb[i]; |
147 | 148 | ||
148 | EVP_Digest((void *)param, plen, phash, NULL, EVP_sha1(), NULL); | 149 | if (!EVP_Digest((void *)param, plen, phash, NULL, EVP_sha1(), NULL)) |
150 | return -1; | ||
149 | 151 | ||
150 | if (memcmp(db, phash, SHA_DIGEST_LENGTH) != 0 || bad) | 152 | if (memcmp(db, phash, SHA_DIGEST_LENGTH) != 0 || bad) |
151 | goto decoding_err; | 153 | goto decoding_err; |