forked from bettse/passy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsecure_messaging.h
More file actions
47 lines (32 loc) · 984 Bytes
/
secure_messaging.h
File metadata and controls
47 lines (32 loc) · 984 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#pragma once
#include <stdint.h>
#include <stdlib.h>
#include <mbedtls/des.h>
#include <mbedtls/sha1.h>
#include <furi.h>
#include <lib/toolbox/bit_buffer.h>
#include "passy_common.h"
#define SECURE_MESSAGING_MAX_SIZE 128
typedef struct {
uint8_t KENC[16];
uint8_t KMAC[16];
uint8_t rndICC[8];
uint8_t rndIFD[8];
uint8_t Kifd[16];
uint8_t Kicc[16];
uint8_t KSenc[16];
uint8_t KSmac[16];
uint8_t SSC[8];
} SecureMessaging;
SecureMessaging* secure_messaging_alloc(
uint8_t* passport_number,
uint8_t* date_of_birth,
uint8_t* date_of_expiry);
void secure_messaging_free(SecureMessaging* secure_messaging);
void secure_messaging_calculate_session_keys(SecureMessaging* secure_messaging);
void secure_messaging_wrap_apdu(
SecureMessaging* secure_messaging,
uint8_t* message,
size_t message_len,
BitBuffer* tx_buffer);
void secure_messaging_unwrap_rapdu(SecureMessaging* secure_messaging, BitBuffer* rx_buffer);