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

## id

int pace_ctx::id

identifier of this PACE context

Definition at line 176 of file eac.h.

## ka_ctx

KA_CTX* pace_ctx::ka_ctx

Key agreement object used with the ephemeral domain parameters.

Definition at line 190 of file eac.h.

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

## my_eph_pubkey

BUF_MEM* pace_ctx::my_eph_pubkey

The own ephemeral public key generated in PACe step 3b.

Definition at line 194 of file eac.h.

## nonce

BUF_MEM* pace_ctx::nonce

PICC's decrypted challenge generated in PACE step 1.

Definition at line 192 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.

## static_key

EVP_PKEY* pace_ctx::static_key

PICC's static domain parameters.

Definition at line 188 of file eac.h.

## version

unsigned char pace_ctx::version

(currently unused) Version of the PACE protocol, MUST be 1 or 2

Definition at line 174 of file eac.h.

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

- eac/eac.h