版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络安全技术证书应用综合服务接口规范integratedserviceinterfacespecification2024-04-25发布2024-11-01实施国家市场监督管理总局国家标准化管理委员会GB/T43694—2024前言 I 2规范性引用文件 3术语和定义 4缩略语 25证书应用综合服务接口 25.1证书应用综合服务接口在公钥密码应用技术体系框架中的位置 25.2证书应用综合服务接口分类 25.3客户端服务接口 25.4服务器端服务接口 26标识和数据结构 36.1标识定义 36.2数据结构定义 36.3数据格式要求 7证书应用综合服务接口定义 37.1客户端COM组件接口 37.2客户端JavaScript脚本接口 7.3服务器端COM组件接口 7.4服务器端Java组件接口 428接口验证方法 8.1验证环境 8.2验证原则 8.3验证场景 附录A(规范性)证书应用综合服务接口错误代码定义 附录B(资料性)证书应用综合服务接口典型部署模型 附录C(资料性)证书应用综合服务接口集成示例 附录D(资料性)证书应用综合服务接口汇总 附录E(资料性)客户端JavaScript脚本接口异步调用示例说明 参考文献 I本文件按照GB/T1.1—2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规定起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。本文件由全国网络安全标准化技术委员会(SAC/TC260)提出并归口。本文件起草单位:北京数字认证股份有限公司、博雅中科(北京)信息技术有限公司、北京奇虎科技有限公司、山东得安信息技术有限公司、中国电力科学研究院、北京信安世纪科技股份有限公司、无锡江南信息安全工程技术中心、中国电子技术标准化研究院、格尔软件股份有限公司、中电科网络安全科技股份有限公司、深圳市不动产登记中心、郑州信大捷安信息技术股份有限公司、阿里云计算有限公司、浙江九州量子信息技术股份有限公司、航天信息股份有限公司、数安时代科技股份有限公司、智巡密码(上海)检测技术有限公司、中科信息安全共性技术国家工程研究中心有限公司、中国汽车工程研究院股份有限公司。袁中林、李智虎、焦靖伟、刘平、黄晶晶、谭武征、寇建波、颜海龙、刘献伦、刘为华、肖淑婷、张文科、1网络安全技术证书应用综合服务接口规范本文件规定了面向证书应用的综合服务接口要求和定义,描述了相应验证方法。本文件适用于公钥密码基础设施应用技术体系下证书应用中间件和证书应用系统的开发,以及密码应用支撑平台的研制和检测。2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于GB/T20518信息安全技术公钥基础设施数字证书格式GB/T25061信息安全技术XML数字签名语法与处理规范GB/T25069信息安全技术术语GB/T33560信息安全技术密码应用标识规范GB/T35275信息安全技术SM2密码算法加密签名消息语法规范GB/T35276信息安全技术SM2密码算法使用规范GB/T35291信息安全技术智能密码钥匙应用接口规范GB/T36322信息安全技术密码设备应用接口规范GB/T43578信息安全技术通用密码服务接口规范GM/T0094—2020公钥密码应用技术体系框架规范GM/Z4001密码术语3术语和定义GB/T25069、GM/Z4001界定的以及下列术语和定义适用于本文件。由CA签名的包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构。用户密钥userkey存储在设备内部的用于应用密码运算的非对称密钥对。注:用户密钥包含签名密钥对和加密密钥对。密码设备中用于保存用户密钥的唯一性存储空间。24缩略语下列缩略语适用于本文件。B/S:浏览器/服务器(Browser/Server)CA:证书认证机构(CertificationAuthority)COM:组件对象模型(ComponentObjectModel)CRL:证书撤销列表(CertificateRevocationList)JAR:Java归档文件(JavaArchive)LDAP:轻量级目录访问协议(LightweightDirectoryAccessProtocol)OID:对象标识符(ObjectIdentifier)XML:可扩展标记语言(ExtensibleMarkupLanguage)5证书应用综合服务接口5.1证书应用综合服务接口在公钥密码应用技术体系框架中的位置公钥密码应用技术体系框架由应用层、典型密码应用支撑层、通用密码应用支撑层、基础设施安全支撑平台、密码设备服务层组成。证书应用综合服务接口属于通用密码应用支撑层,是中间件,为典型密码应用支撑层和应用层提供密码服务。其功能主要包括:负责完成与密码设备的安全连接;实现基于数字证书的身份认证,从证书中获取有关信息,实现授权管理、访问控制等安全机制;负责具体与密码设备交互实现具体的密码运算;将数据按照GB/T35275要求的格式进行封装,实现数据封装格式与应用系统无关性,实现应用系统互联互通和信息共享。证书应用综合服务接口规范在公钥密码应用技术框架内的位置应遵循GM/T0094—2020的第4章。5.2证书应用综合服务接口分类证书应用综合服务接口包括客户端服务接口和服务器端服务接口两类。它位于典型密码应用支撑层和密码设备服务层之间,既可被典型密码应用支撑层调用也可被应用层直接调用,向上层提供证书信息解析、基于数字证书身份认证、信息的机密性、完整性和不可否认性等密码服务。5.3客户端服务接口客户端服务接口采用支持多种编程语言的COM组件和客户端常使用的JavaScript脚本语言为例客户端服务接口一般通过调用智能密码钥匙应用接口或通用密码服务接口来实现,此类接口应符合GB/T35291或GB/T43578中的规定,主要功能包括:配置管理、证书解析、签名与验证、加密与解密数字信封、XML数据签名与验证等。5.4服务器端服务接口服务器端服务接口采用支持多种编程语言的COM组件和服务端常使用的Java语言为例描述,其适用于服务器端程序调用,接口的形态包括COM组件、JAR包等,支持主流操作系统。服务器端服务接口一般通过调用密码设备应用接口或通用密码服务接口来实现,此类接口应符合GB/T36322或GB/T43578中的规定,功能基本与客户端服务接口相对应,主要包括:配置管理、证书36标识和数据结构6.1标识定义本文件所使用的常量、各类算法标识和证书解析标识应符合GB/T33560的规定。6.2数据结构定义本文件规定的接口处理的数据分为两种类型:数据类型A:是一种基于公钥的加密或签名结构,当公钥算法为RSA时,数据的结构参见PKCS#1v1.5;当公钥算法为SM2时,数据的结构应符合GB/T35276的规定。数据类型B:是一种基于证书的加密或签名结构,当证书的公钥算法为RSA时,消息的结构参见PKCS#7;当证书的公钥算法为SM2时,消息的结构应符合GB/T35275的规定。6.3数据格式要求本文件所涉及的数字证书格式应符合GB/T20518的规定。本文件所描述的Base64编码格式参见RFC4648中Base64Encoding部分。在没有特殊说明的情况下,本文件中字符串采用UTF-8编码,其格式参见RFC3629。本文件所定义接口返回的错误码或抛出的异常信息应符合附录A,典型部署模型可参见附录B,集成示例可参见附录C。本文件以COM组件为例进行接口描述时,所用到的数据类型说明见表1。表1COM组件数据类型说明类型说明字符串类型,不同的开发语言应采取对应的类型定义,如:char*、CString、java.lang.String等32位整数16位整数布尔类型,其取值范围是TRUE和FALSE,其中TRUE表示真值,FALSE表示假值空串长度等于0的字符串非空长度大于0的字符串7证书应用综合服务接口定义7.1客户端COM组件接口7.1.1客户端COM组件接口综述客户端COM组件接口提供配置管理、证书解析、签名与验证、加密与解密数字信封、XML数据签名与验证等功能,共包含35个接口。客户端COM组件接口列表见附录D的表D.1,7.1.2~7.1.36给出了接口详细定义。7.1.2获取接口版本信息获取接口版本信息接口定义应符合表2的规定。4表2获取接口版本信息接口定义原型BSTRSOF_GetVersion()描述获取接口的版本号参数无返回值接口版本号(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.3设置签名算法设置签名算法接口定义应符合表3的规定。表3设置签名算法接口定义原型LONGSOF_SetSignMethod(LONGSignMethod)描述设置接口在签名和验签运算时使用的签名算法参数SignMethod(签名算法标识,应符合GB/T33560的规定)返回值SOR_OK(成功)其他(失败,返回符合表A.1定义的错误代码)7.1.4获得签名算法获得签名算法接口定义应符合表4的规定。表4获得签名算法接口定义原型LONGSOF_GetSignMethod()描述获得接口当前使用的签名算法参数无返回值当前使用的签名算法标识(成功)0(当前没有设置签名算法)7.1.5设置加密算法设置加密算法接口定义应符合表5的规定。表5设置加密算法接口定义原型LONGSOF_SetEncryptMethod(LONGEncryptMethod)描述设置接口进行数据加密时使用的对称算法参数EncryptMethod(对称加密算法标识,应符合GB/T33560的规定,本接口可支持不带附加认证数据的加解密算法)返回值SOR_OK(成功)其他(失败,返回表A.1定义的错误代码)5GB/T43694—20247.1.6获得加密算法获得加密算法接口定义应符合表6的规定。表6获得加密算法接口定义原型LONGSOF_GetEncryptMethod()描述获得接口当前使用的对称加解密算法参数无返回值当前使用的加密算法标识(成功)0(当前没有设置加密算法)7.1.7获得证书列表获得证书列表接口定义应符合表7的规定。表7获得证书列表接口定义原型BSTRSOF_GetUserList()描述取得当前已安装证书的用户列表参数无返回值根据证书应用的策略不同得到不同的证书列表返回值。在证书列表中,用户名代表证书的通用名(CommonName),CertID是证书唯一标识,其格式由实现者自定义,宜包含容器名、应用名、设备序列号等项。通过CertID应找到唯一的签名证书、加密证书,并使用对应的用户密钥]空串(失败或当前不存在证书用户列表,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.8导出用户签名证书导出用户签名证书接口定义应符合表8的规定。表8导出用户签名证书接口定义原型BSTRSOF_ExportUserCert(BSTRCertID)描述根据证书唯一标识,获取Base64编码的签名证书字符串参数CertID(证书唯一标识)返回值Base64编码的签名证书字符串(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.9证书登录证书登录接口定义应符合表9的规定。6表9证书登录接口定义原型BOOLSOF_Login(BSTRCertID,BSTRPassWd)描述校验证书口令,进行证书认证参数CertID(证书唯一标识)PassWd(证书口令)返回值TRUE(成功)FALSE(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则证书登录成功后,表示该证书用户已拥有私钥使用权限,即登录状态。登录状态下,可正常调用签名、解密等需要私钥使用权限的接口,获得计算结果7.1.10获取证书口令剩余重试次数获取证书口令剩余重试次数接口定义应符合表10的规定。表10获取证书口令剩余重试次数接口定义原型LONGSOF_GetPinRetryCount(BSTRCertID)描述获取证书口令的剩余重试次数参数CertID(证书唯一标识)返回值剩余口令重试次数,当重试次数小于或等于0时表示证书口令已被锁定7.1.11修改证书口令修改证书口令接口定义应符合表11的规定。表11修改证书口令接口定义原型BOOLSOF_ChangePassWd(BSTRCertID,BSTROldPassWd,BSTRNewPassWd)描述修改设备的用户认证口令参数CertID(证书唯一标识)OldPassWd(旧证书口令)NewPassWd(新证书口令)返回值TRUE(成功)FALSE(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.12导出用户加密证书导出用户加密证书接口定义应符合表12的规定。7表12导出用户加密证书接口定义原型BSTRSOF_ExportExChangeUserCert(BSTRCertID)描述根据证书唯一标识,获取Base64编码的加密(交换)证书字符串参数CertID(证书唯一标识)返回值Base64编码的加密证书字符串(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.13获得证书信息获得证书信息接口定义应符合表13的规定。表13获得证书信息接口定义原型BSTRSOF_GetCertInfo(BSTRBase64Cert,SHORTType)描述获取证书内指定类型的信息参数Base64Cert(Base64编码的证书字符串)Type(证书解析标识,应符合GB/T33560的规定)返回值指定类型的证书信息(成功)空串(失败或证书中不存在该项内容)7.1.14获得证书扩展信息获得证书扩展信息接口定义应符合表14的规定。表14获得证书扩展信息接口定义原型BSTRSOF_GetCertInfoByOid(BSTRBase64Cert,BSTROid)描述根据OID获取证书私有扩展项信息参数Base64Cert(Base64编码的证书字符串)Oid(私有扩展对象ID,如“1.2.156.xxx”)返回值证书私有扩展项OID对应的信息(成功)空串(失败或证书中不存在该私有扩展项)7.1.15获得设备信息获得设备信息接口定义应符合表15的规定。8表15获得设备信息接口定义原型BSTRSOF_GetDevicelnfo(BSTRCertID,LONGType)描述根据证书唯一标识和类型代码获得设备信息参数CertID(证书唯一标识)Type(设备信息的类型,应符合GB/T33560的规定)返回值对应的设备信息(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.16验证证书有效性验证证书有效性接口定义应符合表16的规定。表16验证证书有效性接口定义原型LONGSOF_ValidateCert(BSTRBase64Cert)描述验证证书有效性参数Base64Cert(Base64编码的证书字符串)返回值SAR_OK(验证成功)其他(验证失败,失败原因应符合表A.1中的错误代码范围0X0B000500~0X0B000505)验证策略基本的证书验证策略应包括:a)验证CA信任列表,各层都要进行签名验证;b)各层证书的有效期验证;c)各层证书的吊销状态。在特殊情况下(如:网络条件不允许),证书的吊销状态可采取灵活方式,由应用系统各层内部维护一个吊销列表,在证书登录认证时应用该吊销列表。验证证书有效性也可采取代理验证方式7.1.17数据签名数据签名接口定义应符合表17的规定。表17数据签名接口定义原型BSTRSOF_SignData(BSTRCertID,BSTRInData)描述对字符串数据进行数字签名,返回Base64编码的数据类型A签名结果参数CertID(证书唯一标识)InData(原文)返回值Base64编码的签名值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则本接口应在登录状态下才能成功返回签名值,否则应返回空串9GB/T43694—20247.1.18验证数据签名验证数据签名接口定义应符合表18的规定。表18验证数据签名接口定义原型BOOLSOF_VerifySignedData(BSTRBase64Cert,BSTRInData,BSTRSignValue)描述验证数据签名,签名值格式为Base64编码的数据类型A参数Base64Cert(Base64编码的签名者证书字符串)InData(原文)SignValue(Base64编码的签名值)返回值TRUE(成功)FALSE(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.19文件签名文件签名接口定义应符合表19的规定。表19文件签名接口定义原型BSTRSOF_SignFile(BSTRCertID,BSTRInFile)描述根据文件全路径,对指定文件进行数字签名,返回Base64编码的数据类型A签名结果参数CertID(证书唯一标识)InFile(原文文件全路径)返回值Base64编码的签名值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则本接口应在登录状态下才能成功返回签名值,否则应返回空串7.1.20验证文件签名验证文件签名接口定义应符合表20的规定。表20验证文件签名接口定义原型BOOLSOF_VerifySignedFile(BSTRBase64Cert,BSTRInFile,BSTRSignValue)描述验证文件的数字签名,签名值格式为Base64编码的数据类型A参数Base64Cert(Base64编码的签名者证书)InFile(原文文件全路径)SignValue(Base64编码的签名值)返回值TRUE(成功)FALSE(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.21数据加密数据加密接口定义应符合表21的规定。表21数据加密接口定义原型BSTRSOF_EncryptData(BSTRBase64Cert,BSTRInData)描述数字信封加密,加密过程为使用临时产生的对称密钥加密数据,然后使用数字证书的公钥加密对称密钥,返回Base64编码格式的数据类型B密文数据参数Base64Cert(Base64编码的数据接收者的加密证书,若使用多个证书对数据加密,证书之间用&.&.&.作为分隔符连接)InData(待加密的明文)返回值Base64编码的密文数据(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.22数据解密数据解密接口定义应符合表22的规定。表22数据解密接口定义原型BSTRSOF_DecryptData(BSTRCertID,BSTRInData)描述使用证书对应的私钥解密数字信封,密文数据格式为Base64编码的数据类型B参数CertID(证书唯一标识)InData(待解密的Base64编码的密文数据)返回值解密后的明文数据(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则本接口应在登录状态下才能解密得到明文,否则应返回空串7.1.23消息签名消息签名接口定义应符合表23的规定。表23消息签名接口定义原型BSTRSOF_SignMessage(SHORTFlag,BSTRCertID,BSTRInData)描述对字符串数据进行消息签名,返回Base64编码的数据类型B签名结果参数Flag(是否为Detached的标识),取值范围:a)1:表示Detached,即不带原文;b)0:表示Attached,即带原文CertID(证书唯一标识)InData(原文)返回值Base64编码的消息签名值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则签名结果包含:原文(可选)、签名者证书、签名算法和签名值。本接口应在登录状态下才能返回签名值,否则应返回空串GB/T43694—20247.1.24验证消息签名验证消息签名接口定义应符合表24的规定。表24验证消息签名接口定义原型BOOLSOF_VerifySignedMessage(BSTRSignedMessage,BSTRInData)描述验证消息签名,签名值格式为Base64编码的数据类型B参数SignedMessage(Base64编码的消息签名值)InData(原文,若签名结果中包含原文,忽略本参数)返回值TRUE(成功)FALSE(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.25解析消息签名解析消息签名接口定义应符合表25的规定。表25解析消息签名接口定义原型BSTRSOF_GetInfoFromSignedMessage(BSTRSignedMessage,SHORTType)描述参数SignedMessage(Base64编码的消息签名值)Type(获取的信息类型),取值范围:a)1:解析出原文;b)2:解析出Base64编码的签名者证书;c)3:解析出Base64编码的签名值返回值解析结果(成功)空串(失败或不存在该项)7.1.26XML数据签名XML数据签名接口定义应符合表26的规定。表26XML数据签名接口定义原型BSTRSOF_SignDataXML(BSTRCertID,BSTRInData)描述对XML数据进行数字签名,证书为RSA算法时签名结果参见RFC3275,证书为SM2算法时签名结果应符合GB/T25061的规定参数CertID(证书唯一标识)InData(XML格式的签名原文)返回值XML签名结果(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)表26XML数据签名接口定义(续)安全规则本接口在登录状态下才能返回签名值,否则返回空串。缺省配置和参数如下:a)采用封皮签名,签名前应对签名原文做格式化;b)格式化方法采用带注释的XML格式化1.1,证书为RSA算法时标识符为/2006/12/xml-cl4n11#WithComment,证书为SM2算法时标识符为http:///2006/12/xml-cl4n11#WithComments7.1.27验证XML数据签名验证XML数据签名接口定义应符合表27的规定。表27验证XML数据签名接口定义原型BOOLSOF_VerifySignedDataXML(BSTRXMLSignedData)描述参数XMLSignedData(XML签名结果)返回值TRUE(成功)FALSE(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.28解析XML数据签名解析XML数据签名接口定义应符合表28的规定。表28解析XML数据签名接口定义原型BSTRSOF_GetXMLSignaturelnfo(BSTRXMLSignedData,SHORTType)描述解析XML数据签名,获取签名值、XML原文、证书和相关算法等信息参数XMLSignedData(XML签名结果)Type(待解析的参数类型),取值范围,a)1:解析出XML原文;b)2:解析出摘要值;c)3:解析出签名值;d)4:解析出签名证书;e)5:解析出摘要算法;f)6:解析出签名算法返回值解析结果(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)表28解析XML数据签名接口定义(续)安全规则XML签名缺省配置和参数值样例:a)XML原文取自Object元素;b)摘要值取自DigestValue元素,形如http:///2001/04/xmldsig-more#sm3;c)签名值取自SignatureValue元素,为Base64编码;d)签名证书取自X509Data元素,为Base64编码;e)摘要算法取自DigestMethod元素的Algorithm属性,形如http:///2001/04/xmldsig-moref)签名算法取自SignatureMethod7.1.29产生随机数产生随机数接口定义应符合表29的规定。表29产生随机数接口定义原型BSTRSOF_GenRandom(LONGRandomLen)描述产生指定长度的随机数参数RandomLen(待产生随机数的字节长度)返回值Base64编码的随机数(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.30获取最新的错误信息获取最新的错误信息接口定义应符合表30的规定。表30获取最新的错误信息接口定义原型LONGSOF_GetLastError()描述获取最新的错误代码参数无返回值错误代码,应符合表A.1错误代码表7.1.31计算数据摘要计算数据摘要接口定义应符合表31的规定。表31计算数据摘要接口定义原型BSTRSOF_HashData(LONGHashAlg,BSTRInData,BSTRSignCert,BSTRUserID)描述计算数据摘要。若采用SM3算法,当SignCert和UsreID为空时,只计算数据的摘要值,当SignCert和UsrelD值不为空时,应按照GB/T35276规定的预处理过程计算,摘要值可作为SM2签名的输入表31计算数据摘要接口定义(续)参数HashAlg(摘要算法,应符合GB/T33560的规定)Indata(原文)SignCert(Base64编码的签名者证书,当摘要算法为SM3时有效,如不需要可传空串)UserID(签名者用户ID,当摘要算法为SM3时有效,若SignCert参数为空,本参数无意义)返回值Base64编码的数据摘要值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.32计算文件摘要计算文件摘要接口定义应符合表32的规定。表32计算文件摘要接口定义原型BSTRSOF_HashFile(LONGHashAlg,BSTRInFile,BSTRSignCert,BSTRUserID)描述计算文件数据摘要,若采用SM3算法,当SignCert和UsreID为空时,只计算数据的摘要值,当SignCert和UsreID值不为空时,应按照GB/T35276规定的预处理过程计算,摘要值可作为SM2签名的输入参数HashAlg(摘要算法,应符合GB/T33560的规定)InFile(原文文件全路径)SignCert(Base64编码的签名者证书,当摘要算法为SM3时有效,如不需要可传空串)UserID(签名者用户ID,当摘要算法为SM3时有效,若SignCert参数为空,本参数无意义)返回值Base64编码的文件摘要值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.33摘要数据签名摘要数据签名接口定义应符合表33的规定。表33摘要数据签名接口定义原型BSTRSOF_SignHashData(BSTRCertID,BSTRBase64HashData,LONGHashAlg)描述对数据摘要值签名,返回Base64编码的数据类型A签名结果。Base64HashData参数一般是SOF_HashData或SOF_HashFile函数的计算结果。当采用SM2算法签名时,SM3算法的摘要值应按照GB/T35276规定的预处理过程计算参数CertID(证书唯一标识)Base64HashData(Base64编码的摘要值)HashAlg(摘要算法,应符合GB/T33560的规定)返回值Base64编码的签名值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则本接口应在登录状态下才能成功返回签名值,否则应返回空串GB/T43694—20247.1.34验证摘要数据签名验证摘要数据签名接口定义应符合表34的规定。表34验证摘要数据签名接口定义原型BOOLSOF_VerifySignedHashData(BSTRBase64Cert,BSTRBase64HashData,BSTRSignValue,LONGHashAlg)描述数据摘要签名验证,签名值格式为Base64编码的数据类型A。若使用SM2算法验证签名,Base64HashData参数是SM3算法的摘要值,应按照GB/T35276规定的预处理过程计算参数Base64Cert(Base64编码的签名者证书)Base64HashData(Base64编码的摘要值)SignValue(Base64编码的签名值)HashAlg(摘要算法,应符合GB/T33560的规定)返回值TRUE(成功)FALSE(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.1.35证书登出证书登出接口定义应符合表35的规定。表35证书登出接口定义原型BOOLSOF_Logout(BSTRCertID)描述退出登录状态参数CertID(证书唯一标识)返回值TRUE(成功)FALSE(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则证书登出表示释放该证书用户对应的私钥使用权限。证书登出后再调用签名、解密等需要拥有私钥使用权限才能正常操作的接口时,应再次成功调用SOF_Login接口获取私钥使用权限7.1.36证书登录状态检测证书登录状态检测接口定义应符合表36的规定。表36证书登录状态检测接口定义原型BOOLSOF_IsLogin(BSTRCertID)描述判断证书用户是否为登录状态参数CertID(证书唯一标识)返回值TRUE(登录状态)FALSE(非登录状态)7.2客户端JavaScript脚本接口7.2.1客户端JavaScript脚本接口综述客户端JavaScript脚本接口采用异步方式定义,所有接口的返回值都通过回调函数的第一个参数返回,提供配置管理、证书解析、签名与验证、加密与解密数字信封、XML数据签名与验证等功能,共包含32个接口。客户端JavaScript脚本接口列表见表D.2。7.2.2~7.2.33给出了接口详细定义,其调用示例说明见附录E,7.2.2获取接口版本信息获取接口版本信息接口定义应符合表37的规定。表37获取接口版本信息接口定义原型functionSOF_GetVersion(cb,ctx)描述获取接口的版本号参数cb(回调函数)ctx(回调函数所需参数)返回值接口版本号(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.2.3设置签名算法设置签名算法接口定义应符合表38的规定。表38设置签名算法接口定义原型functionSOF_SetSignMethod(SignMethod,cb,ctx)描述设置接口在签名和验签运算时使用的签名算法参数SignMethod(签名算法标识,应符合GB/T33560的规定)cb(回调函数)ctx(回调函数所需参数)返回值SAR_OK(成功)其他(失败,返回表A.1定义的错误代码)7.2.4获得签名算法获得签名算法接口定义应符合表39的规定。表39获得签名算法接口定义原型functionSOF_GetSignMethod(cb,ctx)描述获得接口当前使用的签名算法GB/T43694—2024表39获得签名算法接口定义(续)参数cb(回调函数)ctx(回调函数所需参数)返回值当前使用的签名算法标识(成功)0(当前没有设置签名算法)7.2.5设置加密算法设置加密算法接口定义应符合表40的规定。表40设置加密算法接口定义原型functionSOF_SetEncryptMethod(EncryptMethod,cb,ctx)描述设置接口进行数据加密时使用的对称算法参数EncryptMethod(对称密码算法标识,应符合GB/T33560的规定。本接口支持不带附加认证数据的加密算法)cb(回调函数)ctx(回调函数所需参数)返回值SOR_OK(成功)其他(失败,返回符合表A.1定义的错误代码)7.2.6获得加密算法获得加密算法接口定义应符合表41的规定。表41获得加密算法接口定义原型functionSOF_GetEncryptMethod(cb,ctx)描述获得接口当前使用的对称加密算法参数cb(回调函数)ctx(回调函数所需参数)返回值当前使用的加密算法标识(成功)0(当前没有设置加密算法)7.2.7获得证书用户列表获得证书用户列表接口定义应符合表42的规定。表42获得证书用户列表接口定义原型functionSOF_GetUserList(cb,ctx)描述获取证书用户列表参数cb(回调函数)ctx(回调函数所需参数)返回值证书列表(成功,格式和7.1.7相同)空串(失败或当前不存在证书用户列表,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.2.8导出用户签名证书导出用户签名证书接口定义应符合表43的规定。表43导出用户签名证书接口定义原型functionSOF_ExportUserCert(CertID,cb,ctx)描述根据证书唯一标识,获取Base64编码的签名证书字符串参数CertID(证书唯一标识)cb(回调函数)ctx(回调函数所需参数)返回值Base64编码的签名证书字符串(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.2.9证书登录证书登录接口定义应符合表44的规定。表44证书登录接口定义原型functionSOF_Login(CertID,PassWd,cb,ctx)描述校验证书口令,进行用户认证参数CertID(证书唯一标识)PassWd(证书口令)cb(回调函数)ctx(回调函数所需参数)返回值true(成功)false(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则证书登录成功后,表示该证书用户已拥有私钥使用权限,即登录状态。登录状态下,可正常调用签名、解密等需要私钥使用权限的接口,获得计算结果7.2.10获取证书口令剩余重试次数获取证书口令剩余重试次数接口定义应符合表45的规定。GB/T43694—2024表45获取证书口令剩余重试次数接口定义原型functionSOF_GetPinRetryCount(CertID,cb,ctx)描述获取证书口令剩余重试次数参数CertID(证书唯一标识)cb(回调函数)ctx(回调函数所需参数)返回值剩余口令重试次数,当重试次数小于或等于0时表示证书口令已被锁定7.2.11修改证书口令修改证书口令接口定义应符合表46的规定。表46修改证书口令接口定义原型functionChangeUserPassword(CertID,OldPassWd,NewPassWd,cb,ctx)描述修改证书口令参数CertID(证书唯一标识)OldPassWd(旧证书口令)NewPassWd(新证书口令)cb(回调函数)ctx(回调函数所需参数)返回值true(修改口令成功)false(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.2.12导出用户加密证书导出用户加密证书接口定义应符合表47的规定。表47导出用户加密证书接口定义原型functionSOF_ExportExChangeUserCert(CertID,cb,ctx)描述根据证书唯一标识,获取Base64编码的加密(交换)证书字符串参数CertID(证书唯一标识)cb(回调函数)ctx(回调函数所需参数)返回值Base64编码的加密证书字符串(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.2.13获得证书基本信息获得证书基本信息接口定义应符合表48的规定。表48获得证书基本信息接口定义原型functionSOF_GetCertInfo(Base64Cert,Type,cb,ctx)描述获取证书基本信息参数Base64Cert(Base64编码的证书字符串)Type(证书解析标识,应符合GB/T33560的规定)cb(回调函数)ctx(回调函数所需参数)返回值指定类型的证书信息(成功)空串(失败或证书中不存在该项内容)7.2.14获得证书扩展信息获得证书扩展信息接口定义应符合表49的规定。表49获得证书扩展信息接口定义原型functionSOF_GetCertInfoByOid(Base64Cert,Oid,cb,ctx)描述根据OID获取证书扩展项信息参数Base64Cert(Base64编码的证书字符串)Oid(私有扩展对象ID,如“1.2.156.xxx”)cb(回调函数)ctx(回调函数所需参数)返回值证书私有扩展项OID对应的信息(成功)空串(失败或证书中不存在该私有扩展项)7.2.15获得设备信息获得设备信息接口定义应符合表50的规定。表50获得设备信息接口定义原型functionSOF_GetDevicelnfo(CertID,Type,cb,ctx)描述:根据证书唯一标识和类型代码获得设备信息参数CertID(证书唯一标识)Type(设备信息的类型,应符合GB/T33560的规定)cb(回调函数)ctx(回调函数所需参数)返回值对应的设备信息(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)GB/T43694—20247.2.16验证证书有效性验证证书有效性接口定义应符合表51的规定。表51验证证书有效性接口定义原型functionSOF_ValidateCert(Base64Cert,cb,ctx)描述验证证书有效性参数Base64Cert(Base64编码格式的证书)cb(回调函数)ctx(回调函数所需参数)返回值SAR_OK(验证成功)其他(验证失败,失败原因应符合表A.1中的错误代码范围0X0B000500~0X0B000505)验证策略地完成,可信根证书列表由实现者管理。基本的证书验证策略应包括:a)验证CA信任列表,各层都要进行签名验证;b)各层证书的有效期验证;c)各层证书的吊销状态。在特殊情况下(如:网络条件不允许),证书的吊销状态可采取灵活方式,由应用系统各层内部维护一个吊销列表,在证书登录认证时应用该吊销列表。验证证书有效性也可采取代理验证方式7.2.17数据签名数据签名接口定义应符合表52的规定。表52数据签名接口定义原型functionSOF_SignData(CertID,InData,cb,ctx)描述对字符串数据进行数字签名,返回Base64编码的数据类型A签名结果参数CertID(证书唯一标识)InData(原文)cb(回调函数)ctx(回调函数所需参数)返回值Base64编码的签名值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则本接口应在登录状态下才能成功返回签名值,否则应返回空串7.2.18验证数据签名验证数据签名接口定义应符合表53的规定。表53验证数据签名接口定义原型functionSOF_VerifySignedData(Base64Cert,InData,SignValue,cb,ctx)描述验证数据签名,签名值为Base64编码的数据类型A参数Base64Cert(Base64编码的签名者证书)InData(原文)SignValue(Base64编码的签名值)cb(回调函数)ctx(回调函数所需参数)返回值true(成功)false(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)数据加密接口定义应符合表54的规定。表54数据加密接口定义原型functionSOF_EncryptData(Base64Cert,InData,cb,ctx)描述数字信封加密,加密过程为使用临时产生的对称密钥加密数据,然后使用数字证书的公钥加密对称密钥,返回Base64编码的数据类型B密文数据参数Base64Cert(Base64编码的数据接收者的加密证书,如使用多个证书对数据加密,证书之间用&.&.&.作为分隔符连接)InData(待加密的明文数据)cb(回调函数)ctx(回调函数所需参数)返回值Base64编码格式的密文数据(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)数据解密接口定义应符合表55的规定。表55数据解密接口定义原型functionSOF_DecryptData(CertID,InData,cb,ctx)描述使用证书对应的私钥解密数字信封,密文数据格式为Base64编码的数据类型B参数CertID(证书唯一标识)Indata(待解密的Base64编码格式的密文数据)cb(回调函数)ctx(回调函数所需参数)GB/T43694—2024表55数据解密接口定义(续)返回值解密后的明文数据(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则本接口应在登录状态下才能解密得到明文,否则应返回空串7.2.21消息签名消息签名接口定义应符合表56的规定。表56消息签名接口定义原型functionSOF_SignMessage(Flag,CertID,InData,cb,ctx)描述对字符串数据进行消息签名,返回Base64编码的数据类型B签名结果参数Flag(是否为Detached的标识),取值范围:a)1:表示Detached,即不带原文;b)0:表示Attached,即带原文CertID(证书唯一标识)InData(原文)cb(回调函数)ctx(回调函数所需参数)返回值Base64编码的消息签名值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则本接口应在登录状态下才能成功返回签名值,否则应返回空串7.2.22验证消息签名验证消息签名接口定义应符合表57的规定。表57验证消息签名接口定义原型functionSOF_VerifySignedMessage(SignedMessage,InData,cb,ctx)描述验证消息签名,签名值的格式为Base64编码的数据类型B参数SignedMessage(Base64编码的消息签名值)InData(原文,若签名中包含原文,忽略本参数)cb(回调函数)ctx(回调函数所需参数)返回值true(成功)false(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.2.23解析消息签名解析消息签名接口定义应符合表58的规定。表58解析消息签名接口定义原型functionSOF_GetInfoFromSignedMessage(SignedMessage,Type,cb,ctx)描述参数SignedMessage(Base64编码的消息签名值)Type(类型),取值范围:a)1:解析出原文;b)2:解析出Base64编码的签名者证书;c)3:解析出Base64编码的签名值cb(回调函数)ctx(回调函数所需参数)返回值解析结果(成功)空串(失败或不存在该项)XML数据签名接口定义应符合表59的规定。表59XML数据签名接口定义原型functionSOF_SignDataXML(CertID,InXMLData,cb,ctx)描述对XML数据进行数字签名,证书为RSA算法时签名结果参见RFC3275,证书为SM2算法时签名结果应符合GB/T25061的规定参数CertID(证书唯一标识)InXMLData(待签名的XML数据)cb(回调函数)ctx(回调函数所需参数)返回值XML签名结果(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则本接口应在登录状态下才能返回签名值,否则应返回空串。缺省配置和参数:a)采用封皮签名,签名前应对签名原文做格式化;b)格式化方法采用带注释的XML格式化1.1,证书为RSA算法时标识符为/2006/12/xml-cl4nll#WithComment,证书为SM2算法时标识符为http:///2006/12/xmlc14n11#WithComments7.2.25验证XML数据签名验证XML数据签名接口定义应符合表60的规定。表60验证XML数据签名接口定义原型functionSOF_VerifySignedDataXML(SignedXMLData,cb,ctx)描述参数SignedXMLData(XML签名结果)cb(回调函数)ctx(回调函数所需参数)返回值true(成功)false(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.2.26解析XML数据签名解析XML数据签名接口定义应符合表61的规定。表61解析XML数据签名接口定义原型functionSOF_GetXMLSignaturelnfo(XMLSignedData,Type,cb,ctx)描述解析XML数据签名,获取签名值、XML原文、证书和相关算法等信息参数XMLSignedData(XML签名结果)Type(待解析的参数类型),取值范围:a)1:解析出XML原文;b)2:解析出摘要值;c)3:解析出签名值;d)4:解析出签名证书;e)5:解析出摘要算法;f)6:解析出签名算法cb(回调函数)ctx(回调函数所需参数)返回值解析结果(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则XML签名缺省配置和参数值样例:a)XML原文取自Object元素;b)摘要值取自DigestValue元素,形如http:///2001/04/xmldsig-more#sm3;c)签名值取自SignatureValue元素,为Base64编码;d)签名证书取自X509Data元素,为Base64编码;e)摘要算法取自DigestMethod元素的Algorithm属性,形如http:///2001/04/xmldsig-more#sm3;sm2-sm37.2.27产生随机数产生随机数接口定义应符合表62的规定。表62产生随机数接口定义原型functionSOF_GenRandom(RandomLen,cb,ctx)描述产生指定长度的随机数参数RandomLen(待产生随机数的字节长度)cb(回调函数)ctx(回调函数所需参数)返回值Base64编码的随机数(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.2.28获取最新的错误信息获取最新的错误信息接口定义应符合表63的规定。表63获取最新的错误信息接口定义原型functionSOF_GetLaseError(cb,ctx)描述获取最新的错误码参数cb(回调函数)ctx(回调函数所需参数)返回值错误代码,应符合表A.1错误代码表计算数据摘要接口定义应符合表64的规定。表64计算数据摘要接口定义原型functionSOF_HashData(HashAlg,InData,SignCert,UserlD,cb,ctx)描述计算数据摘要,若采用SM3算法,当SignCert和UsreID为空时,只计算数据的摘要值,当SignCert和UsreID值不为空时,应按照GB/T35276规定的预处理过程计算,摘要值可作为SM2签名的输入参数HashAlg(摘要算法,应符合GB/T33560的规定)InData(原始数据)SignCert(Base64编码的签名者证书,当摘要算法为SM3时有效,如不需要传空串)UserID(签名者用户ID,摘要算法为SM3时有效,若SignCert参数为空,本参数无意义)cb(回调函数)ctx(回调函数所需参数)返回值Base64编码的数据摘要值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)GB/T43694—20247.2.30摘要数据签名摘要数据签名接口定义应符合表65的规定。表65摘要数据签名接口定义原型functionSOF_SignHashData(CertID,Base64HashData,HashAlg,cb,ctx)描述对数据摘要签名,返回Base64编码的数据类型A签名结果。Base64HashData值一般是SOF_HashData或SOF_HashFile函数的计算结果。当采用SM2算法签名时,SM3算法的摘要值应按照GB/T35276规定的预处理过程计算参数CertID(证书唯一标识)Base64HashData(Base64编码的摘要值)HashAlg(摘要算法,应符合GB/T33560的规定)cb(回调函数)ctx(回调函数所需参数)返回值Base64编码的签名值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则本接口应在登录状态下才能成功返回签名值,否则应返回空串7.2.31验证摘要数据签名验证摘要数据签名接口定义应符合表66的规定。表66验证摘要数据签名接口定义原型functionSOF_VerifySignedHashData(Base64Cert,Base64HashData,SignValue,HashAlg,cb,ctx)描述数据摘要签名验证,签名值为Base64编码的数据类型A。若使用SM2算法验证签名,Base64HashData参数是SM3算法的摘要值,应按照GB/T35276规定的预处理过程计算参数Base64Cert(Base64编码签名者证书)参数Base64HashData(Base64编码摘要值)SignValue(Base64编码的签名值)HashAlg(摘要算法,应符合GB/T33560的规定)cb(回调函数)ctx(回调函数所需参数)返回值true(成功)false(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.2.32证书登出证书登出接口定义应符合表67的规定。表67证书登出接口定义原型functionSOF_Logout(CertID,cb,ctx)描述退出登录状态参数CertID(证书唯一标识)cb(回调函数)ctx(回调函数所需参数)返回值true(成功)false(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)安全规则证书登出表示释放该证书用户对应的私钥使用权限。证书登出后再调用签名、解密等需要拥有私钥使用权限才能正常操作的接口时,应再次成功调用SOF_Login接口获取私钥使用权限7.2.33证书登录状态检测证书登录状态检测接口定义应符合表68的规定。表68证书登录状态检测接口定义原型functionSOF_IsLogin(CertID,cb,ctx)描述判断证书用户是否为登录状态参数CertID(证书唯一标识)cb(回调函数)ctx(回调函数所需参数)返回值true(登录状态)false(非登录状态)7.3服务器端COM组件接口7.3.1服务器端COM组件接口综述服务器端COM组件接口提供配置管理、证书解析、签名与验证、加密与解密数字信封、XML数据签名与验证、时间戳等功能,共包含39个接口。服务器端COM组件接口列表见表D.3,7.3.2~7.3.40给出了接口详细定义。7.3.2设置证书信任列表设置证书信任列表接口定义应符合表69的规定。GB/T43694—2024表69设置证书信任列表接口定义原型LONGSOF_SetCertTrustList(BSTRCTLAltName,BSTRCTLContent,LONGCTLContentLen)描述设置证书信任列表参数CTLAltName(证书信任列表别名)CTLContent(Base64编码格式的证书信任列表内容)CTLContentLen(证书信任列表长度)返回值SAR_OK(成功)其他(失败,返回表A.1定义的错误代码)7.3.3查询证书信任列表别名查询证书信任列表别名接口定义应符合表70的规定。表70查询证书信任列表别名接口定义原型BSTRSOF_GetCertTrustListAltNames()描述查询证书信任列表别名参数无返回值信任列表别名(成功,返回信任列表别名的字符串组合,如“CA001@CA002@CA003”)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.3.4查询证书信任列表查询证书信任列表接口定义应符合表71的规定。表71查询证书信任列表接口定义原型BSTRSOF_GetCertTrustList(BSTRCTLAltName)描述根据别名查询证书信任列表参数CTLAltName(证书信任列表别名)返回值信任列表(成功,返回Base64编码的证书信任列表)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.3.5删除证书信任列表删除证书信任列表接口定义应符合表72的规定。表72删除证书信任列表接口定义原型LONGSOF_DelCertTrustList(BSTRCTLAltName)描述根据别名删除证书信任列表参数CTLAltName(证书信任列表别名)返回值SAR_OK(成功)其他(失败,返回表A.1定义的错误代码)7.3.6初始化应用策略初始化应用策略接口定义应符合表73的规定。表73初始化应用策略接口定义原型LONGSOF_InitCertAppPolicy(BSTRPolicyName)描述根据应用策略名称设置应用遵循的证书应用策略。该名称要和服务器配置文件对应。接口从配置文件中读取应用策略信息,宜包括使用的密钥和证书、信任的根证书、证书验证的策略、验证方式。配置内容自行定义参数PolicyName(应用策略名称)返回值SAR_OK(成功)其他(失败,返回表A.1定义的错误代码)7.3.7设置签名算法设置签名算法接口定义应符合表74的规定。表74设置签名算法接口定义原型LONGSOF_SetSignMethod(LONGSignMethod)描述设置COM组件签名运算使用的签名算法参数SignMethod(签名算法标识,应符合GB/T33560的规定)返回值SAR_OK(成功)其他(失败,返回表A.1定义的错误代码)7.3.8获得签名算法获得签名算法接口定义应符合表75的规定。表75获得签名算法接口定义原型LONGSOF_GetSignMethod()描述获得组件当前签名和验签运算使用的签名算法参数无返回值当前使用的签名算法标识(成功)0(当前没有设置签名算法)GB/T43694—20247.3.9设置加密算法设置加密算法接口定义应符合表76的规定。表76设置加密算法接口定义原型LONGSOF_SetEncryptMethod(LONGEncryptMethod)描述设置组件对数据加密使用的对称算法参数EncryptMethod(对称密码算法标识,应符合GB/T33560的规定。本接口支持不带附加认证数据的加密算法)返回值SAR_OK(成功)其他(失败,返回表A.1定义的错误代码)7.3.10获得加密算法获得加密算法接口定义应符合表77的规定。表77获得加密算法接口定义原型LONGSOF_GetEncryptMethod()描述获得组件当前使用的对称加解密算法参数无返回值当前使用的加密算法标识(成功)0(当前没有设置加密算法)7.3.11获得服务器证书获得服务器证书接口定义应符合表78的规定。表78获得服务器证书接口定义原型BSTRSOF_GetServerCertificate(SHORTCertUsage)描述读取当前应用指定的服务器证书参数CertUsage(证书用途),取值范围:a)1:加密证书;b)2:签名证书返回值Base64编码的服务器证书(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.3.12产生随机数产生随机数接口定义应符合表79的规定。表79产生随机数接口定义原型BSTRSOF_GenRandom(SHORTRandomLen)描述产生指定长度的随机数参数RandomLen(待产生随机数的字节长度)返回值Base64编码的随机数(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.3.13获得证书信息获得证书信息接口定义应符合表80的规定。表80获得证书信息接口定义原型BSTRSOF_GetCertInfo(BSTRBase64Cert,LONGType)描述根据指定类型,获取证书内的相关信息参数Base64Cert(Base64编码的数字证书)Type(证书解析标识,应符合GB/T33560的规定)返回值指定类型的证书信息(成功)空串(失败或证书中不存在该项内容)7.3.14获得证书扩展信息获得证书扩展信息接口定义应符合表81的规定。表81获得证书扩展信息接口定义原型BSTRSOF_GetCertInfoByOid(BSTRBase64Cert,BSTROid)描述根据OID获取证书扩展项信息参数Base64Cert(Base64编码的证书)Oid(私有扩展对象ID,如“1.2.156.xxx”)返回值证书私有扩展项OID对应的信息(成功)空串(失败或证书中不存在该私有扩展项)7.3.15验证证书有效性验证证书有效性接口定义应符合表82的规定。GB/T43694—2024表82验证证书有效性接口定义原型LONGSOF_ValidateCert(BSTRBase64Cert)描述根据应用的策略根据验证证书有效性参数Base64Cert(待验证的Base64编码证书)返回值SAR_OK(验证成功)其他(验证失败,失败原因应符合表A.1中的错误代码范围0X0B000500~0X0B000505)验证策略基本的证书验证策略应包括:a)验证CA信任列表,各层都要进行签名验证;b)各层证书的有效期验证;c)各层证书的吊销状态。在特殊情况下(如:网络条件不允许),证书的吊销状态可采取灵活方式,由应用系统内部维护一个吊销列表,在证书登录认证时应用该吊销列表。验证证书有效性也可采取代理验证方式7.3.16数据签名数据签名接口定义应符合表83的规定。表83数据签名接口定义原型描述对字符串数据进行数字签名,返回Base64编码的数据类型A签名结果参数InData(原文)返回值Base64编码的签名值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.3.17验证数据签名验证数据签名接口定义应符合表84的规定。表84验证数据签名接口定义原型LONGSOF_VerifySignedData(BSTRBase64Cert,BSTRInData,BSTRSignValue)描述验证数字签名,签名值格式为Base64编码的数据类型A参数Base64Cert(Base64编码的签名证书)InData(原文)SignValue(Base64编码的签名值)返回值SAR_OK(成功)其他(失败,返回表A.1定义的错误代码)7.3.18文件签名文件签名接口定义应符合表85的规定。表85文件签名接口定义原型描述对文件进行数字签名,返回Base64编码的数据类型A签名结果参数InFile(待签名的文件全路径)返回值Base64编码的签名值(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)文件规则待签名的文件全路径指运行本接口的主机上的文件,非服务器端文件7.3.19验证文件签名验证文件签名接口定义应符合表86的规定。表86验证文件签名接口定义原型LONGSOF_VerifySignedFile(BSTRBase64Cert,BSTRInFile,BSTRSignValue)描述验证文件数字签名,签名值格式为Base64编码的数据类型A参数Base64Cert(Base64编码的签名证书)InFile(待验证的文件全路径)SignValue(Base64编码的签名值)返回值SAR_OK(成功)其他(失败,返回表A.1定义的错误代码)文件规则待验证的原文路径指运行本接口的主机上的文件,非服务器端文件7.3.20数据加密数据加密接口定义应符合表87的规定。表87数据加密接口定义原型BSTRSOF_EncryptData(BSTRCert,BSTRInData)描述数字信封加密,加密过程为使用临时产生的对称密钥加密数据,然后使用数字证书的公钥加密对称密钥,返回Base64编码的数据类型B密文数据参数Cert(Base64编码的数据接收者的加密证书,如有多个接收者,多个接收者加密证书之间用8.&.&.作为分隔符连接)InData(待加密的明文数据)返回值Base64编码格式的密文数据(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.3.21数据解密数据解密接口定义应符合表88的规定。GB/T43694—2024表88数据解密接口定义原型BSTRSOF_DecryptData(BSTRCertID,BSTRInData)描述解密格式为Base64编码的数据类型B密文数据参数CertID(解密密钥对应的证书唯一标识,如不需要可传空串)InData(Base64编码的密文数据)返回值解密后的明文数据(成功)空串(失败,可通过SOF_GetLastError获取符合表A.1定义的错误代码)7.3.22文件加密文件加密接口定义应符合表89的规定。表89文件加密接口定义原型LONGSOF_EncryptFile(BSTRCert,BSTRInFile,BSTROutFile)描述使用证书加密文件,密文文件结果为数据类型B参数Cert(Base64编码的数据接收者的加密证书,如有多个接收者,多个接收者加密证书之间用&&&.作为分隔符连接)InFile
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业规划个人需求分析
- 《城镇燃气安全检查与评估标准》
- 重要文件分类归档与电子备份
- (正式版)DB32∕T 5386-2026 大跨木结构设计标准
- 2026江苏省人民医院宿迁医院(宿迁市第一人民医院)博士专项招聘30人考试备考试题及答案解析
- 2026年吉林大学辅导员招聘(20人)笔试模拟试题及答案解析
- 2026上海开放大学奉贤分校老年教育兼职教师(储备)招聘笔试参考题库及答案解析
- 2026山东聊城市教育和体育局直属学校招聘48人考试参考题库及答案解析
- 2026四川长虹电器股份有限公司招聘比价审计主管岗位1人考试备考题库及答案解析
- 2026年大兴安岭呼中区乡镇卫生院公开招聘医学毕业生补充2人考试参考题库及答案解析
- 2025中级注册安全工程师《安全生产管理》临考强化重点
- 2025至2030年中国金冶炼市场调查研究及行业投资潜力预测报告
- 合唱指挥专业毕业论文
- HB20542-2018航空用高闪点溶剂型清洗剂规范
- 卫生院保密工作培训课件
- ESG基础知识培训课件
- 法律效应的婚内保证书
- 育肥猪场月度汇报
- 工贸行业隐患排查指导手册
- DB31∕T 1487-2024 国际医疗服务规范
- 电商公司积分管理制度
评论
0/150
提交评论