发布日期:2020-07-14 来源:惟望科技 浏览次数:4525
第三部分:终端规范
引言(P121)
最后一行“本规范附录A、B、C由各地参照执行”,修改为:
本规范附录B与规范正文具有同等的效力。
1 适用范围(P121)
修改为:
本规范适用于支持《社会保障(个人)卡规范》所规定的劳动和社会保障应用的专用终端以及其他类似的终端设备。其中的“终端功能”、“黑名单管理”不适用于读卡器。其使用对象主要是与社会保障卡应用相关的终端设计、制造、管理以及应用系统的研制、开发、集成和维护等组织机构。
5.1.1.4 ICC连接器的配置和要求(P124)
最后一行“接口设备所使用的应用ICC连接器应具有至少30万次的插拔寿命”修改为:
接口设备所使用的应用ICC连接器应具有至少10万次的插拔寿命。
5.1.2.3编程电压(P125)
修改为:
不要求终端产生编程电压VPP(见5.1.1.3)。
5.1.4 终端与接口设备之间的数据交换(P128)
本节原标题和内容全部删除,修改为:
5.1.4 终端与IC卡之间的数据交换
终端设备应能够接收IC卡一次返回256字节的数据及后续的状态码。
附录A(P132)
本节删除。
附录B(P136)
本节全文修改为:
附 录 B
(执行的附录)
高级应用编程接口
本附录描述了读卡器的高级应用编程接口:
高级应用编程接口是提供给终端上的应用程序用来与读卡器进行交互操作的函数集。
高级应用编程接口的具体表现形式必须包括:
a. 可以在32位Windows环境下(Windows95/98/ME, Windows NT/2000/XP等)运行的动态链接库 (SSSE32.DLL);
b. 可以在16位Windows环境下(Windows3.1等)运行的动态链接库(SSSE16.DLL);
c. 可以在DOS环境下运行的C语言(MSC或Borland C)函数库(SSSE16.LIB);
d. 可以在DOS环境下运行的Foxpro函数库(SSSE16.PLB)。
高级应用编程接口的具体表现形式也可以包括:
a.可以在Unix环境下运行的C语言函数库;
b. 可以在基于特定硬件平台上的C语言函数库。
上述所有高级应用编程接口应具有本规范所规定的统一的库名、函数名、参数类型和顺序。
应用开发者或用户在对读卡器编程时,可使用相应的库名和函数名。
注:在以下的描述中,分别使用C语言和Foxpro语言风格来说明高级应用编程接口中的函数
B1 C语言函数
B1.1 “打开设备”函数
函数:
long ICC_Reader_Open (char* dev_Name)
功能:
该函数通知终端操作系统打开与读卡器所对应的终端设备端口,以便两者建立通信的逻辑关系。
参数说明:
dev_Name:设备名称。取值范围”AUTO”、”COMn”、”USBn”、”LPTn”,其中”n”的取值范围为1~9。
返回值:
若正常,返回值为不小于0的设备句柄;反之返回值为状态码,其含义见B1.8。
注:对16位Windows环境下运行的动态链接库、DOS环境下运行的静态函数库返回的设备句柄,其含义均不同于32位Windows环境下动态链接库返回的设备句柄,仅为区分设备之用。
B1.2 “关闭设备”函数
函数:
long ICC_Reader_Close (long ReaderHandle)
功能:
该函数通知操作系统关闭所指定的设备。
参数说明:
ReaderHandle:设备句柄。
返回值:
返回值含义见B1.8。
B1.3 “卡上电”或“热复位“函数
函数:
long ICC_Reader_PowerOn (long ReaderHandle,unsigned char ICC_Slot_No,unsigned char* Response)
功能:
该函数要求读卡器对ICC进行冷复位,若冷复位失败读卡器应启动一个热复位。
参数说明:
1.ReaderHandle:设备句柄;
2. ICC_Slot_No:ICC连接器号;用户卡连接器号 0x0n,SAM卡连接器号0x1n,其中“n”的取值范围为1~F;
3. Response:指向存放响应数据的存储区的指针。
返回值:
如果对ICC复位成功,则在Response的存储区中返回ICC的复位应答字节,返回值为存储区中的字节数;返回值小于0为状态码,其含义见B1.8。
B1.4 “卡下电”函数
函数:
long ICC_Reader_PowerOff (long ReaderHandle,unsigned char ICC_Slot_No)
功能:
该函数要求读卡器撤消与ICC之间的电气连接。
参数说明:
1.ReaderHandle:设备句柄;
2. ICC_Slot_No:ICC连接器号。
返回值:
如果该函数成功执行,则返回值为0;返回值小于0为状态码,其含义见B1.8。
B1.5 “获取卡片状态”函数
函数:
long ICC_Reader_GetStatus (long ReaderHandle,unsigned char ICC_Slot_No)
功能:
查询有无卡以及卡片当前状态信息。
参数说明:
1.ReaderHandle:设备句柄;
2. ICC_Slot_No:ICC连接器号。
返回值:
返回0表示有卡且已上电;返回值小于0为状态码,其含义见B1.8。
B1.6 “应用命令”函数
函数:
long ICC_Reader_Application (long ReaderHandle,unsigned char ICC_ Slot _No,long Lenth_of_Command_APDU,unsigned char* Command_APDU,unsigned char* Response_APDU)
功能:
该函数用于将符合ISO 7816中所规定的基本和特殊功能的行业间交换用命令发送给指定的ICC连接器,并获取对应的响应。
参数说明:
1.ReaderHandle:设备句柄;
2. ICC_Slot_No:ICC连接器号;
3. Lenth_of_Command_APDU:其值为Command_APDU所指向缓冲区中的字节数;
4. Command_APDU:指向存放命令的缓冲区的指针;
5. Response_APDU:指向存放响应数据的存储区的指针(包括sw1,sw2)。
返回值:
如果函数执行成功,则在Response_APDU的存储区中返回响应数据,函数返回值为存储区中的字节数;返回值小于0为状态码,其含义见B1.8,Response_APDU的存储区无任何数据。
B1.7 “取信息”函数
函数:
long ICC_Reader_Libinfo (char* info)
功能:
该函数取得当前函数库的厂家信息。
参数说明:
info:指向存放厂家信息的存储区的指针。
表-B1.1 厂家信息的存储格式
返回值:
返回值的含义见B1.8。
B1.8 函数返回值
表-B1.2 高级编程接口C语言函数的返回值
B2 Foxpro语言函数
注:在以下的描述中,所指字符为ASCII字符。
B2.1 “打开设备”函数
函数:
ICCR_Open (dev_Name)
功能:
该函数通知终端操作系统打开与读卡器所对应的终端设备端口,以便两者建立通信的逻辑关系。
参数说明:
dev_Name:设备名称。取值范围”AUTO”、”COMn”、”LPTn”,其中”n”的取值范围为1~9。
返回值:
返回值为一字符串, 前两个字符为函数执行状态码,其含义见B2.8;若执行成功,第3、4个字符为函数执行后返回的设备句柄R_Handle,该句柄仅为区分设备之用。
B2.2 “关闭设备”函数
函数:
ICCR_Close (R_Handle)
功能:
该函数通知操作系统关闭所指定的设备。
参数说明:
R_Handle:设备句柄。
返回值:
返回值为两个字符的状态码,其含义见B2.8。
B2.3 “卡上电”或“热复位“函数
函数:
ICCR_Pon (R_Handle,ICCSlotNo)
功能:
该函数要求读卡器对ICC进行冷复位,若冷复位失败读卡器应启动一个热复位。
参数说明:
1.R_Handle:设备句柄;
2. ICCSlotNo:ICC连接器号;用户卡连接器号 0x0n,SAM卡连接器号0x1n,其中”n”的取值范围为1~F。
返回值:
返回值为一字符串, 前两个字符为函数执行状态码,其含义见B2.8;若执行成功,第3、4两个字符为复位应答中的字节数(十六进制),从第五字符起为ICC的复位应答字符(字符个数为字节数的2倍)。
B2.4 “卡下电”函数
函数:
ICCR_Poff (R_Handle,ICCSlotNo)
功能:
该函数要求读卡器撤消与ICC之间的电气连接。
参数说明:
1.R_Handle:设备句柄;
2. ICCSlotNo:ICC连接器号。
返回值:
返回值为两个字符的状态码,其含义见B2.8。
B2.5 “获取卡片状态”函数
函数:
ICCR_GetS (R_Handle,ICCSlotNo)
功能:
查询有无卡以及卡片当前状态信息。
参数说明:
1.R_Handle:设备句柄;
2. ICCSlotNo:ICC连接器号。
返回值:
返回值为两个字符的状态码,”00”表示有卡且已上电,其他含义见B2.8。
B2.6 “应用命令”函数
函数:
ICCR_App (R_Handle,ICCSlotNo,ComAPDU)
功能:
该函数用于将符合ISO 7816中所规定的基本和特殊功能的行业间交换用命令发送给指定的ICC连接器,并获取对应的响应。
参数说明:
1.R_Handle:设备句柄;
2. ICCSlotNo:ICC连接器号;
3. ComAPDU:命令字符串,每两字符表示发送命令的一字节。
返回值:
返回值为一字符串, 前两个字符为函数执行状态码,其含义见B2.8;若执行成功,第3、4、5、6字符为响应数据的字节数(十六进制),从第7字符起为响应数据字符(字符个数为字节数的2倍)。
B2.7 “取信息”函数
函数:
ICCR_Linfo( )
功能:
该函数取得当前函数库的厂家信息。
参数说明:
返回值:
返回值为一字符串, 前两个字符为函数执行状态码,其含义见B2.8;若执行成功,从第3字符起为厂家信息字符串。
表-B2.1 厂家信息的存储格式
B2.8 函数返回值
表-B2.2 高级编程接口Foxpro函数的返回值
附录C(P140)
本节删除。