2005-02-10 10:08:27 +00:00
|
|
|
/*
|
|
|
|
* cards.h: Registered card types for sc_card_t->type
|
|
|
|
*
|
|
|
|
* Copyright (C) 2005 Antti Tapaninen <aet@cc.hut.fi>
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _OPENSC_CARDS_H
|
|
|
|
#define _OPENSC_CARDS_H
|
|
|
|
|
2010-03-04 08:14:36 +00:00
|
|
|
#include "libopensc/types.h"
|
2005-02-10 10:08:27 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
enum {
|
|
|
|
/* Generic card types */
|
|
|
|
SC_CARD_TYPE_UNKNOWN = -1,
|
|
|
|
SC_CARD_TYPE_GENERIC_BASE = 0,
|
|
|
|
SC_CARD_TYPE_GENERIC,
|
|
|
|
|
|
|
|
/* Cards without registered type, yet */
|
|
|
|
SC_CARD_TYPE_TEST_BASE = 500,
|
|
|
|
|
2006-01-23 21:43:01 +00:00
|
|
|
/* cardos driver */
|
|
|
|
SC_CARD_TYPE_CARDOS_BASE = 1000,
|
|
|
|
SC_CARD_TYPE_CARDOS_GENERIC,
|
2006-06-17 12:24:04 +00:00
|
|
|
SC_CARD_TYPE_CARDOS_M4_01,
|
2005-12-28 19:38:55 +00:00
|
|
|
SC_CARD_TYPE_CARDOS_M4_2,
|
2006-01-26 19:02:02 +00:00
|
|
|
SC_CARD_TYPE_CARDOS_M4_3,
|
2007-12-19 09:58:29 +00:00
|
|
|
SC_CARD_TYPE_CARDOS_M4_2B, /* 4.2b is after 4.3b */
|
|
|
|
SC_CARD_TYPE_CARDOS_M4_2C,
|
2009-10-03 10:13:45 +00:00
|
|
|
SC_CARD_TYPE_CARDOS_CIE_V1, /* Italian CIE (eID) v1 */
|
2010-04-21 14:38:23 +00:00
|
|
|
SC_CARD_TYPE_CARDOS_M4_4,
|
2012-12-02 18:21:08 +00:00
|
|
|
SC_CARD_TYPE_CARDOS_V5_0,
|
Various CardOS V5_* improvements
Treat CardOS V5_0 and V5_3 cards differently then older versions:
Use card->dvr_data as a pointer to cardos_data_t to store private driver
data to pass internally, especially between set security environment
and the crypto operations. Sc_get_encoding_flags sets sec_flags from
algo_info->flags in pkcs15-sec.c and it passed to decipher.
Some cards when doing a decipher may drop leading 00 byte when
returning data from RSA_RAW decipher. Add leading byte(s) as needed.
Get Cryptographic Mechanism Reference from Key Reference:
Key reference byte appears to be a 4 bit Cryptographic Mechanism Reference
and a 4 bit key reference.
This is only done if key reference & 0xF0 != 0 i.e. default Cryptographic
mechanism reference is 0. which appears to be the case for RSA RAW.
PKCS1 appears to be 0x10 and ECDSA 0x30
See iso 7816-4 table 55 for DST:
84 Reference of a private key
95 Usage qualifier byte - Table 57 - 40 looks OK
80 Cryptographic mechanism reference and referes to section 9.2
The 4 bit key reference limits card to 16 keys. In future this may not work,
but we can derive a Cryptographic Mechanism Reference from what OpenSC
thinks the card needs to do. Only know RSA RAW, PKCS1 and ECDSA.
ECDSA code has not been tested, but expected to work.
Allow setting CardOS type and flags from opensc.conf using card_atr stanza
This is a fallback if newer cards are added or older cards have problems
giving us time to make need changes in next release.
It will help in identifying what flags are needed for each card.
As user can report what combination of flags work for them. They do this by
adding to opensc.conf with something like this. (Change the ATR to your card's ATR):
card_atr 3b:d2:18:00:81:31:fe:58:c9:03:16 {
driver = "cardos";
# type is decimal from cards.h:
# SC_CARD_TYPE_CARDOS_V5_0 is 1009
# SC_CARD_TYPE_CARDOS_V5_3 is 1010
type = 1010;
# flags is hex from opensc.h:
#define SC_ALGORITHM_ONBOARD_KEY_GEN 0x80000000
#define SC_ALGORITHM_NEED_USAGE 0x40000000
#define SC_ALGORITHM_RSA_RAW 0x00000001 /* RSA_RAW is PAD_NONE */
#define SC_ALGORITHM_RSA_PAD_NONE 0x00000001
#define SC_ALGORITHM_RSA_PAD_PKCS1 0x00000002 /* PKCS#1 v1.5 padding */
#define SC_ALGORITHM_RSA_PAD_ANSI 0x00000004
#define SC_ALGORITHM_RSA_PAD_ISO9796 0x00000008
#define SC_ALGORITHM_RSA_PAD_PSS 0x00000010 /* PKCS#1 v2.0 PSS */
#define SC_ALGORITHM_RSA_PAD_OAEP 0x00000020 /* PKCS#1 v2.0 OAEP */
#define SC_ALGORITHM_RSA_HASH_NONE 0x00000100 /* only applies to PKCS1 padding */
# example: SC_ALGORITHM_ONBOARD_KEY_GEN | SC_ALGORITHM_RSA_HASH_NONE | SC_ALGORITHM_RSA_RAW
flags = 80000101;
#example: SC_ALGORITHM_ONBOARD_KEY_GEN | SC_ALGORITHM_RSA_PAD_PKCS1
flags = 80000002;
}
For V5_0 and v5_3 cards, use sc_get_max_send_size and sc_get_max_recv_size
which takes care or reader sizes even on Windows where SCardControl can not get PART_10 sizes.
(commit eddea6f3c2d3dafc2c09eba6695c745a61b5186f on Windows forces reader sizes to 255, 256
in reader-pcsc.c if not already set. It should not do this, but leave that up to card drivers.)
pkcs15-cardos.c added:
New file, pkcs15-cardos.c, added as emulation only for CardOS
V5_0 and V5_3 cards.
sc_pkcs15_bind_internal is called to get tokenInfo as CardOS
cards are substantially PKCS15 cards. But some V5_* cards have
errors in the tokenInfo, Which are corrected.
For older CardOS cards, card-cardos.c will create all the
card->algorithms.
Pkcs15-cardos.c will check for card->algorithms and if there
are none, it will do the following:
SC_CARDCTL_CARDOS_PASS_ALGO_FLAGS is called twice. First to get
the flags as set by user via opensc.conf card_atr or default
flags set by the card driver. Then after determining from the
tokenInfo what algorithms the card can support, the new flags
are passed to card_cardos.c to create card->algorithms.
https://atos.net/wp-content/uploads/2018/11/CT_181026_LPM_CardOS_V5-3_Multifunctionality_FS_en3_web.pdf
says card supports: "“Command chaining” in accordance with ISO/IEC 7816-4"
To take advantage of this with older readers, max_send_size and max_recv_size
is now based on minimum of reader limits and "data_field_length" from card.
This should allow card to work in older readers not capable of extended APDU.
So far current cards we have seen do no appear to support “Command chaining”.
Changes to be committed:
modified: src/libopensc/Makefile.am
modified: src/libopensc/Makefile.mak
modified: src/libopensc/card-cardos.c
modified: src/libopensc/cardctl.h
modified: src/libopensc/cards.h
new file: src/libopensc/pkcs15-cardos.c
modified: src/libopensc/pkcs15-syn.c
modified: src/libopensc/pkcs15-syn.h
2020-04-17 16:36:48 +00:00
|
|
|
SC_CARD_TYPE_CARDOS_V5_3,
|
2005-02-10 10:08:27 +00:00
|
|
|
|
|
|
|
/* flex/cyberflex drivers */
|
|
|
|
SC_CARD_TYPE_FLEX_BASE = 2000,
|
|
|
|
SC_CARD_TYPE_FLEX_GENERIC,
|
|
|
|
SC_CARD_TYPE_FLEX_CRYPTO,
|
|
|
|
SC_CARD_TYPE_FLEX_MULTI,
|
|
|
|
SC_CARD_TYPE_FLEX_CYBER,
|
|
|
|
|
|
|
|
/* gpk driver */
|
|
|
|
SC_CARD_TYPE_GPK_BASE = 3000,
|
|
|
|
SC_CARD_TYPE_GPK_GENERIC,
|
|
|
|
SC_CARD_TYPE_GPK_GPK4000_su256 = 3040,
|
|
|
|
SC_CARD_TYPE_GPK_GPK4000_s,
|
|
|
|
SC_CARD_TYPE_GPK_GPK4000_sp,
|
|
|
|
SC_CARD_TYPE_GPK_GPK4000_sdo,
|
|
|
|
SC_CARD_TYPE_GPK_GPK8000 = 3080,
|
|
|
|
SC_CARD_TYPE_GPK_GPK8000_8K,
|
|
|
|
SC_CARD_TYPE_GPK_GPK8000_16K,
|
|
|
|
SC_CARD_TYPE_GPK_GPK16000 = 3160,
|
|
|
|
|
|
|
|
/* miocos driver */
|
|
|
|
SC_CARD_TYPE_MIOCOS_BASE = 4000,
|
|
|
|
SC_CARD_TYPE_MIOCOS_GENERIC,
|
|
|
|
|
|
|
|
/* mcrd driver */
|
|
|
|
SC_CARD_TYPE_MCRD_BASE = 5000,
|
|
|
|
SC_CARD_TYPE_MCRD_GENERIC,
|
2010-11-29 14:22:01 +00:00
|
|
|
SC_CARD_TYPE_MCRD_ESTEID_V30,
|
2005-02-10 10:08:27 +00:00
|
|
|
|
|
|
|
/* setcos driver */
|
|
|
|
SC_CARD_TYPE_SETCOS_BASE = 6000,
|
|
|
|
SC_CARD_TYPE_SETCOS_GENERIC,
|
|
|
|
SC_CARD_TYPE_SETCOS_PKI,
|
|
|
|
SC_CARD_TYPE_SETCOS_FINEID,
|
2005-02-24 11:11:12 +00:00
|
|
|
SC_CARD_TYPE_SETCOS_FINEID_V2,
|
2006-03-09 20:35:19 +00:00
|
|
|
SC_CARD_TYPE_SETCOS_NIDEL,
|
2011-06-15 11:10:37 +00:00
|
|
|
SC_CARD_TYPE_SETCOS_FINEID_V2_2048,
|
2005-04-04 09:30:54 +00:00
|
|
|
SC_CARD_TYPE_SETCOS_44 = 6100,
|
2006-12-08 14:56:09 +00:00
|
|
|
SC_CARD_TYPE_SETCOS_EID_V2_0,
|
|
|
|
SC_CARD_TYPE_SETCOS_EID_V2_1,
|
2005-02-10 10:08:27 +00:00
|
|
|
|
|
|
|
/* starcos driver */
|
|
|
|
SC_CARD_TYPE_STARCOS_BASE = 7000,
|
|
|
|
SC_CARD_TYPE_STARCOS_GENERIC,
|
2015-01-19 17:04:12 +00:00
|
|
|
SC_CARD_TYPE_STARCOS_V3_4,
|
2018-02-26 08:30:38 +00:00
|
|
|
SC_CARD_TYPE_STARCOS_V3_5,
|
2005-02-10 10:08:27 +00:00
|
|
|
|
|
|
|
/* tcos driver */
|
|
|
|
SC_CARD_TYPE_TCOS_BASE = 8000,
|
|
|
|
SC_CARD_TYPE_TCOS_GENERIC,
|
2007-12-28 18:18:57 +00:00
|
|
|
SC_CARD_TYPE_TCOS_V2,
|
|
|
|
SC_CARD_TYPE_TCOS_V3,
|
2005-02-10 10:08:27 +00:00
|
|
|
|
|
|
|
/* openpgp driver */
|
|
|
|
SC_CARD_TYPE_OPENPGP_BASE = 9000,
|
2011-01-09 10:17:16 +00:00
|
|
|
SC_CARD_TYPE_OPENPGP_V1,
|
|
|
|
SC_CARD_TYPE_OPENPGP_V2,
|
2018-01-05 10:08:14 +00:00
|
|
|
SC_CARD_TYPE_OPENPGP_V3,
|
2013-02-20 04:54:30 +00:00
|
|
|
SC_CARD_TYPE_OPENPGP_GNUK,
|
2005-02-10 10:08:27 +00:00
|
|
|
|
|
|
|
/* jcop driver */
|
|
|
|
SC_CARD_TYPE_JCOP_BASE = 10000,
|
|
|
|
SC_CARD_TYPE_JCOP_GENERIC,
|
|
|
|
|
|
|
|
/* oberthur driver */
|
|
|
|
SC_CARD_TYPE_OBERTHUR_BASE = 11000,
|
|
|
|
SC_CARD_TYPE_OBERTHUR_GENERIC,
|
|
|
|
SC_CARD_TYPE_OBERTHUR_32K,
|
|
|
|
SC_CARD_TYPE_OBERTHUR_32K_BIO,
|
|
|
|
SC_CARD_TYPE_OBERTHUR_64K,
|
2010-12-30 14:40:28 +00:00
|
|
|
/* Oberthur 'COSMO v7' with applet 'AuthentIC v3.2' */
|
2012-06-04 09:18:23 +00:00
|
|
|
SC_CARD_TYPE_OBERTHUR_AUTHENTIC_3_2 = 11100,
|
2005-02-10 10:08:27 +00:00
|
|
|
|
|
|
|
/* belpic driver */
|
|
|
|
SC_CARD_TYPE_BELPIC_BASE = 12000,
|
|
|
|
SC_CARD_TYPE_BELPIC_GENERIC,
|
2005-10-24 21:58:35 +00:00
|
|
|
SC_CARD_TYPE_BELPIC_EID,
|
|
|
|
|
|
|
|
/* incrypto34 driver */
|
|
|
|
SC_CARD_TYPE_INCRYPTO34_BASE = 13000,
|
2006-02-14 22:09:10 +00:00
|
|
|
SC_CARD_TYPE_INCRYPTO34_GENERIC,
|
|
|
|
|
|
|
|
/* PIV-II type cards */
|
|
|
|
SC_CARD_TYPE_PIV_II_BASE = 14000,
|
2006-06-07 08:33:37 +00:00
|
|
|
SC_CARD_TYPE_PIV_II_GENERIC,
|
2016-07-04 19:44:29 +00:00
|
|
|
SC_CARD_TYPE_PIV_II_HIST,
|
|
|
|
SC_CARD_TYPE_PIV_II_NEO,
|
|
|
|
SC_CARD_TYPE_PIV_II_YUBIKEY4,
|
2018-12-05 20:12:07 +00:00
|
|
|
SC_CARD_TYPE_PIV_II_GI_DE_DUAL_CAC,
|
2018-03-31 13:46:29 +00:00
|
|
|
SC_CARD_TYPE_PIV_II_GI_DE,
|
2018-12-05 20:12:07 +00:00
|
|
|
SC_CARD_TYPE_PIV_II_GEMALTO_DUAL_CAC,
|
|
|
|
SC_CARD_TYPE_PIV_II_GEMALTO,
|
|
|
|
SC_CARD_TYPE_PIV_II_OBERTHUR_DUAL_CAC,
|
|
|
|
SC_CARD_TYPE_PIV_II_OBERTHUR,
|
|
|
|
SC_CARD_TYPE_PIV_II_PIVKEY,
|
2012-06-04 09:18:23 +00:00
|
|
|
|
2010-06-10 14:49:54 +00:00
|
|
|
/* MuscleApplet */
|
2006-06-07 08:33:37 +00:00
|
|
|
SC_CARD_TYPE_MUSCLE_BASE = 15000,
|
2007-03-13 23:10:54 +00:00
|
|
|
SC_CARD_TYPE_MUSCLE_GENERIC,
|
2010-06-10 14:49:54 +00:00
|
|
|
SC_CARD_TYPE_MUSCLE_V1,
|
2012-06-04 09:18:23 +00:00
|
|
|
SC_CARD_TYPE_MUSCLE_V2,
|
2009-03-25 13:55:25 +00:00
|
|
|
SC_CARD_TYPE_MUSCLE_ETOKEN_72K,
|
2009-07-02 13:59:38 +00:00
|
|
|
SC_CARD_TYPE_MUSCLE_JCOP241,
|
2015-05-15 19:18:39 +00:00
|
|
|
SC_CARD_TYPE_MUSCLE_JCOP242R2_NO_EXT_APDU,
|
2007-03-13 23:10:54 +00:00
|
|
|
|
2007-07-03 20:44:34 +00:00
|
|
|
/* Athena APCOS cards */
|
|
|
|
SC_CARD_TYPE_ASEPCOS_BASE = 17000,
|
|
|
|
SC_CARD_TYPE_ASEPCOS_GENERIC,
|
2007-07-17 20:01:55 +00:00
|
|
|
SC_CARD_TYPE_ASEPCOS_JAVA,
|
|
|
|
|
|
|
|
/* TUBITAK UEKAE cards */
|
|
|
|
SC_CARD_TYPE_AKIS_BASE = 18000,
|
2008-08-20 05:41:20 +00:00
|
|
|
SC_CARD_TYPE_AKIS_GENERIC,
|
|
|
|
|
|
|
|
/* EnterSafe cards */
|
|
|
|
SC_CARD_TYPE_ENTERSAFE_BASE = 19000,
|
|
|
|
SC_CARD_TYPE_ENTERSAFE_3K,
|
2009-04-02 10:32:02 +00:00
|
|
|
SC_CARD_TYPE_ENTERSAFE_FTCOS_PK_01C,
|
2012-06-04 09:52:50 +00:00
|
|
|
SC_CARD_TYPE_ENTERSAFE_FTCOS_EPASS2003,
|
2015-11-30 15:24:05 +00:00
|
|
|
SC_CARD_TYPE_ENTERSAFE_EJAVA_PK_01C,
|
|
|
|
SC_CARD_TYPE_ENTERSAFE_EJAVA_PK_01C_T0,
|
|
|
|
SC_CARD_TYPE_ENTERSAFE_EJAVA_H10CR_PK_01C_T1,
|
|
|
|
SC_CARD_TYPE_ENTERSAFE_EJAVA_D11CR_PK_01C_T1,
|
|
|
|
SC_CARD_TYPE_ENTERSAFE_EJAVA_C21C_PK_01C_T1,
|
|
|
|
SC_CARD_TYPE_ENTERSAFE_EJAVA_A22CR_PK_01C_T1,
|
|
|
|
SC_CARD_TYPE_ENTERSAFE_EJAVA_A40CR_PK_01C_T1,
|
2009-10-03 07:48:28 +00:00
|
|
|
|
|
|
|
/* MyEID cards */
|
|
|
|
SC_CARD_TYPE_MYEID_BASE = 20000,
|
|
|
|
SC_CARD_TYPE_MYEID_GENERIC,
|
2019-06-06 09:32:40 +00:00
|
|
|
SC_CARD_TYPE_MYEID_OSEID,
|
2012-06-04 09:18:23 +00:00
|
|
|
|
2009-10-03 14:41:14 +00:00
|
|
|
/* GemsafeV1 cards */
|
|
|
|
SC_CARD_TYPE_GEMSAFEV1_BASE = 21000,
|
|
|
|
SC_CARD_TYPE_GEMSAFEV1_GENERIC,
|
|
|
|
SC_CARD_TYPE_GEMSAFEV1_PTEID,
|
2013-12-02 11:50:51 +00:00
|
|
|
SC_CARD_TYPE_GEMSAFEV1_SEEID,
|
2009-10-03 14:41:14 +00:00
|
|
|
|
2010-08-16 00:56:27 +00:00
|
|
|
/* Italian CNS cards */
|
|
|
|
SC_CARD_TYPE_ITACNS_BASE = 23000,
|
|
|
|
SC_CARD_TYPE_ITACNS_GENERIC,
|
|
|
|
SC_CARD_TYPE_ITACNS_CNS,
|
|
|
|
SC_CARD_TYPE_ITACNS_CIE_V2,
|
|
|
|
SC_CARD_TYPE_ITACNS_CIE_V1,
|
|
|
|
|
2010-02-06 10:56:29 +00:00
|
|
|
/* Generic JavaCards without supported applet */
|
2010-08-16 00:56:27 +00:00
|
|
|
SC_CARD_TYPE_JAVACARD_BASE = 24000,
|
2010-02-06 10:56:29 +00:00
|
|
|
SC_CARD_TYPE_JAVACARD,
|
2010-08-16 00:56:27 +00:00
|
|
|
|
2011-02-16 10:59:10 +00:00
|
|
|
/* IAS/ECC cards */
|
|
|
|
SC_CARD_TYPE_IASECC_BASE = 25000,
|
|
|
|
SC_CARD_TYPE_IASECC_GEMALTO,
|
|
|
|
SC_CARD_TYPE_IASECC_OBERTHUR,
|
|
|
|
SC_CARD_TYPE_IASECC_SAGEM,
|
2012-07-31 12:57:00 +00:00
|
|
|
SC_CARD_TYPE_IASECC_AMOS,
|
2015-03-27 16:11:12 +00:00
|
|
|
SC_CARD_TYPE_IASECC_MI,
|
2017-08-21 23:13:18 +00:00
|
|
|
SC_CARD_TYPE_IASECC_MI2,
|
2021-02-01 11:10:41 +00:00
|
|
|
SC_CARD_TYPE_IASECC_CPX,
|
|
|
|
SC_CARD_TYPE_IASECC_CPXCL,
|
2012-07-31 12:57:00 +00:00
|
|
|
|
|
|
|
/* SmartCard-HSM */
|
|
|
|
SC_CARD_TYPE_SC_HSM = 26000,
|
2017-03-23 15:45:31 +00:00
|
|
|
SC_CARD_TYPE_SC_HSM_SOC = 26001,
|
2017-06-30 12:52:08 +00:00
|
|
|
SC_CARD_TYPE_SC_HSM_GOID = 26002,
|
2013-06-13 15:12:07 +00:00
|
|
|
|
|
|
|
/* Spanish DNIe card */
|
|
|
|
SC_CARD_TYPE_DNIE_BASE = 27000,
|
|
|
|
SC_CARD_TYPE_DNIE_BLANK, /* ATR LC byte: 00 */
|
|
|
|
SC_CARD_TYPE_DNIE_ADMIN, /* ATR LC byte: 01 */
|
|
|
|
SC_CARD_TYPE_DNIE_USER, /* ATR LC byte: 03 */
|
2014-08-28 12:29:16 +00:00
|
|
|
SC_CARD_TYPE_DNIE_TERMINATED, /* ATR LC byte: 0F */
|
|
|
|
|
|
|
|
/* JavaCards with isoApplet */
|
|
|
|
SC_CARD_TYPE_ISO_APPLET_BASE = 28000,
|
2015-05-02 10:37:50 +00:00
|
|
|
SC_CARD_TYPE_ISO_APPLET_GENERIC,
|
|
|
|
|
|
|
|
/* Masktech cards */
|
|
|
|
SC_CARD_TYPE_MASKTECH_BASE = 29000,
|
2015-12-27 12:06:16 +00:00
|
|
|
SC_CARD_TYPE_MASKTECH_GENERIC,
|
|
|
|
|
|
|
|
/* GIDS cards */
|
|
|
|
SC_CARD_TYPE_GIDS_BASE = 30000,
|
|
|
|
SC_CARD_TYPE_GIDS_GENERIC,
|
|
|
|
SC_CARD_TYPE_GIDS_V1,
|
|
|
|
SC_CARD_TYPE_GIDS_V2,
|
2016-06-16 07:35:54 +00:00
|
|
|
|
|
|
|
/* JPKI cards */
|
|
|
|
SC_CARD_TYPE_JPKI_BASE = 31000,
|
2016-10-14 08:45:56 +00:00
|
|
|
|
2019-08-12 13:26:18 +00:00
|
|
|
/* Coolkey cards */
|
2016-10-14 08:45:56 +00:00
|
|
|
SC_CARD_TYPE_COOLKEY_BASE = 32000,
|
|
|
|
SC_CARD_TYPE_COOLKEY_GENERIC,
|
2017-02-27 10:05:12 +00:00
|
|
|
|
|
|
|
/* CAC cards */
|
|
|
|
SC_CARD_TYPE_CAC_BASE = 33000,
|
|
|
|
SC_CARD_TYPE_CAC_GENERIC,
|
|
|
|
SC_CARD_TYPE_CAC_I,
|
|
|
|
SC_CARD_TYPE_CAC_II,
|
2020-10-06 18:34:53 +00:00
|
|
|
SC_CARD_TYPE_CAC_ALT_HID,
|
2016-11-16 10:15:22 +00:00
|
|
|
|
|
|
|
/* nPA cards */
|
|
|
|
SC_CARD_TYPE_NPA = 34000,
|
|
|
|
SC_CARD_TYPE_NPA_TEST,
|
|
|
|
SC_CARD_TYPE_NPA_ONLINE,
|
2019-03-07 18:47:50 +00:00
|
|
|
|
|
|
|
/* EstEID cards */
|
|
|
|
SC_CARD_TYPE_ESTEID = 35000,
|
|
|
|
SC_CARD_TYPE_ESTEID_2018,
|
2019-07-01 11:15:10 +00:00
|
|
|
|
|
|
|
/* Rutoken cards */
|
|
|
|
SC_CARD_TYPE_RUTOKENS = 36000,
|
|
|
|
SC_CARD_TYPE_RUTOKEN_ECP,
|
|
|
|
SC_CARD_TYPE_RUTOKEN_ECP_SC,
|
2019-07-22 11:05:32 +00:00
|
|
|
SC_CARD_TYPE_RUTOKEN_LITE,
|
|
|
|
SC_CARD_TYPE_RUTOKEN_LITE_SC,
|
2019-08-12 13:26:18 +00:00
|
|
|
|
|
|
|
/* IDPrime cards */
|
|
|
|
SC_CARD_TYPE_IDPRIME_BASE = 37000,
|
2019-09-30 16:06:45 +00:00
|
|
|
SC_CARD_TYPE_IDPRIME_V1,
|
|
|
|
SC_CARD_TYPE_IDPRIME_V2,
|
2021-01-14 16:20:04 +00:00
|
|
|
SC_CARD_TYPE_IDPRIME_V3,
|
2021-05-06 14:53:06 +00:00
|
|
|
SC_CARD_TYPE_IDPRIME_V4,
|
2019-08-12 13:26:18 +00:00
|
|
|
SC_CARD_TYPE_IDPRIME_GENERIC,
|
2020-05-19 12:05:13 +00:00
|
|
|
|
|
|
|
/* eDO cards */
|
|
|
|
SC_CARD_TYPE_EDO = 38000
|
2005-02-10 10:08:27 +00:00
|
|
|
};
|
|
|
|
|
2009-01-21 13:19:18 +00:00
|
|
|
extern sc_card_driver_t *sc_get_default_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_cardos_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_cryptoflex_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_cyberflex_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_gpk_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_gemsafeV1_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_miocos_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_mcrd_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_setcos_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_starcos_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_tcos_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_openpgp_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_jcop_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_oberthur_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_belpic_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_atrust_acos_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_incrypto34_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_piv_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_muscle_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_asepcos_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_akis_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_entersafe_driver(void);
|
2009-06-24 15:26:37 +00:00
|
|
|
extern sc_card_driver_t *sc_get_rutoken_driver(void);
|
|
|
|
extern sc_card_driver_t *sc_get_rtecp_driver(void);
|
2009-09-12 11:46:00 +00:00
|
|
|
extern sc_card_driver_t *sc_get_westcos_driver(void);
|
2009-10-03 07:48:28 +00:00
|
|
|
extern sc_card_driver_t *sc_get_myeid_driver(void);
|
2012-07-31 12:57:00 +00:00
|
|
|
extern sc_card_driver_t *sc_get_sc_hsm_driver(void);
|
2010-08-16 00:56:27 +00:00
|
|
|
extern sc_card_driver_t *sc_get_itacns_driver(void);
|
2011-02-05 16:37:11 +00:00
|
|
|
extern sc_card_driver_t *sc_get_authentic_driver(void);
|
2011-03-23 14:56:22 +00:00
|
|
|
extern sc_card_driver_t *sc_get_iasecc_driver(void);
|
2012-06-04 09:52:50 +00:00
|
|
|
extern sc_card_driver_t *sc_get_epass2003_driver(void);
|
2013-06-13 15:12:07 +00:00
|
|
|
extern sc_card_driver_t *sc_get_dnie_driver(void);
|
2014-08-28 12:29:16 +00:00
|
|
|
extern sc_card_driver_t *sc_get_isoApplet_driver(void);
|
2015-05-02 10:37:50 +00:00
|
|
|
extern sc_card_driver_t *sc_get_masktech_driver(void);
|
2015-12-27 12:06:16 +00:00
|
|
|
extern sc_card_driver_t *sc_get_gids_driver(void);
|
2016-06-16 07:35:54 +00:00
|
|
|
extern sc_card_driver_t *sc_get_jpki_driver(void);
|
2016-10-14 08:45:56 +00:00
|
|
|
extern sc_card_driver_t *sc_get_coolkey_driver(void);
|
2017-02-27 10:05:12 +00:00
|
|
|
extern sc_card_driver_t *sc_get_cac_driver(void);
|
2018-10-30 16:27:28 +00:00
|
|
|
extern sc_card_driver_t *sc_get_cac1_driver(void);
|
2016-11-16 10:15:22 +00:00
|
|
|
extern sc_card_driver_t *sc_get_npa_driver(void);
|
2019-03-07 18:47:50 +00:00
|
|
|
extern sc_card_driver_t *sc_get_esteid2018_driver(void);
|
2019-08-12 13:26:18 +00:00
|
|
|
extern sc_card_driver_t *sc_get_idprime_driver(void);
|
2020-05-19 12:05:13 +00:00
|
|
|
extern sc_card_driver_t *sc_get_edo_driver(void);
|
2009-01-21 13:19:18 +00:00
|
|
|
|
2005-02-10 10:08:27 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* _OPENSC_CARDS_H */
|