File pkcs12.h
PKCS#12 Personal Information Exchange Syntax.
Defines
-
MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA
Bad input parameters to function.
-
MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE
Feature not available, e.g. unsupported encryption scheme.
-
MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT
PBE ASN.1 data not as expected.
-
MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH
Given private key password does not allow for correct decryption.
-
MBEDTLS_PKCS12_DERIVE_KEY
encryption/decryption key
-
MBEDTLS_PKCS12_DERIVE_IV
initialization vector
-
MBEDTLS_PKCS12_DERIVE_MAC_KEY
integrity / MAC key
-
MBEDTLS_PKCS12_PBE_DECRYPT
-
MBEDTLS_PKCS12_PBE_ENCRYPT
Functions
-
int mbedtls_pkcs12_pbe_sha1_rc4_128(mbedtls_asn1_buf *pbe_params, int mode, const unsigned char *pwd, size_t pwdlen, const unsigned char *input, size_t len, unsigned char *output)
PKCS12 Password Based function (encryption / decryption) for pbeWithSHAAnd128BitRC4.
- Parameters
pbe_params – an ASN1 buffer containing the pkcs-12PbeParams structure
mode – either MBEDTLS_PKCS12_PBE_ENCRYPT or MBEDTLS_PKCS12_PBE_DECRYPT
pwd – the password used (may be NULL if no password is used)
pwdlen – length of the password (may be 0)
input – the input data
len – data length
output – the output buffer
- Returns
0 if successful, or a MBEDTLS_ERR_XXX code
-
int mbedtls_pkcs12_pbe(mbedtls_asn1_buf *pbe_params, int mode, mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type, const unsigned char *pwd, size_t pwdlen, const unsigned char *input, size_t len, unsigned char *output)
PKCS12 Password Based function (encryption / decryption) for cipher-based and mbedtls_md-based PBE’s.
- Parameters
pbe_params – an ASN1 buffer containing the pkcs-12 PbeParams structure
mode – either MBEDTLS_PKCS12_PBE_ENCRYPT or MBEDTLS_PKCS12_PBE_DECRYPT
cipher_type – the cipher used
md_type – the mbedtls_md used
pwd – Latin1-encoded password used. This may only be
NULLwhenpwdlenis 0. No null terminator should be used.pwdlen – length of the password (may be 0)
input – the input data
len – data length
output – the output buffer
- Returns
0 if successful, or a MBEDTLS_ERR_XXX code
-
int mbedtls_pkcs12_derivation(unsigned char *data, size_t datalen, const unsigned char *pwd, size_t pwdlen, const unsigned char *salt, size_t saltlen, mbedtls_md_type_t mbedtls_md, int id, int iterations)
The PKCS#12 derivation function uses a password and a salt to produce pseudo-random bits for a particular “purpose”.
Depending on the given id, this function can produce an encryption/decryption key, an initialization vector or an integrity key.
- Parameters
data – buffer to store the derived data in
datalen – length of buffer to fill
pwd – The password to use. For compliance with PKCS#12 §B.1, this should be a BMPString, i.e. a Unicode string where each character is encoded as 2 bytes in big-endian order, with no byte order mark and with a null terminator (i.e. the last two bytes should be 0x00 0x00).
pwdlen – length of the password (may be 0).
salt – Salt buffer to use This may only be
NULLwhensaltlenis 0.saltlen – length of the salt (may be zero)
mbedtls_md – mbedtls_md type to use during the derivation
id – id that describes the purpose (can be MBEDTLS_PKCS12_DERIVE_KEY, MBEDTLS_PKCS12_DERIVE_IV or MBEDTLS_PKCS12_DERIVE_MAC_KEY)
iterations – number of iterations
- Returns
0 if successful, or a MD, BIGNUM type error.