RetroArch
Macros | Functions
pkcs12.c File Reference
#include "mbedtls/config.h"
#include "mbedtls/pkcs12.h"
#include "mbedtls/asn1.h"
#include "mbedtls/cipher.h"
#include <string.h>
#include "mbedtls/arc4.h"
#include "mbedtls/des.h"
#include "arc4_alt.h"
Include dependency graph for pkcs12.c:

Macros

#define PKCS12_MAX_PWDLEN   128
 

Functions

static int pkcs12_parse_pbe_params (mbedtls_asn1_buf *params, mbedtls_asn1_buf *salt, int *iterations)
 
static int pkcs12_pbe_derive_key_iv (mbedtls_asn1_buf *pbe_params, mbedtls_md_type_t md_type, const unsigned char *pwd, size_t pwdlen, unsigned char *key, size_t keylen, unsigned char *iv, size_t ivlen)
 
int mbedtls_pkcs12_pbe_sha1_rc4_128 (mbedtls_asn1_buf *pbe_params, int mode, const unsigned char *pwd, size_t pwdlen, const unsigned char *data, size_t len, unsigned char *output)
 PKCS12 Password Based function (encryption / decryption) for pbeWithSHAAnd128BitRC4. More...
 
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 *data, size_t len, unsigned char *output)
 PKCS12 Password Based function (encryption / decryption) for cipher-based and mbedtls_md-based PBE's. More...
 
static void pkcs12_fill_buffer (unsigned char *data, size_t data_len, const unsigned char *filler, size_t fill_len)
 
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 md_type, int id, int iterations)
 The PKCS#12 derivation function uses a password and a salt to produce pseudo-random bits for a particular "purpose". More...
 

Macro Definition Documentation

◆ PKCS12_MAX_PWDLEN

#define PKCS12_MAX_PWDLEN   128

Function Documentation

◆ mbedtls_pkcs12_derivation()

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 nitialization vector or an integrity key.

Parameters
databuffer to store the derived data in
datalenlength to fill
pwdpassword to use (may be NULL if no password is used)
pwdlenlength of the password (may be 0)
saltsalt buffer to use
saltlenlength of the salt
mbedtls_mdmbedtls_md type to use during the derivation
idid that describes the purpose (can be MBEDTLS_PKCS12_DERIVE_KEY, MBEDTLS_PKCS12_DERIVE_IV or MBEDTLS_PKCS12_DERIVE_MAC_KEY)
iterationsnumber of iterations
Returns
0 if successful, or a MD, BIGNUM type error.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mbedtls_pkcs12_pbe()

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_paramsan ASN1 buffer containing the pkcs-12PbeParams structure
modeeither MBEDTLS_PKCS12_PBE_ENCRYPT or MBEDTLS_PKCS12_PBE_DECRYPT
cipher_typethe cipher used
md_typethe mbedtls_md used
pwdthe password used (may be NULL if no password is used)
pwdlenlength of the password (may be 0)
inputthe input data
lendata length
outputthe output buffer
Returns
0 if successful, or a MBEDTLS_ERR_XXX code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mbedtls_pkcs12_pbe_sha1_rc4_128()

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_paramsan ASN1 buffer containing the pkcs-12PbeParams structure
modeeither MBEDTLS_PKCS12_PBE_ENCRYPT or MBEDTLS_PKCS12_PBE_DECRYPT
pwdthe password used (may be NULL if no password is used)
pwdlenlength of the password (may be 0)
inputthe input data
lendata length
outputthe output buffer
Returns
0 if successful, or a MBEDTLS_ERR_XXX code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pkcs12_fill_buffer()

static void pkcs12_fill_buffer ( unsigned char *  data,
size_t  data_len,
const unsigned char *  filler,
size_t  fill_len 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pkcs12_parse_pbe_params()

static int pkcs12_parse_pbe_params ( mbedtls_asn1_buf params,
mbedtls_asn1_buf salt,
int *  iterations 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pkcs12_pbe_derive_key_iv()

static int pkcs12_pbe_derive_key_iv ( mbedtls_asn1_buf pbe_params,
mbedtls_md_type_t  md_type,
const unsigned char *  pwd,
size_t  pwdlen,
unsigned char *  key,
size_t  keylen,
unsigned char *  iv,
size_t  ivlen 
)
static
Here is the call graph for this function:
Here is the caller graph for this function: