Go to the documentation of this file.
59 #include <openssl/bn.h>
60 #include <openssl/buffer.h>
162 const BUF_MEM * enc_nonce);
245 const BUF_MEM * token);
Interface for Extended Access Control.
int PACE_STEP3A_map_generator(const EAC_CTX *ctx, const BUF_MEM *in)
Map to the ephemeral domain parameters.
void PACE_SEC_clear_free(PACE_SEC *s)
Free a PACE secret.
BUF_MEM * PACE_STEP3B_generate_ephemeral_key(EAC_CTX *ctx)
Generate a keypair for key agreement.
BUF_MEM * PACE_STEP3A_generate_mapping_data(const EAC_CTX *ctx)
Generate a mapping data to perform the mapping to ephemeral domain parameters.
int PACE_STEP3B_compute_shared_secret(const EAC_CTX *ctx, const BUF_MEM *in)
Compute the shared secret for key agreement.
@ PACE_CAN
CAN is the Card access number printed on the card.
BUF_MEM * encoded
Encoded secret.
int PACE_SEC_print_private(BIO *out, const PACE_SEC *sec, int indent)
Print PACE_SEC object including private secret.
s_type
Type of the secret.
@ PACE_MRZ
MRZ is the Machine Readable Zone, printed on the card, encoding the personal information of the user.
int PACE_STEP3C_derive_keys(const EAC_CTX *ctx)
Derives encryption and authentication keys.
Context for the Extended Access Control protocol.
PACE_SEC * PACE_SEC_new(const char *sec, size_t sec_len, enum s_type type)
Create and initialize a new PACE secret.
BUF_MEM * PACE_STEP3D_compute_authentication_token(const EAC_CTX *ctx, const BUF_MEM *pub)
Compute the authentication token from domain parameters and public key.
int PACE_STEP3D_verify_authentication_token(const EAC_CTX *ctx, const BUF_MEM *token)
Verifies an authentication token.
struct pace_sec PACE_SEC
Shared secret for PACE.
int PACE_STEP2_dec_nonce(const EAC_CTX *ctx, const PACE_SEC *pi, const BUF_MEM *enc_nonce)
Decrypt the nonce from the other party.
@ PACE_PIN
PIN is the Personal Identification Number, a secret known only to the user and not printed on the car...
BUF_MEM * PACE_STEP1_enc_nonce(const EAC_CTX *ctx, const PACE_SEC *pi)
Generates and encrypts a nonce.
enum s_type type
Type of the secret.
@ PACE_RAW
This type of secret is not defined in BSI TR-03110. We use it as a generic type, so we can use PACE i...
@ PACE_SEC_UNDEF
Undefined type, if nothing else matches.
@ PACE_PUK
PUK is the Personal Unblocking key. This type of secret is used when the card is suspended due to too...