⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm_api.h

📁 RSA C++源代码DEMO,附加DESMD5等众多算法
💻 H
📖 第 1 页 / 共 5 页
字号:
 
/* STMCSCVersion: error codes */
#define STM_ERR_SCVER_INVALID_SIZE            0x600
#define STM_ERR_SCVER_INVALID_TAG             0x601
#define STM_ERR_SCVER_FIELD_NOT_FOUND         0x602

/* STMCAtr: error codes */
#define STM_ERR_ATR_INVALID_SIZE              0x680
#define STM_ERR_ATR_INVALID                   0x681
#define STM_ERR_ATR_CHK                       0x682
#define STM_ERR_ATR_NOISO                     0x683
#define STM_ERR_ATR_BYTE_NOT_FOUND            0x684

/* PC/CTI response errors */
#define STM_ERR_TSI_BUILD_ERR                 0x700      
#define STM_ERR_TSI_INIT                      0x701
#define STM_ERR_TSI_CREATE_HANDLE             0x702
#define STM_ERR_TSI_RESET                     0x703
#define STM_ERR_TSI_REQUEST_ICC               0x704
#define STM_ERR_TSI_EJECT_ICC                 0x705
#define STM_ERR_TSI_SEND                      0x706
#define STM_ERR_TSI_DISPLAY                   0x707
#define STM_ERR_TSI_JOURNAL_ON                0x708
#define STM_ERR_TSI_JOURNAL_SAVE              0x709
#define STM_ERR_TSI_JOURNAL_GET               0x70a
#define STM_ERR_TSI_JOURNAL                   0x70b
#define STM_ERR_TSI_DEBUG                     0x70c
#define STM_ERR_TSI_INPUT                     0x70d
#define STM_ERR_TSI_ICC_STATUS                0x70e
#define STM_ERR_TSI_VERIFY_PIN                0x70f
#define STM_ERR_TSI_CHANGE_PIN                0x710
#define STM_ERR_TSI_GET_PORT_ID               0x711
#define STM_ERR_TSI_GET_CT_LIST               0x712
#define STM_ERR_TSI_CONFIG                    0x713
#define STM_ERR_TSI_SET_ACCESS_CONTROL        0x714

/* file data errors                     */
#define STM_ERR_FILE_CANT_OPEN                0x800  
#define STM_ERR_FILE_CANT_READ                0x801           
#define STM_ERR_FILE_CANT_WRITE               0x802           

/* TLV OBJECT ERRORS                    */
#define STM_ERR_TLV_STRUCTURE                 0x803  
#define STM_ERR_TLV_CONSTR_BIT                0x804  
#define STM_ERR_TLV_NOT_EMPTY                 0x805  
#define STM_ERR_TLV_END_REACHED               0x806  
#define STM_ERR_TLV_INVALID_LENGTH_FIELD      0x807  

/* APDU errors */
#define STM_ERR_APDU_INVALID_DATA             0x808  
#define STM_ERR_APDU_INVALID_LC               0x809  
#define STM_ERR_APDU_INVALID_LE               0x80A  
#define STM_ERR_APDU_INVALID_LENGTH           0x80B  

/* SECM errors */
#define  STM_ERR_SECM_INVALID_KEY_TYPE        0x80C
#define  STM_ERR_SECM_MODE_NOT_SUPPORTED      0x80D
#define  STM_ERR_SECM_MISSING_AUTH_KEY        0x80E
#define  STM_ERR_SECM_MISSING_CRYPT_KEY       0x80F
#define  STM_ERR_SECM_CANT_BUILD_APDU         0x810
#define  STM_ERR_SECM_CALC_MAC                0x811
#define  STM_ERR_SECM_INVALID_RESPONSE        0x812
#define  STM_ERR_SECM_OBJECTS_MISSING         0x813
#define  STM_ERR_SECM_INCORRECT_MAC           0x814
#define  STM_ERR_SECM_SW_MISMATCH             0x815
#define  STM_ERR_SECM_ENCRYPT_DATA            0x816
#define  STM_ERR_SECM_DECRYPT_DATA            0x817
#define  STM_ERR_SECM_SSC_OPERATION           0x818

/* random generator errors */
#define STM_ERR_RANDGEN_BAD_SEED_LENGTH       0x850  

/* (parameter) errors of the flat C-API */
#define STM_ERR_HANDLE_UNDEF                  0x1000

#define STM_ERR_PARAM01_POINTER               0x1001
#define STM_ERR_PARAM02_POINTER               0x1002
#define STM_ERR_PARAM03_POINTER               0x1003
#define STM_ERR_PARAM04_POINTER               0x1004
#define STM_ERR_PARAM05_POINTER               0x1005
#define STM_ERR_PARAM06_POINTER               0x1006
#define STM_ERR_PARAM07_POINTER               0x1007
#define STM_ERR_PARAM08_POINTER               0x1008
#define STM_ERR_PARAM09_POINTER               0x1009
#define STM_ERR_PARAM10_POINTER               0x100a
#define STM_ERR_PARAM11_POINTER               0x100b
#define STM_ERR_PARAM12_POINTER               0x100c
#define STM_ERR_PARAM13_POINTER               0x100d
#define STM_ERR_PARAM14_POINTER               0x100e
#define STM_ERR_PARAM15_POINTER               0x100f

//parameter errors of the flat API 
#define STM_ERR_BAD_MODE                      0x1010 
#define STM_ERR_BAD_ALGO                      0x1011
#define STM_ERR_BAD_TYPE                      0x1012
#define STM_ERR_BAD_CRYPT_MODE                0x1013
#define STM_ERR_BAD_CHAIN_MODE                0x1014
#define STM_ERR_BAD_PAD_MODE                  0x1015
#define STM_ERR_BAD_KEY_LENGTH                0x1016
#define STM_ERR_BAD_CRYPT_KEY_TYPE            0x1017
#define STM_ERR_BAD_AUTH_KEY_TYPE             0x1018
#define STM_ERR_BAD_KEY_LEVEL                 0x1019
#define STM_ERR_BAD_KEYDATA_LENGTH            0x101a
#define STM_ERR_BAD_KEYHEADER_LENGTH          0x101b
#define STM_ERR_BAD_FORMAT_OPTION             0x101c
#define STM_ERR_BAD_BITDIFF                   0x101d
#define STM_ERR_BAD_DATA_LENGTH               0x101e
#define STM_ERR_BAD_AID_LENGTH                0x101f
#define STM_ERR_BAD_CMD_LENGTH                0x1020
#define STM_ERR_BAD_VALUE_LENGTH              0x1021
#define STM_ERR_BAD_EXPONENT_LENGTH           0x1022
#define STM_ERR_BAD_PORT                      0x1023
#define STM_ERR_BAD_DEST                      0x1024
#define STM_ERR_BAD_TEMPLATE                  0x1025
#define STM_ERR_BAD_DEVICE                    0x1026
#define STM_ERR_BAD_SEL_TYPE_OPTION           0x1027
#define STM_ERR_BAD_ERROR_LEVEL               0x1028
#define STM_ERR_BAD_LANGUAGE_OPTION           0x1029
#define STM_ERR_BAD_LINE_INDEX                0x102a
#define STM_ERR_BAD_BUFFER_SIZE               0x102b
#define STM_ERR_BAD_TLV_TAG                   0x102c
#define STM_ERR_INCOMPLETE_BLOCK              0x102d

#define STM_ERR_BUFFER_TOO_SMALL              0x1030

#define STM_ERR_RESPONSE_INCONSISTENT         0x1031

#define STM_ERR_BAD_G_LENGTH                  0x1040
#define STM_ERR_BAD_Y_LENGTH                  0x1041
#define STM_ERR_BAD_PTS_MODE                  0x1042
#define STM_ERR_BAD_K_LENGTH                  0x1043
#define STM_ERR_AC_SC_INCONSISTENT            0x1044
#define STM_ERR_PURSE_WRONG_CARD              0x1045

#define STM_ERR_PARAM16_POINTER               0x10f0
#define STM_ERR_PARAM17_POINTER               0x10f1
#define STM_ERR_PARAM18_POINTER               0x10f2
#define STM_ERR_PARAM19_POINTER               0x10f3
#define STM_ERR_PARAM20_POINTER               0x10f4
#define STM_ERR_PARAM21_POINTER               0x10f5
#define STM_ERR_PARAM22_POINTER               0x10f6
#define STM_ERR_PARAM23_POINTER               0x10f7
#define STM_ERR_PARAM24_POINTER               0x10f8
#define STM_ERR_PARAM25_POINTER               0x10f9
#define STM_ERR_PARAM26_POINTER               0x10fa
#define STM_ERR_PARAM27_POINTER               0x10fb
#define STM_ERR_PARAM28_POINTER               0x10fc
#define STM_ERR_PARAM29_POINTER               0x10fd
#define STM_ERR_PARAM30_POINTER               0x10fe
#define STM_ERR_PARAM31_POINTER               0x10ff

#define STM_ERR_INTERNAL_PARAM_ERROR          0x1100 //should not occur

#define STM_ERR_UNDEF                         0xffff //should not occur


/** **************************************************************************** **/
/** symbolic constants (switch  parameters)                                      **/
/** **************************************************************************** **/

//terminal selection
#define STM_OPEN_COM       0x0000  //autodetect CCR2, CCR5, ICT800, KCT800, OTI or PCT
#define STM_OPEN_MKT       0x0100  //MKT-terminal (rfu)
#define STM_OPEN_OTI       0x0200  //OTI Contactless Reader
#define STM_OPEN_CCR5      0x0300  //CCR5
#define STM_OPEN_CCR2      0x0400  //CCR2
#define STM_OPEN_CRM7X     0x0500  //CRM7x
#define STM_OPEN_ICT800    0x0600  //ICT800
#define STM_OPEN_KCT800    0x0700  //KCT800 serial
#define STM_OPEN_KCT800K   0x0800  //KCT800 keyboard-interface (rfu)
#define STM_OPEN_MIFBOARD  0x0900  //MIFARE PC-Card
#define STM_OPEN_MIFCOM    0x0a00  //MIFARE serial (rfu)
#define STM_OPEN_PCT       0x0b00  //PCT
#define STM_OPEN_VCT800    0x0d00  //VCT800
#define STM_OPEN_EMU       0x1100  //SmardCard Emulator
#define STM_OPEN_SIM       0x1200  //SmardCard Simulator
#define STM_OPEN_PCSC      0x1300  //PC/SC Reader
#define STM_OPEN_OEM       0x1400  //OEM reader
#define STM_OPEN_TS        0x4000  //Terminal Server

//destination port for STM_Open()
#define STM_COM1        1
#define STM_COM2        2
#define STM_COM3        3
#define STM_COM4        4
#define STM_COM5        5
#define STM_COM6        6
#define STM_COM7        7
#define STM_COM8        8
#define STM_COM9        9
#define STM_COM10      10
#define STM_COM11      11
#define STM_COM12      12
#define STM_COM13      13
#define STM_COM14      14
#define STM_COM15      15
#define STM_COM16      16
#define STM_COM17      17
#define STM_COM18      18
#define STM_COM19      19
#define STM_COM20      20
#define STM_COM21      21
#define STM_COM22      22
#define STM_COM23      23
#define STM_COM24      24
#define STM_COM25      25
#define STM_COM26      26
#define STM_COM27      27
#define STM_COM28      28
#define STM_COM29      29
#define STM_COM30      30
#define STM_COM31      31
#define STM_COM32      32
// Maximum Nb of COM Ports supported by PC/CTI (Win32):
#define STM_COM255    255

//communication destination for STM_Request()
#define STM_ICC1        1    
#define STM_ICC2        2
#define STM_ICC3        3
#define STM_ICC4        4
#define STM_ICC5        5
#define STM_ICC6        6
#define STM_ICC7        7
#define STM_ICC8        8
#define STM_ICC9        9
#define STM_ICC10      10
#define STM_ICC11      11
#define STM_ICC12      12
#define STM_ICC13      13
#define STM_ICC14      14

//access modes for STM_Open()/STM_Request()
#define STM_EXCL               0   
#define STM_SHARED             1
#define STM_APPL_SHARED        3

//operation modes for STM_CloseAll()
#define STM_CLOSE_CARD  0
#define STM_CLOSE_TERM  1
#define STM_CLOSE_ALL   2

//card types
#define STM_CARD          0
#define STM_CARD_ISO      1
#define STM_CARD_S11      2
#define STM_CARD_S12      3 //4 would mean STARCOS S2.0 which is not supported
#define STM_CARD_S21      5
#define STM_CARD_SPK21    6
#define STM_CARD_SV10     7
#define STM_CARD_AIR10    8
#define STM_CARD_SPK22    9
#define STM_CARD_GSM2    10
#define STM_CARD_SPK23   11
#define STM_CARD_S2000   12

//terminal types
#define STM_CT          0
#define STM_CT_MKT      1
#define STM_CT_MKT_D    2
#define STM_CT_MKT_K    3
#define STM_CT_MKT_DK   4

//operation modes for STM_Create()
#define STM_CREATE_MF        0x00
#define STM_CREATE_DF        0x01
#define STM_CREATE_END       0x02
#define STM_CREATE_EF        0x03
#define STM_CREATE_ANY       0x04
#define STM_CREATE_SPECIAL 0x0100
#define STM_CREATE_CRC     0x0200

//operation modes for STM_LockFile()
#define STM_FILE_LOCK   0    
#define STM_FILE_UNLOCK 1

//selection control for STM_SelectId() and STM_SelectFn()
#define STM_SEL_ANY     0x00   
#define STM_SEL_DF      0x01   
#define STM_SEL_EF      0x02
#define STM_RET_FCI     0x10
#define STM_RET_FCP     0x20
#define STM_RET_FMD     0x30

//eject modes for STM_SetEjectParam()
#define STM_EJECT_DEF      0x00   
#define STM_EJECT_BEEP     0x01   
#define STM_EJECT_BLINK    0x02
#define STM_EJECT_KEEPICC  0x04

//record ids for STM_ReadRecord() and STM_UpdateRecord()
#define STM_RECORD_FIRST     0x1000
#define STM_RECORD_LAST      0x2000

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -