OpenPACE
Data Fields
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_CTXka_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: