]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - client/emv/emv_pk.h
2 * libopenemv - a library to work with EMV family of smart cards
3 * Copyright (C) 2015 Dmitry Eremin-Solenikov
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
25 unsigned char serial
[3];
26 unsigned char pan
[10];
27 unsigned char hash_algo
;
28 unsigned char pk_algo
;
29 unsigned char hash
[20];
33 unsigned char *modulus
;
37 #define EXPIRE(yy, mm, dd) 0x ## yy ## mm ## dd
39 struct emv_pk
*emv_pk_parse_pk(char *buf
);
40 struct emv_pk
*emv_pk_new(size_t modlen
, size_t explen
);
41 void emv_pk_free(struct emv_pk
*pk
);
42 char *emv_pk_dump_pk(const struct emv_pk
*pk
);
43 bool emv_pk_verify(const struct emv_pk
*pk
);
45 char *emv_pk_get_ca_pk_file(const char *dirname
, const unsigned char *rid
, unsigned char idx
);
46 char *emv_pk_get_ca_pk_rid_file(const char *dirname
, const unsigned char *rid
);
47 struct emv_pk
*emv_pk_get_ca_pk(const unsigned char *rid
, unsigned char idx
);