logo资料库

国密接口详细设计文档.docx

第1页 / 共117页
第2页 / 共117页
第3页 / 共117页
第4页 / 共117页
第5页 / 共117页
第6页 / 共117页
第7页 / 共117页
第8页 / 共117页
资料共117页,剩余部分请下载后查看
SDKEY国密应用接口
详细设计文档
1数据类型定义
1.1算法标识
1.1.1分组算法标识
1.1.2非对称算法标识
1.1.3密码杂凑算法标识
1.2基本类型
1.3常量定义
2结构体定义
2.1版本
2.2设备信息
2.3RSA公钥数据结构
2.4RSA私钥数据结构
2.5ECC公钥数据结构
2.6ECC私钥数据结构
2.7ECC密文数据结构
2.8ECC签名数据结构
2.9分组密码参数
2.10ECC加密密钥对保护结构
2.11文件属性
2.12权限类型
2.13设备状态
3设备管理函数
3.1SKF_WaitForDevEvent
3.2SKF_CancelWaitForDevEvent
3.3SKF_EnumDev
3.4SKF_ConnectDev
3.5SKF_DisconnectDev
3.6SKF_GetDevState
3.7SKF_SetLabel
3.8SKF_GetDevInfo
3.9SKF_LockDev
3.10SKF_UnlockDev
3.11SKF_Transmit
4访问控制函数
4.1SKF_ChangeDevAuthKey
4.2SKF_DevAuth
4.3SKF_ChangePIN
4.4SKF_GetPINInfo
4.5SKF_VerifyPIN
4.6SKF_UnblockPIN
4.7SKF_ClearSecueState
5应用管理函数
5.1SKF_CreateApplication
5.2SKF_EnumApplication
5.3SKF_DeleteApplication
5.4SKF_OpenApplication
5.5SKF_CloseApplication
6文件管理函数
6.1SKF_CreateFile
6.2SKF_DeleteFile
6.3SKF_EnumFile
6.4SKF_GetForInfo
6.5SKF_ReadFile
6.6SKF_WriteFile
7容器管理函数
7.1SKF_CreateContainer
7.2SKF_DeleteContainer
7.3SKF_OpenContainer
7.4SKF_CloseContainer
7.5SKF_EnumContainer
7.6SKF_GetContainerType
7.7SKF_ImportCertificate
7.8SKF_ExportCertificate
8密码服务函数
8.1SKF_GenRandom
8.2SKF_GenExtRSAKey
8.3SKF_GenRSAKeyPair
8.4SKF_ImportRSAKeyPair
8.5SKF_RSASignData
8.6SKF_RSAVerify
8.7SKF_RSAExportSessionKey
8.8SKF_ExtRSAPubKeyOperation
8.9SKF_ExtRSAPriKeyOperation
8.10SKF_GenECCKeyPair
8.11SKF_ImportECCKeyPair
8.12SKF_ECCSignData
8.13SKF_ECCVerify
8.14SKF_ECCExportSessionKey
8.15SKF_ExtECCEncrypt
8.16SKF_ExtECCDecrypt
8.17SKF_ExtECCSign
8.18SKF_ExtECCVerify
8.19SKF_GenerateAgreementDataWithECC
8.20SKF_GenerateKeyWithECC
8.21SKF_GenerateAgreementDataAndKeyWithECC
8.22SKF_ExportPublicKey
8.23SKF_ImportSessionKey
8.24SKF_SetSymmKey
8.25SKF_EncryptInit
8.26SKF_Encrypt
8.27SKF_EncryptUpdate
8.28SKF_EncryptFinal
8.29SKF_DecryptInit
8.30SKF_Decrypt
8.31SKF_DecryptUpdate
8.32SKF_DecryptFinal
8.33SKF_DigestInit
8.34SKF_Digest
8.35SKF_DigestUpdate
8.36SKF_DigestFinal
8.37SKF_MacInit
8.38SKF_Mac
8.39SKF_MacUpdate
8.40SKF_MacFinal
8.41SKF_CloseHandle
9其他
2014.04 目录 SDKEY 国密应用接口 ......................................................................................... 错误!未定义书签。 详细设计说明书.................................................................................................错误!未定义书签。 SDKEY 国密应用接口 .......................................................................................................................... 7 详细设计文档..................................................................................................................................... 7 1 数据类型定义............................................................................................................................ 8 1.1 算法标识 ................................................................................................................................8 1.1.1 分组算法标识...................................................................................................................8 1.1.2 非对称算法标识...............................................................................................................8 1.1.3 密码杂凑算法标识...........................................................................................................9
1.2 1.3 基本类型 ................................................................................................................................9 常量定义 ..............................................................................................................................10 2 结构体定义.............................................................................................................................. 11 2.1 2.2 版本......................................................................................................................................11 设备信息 ..............................................................................................................................11 2.3 RSA 公钥数据结构................................................................................................................... 13 2.4 RSA 私钥数据结构................................................................................................................... 14 2.5 ECC 公钥数据结构 ................................................................................................................... 15 2.6 ECC 私钥数据结构 ................................................................................................................... 16 2.7 ECC 密文数据结构 ................................................................................................................... 16 2.8 ECC 签名数据结构 ................................................................................................................... 17 2.9 分组密码参数......................................................................................................................18 2.10 ECC 加密密钥对保护结构 ...................................................................................................18 2.11 文件属性 ..............................................................................................................................19 2.12 权限类型 ..............................................................................................................................20 2.13 设备状态 ..............................................................................................................................20 3 设备管理函数.......................................................................................................................... 21 3.1 SKF_WaitForDevEvent...............................................................................................................21 3.2 SKF_CancelWaitForDevEvent....................................................................................................22
3.3 SKF_EnumDev........................................................................................................................... 23 3.4 SKF_ConnectDev.......................................................................................................................24 3.5 SKF_DisconnectDev...................................................................................................................25 3.6 SKF_GetDevState...................................................................................................................... 25 3.7 SKF_SetLabel.............................................................................................................................26 3.8 SKF_GetDevInfo........................................................................................................................ 27 3.9 SKF_LockDev ............................................................................................................................. 28 3.10 SKF_UnlockDev.................................................................................................................... 28 3.11 SKF_Transmit........................................................................................................................29 4 访问控制函数.......................................................................................................................... 30 4.1 SKF_ChangeDevAuthKey...........................................................................................................31 4.2 SKF_DevAuth.............................................................................................................................32 4.3 SKF_ChangePIN.........................................................................................................................33 4.4 SKF_GetPINInfo.........................................................................................................................34 4.5 SKF_VerifyPIN ............................................................................................................................36 4.6 SKF_UnblockPIN ........................................................................................................................37 4.7 SKF_ClearSecueState................................................................................................................ 38 5 应用管理函数.......................................................................................................................... 39 5.1 SKF_CreateApplication..............................................................................................................39
5.2 SKF_EnumApplication...............................................................................................................41 5.3 SKF_DeleteApplication..............................................................................................................42 5.4 SKF_OpenApplication................................................................................................................43 5.5 SKF_CloseApplication................................................................................................................44 6 文件管理函数.......................................................................................................................... 45 6.1 SKF_CreateFile.......................................................................................................................... 45 6.2 SKF_DeleteFile.......................................................................................................................... 47 6.3 SKF_EnumFile ............................................................................................................................48 6.4 SKF_GetForInfo......................................................................................................................... 49 6.5 SKF_ReadFile.............................................................................................................................50 6.6 SKF_WriteFile............................................................................................................................51 7 容器管理函数.......................................................................................................................... 53 7.1 SKF_CreateContainer ................................................................................................................ 53 7.2 SKF_DeleteContainer ................................................................................................................ 54 7.3 SKF_EnumContainer................................................................................................................. 55 7.4 SKF_OpenContainer..................................................................................................................56 7.5 SKF_CloseContainer.................................................................................................................. 57 7.6 SKF_GetContainerType............................................................................................................. 58 7.7 SKF_ImportCertificate...............................................................................................................59
7.8 SKF_ExportCertificate............................................................................................................... 60 8 密码服务函数.......................................................................................................................... 61 8.1 SKF_GenRandom.......................................................................................................................62 8.2 SKF_GenExtRSAKey................................................................................................................... 63 8.3 SKF_GenRSAKeyPair..................................................................................................................64 8.4 SKF_ImportRSAKeyPair............................................................................................................. 66 8.5 SKF_RSASignData...................................................................................................................... 67 8.6 SKF_RSAVerify........................................................................................................................... 69 8.7 SKF_RSAExportSessionKey........................................................................................................70 8.8 SKF_ExtRSAPubKeyOperation...................................................................................................72 8.9 SKF_ExtRSAPriKeyOperation.....................................................................................................73 8.10 SKF_GenECCKeyPair............................................................................................................. 75 8.11 SKF_ImportECCKeyPair.........................................................................................................76 8.12 SKF_ECCSignData................................................................................................................. 77 8.13 SKF_ECCVerify ...................................................................................................................... 78 8.14 SKF_ECCExportSessionKey................................................................................................... 80 8.15 SKF_ExtECCEncrypt.............................................................................................................. 81 8.16 SKF_ExtECCDecrypt..............................................................................................................82 8.17 SKF_ExtECCSign....................................................................................................................84
8.18 SKF_ExtECCVerify................................................................................................................. 85 8.19 SKF_GenerateAgreementDataWithECC............................................................................... 87 8.20 SKF_GenerateKeyWithECC...................................................................................................88 8.21 SKF_GenerateAgreementDataAndKeyWithECC...................................................................91 8.22 SKF_ExportPublicKey............................................................................................................92 8.23 SKF_ImportSessionKey.........................................................................................................93 8.24 SKF_SetSymmKey.................................................................................................................95 8.25 SKF_EncryptInit.................................................................................................................... 96 8.26 SKF_Encrypt..........................................................................................................................97 8.27 SKF_EncryptUpdate..............................................................................................................98 8.28 SKF_EncryptFinal................................................................................................................100 8.29 SKF_DecryptInit..................................................................................................................101 8.30 SKF_Decrypt....................................................................................................................... 102 8.31 SKF_DecryptUpdate........................................................................................................... 103 8.32 SKF_DecryptFinal............................................................................................................... 105 8.33 SKF_DigestInit.................................................................................................................... 106 8.34 SKF_Digest ..........................................................................................................................108 8.35 SKF_DigestUpdate..............................................................................................................109 8.36 SKF_DigestFinal.................................................................................................................. 110
8.37 SKF_MacInit ........................................................................................................................111 8.38 SKF_Mac.............................................................................................................................112 8.39 SKF_MacUpdate.................................................................................................................114 8.40 SKF_MacFinal..................................................................................................................... 115 8.41 SKF_CloseHandle................................................................................................................116 9 其他........................................................................................................................................117 SDKEY 国密应用接口 详细设计文档 本说明书供开发人员参考,文档的编写者、本系统的设计者与管理者都应自 觉按照此规范执行。
1 数据类型定义 1.1 算法标识 1.1.1 分组算法标识 分组密码算法标识包含密码算法的类型和加密模式。 分组密码算法标识的编码规则为:从低位到高位,第 0 位到第 7 位按位表示 分组密码算法工作模式,第 8 位到第 31 位按位表示分组密码算法类型,分组密 码算法的标识如表 1 所示。 表 1 分组密码算法标识表 标签 SGD_SM1_ECB SGD_SM1_CBC SGD_SM1_CFB SGD_SM1_OFB SGD_SM1_MAC SGD_SSF33_ECB SGD_SSF33_CBC SGD_SSF33_CFB SGD_SSF33_OFB SGD_SSF33_MAC SGD_SMS4_ECB SGD_SMS4_CBC SGD_SMS4_CFB SGD_SMS4_OFB SGD_SMS4_MAC 标识符 0x00000101 0x00000102 0x00000104 0x00000108 0x00000110 0x00000201 0x00000202 0x00000204 0x00000208 0x00000210 0x00000401 0x00000402 0x00000404 0x00000408 0x00000410 描述 SM1 算法ECB 加密模式 SM1 算法CBC 加密模式 SM1 算法CFB 加密模式 SM1 算法OFB 加密模式 SM1 算法MAC 运算 SSF33算法ECB加密模式 SSF33算法CBC加密模式 SSF33算法CFB加密模式 SSF33算法OFB加密模式 SSF33算法MAC运算 SMS4算法ECB加密模式 SMS4算法CBC加密模式 SMS4算法CFB加密模式 SMS4算法OFB加密模式 SMS4算法MAC运算 1.1.2 非对称算法标识 非对称密码算法标识仅定义了密码算法的类型,在使用非对称算法进行数字 签名运算时,可将非对称密码算法标识符与密码杂凑算法标识符进行“或”运算后 使用,如“RSA with SHA1”可表示为 SGD_RSA | SGD_SHA1,即 0x00010002,“|” 表示“或”运算。
分享到:
收藏