Blame src/cac.h

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