Return back to modifying input parameters in pkcs12_parse_pbe_params
Return back to modifying input parameters in pkcs12_parse_pbe_params
to avoid change in behaviour.
Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
diff --git a/library/pkcs12.c b/library/pkcs12.c
index 8195815..ad0f9e6 100644
--- a/library/pkcs12.c
+++ b/library/pkcs12.c
@@ -47,7 +47,7 @@
mbedtls_asn1_buf *salt, int *iterations)
{
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
- unsigned char *p = params->p;
+ unsigned char **p = ¶ms->p;
const unsigned char *end = params->p + params->len;
/*
@@ -62,18 +62,18 @@
MBEDTLS_ERR_ASN1_UNEXPECTED_TAG);
}
- if ((ret = mbedtls_asn1_get_tag(&p, end, &salt->len, MBEDTLS_ASN1_OCTET_STRING)) != 0) {
+ if ((ret = mbedtls_asn1_get_tag(p, end, &salt->len, MBEDTLS_ASN1_OCTET_STRING)) != 0) {
return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, ret);
}
- salt->p = p;
- p += salt->len;
+ salt->p = *p;
+ *p += salt->len;
- if ((ret = mbedtls_asn1_get_int(&p, end, iterations)) != 0) {
+ if ((ret = mbedtls_asn1_get_int(p, end, iterations)) != 0) {
return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, ret);
}
- if (p != end) {
+ if (*p != end) {
return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT,
MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
}