pkcs12.h File Reference

PKCS#12 Personal Information Exchange Syntax. More...

`#include "config.h"`
`#include "md.h"`
`#include "cipher.h"`
`#include "asn1.h"`
`#include <stddef.h>`
Include dependency graph for pkcs12.h:

Go to the source code of this file.

## Macros

#define | MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA -0x1F80
#define | MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE -0x1F00
#define | MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT -0x1E80
#define | MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH -0x1E00
#define | MBEDTLS_PKCS12_DERIVE_KEY 1
#define | MBEDTLS_PKCS12_DERIVE_IV 2
#define | MBEDTLS_PKCS12_DERIVE_MAC_KEY 3
#define | MBEDTLS_PKCS12_PBE_DECRYPT 0
#define | MBEDTLS_PKCS12_PBE_ENCRYPT 1

## 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. 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 *input, size_t len, unsigned char *output)
| PKCS12 Password Based function (encryption / decryption) for cipher-based and mbedtls_md-based PBE's. More...
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". More...

## Detailed Description

PKCS#12 Personal Information Exchange Syntax.

Definition in file pkcs12.h.

## Macro Definition Documentation

## MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA

#define MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA -0x1F80

Bad input parameters to function.

Definition at line 39 of file pkcs12.h.

## MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE

#define MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE -0x1F00

Feature not available, e.g. unsupported encryption scheme.

Definition at line 40 of file pkcs12.h.

## MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH

#define MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH -0x1E00

Given private key password does not allow for correct decryption.

Definition at line 42 of file pkcs12.h.

## MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT

#define MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT -0x1E80

PBE ASN.1 data not as expected.

Definition at line 41 of file pkcs12.h.

## MBEDTLS_PKCS12_DERIVE_IV

#define MBEDTLS_PKCS12_DERIVE_IV 2

initialization vector

Definition at line 45 of file pkcs12.h.

## MBEDTLS_PKCS12_DERIVE_KEY

#define MBEDTLS_PKCS12_DERIVE_KEY 1

encryption/decryption key

Definition at line 44 of file pkcs12.h.

## MBEDTLS_PKCS12_DERIVE_MAC_KEY

#define MBEDTLS_PKCS12_DERIVE_MAC_KEY 3

integrity / MAC key

Definition at line 46 of file pkcs12.h.

## MBEDTLS_PKCS12_PBE_DECRYPT

#define MBEDTLS_PKCS12_PBE_DECRYPT 0

Definition at line 48 of file pkcs12.h.

## MBEDTLS_PKCS12_PBE_ENCRYPT

#define MBEDTLS_PKCS12_PBE_ENCRYPT 1

Definition at line 49 of file pkcs12.h.

## 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

  data | buffer to store the derived data in
  datalen | length to fill
  pwd | password to use (may be NULL if no password is used)
  pwdlen | length of the password (may be 0)
  salt | salt buffer to use
  saltlen | length of the salt
  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.

## 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_params | an ASN1 buffer containing the pkcs-12PbeParams structure
  mode | either MBEDTLS_PKCS12_PBE_ENCRYPT or MBEDTLS_PKCS12_PBE_DECRYPT
  cipher_type | the cipher used
  md_type | the mbedtls_md used
  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

## 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_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