|
Packit |
cfa437 |
/*
|
|
Packit |
cfa437 |
* defines the entry point for the cac card. Only used by cac.c and
|
|
Packit |
cfa437 |
* vcard_emul_type.c
|
|
Packit |
cfa437 |
*
|
|
Packit |
cfa437 |
* This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
|
|
Packit |
cfa437 |
* See the COPYING file in the top-level directory.
|
|
Packit |
cfa437 |
*/
|
|
Packit |
cfa437 |
#ifndef CAC_H
|
|
Packit |
cfa437 |
#define CAC_H 1
|
|
Packit |
cfa437 |
|
|
Packit |
cfa437 |
#include "vcard.h"
|
|
Packit |
cfa437 |
#include "vreader.h"
|
|
Packit |
cfa437 |
|
|
Packit |
cfa437 |
#define CAC_GET_PROPERTIES 0x56
|
|
Packit |
cfa437 |
#define CAC_GET_ACR 0x4c
|
|
Packit |
cfa437 |
#define CAC_READ_BUFFER 0x52 /* CACv2 */
|
|
Packit |
cfa437 |
#define CAC_UPDATE_BUFFER 0x58
|
|
Packit |
cfa437 |
#define CAC_SIGN_DECRYPT 0x42
|
|
Packit |
cfa437 |
#define CAC_GET_CERTIFICATE 0x36 /* CACv1 */
|
|
Packit |
cfa437 |
|
|
Packit |
cfa437 |
/* read file TAGs for CACv2 */
|
|
Packit |
cfa437 |
#define CAC_FILE_TAG 0x01
|
|
Packit |
cfa437 |
#define CAC_FILE_VALUE 0x02
|
|
Packit |
cfa437 |
|
|
Packit |
cfa437 |
/* PKI applet tags */
|
|
Packit |
cfa437 |
#define CAC_PKI_TAG_CERTIFICATE 0x70
|
|
Packit |
cfa437 |
#define CAC_PKI_TAG_CERTINFO 0x71
|
|
Packit |
cfa437 |
#define CAC_PKI_TAG_MSCUID 0x72
|
|
Packit |
cfa437 |
#define CAC_PKI_TAG_ERROR_DETECTION_CODE 0xFE
|
|
Packit |
cfa437 |
|
|
Packit |
cfa437 |
/* ACA applet tags */
|
|
Packit |
cfa437 |
#define CAC_ACR_NUM_ENTRIES 0xA1
|
|
Packit |
cfa437 |
#define CAC_ACR_ENTRY 0xA0
|
|
Packit |
cfa437 |
#define CAC_ACR_NUM_APPLETS 0x81
|
|
Packit |
cfa437 |
#define CAC_ACR_APPLET_ACR 0x80
|
|
Packit |
cfa437 |
#define CAC_ACR_OBJECT_ACR 0x82
|
|
Packit |
cfa437 |
#define CAC_ACR_AMP_NUM_ENTRIES 0x91
|
|
Packit |
cfa437 |
#define CAC_ACR_AMP_ENTRY 0x90
|
|
Packit |
cfa437 |
#define CAC_ACR_AID 0x92
|
|
Packit |
cfa437 |
#define CAC_ACR_SERVICE_NUM_ENTRIES 0x94
|
|
Packit |
cfa437 |
#define CAC_ACR_SERVICE_ENTRY 0x93
|
|
Packit |
cfa437 |
|
|
Packit |
cfa437 |
/* CCC applet tags */
|
|
Packit |
cfa437 |
#define CAC_CCC_CARD_IDENTIFIER 0xF0
|
|
Packit |
cfa437 |
#define CAC_CCC_CAPABILITY_CONTAINER_VERSION 0xF1
|
|
Packit |
cfa437 |
#define CAC_CCC_CAPABILITY_GRAMMAR_VERSION 0xF2
|
|
Packit |
cfa437 |
#define CAC_CCC_APPLICATION_CARDURL 0xF3
|
|
Packit |
cfa437 |
#define CAC_CCC_PKCS15 0xF4
|
|
Packit |
cfa437 |
#define CAC_CCC_REGISTERED_DATA_MODEL_NUMBER 0xF5
|
|
Packit |
cfa437 |
#define CAC_CCC_ACCESS_CONTROL_RULE_TABLE 0xF6
|
|
Packit |
cfa437 |
#define CAC_CCC_CARD_APDUS 0xF7
|
|
Packit |
cfa437 |
#define CAC_CCC_REDIRECTION_TAG 0xFA
|
|
Packit |
cfa437 |
#define CAC_CCC_CAPABILITY_TUPLES 0xFB
|
|
Packit |
cfa437 |
#define CAC_CCC_STATUS_TUPLES 0xFC
|
|
Packit |
cfa437 |
#define CAC_CCC_NEXT_CCC 0xFD
|
|
Packit |
cfa437 |
#define CAC_CCC_ERROR_DETECTION_CODE 0xFE
|
|
Packit |
cfa437 |
|
|
Packit |
cfa437 |
/* Applet properties tags */
|
|
Packit |
cfa437 |
#define CAC_PROPERTIES_APPLET_INFORMATION 0x01
|
|
Packit |
cfa437 |
#define CAC_PROPERTIES_NUMBER_OBJECTS 0x40
|
|
Packit |
cfa437 |
#define CAC_PROPERTIES_OBJECT_ID 0x41
|
|
Packit |
cfa437 |
#define CAC_PROPERTIES_BUFFER_PROPERTIES 0x42
|
|
Packit |
cfa437 |
#define CAC_PROPERTIES_PKI_PROPERTIES 0x43
|
|
Packit |
cfa437 |
#define CAC_PROPERTIES_TV_OBJECT 0x50
|
|
Packit |
cfa437 |
#define CAC_PROPERTIES_PKI_OBJECT 0x51
|
|
Packit |
cfa437 |
|
|
Packit |
cfa437 |
/* Buffer formats */
|
|
Packit |
cfa437 |
#define CAC_FORMAT_SIMPLETLV 1
|
|
Packit |
cfa437 |
#define CAC_FORMAT_EXTENDED 2
|
|
Packit |
cfa437 |
|
|
Packit |
cfa437 |
|
|
Packit |
cfa437 |
/*
|
|
Packit |
cfa437 |
* Initialize the cac card. This is the only public function in this file. All
|
|
Packit |
cfa437 |
* the rest are connected through function pointers.
|
|
Packit |
cfa437 |
*/
|
|
Packit |
cfa437 |
VCardStatus cac_card_init(VReader *reader, VCard *card, const char *params,
|
|
Packit |
cfa437 |
unsigned char * const *cert, int cert_len[],
|
|
Packit |
cfa437 |
VCardKey *key[] /* adopt the keys*/,
|
|
Packit |
cfa437 |
int cert_count);
|
|
Packit |
cfa437 |
#endif
|