1 /* 2 * cards.h: Registered card types for sc_card_t->type 3 * 4 * Copyright (C) 2005 Antti Tapaninen <aet@cc.hut.fi> 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 */ 20 21 #ifndef _OPENSC_CARDS_H 22 #define _OPENSC_CARDS_H 23 24 #include "libopensc/types.h" 25 26 #ifdef __cplusplus 27 extern "C" { 28 #endif 29 30 enum { 31 /* Generic card types */ 32 SC_CARD_TYPE_UNKNOWN = -1, 33 SC_CARD_TYPE_GENERIC_BASE = 0, 34 SC_CARD_TYPE_GENERIC, 35 36 /* Cards without registered type, yet */ 37 SC_CARD_TYPE_TEST_BASE = 500, 38 39 /* cardos driver */ 40 SC_CARD_TYPE_CARDOS_BASE = 1000, 41 SC_CARD_TYPE_CARDOS_GENERIC, 42 SC_CARD_TYPE_CARDOS_M4_01, 43 SC_CARD_TYPE_CARDOS_M4_2, 44 SC_CARD_TYPE_CARDOS_M4_3, 45 SC_CARD_TYPE_CARDOS_M4_2B, /* 4.2b is after 4.3b */ 46 SC_CARD_TYPE_CARDOS_M4_2C, 47 SC_CARD_TYPE_CARDOS_CIE_V1, /* Italian CIE (eID) v1 */ 48 SC_CARD_TYPE_CARDOS_M4_4, 49 SC_CARD_TYPE_CARDOS_V5_0, 50 SC_CARD_TYPE_CARDOS_V5_3, 51 52 /* flex/cyberflex drivers */ 53 SC_CARD_TYPE_FLEX_BASE = 2000, 54 SC_CARD_TYPE_FLEX_GENERIC, 55 SC_CARD_TYPE_FLEX_CRYPTO, 56 SC_CARD_TYPE_FLEX_MULTI, 57 SC_CARD_TYPE_FLEX_CYBER, 58 59 /* gpk driver */ 60 SC_CARD_TYPE_GPK_BASE = 3000, 61 SC_CARD_TYPE_GPK_GENERIC, 62 SC_CARD_TYPE_GPK_GPK4000_su256 = 3040, 63 SC_CARD_TYPE_GPK_GPK4000_s, 64 SC_CARD_TYPE_GPK_GPK4000_sp, 65 SC_CARD_TYPE_GPK_GPK4000_sdo, 66 SC_CARD_TYPE_GPK_GPK8000 = 3080, 67 SC_CARD_TYPE_GPK_GPK8000_8K, 68 SC_CARD_TYPE_GPK_GPK8000_16K, 69 SC_CARD_TYPE_GPK_GPK16000 = 3160, 70 71 /* miocos driver */ 72 SC_CARD_TYPE_MIOCOS_BASE = 4000, 73 SC_CARD_TYPE_MIOCOS_GENERIC, 74 75 /* mcrd driver */ 76 SC_CARD_TYPE_MCRD_BASE = 5000, 77 SC_CARD_TYPE_MCRD_GENERIC, 78 SC_CARD_TYPE_MCRD_ESTEID_V30, 79 80 /* setcos driver */ 81 SC_CARD_TYPE_SETCOS_BASE = 6000, 82 SC_CARD_TYPE_SETCOS_GENERIC, 83 SC_CARD_TYPE_SETCOS_PKI, 84 SC_CARD_TYPE_SETCOS_FINEID, 85 SC_CARD_TYPE_SETCOS_FINEID_V2, 86 SC_CARD_TYPE_SETCOS_NIDEL, 87 SC_CARD_TYPE_SETCOS_FINEID_V2_2048, 88 SC_CARD_TYPE_SETCOS_44 = 6100, 89 SC_CARD_TYPE_SETCOS_EID_V2_0, 90 SC_CARD_TYPE_SETCOS_EID_V2_1, 91 92 /* starcos driver */ 93 SC_CARD_TYPE_STARCOS_BASE = 7000, 94 SC_CARD_TYPE_STARCOS_GENERIC, 95 SC_CARD_TYPE_STARCOS_V3_4, 96 SC_CARD_TYPE_STARCOS_V3_5, 97 98 /* tcos driver */ 99 SC_CARD_TYPE_TCOS_BASE = 8000, 100 SC_CARD_TYPE_TCOS_GENERIC, 101 SC_CARD_TYPE_TCOS_V2, 102 SC_CARD_TYPE_TCOS_V3, 103 104 /* openpgp driver */ 105 SC_CARD_TYPE_OPENPGP_BASE = 9000, 106 SC_CARD_TYPE_OPENPGP_V1, 107 SC_CARD_TYPE_OPENPGP_V2, 108 SC_CARD_TYPE_OPENPGP_V3, 109 SC_CARD_TYPE_OPENPGP_GNUK, 110 111 /* jcop driver */ 112 SC_CARD_TYPE_JCOP_BASE = 10000, 113 SC_CARD_TYPE_JCOP_GENERIC, 114 115 /* oberthur driver */ 116 SC_CARD_TYPE_OBERTHUR_BASE = 11000, 117 SC_CARD_TYPE_OBERTHUR_GENERIC, 118 SC_CARD_TYPE_OBERTHUR_32K, 119 SC_CARD_TYPE_OBERTHUR_32K_BIO, 120 SC_CARD_TYPE_OBERTHUR_64K, 121 /* Oberthur 'COSMO v7' with applet 'AuthentIC v3.2' */ 122 SC_CARD_TYPE_OBERTHUR_AUTHENTIC_3_2 = 11100, 123 124 /* belpic driver */ 125 SC_CARD_TYPE_BELPIC_BASE = 12000, 126 SC_CARD_TYPE_BELPIC_GENERIC, 127 SC_CARD_TYPE_BELPIC_EID, 128 129 /* incrypto34 driver */ 130 SC_CARD_TYPE_INCRYPTO34_BASE = 13000, 131 SC_CARD_TYPE_INCRYPTO34_GENERIC, 132 133 /* PIV-II type cards */ 134 SC_CARD_TYPE_PIV_II_BASE = 14000, 135 SC_CARD_TYPE_PIV_II_GENERIC, 136 SC_CARD_TYPE_PIV_II_HIST, 137 SC_CARD_TYPE_PIV_II_NEO, 138 SC_CARD_TYPE_PIV_II_YUBIKEY4, 139 SC_CARD_TYPE_PIV_II_GI_DE_DUAL_CAC, 140 SC_CARD_TYPE_PIV_II_GI_DE, 141 SC_CARD_TYPE_PIV_II_GEMALTO_DUAL_CAC, 142 SC_CARD_TYPE_PIV_II_GEMALTO, 143 SC_CARD_TYPE_PIV_II_OBERTHUR_DUAL_CAC, 144 SC_CARD_TYPE_PIV_II_OBERTHUR, 145 SC_CARD_TYPE_PIV_II_PIVKEY, 146 147 /* MuscleApplet */ 148 SC_CARD_TYPE_MUSCLE_BASE = 15000, 149 SC_CARD_TYPE_MUSCLE_GENERIC, 150 SC_CARD_TYPE_MUSCLE_V1, 151 SC_CARD_TYPE_MUSCLE_V2, 152 SC_CARD_TYPE_MUSCLE_ETOKEN_72K, 153 SC_CARD_TYPE_MUSCLE_JCOP241, 154 SC_CARD_TYPE_MUSCLE_JCOP242R2_NO_EXT_APDU, 155 156 /* Athena APCOS cards */ 157 SC_CARD_TYPE_ASEPCOS_BASE = 17000, 158 SC_CARD_TYPE_ASEPCOS_GENERIC, 159 SC_CARD_TYPE_ASEPCOS_JAVA, 160 161 /* TUBITAK UEKAE cards */ 162 SC_CARD_TYPE_AKIS_BASE = 18000, 163 SC_CARD_TYPE_AKIS_GENERIC, 164 165 /* EnterSafe cards */ 166 SC_CARD_TYPE_ENTERSAFE_BASE = 19000, 167 SC_CARD_TYPE_ENTERSAFE_3K, 168 SC_CARD_TYPE_ENTERSAFE_FTCOS_PK_01C, 169 SC_CARD_TYPE_ENTERSAFE_FTCOS_EPASS2003, 170 SC_CARD_TYPE_ENTERSAFE_EJAVA_PK_01C, 171 SC_CARD_TYPE_ENTERSAFE_EJAVA_PK_01C_T0, 172 SC_CARD_TYPE_ENTERSAFE_EJAVA_H10CR_PK_01C_T1, 173 SC_CARD_TYPE_ENTERSAFE_EJAVA_D11CR_PK_01C_T1, 174 SC_CARD_TYPE_ENTERSAFE_EJAVA_C21C_PK_01C_T1, 175 SC_CARD_TYPE_ENTERSAFE_EJAVA_A22CR_PK_01C_T1, 176 SC_CARD_TYPE_ENTERSAFE_EJAVA_A40CR_PK_01C_T1, 177 178 /* MyEID cards */ 179 SC_CARD_TYPE_MYEID_BASE = 20000, 180 SC_CARD_TYPE_MYEID_GENERIC, 181 SC_CARD_TYPE_MYEID_OSEID, 182 183 /* GemsafeV1 cards */ 184 SC_CARD_TYPE_GEMSAFEV1_BASE = 21000, 185 SC_CARD_TYPE_GEMSAFEV1_GENERIC, 186 SC_CARD_TYPE_GEMSAFEV1_PTEID, 187 SC_CARD_TYPE_GEMSAFEV1_SEEID, 188 189 /* Italian CNS cards */ 190 SC_CARD_TYPE_ITACNS_BASE = 23000, 191 SC_CARD_TYPE_ITACNS_GENERIC, 192 SC_CARD_TYPE_ITACNS_CNS, 193 SC_CARD_TYPE_ITACNS_CIE_V2, 194 SC_CARD_TYPE_ITACNS_CIE_V1, 195 196 /* Generic JavaCards without supported applet */ 197 SC_CARD_TYPE_JAVACARD_BASE = 24000, 198 SC_CARD_TYPE_JAVACARD, 199 200 /* IAS/ECC cards */ 201 SC_CARD_TYPE_IASECC_BASE = 25000, 202 SC_CARD_TYPE_IASECC_GEMALTO, 203 SC_CARD_TYPE_IASECC_OBERTHUR, 204 SC_CARD_TYPE_IASECC_SAGEM, 205 SC_CARD_TYPE_IASECC_AMOS, 206 SC_CARD_TYPE_IASECC_MI, 207 SC_CARD_TYPE_IASECC_MI2, 208 SC_CARD_TYPE_IASECC_CPX, 209 SC_CARD_TYPE_IASECC_CPXCL, 210 211 /* SmartCard-HSM */ 212 SC_CARD_TYPE_SC_HSM = 26000, 213 SC_CARD_TYPE_SC_HSM_SOC = 26001, 214 SC_CARD_TYPE_SC_HSM_GOID = 26002, 215 216 /* Spanish DNIe card */ 217 SC_CARD_TYPE_DNIE_BASE = 27000, 218 SC_CARD_TYPE_DNIE_BLANK, /* ATR LC byte: 00 */ 219 SC_CARD_TYPE_DNIE_ADMIN, /* ATR LC byte: 01 */ 220 SC_CARD_TYPE_DNIE_USER, /* ATR LC byte: 03 */ 221 SC_CARD_TYPE_DNIE_TERMINATED, /* ATR LC byte: 0F */ 222 223 /* JavaCards with isoApplet */ 224 SC_CARD_TYPE_ISO_APPLET_BASE = 28000, 225 SC_CARD_TYPE_ISO_APPLET_GENERIC, 226 227 /* Masktech cards */ 228 SC_CARD_TYPE_MASKTECH_BASE = 29000, 229 SC_CARD_TYPE_MASKTECH_GENERIC, 230 231 /* GIDS cards */ 232 SC_CARD_TYPE_GIDS_BASE = 30000, 233 SC_CARD_TYPE_GIDS_GENERIC, 234 SC_CARD_TYPE_GIDS_V1, 235 SC_CARD_TYPE_GIDS_V2, 236 237 /* JPKI cards */ 238 SC_CARD_TYPE_JPKI_BASE = 31000, 239 240 /* Coolkey cards */ 241 SC_CARD_TYPE_COOLKEY_BASE = 32000, 242 SC_CARD_TYPE_COOLKEY_GENERIC, 243 244 /* CAC cards */ 245 SC_CARD_TYPE_CAC_BASE = 33000, 246 SC_CARD_TYPE_CAC_GENERIC, 247 SC_CARD_TYPE_CAC_I, 248 SC_CARD_TYPE_CAC_II, 249 SC_CARD_TYPE_CAC_ALT_HID, 250 251 /* nPA cards */ 252 SC_CARD_TYPE_NPA = 34000, 253 SC_CARD_TYPE_NPA_TEST, 254 SC_CARD_TYPE_NPA_ONLINE, 255 256 /* EstEID cards */ 257 SC_CARD_TYPE_ESTEID = 35000, 258 SC_CARD_TYPE_ESTEID_2018, 259 260 /* Rutoken cards */ 261 SC_CARD_TYPE_RUTOKENS = 36000, 262 SC_CARD_TYPE_RUTOKEN_ECP, 263 SC_CARD_TYPE_RUTOKEN_ECP_SC, 264 SC_CARD_TYPE_RUTOKEN_LITE, 265 SC_CARD_TYPE_RUTOKEN_LITE_SC, 266 267 /* IDPrime cards */ 268 SC_CARD_TYPE_IDPRIME_BASE = 37000, 269 SC_CARD_TYPE_IDPRIME_V1, 270 SC_CARD_TYPE_IDPRIME_V2, 271 SC_CARD_TYPE_IDPRIME_V3, 272 SC_CARD_TYPE_IDPRIME_V4, 273 SC_CARD_TYPE_IDPRIME_GENERIC, 274 275 /* eDO cards */ 276 SC_CARD_TYPE_EDO = 38000 277 }; 278 279 extern sc_card_driver_t *sc_get_default_driver(void); 280 extern sc_card_driver_t *sc_get_cardos_driver(void); 281 extern sc_card_driver_t *sc_get_cryptoflex_driver(void); 282 extern sc_card_driver_t *sc_get_cyberflex_driver(void); 283 extern sc_card_driver_t *sc_get_gpk_driver(void); 284 extern sc_card_driver_t *sc_get_gemsafeV1_driver(void); 285 extern sc_card_driver_t *sc_get_miocos_driver(void); 286 extern sc_card_driver_t *sc_get_mcrd_driver(void); 287 extern sc_card_driver_t *sc_get_setcos_driver(void); 288 extern sc_card_driver_t *sc_get_starcos_driver(void); 289 extern sc_card_driver_t *sc_get_tcos_driver(void); 290 extern sc_card_driver_t *sc_get_openpgp_driver(void); 291 extern sc_card_driver_t *sc_get_jcop_driver(void); 292 extern sc_card_driver_t *sc_get_oberthur_driver(void); 293 extern sc_card_driver_t *sc_get_belpic_driver(void); 294 extern sc_card_driver_t *sc_get_atrust_acos_driver(void); 295 extern sc_card_driver_t *sc_get_incrypto34_driver(void); 296 extern sc_card_driver_t *sc_get_piv_driver(void); 297 extern sc_card_driver_t *sc_get_muscle_driver(void); 298 extern sc_card_driver_t *sc_get_asepcos_driver(void); 299 extern sc_card_driver_t *sc_get_akis_driver(void); 300 extern sc_card_driver_t *sc_get_entersafe_driver(void); 301 extern sc_card_driver_t *sc_get_rutoken_driver(void); 302 extern sc_card_driver_t *sc_get_rtecp_driver(void); 303 extern sc_card_driver_t *sc_get_westcos_driver(void); 304 extern sc_card_driver_t *sc_get_myeid_driver(void); 305 extern sc_card_driver_t *sc_get_sc_hsm_driver(void); 306 extern sc_card_driver_t *sc_get_itacns_driver(void); 307 extern sc_card_driver_t *sc_get_authentic_driver(void); 308 extern sc_card_driver_t *sc_get_iasecc_driver(void); 309 extern sc_card_driver_t *sc_get_epass2003_driver(void); 310 extern sc_card_driver_t *sc_get_dnie_driver(void); 311 extern sc_card_driver_t *sc_get_isoApplet_driver(void); 312 extern sc_card_driver_t *sc_get_masktech_driver(void); 313 extern sc_card_driver_t *sc_get_gids_driver(void); 314 extern sc_card_driver_t *sc_get_jpki_driver(void); 315 extern sc_card_driver_t *sc_get_coolkey_driver(void); 316 extern sc_card_driver_t *sc_get_cac_driver(void); 317 extern sc_card_driver_t *sc_get_cac1_driver(void); 318 extern sc_card_driver_t *sc_get_npa_driver(void); 319 extern sc_card_driver_t *sc_get_esteid2018_driver(void); 320 extern sc_card_driver_t *sc_get_idprime_driver(void); 321 extern sc_card_driver_t *sc_get_edo_driver(void); 322 323 #ifdef __cplusplus 324 } 325 #endif 326 327 #endif /* _OPENSC_CARDS_H */ 328