23#include "aliro_apdu.h"
32struct aliro_auth0_command {
36 uint8_t reader_eph_pub[65];
38 uint8_t reader_id[32];
42struct aliro_auth1_command {
44 uint8_t reader_sig[64];
48struct aliro_exchange_command {
50 uint16_t reader_status;
58int aliro_apdu_unwrap(
const uint8_t *apdu,
size_t len, uint8_t *ins,
const uint8_t **data,
63int aliro_apdu_append_sw(uint8_t *buf,
size_t *len,
size_t cap, uint16_t sw);
66int aliro_dev_parse_auth0_cmd(
const uint8_t *tlv,
size_t len,
struct aliro_auth0_command *c);
67int aliro_dev_parse_auth1_cmd(
const uint8_t *tlv,
size_t len,
struct aliro_auth1_command *c);
68int aliro_dev_parse_exchange_cmd(
const uint8_t *plain,
size_t len,
69 struct aliro_exchange_command *c);
76int aliro_dev_build_auth0_resp(
const uint8_t device_eph_pub[65],
const uint8_t *cryptogram64,
77 uint8_t *out,
size_t cap,
size_t *out_len);
80int aliro_dev_build_auth1_resp(
const uint8_t device_sig[64],
const uint8_t *device_pub65,
81 uint8_t *out,
size_t cap,
size_t *out_len);
85int aliro_dev_build_exchange_resp(uint16_t error, uint8_t *out,
size_t cap,
size_t *out_len);