pace_ctx Struct Reference

Context for the Password Authenticated Connection Establishment protocol. More...

`#include <eac.h>`

## Data Fields

int | protocol
| Identifier of the protocol's OID specifying the exact PACE parameters to use. More...
unsigned char | version
| (currently unused) Version of the PACE protocol, MUST be 1 or 2
int | id
| identifier of this PACE context
BUF_MEM *(* | map_generate_key )(const struct pace_ctx *ctx, BN_CTX *bn_ctx)
| Points to the implementation of a specific mapping. More...
int(* | map_compute_key )(struct pace_ctx *ctx, const BUF_MEM *s, const BUF_MEM *in, BN_CTX *bn_ctx)
| Points to the implementation of a specific mapping. More...
EVP_PKEY * | static_key
| PICC's static domain parameters.
KA_CTX * | ka_ctx
| Key agreement object used with the ephemeral domain parameters.
BUF_MEM * | nonce
| PICC's decrypted challenge generated in PACE step 1.
BUF_MEM * | my_eph_pubkey
| The own ephemeral public key generated in PACe step 3b.

## Detailed Description

Context for the Password Authenticated Connection Establishment protocol.

Definition at line 146 of file eac.h.

## Field Documentation

## map_compute_key

int(* pace_ctx::map_compute_key) (struct pace_ctx *ctx, const BUF_MEM *s, const BUF_MEM *in, BN_CTX *bn_ctx)

Points to the implementation of a specific mapping.

See also
  PACE_STEP3A_map_generator()

Definition at line 184 of file eac.h.

## map_generate_key

BUF_MEM*(* pace_ctx::map_generate_key) (const struct pace_ctx *ctx, BN_CTX *bn_ctx)

Points to the implementation of a specific mapping.

See also
  PACE_STEP3A_generate_mapping_data()

Definition at line 180 of file eac.h.

## protocol

int pace_ctx::protocol

Identifier of the protocol's OID specifying the exact PACE parameters to use.

The OID of the `PACEInfo` structure in the `EF.CardAccess` is used, because it is more specific than the OID contained in the (optional) `PaceDomainParameterInfo` structures.

Accepts the following values:

- `NID_id_PACE_DH_GM_3DES_CBC_CBC`
- `NID_id_PACE_DH_GM_AES_CBC_CMAC_128`
- `NID_id_PACE_DH_GM_AES_CBC_CMAC_192`
- `NID_id_PACE_DH_GM_AES_CBC_CMAC_256`
- `NID_id_PACE_ECDH_GM_3DES_CBC_CBC`
- `NID_id_PACE_ECDH_GM_AES_CBC_CMAC_128`
- `NID_id_PACE_ECDH_GM_AES_CBC_CMAC_192`
- `NID_id_PACE_ECDH_GM_AES_CBC_CMAC_256`
- `NID_id_PACE_DH_IM_3DES_CBC_CBC`
- `NID_id_PACE_DH_IM_AES_CBC_CMAC_128`
- `NID_id_PACE_DH_IM_AES_CBC_CMAC_192`
- `NID_id_PACE_DH_IM_AES_CBC_CMAC_256`
- `NID_id_PACE_ECDH_IM_3DES_CBC_CBC`
- `NID_id_PACE_ECDH_IM_AES_CBC_CMAC_128`
- `NID_id_PACE_ECDH_IM_AES_CBC_CMAC_192`
- `NID_id_PACE_ECDH_IM_AES_CBC_CMAC_256`

Definition at line 172 of file eac.h.

The documentation for this struct was generated from the following file:

- eac/eac.h