| 1 | /* |
| 2 | * libopenemv - a library to work with EMV family of smart cards |
| 3 | * Copyright (C) 2015 Dmitry Eremin-Solenikov |
| 4 | * |
| 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. |
| 9 | * |
| 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. |
| 14 | */ |
| 15 | |
| 16 | #ifndef EMV_PKI_PRIV_H |
| 17 | #define EMV_PKI_PRIV_H |
| 18 | |
| 19 | #include "crypto.h" |
| 20 | #include "emv_pk.h" |
| 21 | #include "tlv.h" |
| 22 | |
| 23 | #include <stddef.h> |
| 24 | |
| 25 | struct emv_pk *emv_pki_make_ca(const struct crypto_pk *cp, |
| 26 | const unsigned char *rid, unsigned char index, |
| 27 | unsigned int expire, enum crypto_algo_hash hash_algo); |
| 28 | struct tlvdb *emv_pki_sign_issuer_cert(const struct crypto_pk *cp, struct emv_pk *issuer_pk); |
| 29 | struct tlvdb *emv_pki_sign_icc_cert(const struct crypto_pk *cp, struct emv_pk *icc_pk, const struct tlv *sda_tlv); |
| 30 | struct tlvdb *emv_pki_sign_icc_pe_cert(const struct crypto_pk *cp, struct emv_pk *icc_pe_pk); |
| 31 | |
| 32 | struct tlvdb *emv_pki_sign_dac(const struct crypto_pk *cp, const struct tlv *dac_tlv, const struct tlv *sda_tlv); |
| 33 | struct tlvdb *emv_pki_sign_idn(const struct crypto_pk *cp, const struct tlv *idn_tlv, const struct tlv *dyn_tlv); |
| 34 | |
| 35 | #endif |