blob: c76c8eced035cbaa71fc384a031b03bc1ffb835e [file] [log] [blame]
Harald Welte095ac6c2016-03-19 13:39:33 +01001#pragma once
2
3#include <stdint.h>
4#include <stdbool.h>
5
6#include <osmocom/sim/sim.h>
7
8struct apdu_context {
9 struct osim_apdu_cmd_hdr hdr;
10 uint8_t dc[256];
11 uint8_t de[256];
12 uint8_t sw[2];
13 uint8_t apdu_case;
14 struct {
15 uint8_t tot;
16 uint8_t cur;
17 } lc;
18 struct {
19 uint8_t tot;
20 uint8_t cur;
21 } le;
22};
23
24enum apdu_action {
25 APDU_ACT_TX_CAPDU_TO_CARD = 0x0001,
26 APDU_ACT_RX_MORE_CAPDU_FROM_READER = 0x0002,
27};
28
29
30int apdu_segment_in(struct apdu_context *ac, const uint8_t *apdu_buf,
31 unsigned int apdu_len, bool new_apdu);