Merge pull request #8308 from valeriosetti/issue8052
PKCS12: use one-shot API
This commit is contained in:
commit
3677352631
2 changed files with 8 additions and 21 deletions
|
@ -169,6 +169,7 @@ int mbedtls_pkcs12_pbe_ext(mbedtls_asn1_buf *pbe_params, int mode,
|
|||
unsigned char iv[16];
|
||||
const mbedtls_cipher_info_t *cipher_info;
|
||||
mbedtls_cipher_context_t cipher_ctx;
|
||||
size_t iv_len = 0;
|
||||
size_t finish_olen = 0;
|
||||
unsigned int padlen = 0;
|
||||
|
||||
|
@ -196,9 +197,10 @@ int mbedtls_pkcs12_pbe_ext(mbedtls_asn1_buf *pbe_params, int mode,
|
|||
}
|
||||
}
|
||||
|
||||
iv_len = mbedtls_cipher_info_get_iv_size(cipher_info);
|
||||
if ((ret = pkcs12_pbe_derive_key_iv(pbe_params, md_type, pwd, pwdlen,
|
||||
key, keylen,
|
||||
iv, mbedtls_cipher_info_get_iv_size(cipher_info))) != 0) {
|
||||
iv, iv_len)) != 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -208,9 +210,8 @@ int mbedtls_pkcs12_pbe_ext(mbedtls_asn1_buf *pbe_params, int mode,
|
|||
goto exit;
|
||||
}
|
||||
|
||||
if ((ret =
|
||||
mbedtls_cipher_setkey(&cipher_ctx, key, 8 * keylen,
|
||||
(mbedtls_operation_t) mode)) != 0) {
|
||||
if ((ret = mbedtls_cipher_setkey(&cipher_ctx, key, 8 * keylen,
|
||||
(mbedtls_operation_t) mode)) != 0) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
|
@ -233,22 +234,8 @@ int mbedtls_pkcs12_pbe_ext(mbedtls_asn1_buf *pbe_params, int mode,
|
|||
}
|
||||
#endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */
|
||||
|
||||
if ((ret =
|
||||
mbedtls_cipher_set_iv(&cipher_ctx, iv,
|
||||
mbedtls_cipher_info_get_iv_size(cipher_info))) != 0) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if ((ret = mbedtls_cipher_reset(&cipher_ctx)) != 0) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if ((ret = mbedtls_cipher_update(&cipher_ctx, data, len,
|
||||
output, output_len)) != 0) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if ((ret = mbedtls_cipher_finish(&cipher_ctx, output + (*output_len), &finish_olen)) != 0) {
|
||||
ret = mbedtls_cipher_crypt(&cipher_ctx, iv, iv_len, data, len, output, &finish_olen);
|
||||
if (ret == MBEDTLS_ERR_CIPHER_INVALID_PADDING) {
|
||||
ret = MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
PKCS#12 derive key : MD5: Zero length password and hash
|
||||
PKCS#12 derive key: MD5: Zero length password and hash
|
||||
depends_on:MBEDTLS_MD_CAN_MD5
|
||||
pkcs12_derive_key:MBEDTLS_MD_MD5:48:"":USE_GIVEN_INPUT:"":USE_GIVEN_INPUT:3:"6afdcbd5ebf943272134f1c3de2dc11b6afdcbd5ebf943272134f1c3de2dc11b6afdcbd5ebf943272134f1c3de2dc11b":0
|
||||
|
||||
|
|
Loading…
Reference in a new issue