智能IC卡及智能密码钥匙密码应用接口规范修订版 - 图文(7)

2019-08-30 14:06

GBXX/T ××××-2009

ulDataLen [IN] 数据长度,应不大于公钥模长-11。 pbSignature [IN] 待验证的签名值 ulSignLen [IN] 签名值长度,必须为公钥模长

返回值 SAR_OK表示成功,其它表示失败。

可能的错误值:

SAR_MEMORYERR 发生内存错误; SAR_UNKNOWNERR 发生未知错误; SAR_INVALIDHANDLEERR 句柄无效; SAR_INVALIDPARAMERR 参数无效 ; SAR_KEYNOTFOUNTERR 密钥未发现; SAR_INDATAERR输入数据错误。

7.6.7 RSA生成并导出会话密钥

函数原型 ULONG DEVAPI SKF_RSAExportSessionKey (HCONTAINER hContainer, ULONG ulAlgId,

RSAPUBLICKEYBLOB *pPubKey, BYTE *pbData, ULONG *pulDataLen, HANDLE *phSessionKey)

功能描述 生成会话密钥并用外部公钥加密输出。 参数 hContainer [IN] 容器句柄

ulAlgId [IN] 会话密钥算法标识 pPubKey [IN]加密会话密钥的RSA公钥数据结构 pbData [OUT]导出的加密会话密钥密文,按照PKCS#1v1.5的要求封装 pulDataLen [IN,OUT] 返回导出数据长度 phSessionKey [OUT] 导出的密钥句柄

返回值 SAR_OK表示成功,其它表示失败。

可能的错误值:

SAR_MEMORYERR 发生内存错误; SAR_UNKNOWNERR 发生未知错误; SAR_INVALIDHANDLEERR 句柄无效; SAR_INVALIDPARAMERR 参数无效; SAR_KEYNOTFOUNTERR密钥未发现 。

7.6.8 RSA外来公钥运算

函数原型 ULONG DEVAPI SKF_ExtRSAPubKeyOperation (DEVHANDLE hDev,

RSAPUBLICKEYBLOB* pRSAPubKeyBlob,BYTE* pbInput, ULONG ulInputLen, BYTE* pbOutput, ULONG* pulOutputLen)

功能描述 使用外部传入的RSA公钥对输入数据做公钥运算并输出结果。 参数 hDev [IN] 设备句柄

pRSAPubKeyBlob [IN] RSA公钥数据结构 pbInput [IN] 指向待运算的原始数据缓冲区 ulInputLen [IN] 待运算原始数据的长度,必须为公钥模长。 pbOutput [OUT] 指向RSA公钥运算结果缓冲区,如果该参数为

NULL,则由pulOutputLen返回运算结果的实际长度。

pulOutputLen [IN,OUT] 调用前表示pbOutput缓冲区的长度,返回

RSA公钥运算结果的实际长度。

返回值 SAR_OK: 成功

其他: 错误

7.6.9 RSA外来私钥运算 函数原型 ULONG DEVAPI SKF_ExtRSAPriKeyOperation (DEVHANDLE hDev, 30

GBXX/T ××××-2009

RSAPRIVATEKEYBLOB* pRSAPriKeyBlob,BYTE* pbInput, ULONG ulInputLen, BYTE* pbOutput, ULONG* pulOutputLen)

功能描述 直接使用外部传入的RSA私钥对输入数据做私钥运算并输出结果。 参数 hDev [IN] 设备句柄

pRSAPriKeyBlob [IN] RSA私钥数据结构 pbInput [IN] 指向待运算数据缓冲区 ulInputLen [IN] 待运算数据的长度,必须为公钥模长。 pbOutput [OUT] RSA私钥运算结果,如果该参数为NULL,则由

pulOutputLen返回运算结果的实际长度。

pulOutputLen [IN,OUT] 调用前表示pbOutput缓冲区的长度,返回

RSA私钥运算结果的实际长度。

返回值 SAR_OK: 成功

其他: 错误码

7.6.10 生成ECC签名密钥对

函数原型 ULONG DEVAPI SKF_GenECCKeyPair (HCONTAINER hContainer, ULONG ulAlgId,ECCPUBLICKEYBLOB *pBlob)

功能描述 生成ECC签名密钥对并输出签名公钥。 参数 hContainer [IN] 密钥容器句柄

ulAlgId [IN] 算法标识,只支持SGD_SM2_1算法 pBlob [OUT] 返回ECC公钥数据结构

返回值 SAR_OK表示成功,其它表示失败。

可能的错误值:

SAR_MEMORYERR 发生内存错误; SAR_UNKNOWNERR 发生未知错误; SAR_INVALIDHANDLEERR 句柄无效; SAR_INVALIDPARAMERR 参数无效 ; SAR_TIMEOUTERR 超时。

备注 权限要求:用户权限。 7.6.11 导入ECC加密密钥对

函数原型 ULONG DEVAPI SKF_ImportECCKeyPair (

HCONTAINER hContainer, ULONG ulSymAlgId, BYTE *pbWrappedKey, ULONG ulWrappedKeyLen,

BYTE *pbEncryptedData, ULONG ulEncryptedDataLen)

功能描述 导入ECC公私钥对。 参数 hContainer [IN] 容器句柄

ulSymAlgId [IN] 对称算法密钥标识 pbWrappedKey [IN] 使用该容器内签名公钥保护的对称算法密钥 ulWrappedKeyLen [IN] 保护的对称算法密钥长度 pbEncryptedData [IN] 对称算法密钥保护的ECC加密公私钥对 ulEncryptedDataLen [IN] 对称算法密钥保护的ECC加密公私钥对长度

返回值 SAR_OK表示成功,其它表示失败。

可能的错误值:

SAR_MEMORYERR 发生内存错误; SAR_UNKNOWNERR 发生未知错误; SAR_INVALIDHANDLEERR 句柄无效; SAR_INVALIDPARAMERR 参数无效 ;

31

GBXX/T ××××-2009

SAR_OBJERR 对象错误;

SAR_KEYNOTFOUNTERR 密钥未发现。

备注 权限要求:用户权限。 7.6.12 ECC签名

函数原型 ULONG DEVAPI SKF_ECCSignData (HCONTAINER hContainer, BYTE *pbData, ULONG

ulDataLen, BYTE *pbSignature, ULONG *pulSignLen)

功能描述 ECC数字签名。采用ECC算法和指定私钥hKey,对指定数据pbData进行数字签名。

签名后的结果存放到pbSignature缓冲区,设置pulSignLen为签名值的长度。

参数 hContainer [IN] 密钥容器句柄 pbData [IN] 待签名的数据

ulDataLen [IN] 待签名数据长度,必须小于密钥模长

pbSignature [OUT] 签名值,为NULL时用于获得签名值的长度。 pulSignLen [IN,OUT] 返回签名值长度的指针

返回值 SAR_OK表示成功,其它表示失败。

可能的错误值:

SAR_MEMORYERR 发生内存错误; SAR_UNKNOWNERR 发生未知错误; SAR_INVALIDHANDLEERR 句柄无效; SAR_INVALIDPARAMERR 参数无效 ; SAR_KEYNOTFOUNTERR 密钥未发现; SAR_INDATAERR输入数据错误。

备注 权限要求:用户权限。 7.6.13 ECC验签

函数原型 ULONG DEVAPI SKF_ECCVerify (DEVHANDLE hDev , ECCPUBLICKEYBLOB* pECCPubKeyBlob,

BYTE *pbData, ULONG ulDataLen, BYTE *pbSignature, ULONG ulSignLen)

功能描述 用ECC公钥对数据进行验签。 参数 hDev [IN] 设备句柄

pECCPubKeyBlob [IN] ECC公钥数据结构 pbData [IN] 待验证签名的数据 ulDataLen [IN] 数据长度 pbSignature [IN] 待验证签名值 ulSignLen [IN] 签名值长度

返回值 SAR_OK表示成功,其它表示失败。

可能的错误值:

SAR_MEMORYERR 发生内存错误; SAR_UNKNOWNERR 发生未知错误; SAR_INVALIDHANDLEERR 句柄无效; SAR_INVALIDPARAMERR 参数无效 ; SAR_KEYNOTFOUNTERR 密钥未发现; SAR_INDATAERR输入数据错误。

7.6.14 ECC生成并导出会话密钥

函数原型 ULONG DEVAPI SKF_ECCExportSessionKey (HCONTAINER hContainer, ULONG ulAlgId,

ECCPUBLICKEYBLOB *pPubKey, BYTE *pbData, ULONG *pulDataLen, HANDLE *phSessionKey)

功能描述 生成并导出会话密钥。 参数 hContainer [IN] 容器句柄 32

GBXX/T ××××-2009

ulAlgId [IN] 会话密钥算法标识 pPubKey [IN] 用来导出密钥的密钥结构 pbData [OUT]导出的加密会话密钥密文 pulDataLen [IN,OUT] 返回导出数据长度 phSessionKey [OUT] 会话密钥句柄

返回值 SAR_OK表示成功,其它表示失败。

可能的错误值:

SAR_MEMORYERR 发生内存错误; SAR_UNKNOWNERR 发生未知错误; SAR_INVALIDHANDLEERR 句柄无效; SAR_INVALIDPARAMERR 参数无效; SAR_KEYNOTFOUNTERR密钥未发现 。

7.6.15 ECC外来公钥加密

函数原型 ULONG DEVAPI SKF_ExtECCEncrypt (DEVHANDLE hDev, ECCPUBLICKEYBLOB*

pECCPubKeyBlob,BYTE* pbPlainText, ULONG ulPlainTextLen, BYTE* pbCipherText, ULONG* pulCipherTextLen)

功能描述 使用外部传入的ECC公钥对输入数据做加密运算并输出结果。 参数 hDev [IN] 设备句柄

pECCPubKeyBlob [IN] ECC公钥数据结构 pbPlainText [IN] 待加密的明文数据 ulPlainTextLen [IN] 待加密明文数据的长度 pbCipherText [OUT] 指向密文数据缓冲区,如果该参数为NULL,则

由pulCipherTextLen返回密文数据的实际长度。

pulCipherTextLen [IN,OUT] 调用前表示pbCipherText缓冲区的长度,返

回密文数据的实际长度。

返回值 SAR_OK: 成功

其他: 错误

7.6.16 ECC外来私钥解密

函数原型 ULONG DEVAPI SKF_ExtECCDecrypt (DEVHANDLE hDev, ECCPRIVATEKEYBLOB*

pECCPriKeyBlob, BYTE* pbCipherText, ULONG ulCipherTextLen, BYTE* pbPlainText, ULONG* pulPlainTextLen)

功能描述 使用外部传入的ECC私钥对输入数据做解密运算并输出结果。 参数 hDev [IN] 设备句柄

pECCPriKeyBlob [IN] ECC私钥数据结构 pbCipherText [IN] 待解密的密文数据 ulCipherTextLen [IN] 待解密密文数据的长度 pbPlainText [OUT] 返回明文数据,如果该参数为NULL,则由

pulPlainTextLen返回明文数据的实际长度

pulPlainTextLen [IN,OUT] 调用前表示pbPlainText缓冲区的长度,返

回明文数据的实际长度

返回值 SAR_OK: 成功

其他: 错误

7.6.17 ECC外来私钥签名

函数原型 ULONG DEVAPI SKF_ExtECCSign (DEVHANDLE hDev, ECCPRIVATEKEYBLOB*

pECCPriKeyBlob, BYTE* pbData, ULONG ulDataLen, BYTE* pbSignature, ULONG* pulSignatureLen)

33

GBXX/T ××××-2009

功能描述 使用外部传入的ECC私钥对输入数据做签名运算并输出结果。 参数 hDev [IN] 设备句柄

pECCPriKeyBlob [IN] ECC私钥数据结构 pbData [IN] 待签名数据 ulDataLen [IN] 待签名数据的长度。 pbSignature [OUT]签名值,如果该参数为NULL,则由

pulSignatureLen返回签名结果的实际长度。

pulSignatureLen [IN,OUT] 调用前表示pbSignature缓冲区的长度,返

回签名结果的实际长度。

返回值 SAR_OK: 成功

其他: 错误

7.6.18 ECC外来公钥验签

函数原型 ULONG DEVAPI SKF_ExtECCVerify (DEVHANDLE hDev, ECCPUBLICKEYBLOB*

pECCPubKeyBlob,BYTE* pbData, ULONG ulDataLen, BYTE *pbSignature, ULONG ulSignLen)

功能描述 外部使用传入的ECC公钥做签名验证。 参数 hDev [IN] 设备句柄

pECCPubKeyBlob [IN] ECC公钥数据结构 pbData [IN] 待验证数据 ulDataLen [IN] 待验证数据的长度。 pbSignature [IN] 签名值 ulSignLen [IN] 签名值的长度。 返回值

SAR_OK: 成功 SAR_ BAD_SIGNATURE: 验证失败 其他: 错误 ECC生成密钥协商参数并输出

ULONG DEVAPI SKF_GenerateAgreementDataWithECC (HCONTAINER hContainer, ULONG ulAlgId,ECCPUBLICKEYBLOB* pTempECCPubKeyBlob,BYTE* pbID, ULONG ulIDLen,HANDLE *phAgreementHandle)

使用ECC密钥协商算法,为计算会话密钥而产生协商参数,返回临时ECC密钥对的公钥及协商句柄。 hContainer [IN] 容器句柄 ulAlgId [IN] 会话密钥算法标识 pTempECCPubKeyBlob [OUT] 发起方临时ECC公钥

pbID ulIDLen

[IN] 发起方的ID

[IN] 发起方ID的长度,不大于32

7.6.19

原型:

描述: 参数:

phAgreementHandle [OUT] 返回的密钥协商句柄

返回值: SAR_OK表示成功,其它表示失败。 备注: 为协商会话密钥,协商的发起方应首先调用本函数。 7.6.20 ECC产生协商数据并计算会话密钥 原型: ULONG DEVAPI SKF_GenerateAgreementDataAndKeyWithECC(

HANDLE hContainer, ULONG ulAlgId,

ECCPUBLICKEYBLOB* pSponsorECCPubKeyBlob, ECCPUBLICKEYBLOB* pSponsorTempECCPubKeyBlob, ECCPUBLICKEYBLOB* pTempECCPubKeyBlob, 34


智能IC卡及智能密码钥匙密码应用接口规范修订版 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:石油一个案例关于配送

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: