Q群:
电话:
邮箱:
地址:
device.SESecure 类是device模块下面的一个硬件类,用于对SESecure模块的配置和控制,并提供对SESecure设备的操作方法。
构造函数 | class device.SESecure() |
---|---|
功能 | 构造一个SESecure对象 |
参数说明 | 无 |
返回值 | 返回创建的SESecure对象 |
其他说明 | 构造时会对SESecure对象进行初始化,也可在init方法中进行初始化。 |
3.3.13.3 实例方法
device.SESecure类包括如下实例方法
方法名 | 说明 |
---|---|
SESecure.init() | 初始化SESecure |
SESecure.deinit() | 关闭SESecure对象 |
SESecure.nfc_external_auth() | 获取NFC外部认证计算数据 |
SESecure.nfc_se_random() | 请求SE生成认证随机数 |
SESecure.nfc_internal_auth() | NFC内部认证校验 |
SESecure.nfc_auto_auth() | NFC卡片自动鉴权 |
SESecure.nfc_getkey() | 获取NFC密钥报文 |
SESecure.nfc_deletekey() | 删除NFC卡片 |
SESecure.pin_writekey() | 写入永久Pin码 |
SESecure.pin_deletekey() | 删除永久Pin码 |
SESecure.pin_verify_perpetual() | 永久Pin码校验 |
SESecure.pin_verify_dynamic() | 动态Pin码校验 |
SESecure.pin_change_adminpin() | 修改管理员pin码 |
详细说明如下:
方法名称 | SESecure.init() |
---|---|
功能 | 初始化SESecure对象 |
参数说明 | 无 |
返回值 | 固定返回None |
注:该初始化动作完成驱动总线初始化和se芯片初始化流程等。
方法名称 | SESecure.deinit() |
---|---|
功能 | 关闭SESecure对象 |
参数说明 | 无参数 |
返回值 | 固定返回None |
注:关闭SESecure对象后,需重新init才能正常使用SESecure对象。
方法名称 | SESecure.nfc_external_auth(card_uid, random) |
---|---|
功能 | 获取NFC外部认证计算数据 |
参数说明 | card_uid:传入需进行外部认证的卡uid号 random:NFC卡片随机数 |
返回值 | 认证通过返回认证数据,长度为8字节 认证失败返回0 |
注:该认证过程中需要的uid及random都需要先从卡片中进行获取,random随机数为8字节数据。
方法名称 | SESecure.nfc_se_random() |
---|---|
功能 | 请求SE生成认证随机数 |
参数说明 | 无 |
返回值 | 返回获取的认证随机数,通常为8字节 |
注:获取的SE认证随机数用于向NFC卡片发送内部认证请求时使用。
方法名称 | SESecure.nfc_internal_auth(card_uid, auth) |
---|---|
功能 | NFC内部认证校验 |
参数说明 | card_uid:传入需进行外部认证的卡uid号 auth:NCF卡片内部认证时获取的鉴权信息 |
返回值 | 鉴权通过返回0 |
异常说明 | 鉴权失败时触发SEError异常, 当卡片ID未匹配时,携带异常值1 当卡片鉴权失败时,携带异常值2 |
方法名称 | SESecure.nfc_auto_auth(card_uid, random) |
---|---|
功能 | NFC卡片自动鉴权 |
参数说明 | card_uid:传入需进行外部认证的卡uid号 random:NFC卡片随机数 |
返回值 | 鉴权通过返回0 |
异常说明 | 鉴权失败时触发SEError异常, 当卡片ID未匹配时,携带异常值1;当卡片鉴权失败时,携带异常值2;当获取外部鉴权随机数失败时,携带异常值3;当获取SE认证随机数失败时,携带异常值4;当NFC卡内部认证失败时,携带异常值5。 |
注:该方法需要底层完成外部认证及内部认证。
SESecure.nfc_getkey() | 获取NFC密钥报文 |
---|---|
SESecure.nfc_deletekey() | 删除NFC卡片 |
方法名称 | SESecure.nfc_getkey(card_uid, random) |
---|---|
功能 | 获取NFC密钥报文 |
参数说明 | card_uid:传入卡uid号 random:NFC卡片随机数 |
返回值 | 返回获取的密钥报文 |
方法名称 | SESecure.nfc_deletekey(card_uid) |
---|---|
功能 | 删除NFC卡片 |
参数说明 | card_uid:欲删除的卡id号 |
返回值 | 删除成功返回True;删除失败False(此时为未找到配对卡片) |
方法名称 | SESecure.pin_writekey(pin_key) |
---|---|
功能 | 写入永久Pin码 |
参数说明 | pin_key:欲写入的pin密钥 |
返回值 | 写入成功返回密钥在芯片中存储的pinid编号 |
方法名称 | SESecure.pin_deletekey(pinid) |
---|---|
功能 | 删除永久Pin码 |
参数说明 | pinid:密钥在芯片中存储的pinid编号 |
返回值 | 成功返回True;失败返回False(通常为pin码不存在时执行失败) |
方法名称 | SESecure.pin_verify_perpetual(pin_key) |
---|---|
功能 | 永久Pin码校验 |
参数说明 | pin_key:欲校验的pin密钥 |
返回值 | 校验通过返回pinid;校验失败返回0 |
注:该校验应包括永久pin码校验及管理员pin码校验
方法名称 | SESecure.pin_verify_dynamic(pin_key) |
---|---|
功能 | 动态Pin码校验 |
参数说明 | pin_key:欲校验的pin密钥 |
返回值 | 校验通过返回True;校验失败返回False |
方法名称 | SESecure.pin_change_adminpin(newkey, oldkey) |
---|---|
功能 | 修改管理员pin码 |
参数说明 | Newkey:修改后的管理员pin码 Oldkey:修改前的管理员pin码 |
返回值 | 修改成功返回True |
异常说明 | 修改失败时触发SEError异常,当管理员密码校验失败时,携带异常值1;当其他原因修改失败时,携带异常值2 |