diff options
Diffstat (limited to 'src/lib/libcrypto/cms/cms_enc.c')
-rw-r--r-- | src/lib/libcrypto/cms/cms_enc.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/lib/libcrypto/cms/cms_enc.c b/src/lib/libcrypto/cms/cms_enc.c index b019d8e8e0..b3a00f67fa 100644 --- a/src/lib/libcrypto/cms/cms_enc.c +++ b/src/lib/libcrypto/cms/cms_enc.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: cms_enc.c,v 1.13 2019/08/10 16:42:20 jsing Exp $ */ | 1 | /* $OpenBSD: cms_enc.c,v 1.14 2019/08/10 18:15:52 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
4 | * project. | 4 | * project. |
@@ -65,7 +65,8 @@ | |||
65 | 65 | ||
66 | /* Return BIO based on EncryptedContentInfo and key */ | 66 | /* Return BIO based on EncryptedContentInfo and key */ |
67 | 67 | ||
68 | BIO *cms_EncryptedContent_init_bio(CMS_EncryptedContentInfo *ec) | 68 | BIO * |
69 | cms_EncryptedContent_init_bio(CMS_EncryptedContentInfo *ec) | ||
69 | { | 70 | { |
70 | BIO *b; | 71 | BIO *b; |
71 | EVP_CIPHER_CTX *ctx; | 72 | EVP_CIPHER_CTX *ctx; |
@@ -207,9 +208,9 @@ BIO *cms_EncryptedContent_init_bio(CMS_EncryptedContentInfo *ec) | |||
207 | return NULL; | 208 | return NULL; |
208 | } | 209 | } |
209 | 210 | ||
210 | int cms_EncryptedContent_init(CMS_EncryptedContentInfo *ec, | 211 | int |
211 | const EVP_CIPHER *cipher, | 212 | cms_EncryptedContent_init(CMS_EncryptedContentInfo *ec, |
212 | const unsigned char *key, size_t keylen) | 213 | const EVP_CIPHER *cipher, const unsigned char *key, size_t keylen) |
213 | { | 214 | { |
214 | ec->cipher = cipher; | 215 | ec->cipher = cipher; |
215 | if (key) { | 216 | if (key) { |
@@ -222,13 +223,16 @@ int cms_EncryptedContent_init(CMS_EncryptedContentInfo *ec, | |||
222 | ec->keylen = keylen; | 223 | ec->keylen = keylen; |
223 | if (cipher) | 224 | if (cipher) |
224 | ec->contentType = OBJ_nid2obj(NID_pkcs7_data); | 225 | ec->contentType = OBJ_nid2obj(NID_pkcs7_data); |
226 | |||
225 | return 1; | 227 | return 1; |
226 | } | 228 | } |
227 | 229 | ||
228 | int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, | 230 | int |
229 | const unsigned char *key, size_t keylen) | 231 | CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, |
232 | const unsigned char *key, size_t keylen) | ||
230 | { | 233 | { |
231 | CMS_EncryptedContentInfo *ec; | 234 | CMS_EncryptedContentInfo *ec; |
235 | |||
232 | if (!key || !keylen) { | 236 | if (!key || !keylen) { |
233 | CMSerr(CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY, CMS_R_NO_KEY); | 237 | CMSerr(CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY, CMS_R_NO_KEY); |
234 | return 0; | 238 | return 0; |
@@ -246,13 +250,17 @@ int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, | |||
246 | return 0; | 250 | return 0; |
247 | } | 251 | } |
248 | ec = cms->d.encryptedData->encryptedContentInfo; | 252 | ec = cms->d.encryptedData->encryptedContentInfo; |
253 | |||
249 | return cms_EncryptedContent_init(ec, ciph, key, keylen); | 254 | return cms_EncryptedContent_init(ec, ciph, key, keylen); |
250 | } | 255 | } |
251 | 256 | ||
252 | BIO *cms_EncryptedData_init_bio(CMS_ContentInfo *cms) | 257 | BIO * |
258 | cms_EncryptedData_init_bio(CMS_ContentInfo *cms) | ||
253 | { | 259 | { |
254 | CMS_EncryptedData *enc = cms->d.encryptedData; | 260 | CMS_EncryptedData *enc = cms->d.encryptedData; |
261 | |||
255 | if (enc->encryptedContentInfo->cipher && enc->unprotectedAttrs) | 262 | if (enc->encryptedContentInfo->cipher && enc->unprotectedAttrs) |
256 | enc->version = 2; | 263 | enc->version = 2; |
264 | |||
257 | return cms_EncryptedContent_init_bio(enc->encryptedContentInfo); | 265 | return cms_EncryptedContent_init_bio(enc->encryptedContentInfo); |
258 | } | 266 | } |