diff options
author | Kenny Root <kroot@google.com> | 2015-11-06 23:39:13 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2015-11-06 23:39:13 +0000 |
commit | cf79b9c51a06c935943059d7800e3f15c0e6cb10 (patch) | |
tree | 37655d933cb72bcd7553af526581d3e24e051d7d /src/crypto/pkcs8/pkcs8.c | |
parent | 47e0ae95b75c3d1c435f16ccd959638015c6d9b9 (diff) | |
parent | e99801b603dea8893dcc61c70b327ef2d00b652c (diff) | |
download | external_boringssl-cf79b9c51a06c935943059d7800e3f15c0e6cb10.zip external_boringssl-cf79b9c51a06c935943059d7800e3f15c0e6cb10.tar.gz external_boringssl-cf79b9c51a06c935943059d7800e3f15c0e6cb10.tar.bz2 |
Revert "Revert "external/boringssl: sync with upstream.""
am: e99801b603
* commit 'e99801b603dea8893dcc61c70b327ef2d00b652c':
Revert "Revert "external/boringssl: sync with upstream.""
Diffstat (limited to 'src/crypto/pkcs8/pkcs8.c')
-rw-r--r-- | src/crypto/pkcs8/pkcs8.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/crypto/pkcs8/pkcs8.c b/src/crypto/pkcs8/pkcs8.c index 8067c91..c097881 100644 --- a/src/crypto/pkcs8/pkcs8.c +++ b/src/crypto/pkcs8/pkcs8.c @@ -1176,6 +1176,31 @@ int PKCS12_parse(const PKCS12 *p12, const char *password, EVP_PKEY **out_pkey, return 1; } +int PKCS12_verify_mac(const PKCS12 *p12, const char *password, + int password_len) { + if (password == NULL) { + if (password_len != 0) { + return 0; + } + } else if (password_len != -1 && + (password[password_len] != 0 || + memchr(password, 0, password_len) != NULL)) { + return 0; + } + + EVP_PKEY *pkey = NULL; + X509 *cert = NULL; + if (!PKCS12_parse(p12, password, &pkey, &cert, NULL)) { + ERR_clear_error(); + return 0; + } + + EVP_PKEY_free(pkey); + X509_free(cert); + + return 1; +} + void PKCS12_free(PKCS12 *p12) { OPENSSL_free(p12->ber_bytes); OPENSSL_free(p12); |