《2022信息安全技术 通用密码服务接口规范.docx》由会员分享,可在线阅读,更多相关《2022信息安全技术 通用密码服务接口规范.docx(89页珍藏版)》请在三一办公上搜索。
1、信息安全技术通用密码服务接口规范目次口*+,i*+,.*+,i*H,+*+,(*+,+*+,:*+,*+*,*+*!*+,e*i+*+1包.I2规范性引用文件13术i吾和定义14缩略语15通用密码服务接口描述25.1通用密码服务接口在公钥密码应用技术体系框架中的位置25.2通用密码服务接口组成和功能说明25.2.1概述25.2.2环境类函数25.2.3证书类函数35.2.4密码运算类函数35.2.5消息类函数36通用密码服务接口函数定义36.1算法标识和数据结构36.1.1算法标识与常量定义36.1.2通用密码服务接口数据结构定义和说明36.2环境类函数56.2.1*,*,*56.2.2初始化
2、环境56.2.3清除环境56.2.4获取接口版本信息56.2.5用户登录66.2.6修改PlN66.2.7注销登录76,3证书类函数一,一,.,76.3.2添加根CaljE书86.3.3获取根Ca证书个数86.3.4获取根CA证书86.3.5删除根CA证书86.3.6添加CA证书9&3.7获取CA证书个数96.3,8获取CA证书.,96.3.9删除CA证书106.3.10添加CRLW6.3.U验证用户证书IO6.3.12根据CRL文件获取用户注销状态W6.3.13根据OCSP获取证书状态116.3.14通过LDAP方式获取证书116.3.15通过LDAP方式获取证书对应的CRL126.3.16
3、获取证书信息126.3.17获取证书扩展信息136.3.18列举用户证书136.3.1a列举用户的密钥容器信息146.3.20释放列举用户证书的内存146.3.21释放列举密钥容器信息的内存146.4密码运算类函数146.4.13,146.4.2单块base64编码156.4.3单块base6d解码166.4.4创建basc64对象166.4.5销毁base64对象166.4.6通过base64对象继续编码176.4.7通过base64对象编码结束176.4.8通过base64对象继续解码176.4.9通过base64对象解码结束186.4.10生成随机数186.4.UHaSH运算186.4.
4、12创建HASH对象196.4.13删除HASH对象196.4.14通过对象进行多块HASH运算206.4.15结束HASH运算206.4.16生成RSA密钥对206.4.17获取RSA公钥216.4.18RSA签名运算21&4.IS对文件进行RSA签名运算.226.4.20RSA验证签名运算226.4.21对文件及其签名进行RSa验证236.4.22基于证书的RSA公钥验证236.4.23生成ECC密钥对246.4.24获取ECC公胡246.4.25ECC签名256,4.26ECC验证,,256.4.27ECC公胡加密266.4.28基于证书的ECC公钥加密266.4.29基于证书的ECC公
5、钥解密276.4.30基于证书的ECC公例验证276.4.31创建对称算法对象286.4.32生成会话密钥并用外部公钥加密输出28&4.33导入加密的会话密钥296.4.34生成密钥协商参数并输出296.4.35计算会话密钥306,4.36产生协商数据并计算会话密钥306.4.37销毁对称算法对象316.4.38销毁会话密钥句柄316.4.39单块加密运算316.4.40多块加密运算326.4.41结束加密运算326.4.42单块解密运算326,4.43多块解密运算336.4.44结束解密运莫336.4.45单组数据消息鉴别码运算346.4.46多组数据消息鉴别码运算346.4.47结束消息鉴
6、别码运算346.5消息类函数356.5.1概述35员5.2编码PKCS第格式的带签名的数字信封数据356.5.3解码PKCS#7格式的带签名的数字信封数据366.5.4编码PKCS#7格式的短名数据376.5.5解码PKCS#7格式的签名数据376.5.6编码PKCS#7格式的数字信封数据386.5.7解码PKCS#7格式的数字信封数据386.5.8编码PKCS#7格式的摘要数据396.5.9解码PKCS#7格式的摘要数据396.5.10编码基于SM2算法的带签名的数字信封数据406.5.11解码基于SM2算法的带签名的数字信封数据416.5.12编码基于M2算法的签名数据416.5.13解码
7、基于SM2算法的签名数据426.5.14编码基于SM2算法的数字信封426.5.15解码基于SM2算法的数字信封436.5.16解析PKCS#7格式的签名数据447验证方法447,1验证环境447.2环境操作验证447.2.1密码服务空间验证447.2.2用户登录验证45-3证书操作验证457.3.1根CA证书验证457.3,CA证书验证467.3.3证书状态验证467.3.4用户证书验证477.4签名验签验证477.4.1RSA签名运算5证477.4.2RSA验证签名运算验证487.4.3基于证书的RSA的公钥验证487.4.4ECC签名运算497.1.5ECC验证签名运算497.4.6基于
8、证书的ECC公钥验证497.5摘要计算验证507.5.1单块摘要计算507.5.2多块摘要计算507,6非对称加解密验证一一.517.6.1ECC公J加密517.6.2基于正书的ECC公钥加密517.6.3基于证书的ECC解密517.7对称加解密验证527.7.1单块加密527.7.2单块解密527.7.3多块加密537.7.4多块解密537.8生成密钥对验证547.8.1生成SM2密钥对547,9PKCS#7运算验证,.,.,547.9.1编码PKCS#7格式的带签名的数据签名信封547.9.2解码PKCS#7格式的带签名的数据签名信封547.10SM2消息类运算验证557.10.1编码基于
9、SM2算法的带签名的数字信封557.10.2解码基于SM2算法的带签名的数据信封557.11Ba三e64编码验证557.11.1创建fse64对象557.11.2Ease64编码567.11.3Base6d解码56附录A(资料性)通用密码服务接口函数汇总57附录B(规范性)SM9密码算法数据结构和接口函数59附录C(规范性)通用密码服务接口错误代码定义70参考文献72信息安全技术通用密码服务接口规范1范围本文件规定了通用密码服务接口的数据结构、接口描述、函数定义和验证方法。本文件适用于公开密钥应用技术体系下密码应用服务的开发,密码应用支撑平台的研制及检测,也可用于指导使用密码设备的应用系统的开
10、发。2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于木文件。GB/T20518信息安全技术公仍基础设施数字证书格式GB/T25069信息安全技术术语GB/T32918.1信息安全技术SM2椭圆曲线公钥密码算法第1部分:总则GB/T33560信息安全技术密码应用标识规范GB/T35275信息安全技术SM2密码算法加密签名消息语法规范GB/T35276信息安全技术SM2密码算法使用规范GB/T35291信息安全技术智能密码钥匙应用接口规范GB/T36322
11、信息安全技术密码设备应用接口规范GM/Z4001密码术语3术语和定义GB/T25069、GM/Z4001界定的以及下列术语和定义适用于本文件。3.1通用密码服务universaIcryptographyservice向典型密码应用支撑和上层应用提供加解密、签名验签等通用密码功能。3.2密钥容器keycontainer密码设备中用于保存密钥唯一性存储空间。4缩略语下列缩略语适用于本文件。CRL:证书撤销列表(CertificateRevocationList)DER:可区分编码规则(DistinguishedEncodingRules)ECC:椭圆曲线密码算法(EllipticCurveCryp
12、tographyAlgorithm)in:输入(input)1.DAP:轻量级目录访问协议(LightweightDirectoryAccessPiotocol)OCSP:在线证书状态协议(OnIineCertificateStatusProtocol)out:输出(output)RSA:非对称加密算法(Rivest-Shamir-Ad1emanAlgorithm)5通用密码服务接口描述5.1通用密码服务接口在公钥密码应用技术体系框架中的位置公钥密码应用技术体系框架由应用层、典型密码应用支撑层、通用密码应用支撑层、基础设施安全支撑平台、密码设备服务层组成。通用密码服务接口属于通用密码应用支撑层
13、中通用密码服务,通用密码服务在公钥密码应用技术框架内的位置见图Io图1公钥密码应用技术体系框架参见GM/T0094-2020,第4章图1公钥密码应用技术体系框架5.2通用密码服务接口组成和功能说明5.2.1概述通用密码服务接口由以下部分组成:a)环境类函数b)证书类函数c)密码运算类函数d)消息类函数通用密码服务接口函数汇总信息详见附录A.5.2.2环境类函数环境类函数负责创建和管理程序空间,负责创建和管理程序空间中所需的各种资源、信号,并确保程序空间在应用程序运行期间不会被非法访问,造成信息泄漏。环境类函数负责完成与密码设备的安全连接,确保后续的安全操作是在安全、可信的程序空间中进行。环境类
14、函数还负责在用户与密码设备之间创建和管理安全访问令牌。可创建两种类型的用户安全访问令牌,一类是普通用户,该类型的安全访问令牌标识该用户是普通用户,只能访问密码设备中属于自己的信息和数据;另一类是管理员,该类型的安全访问令牌标识该用户是管理员,可以管理普通用户的安全访问令牌。应用程序在使用通用密码服务接口时,首先要调用初始化环境函数(SAFJnitialize)创建和初始化安全的程序空间,完成与密码设备连接和初始化工作。在中止应用程序之前,应调用清除环境函数(SAF_Finalize),中止与密码设备的连接,销毁所创建的安全的程序空间,防止由于内存残留所带来的安全风险。应用程序在调用任何密码服务
15、函数,需确保运行环境安全,可以采用白名单机制或对接入设备进行认证的方式,进行任何私钥运算之前应首先调用用户登录函数(SAFJogin),建立安全访问令牌。建立了安全访问令牌后,则可以调用任何密码服务函数当不再调用任何密码服务函数时,应调用注销登录函数(SAFLogout)注销安全访问令牌,确保密码设备不被非法访问。5.2.3证书类函数证书类函数负责将各类数字证书设置到应用接口会话环境中、负责验证用户证书和获取数字证书或CRL,提供包括证书获取、CRL获取、CA根证书设置、用户证书验证和用户证书信息获取等一系列具体函数。应用程序通过调用证书类函数,实现基于数字证书的身份认证,从证书中获取有关信息
16、,实现授权管理、访问控制等安全机制。本文件中涉及的数字证书格式应按照GB/T20518.5.2.4密码运算类函数密码运算类函数负责与密码设备交互并实现密码运算,并将密码运算后的结果返回给应用程序,是应用程序实现数据机密性、完整性和不可否认性等安全机制的基础。密码运算类函数提供包括base64编解码、随机数生成、数字摘要以及各种对称和非对称密码运算等。密码运算函数支持定长数据和不定长数据的密码运算,对于定长数据可以直接调用相关函数进行处理;对于不定长数据,需要先创建相应的密码运算对象,然后调用相应的函数对数据进行持续处理。当数据处理完时,要调用相应的函数表示数据处理完,最后要调用相应函数销毁相应
17、的密码运算对象。5.2.5消息类函数消息类函数的功能是将数据按照数字信封格式进行封装,实现数据封装格式与应用系统无关性,实现应用系统互联互通和信息共享,使用RSA算法时遵循PKCS#7,使用国密算法时遵循GB/T35275消息类函数提供了数据编解码、签名数据编解码和数字信封编解码,能够非常方便应用程序实现身份认证、机密性、完整性和不可否认性等安全措施。6通用密码服务接口函数定义6.1算法标识和数据结构6.1.1算法标识与常量定义本文件所使用常量定义、各类算法标识和证书解析标识的具体定义参照GB/T33560。6.1.2通用密码服务接口数据结构定义和说明6.1.2.1常量定义数据常量标识定义了在
18、规范中用到的常量的取值。数据常量标识的定义参照表1。表1常量定义常量名取值描述SGD_MAX_COUNT64枚举出的对象数量最大值SGD_MAX_NAME_SIZE256证书某项信息的字符串长度最大值6.1.2.2用户证书列表用户证书列表定义了在规范中用户证书传递结构。用户证书列表定义参照表2.表2用户证书列表字段名称含义certCount证书总数CertificateDER编码的数字证书CertificateLen数字证书的长度ContainerName密钥容器名称ContainerNameLen密钥容胖名称的长度keyUsage密钥用途C语言的数据结构定义:typcdefstructSGD
19、_USR_CERT_ENUMLIST_unsignedintcertCount;unsignedchar*certificateSGDMAXCOUNT;unsignedintcertificateLenSGDMAXCOUNT;unsignedchar*containerNameSGD_MAX_COUNT;unsignedintContainerNameLenESGDMAXCOUNT;unsignedintkeyUsageSGDMAXCOUNT;SGD_USR_CERT_ENUMLIST;6.L2.3密钥容器信息列表密钥容器信息列表定义了在规范中密钥容器信息。密钥容器信息列表定义参照表3。表3密
20、钥容器信息列表字段名称含义ReyPairCount密例容器信息总数ContainerName密钥容器名称ContainerNameLen密仍容器名称的长度keyUsage密钥用途,L加密:2:签名;3:密钥交换keyType密钥类型,1:SM2;2:RSA1024;3:RS2048:4:RS3072;5:RSA4096:6:SM9(SM9密码算法定义按照附录B)C语百的数据结构定乂:typedefstructSGD_KEYCONTAINERINFO_ENUMLIST_unsignedintReyPairCount;unsignedchar*containerNameSGD-MAX-CoUNT;
21、unsignedintContainerNtimeLenSGDMAXCOUNT;unsignedintkeyUsageSGD-MAX-CoUNT;unsignedintkeyTypeSGD_MAX_COUNT;SGD_KEYCONTATNERTrQFO-ENUMLIST:6.2环境类函数6.2.1概述环境类函数包括以下具体函数,各函数返回值应符合附录C错误代码定义:a)初始化环境:SAF-Initializeb)清除环境:SAF-Finalizec)获取接口版本信息:SAFGetVersiond)用户登录:SAFJogine)修改PIN:SAF-ChangePinf)注销登录:SAF_Logo
22、ut6.2.2初始化环境原型:intSAF-Initialize(VOid*phAppHandle,unsignedchar*pucCfgFiIePath)描述:初始化索码服务程序空间参数:phAppHandlein/out输入并返回应用接口句柄pucCfgFilePathin配置文件全路径名,配置信息自定义,建议包括:密码设备类型、密码设备动态库名称、设备的配置文件、应用策略等。返问值:0成功非0失败,返回表C.1定义的错误代码,应符合附录C.6.2.3清除环境原型:intSAFFinalize(void*hAppHandle)描述:清除应甬程序空间参数:HAppHandlein应用接口句柄
23、返回值:0成功非0失败,返回表C.1定义的错误代码,应符合附录C。6. 2. 4获取接口版本信息原型:int SAF_GetVersion(unsigned描述:取接口好应标准的版本号参数:puiVersion out返回值:0非0int *puiVersion)号 C本功败录版成失附返ll表c.l定义的错误代码,应符合备注:版本号的格式为:OXAABBCCCC,其中AA为主版本号,BB为次版本号,CCCC为修改 号。6.2.5用户登录原型:int SAF Login (void *hAppllandle, unsigned unsigned unsigned unsigned unsigne
24、d unsigned 描述:用户登录密码设备,参数:hAppHandleinuiUsrTypeinpucContainerName inUiContainerNanicLen in pucPinin uiPinLenin PuiRemainCountout 返回值:0非0int UiUsrType, char * pucContai nerName, int UiContainerNameLen, char *pucPin, int uiPinLon, int *puiRemainCount) 建立安全令牌。应用接口句柄用户类型,当为0时表示管理员登录为1时表示用户登录,密钥容器名(或多个参数
25、的拼接值,多个参数时用#拼接)或密钥检索号密钥容器名或密钥检索号的长度设备口令设备口令长度口令剩余重试次数成功失败,返ll表C. 1定义的错误代码,应符合 附录&备注:在服务器端使用加密机或加密卡时,当设备按照GB/T35291规范时,PucContainerName用于标识指定的密钥容器名或多个参数的拼接值,当设备按照GB/T36322规范时,PucContainerName用于标识密码设备内部的密钥位置。6.2.6修改PIN原型:intSAFChangePin(void*hAppllandle,unsignedintuiUsrType,unsignedchar*PucContainerNa
26、melunsignedintUiContainerNameLen,unsignedchar*puc01dPin,unsignedintUiOldPinLen,unsignedchar*pucNewPin,unsignedintUiNewPinLen,unsignedint*puiRemainCount)描述:修改设备PIN,本函数仅适用于按照GB/T35291规范的客户端密码设备。参数:hAppHandleinuiUsrTypeinPucContainerName in UiContainerNameLenin puc01dPinin应用接口句柄用户类型,当为O时表示管理员登录为1时表示用户登
27、录。密钥容器名或密钥检索号密钥容器名或密钥检索号的长度设备当前口令UiOldPinLentin设备当前口令长度PucNewPinin设备新口令UiNewPinLentin设备新口令长度PuiRemainCountout口令剩余重试次数返回值;0成功非O失败,返回表C.1定义的错误代码,应符合附录Co6.2.7注销登录原型:intSAF_Logout(void*hAppHctndle,unsignedintuiUsrType)描述:设备注销登录参数:hAppHandlein应用接口句柄UiUsrTypein用户类型,当为0时表示管理员登录为1时表示用户登录。返回值:0成功非O失败,返回表C.1定
28、义的错误代码,应符合附录Co6.3证书类函数6.3.1概述证书类函数包括以下具体函数,各函数返回值符合附录C错误代码定义:a)添加根CA证书:SAF-AddTrustedROOtCaCertifiCateb)获取根CA证书个数:SAEGetRootCaCertificateCountc)获取根CA证书:SAFGetRootCaCertificated)删除根CA证书:SAFRemoveRootCaCertificatoe)添加CA证书:SAF-AddCaCertificatef)获取CA证书个数:SAFGetCaCertifiCateCountg)获取CA证书:SAFGetCaCertific
29、ateh)删除CA证书:SAF-RemoveCaCertificatei)添加CRL:SAFAddCrlj)验证用户证书:SAFVerifyCertificatek)根据CRL文件获取用户证书注销状态:SAF-VorifyCcrtificateByCrl1)根据OCSP获取证书状态:SAF-GetcertificateStateByOCSPm)通过LDAP方式获取证书:SAF-GetCertificateEroniLdapn)通过LDAP方式获取证书对应的CRL:SAF-GetCrlFromLdapo)取证书信息:SAF-GetCertificatelnfop)取证书扩展信息:SAFGetEx
30、tTypelnfoq)列举用户证书:SAFEnumCertificatesr)列举用户的密钥容器信息:SAFEnumKeyContainerInfos)释放列举用户证书的内存:SAF_EnumCertifiCateSFreeI)释放列举密例容器信息的内存:SAFEnumkeyContainerlnfoFree6.3.2添加根CA证书原型:intSAF-AddTrustedRootCaCertificate(void*hAppHandle,unsignedchar*pucCertificate,unsignedintuiCertificateLen)描述:参数:添加信任的CA根证书。hAppHa
31、ndlein应用接口句柄pucCertificateinDER编码的证书UiCertificateLenin证书长度返回值:0成功非0失败,返回表C.1定义的错误代码,应符合附录Ca备注:本函数仅限于管理员使用。3.3获取根CA证书个数原型:intSAFGetRootCaCertificateCount(void*hAppHandIe,unsignedint*puiCount)描述:参数:获取信任根CA证书的个数。hAppHandlein应用接口句柄puiCountout信任根CA证书个数返回值:O成功非0失败,返回表C.1定义的错误代码,应符合附录Co6.3.4获取根CA证书原型:intSA
32、FGetRootCaCertificate(void*hppHandle,unsignedintuiIndex,unsignedchar*pucCertificate,unsignedint*puiCertificateLen)描述:参数:获取指定位置C根证书。hAppHandlein应用接口句柄uilndexin根证书索引pucCertificateoutDER编码的证书puiCertificateLenin,out证书长度返回值:O成功非O失败,返回表C.1定义的错误代码,应符合附录Ca6.3.5删除根CA证书原型:intSAFRemoveRootCaCertificate(void*hA
33、ppHandle,unsignedintuilndex)描述:参数:删除指定位置CA根证书hAppHandIein应用接口句柄返回值:uiIndexin0非0根证书索引成功失败,返回表C.1附录Cd定义的错误代码,应符合备注:本函数仅限于管理员使用。6.3.6添加CA证书原型:描述:参数:返回值:intSAF_AddCaCertificate(void*hAppHandle,unsignedchar*pucCertificate,unsignedintUiCertificateLen)添加CA证书hAppHandleinpucCertificateinUiCertificateLenEin0非
34、0备注:本函数仅限于管理员使用。应用接口句柄DER编码的证书证书长度成功失败,返回表C.1附录&定义的错误代码,应符合6.3.7获取CA证书个数原型:描述:参数:返回值:intSAF_GetCaCertificateCount(void*hAppHandle,unsignedint*puiCount)获取信任CA证书的个数hAppHmdleinpuiCountout0非0应用接口句柄信任CA证书个数成功失败,返回表C.1附录Co定义的错误代码,应符合6.3.8获取CA证书原型:intSAFGetCaCertificate(void*hAppHandletunsignedintuiIndex,u
35、nsignedchar*pucCertificate,unsignedint*puiCertificateLen)描述:参数:返回值:获取指定位置CA证书。hAppHandleinuilndexinpucCertificateoutPuiCertificateLenin,out0非0应用接口句柄CA证书索引DER编码的证书证书长度成功失败,返回表C.1附录0定义的错误代码,应符合6.3.9删除CA证书原型:intSAF-RCmoVeCaCertificate(void*hAppHandle,unsignedintuiIndex)应用接口句柄证书位置索引成功失败,返回表C. 1定义的错误代码,应
36、符合 附录Co描述:删除指定位置CA证书hAppHandlein参数:uilndexin返回值:0非0备注:本函数仅限于管理员使用。6.3.10添加CRL原型:intSAF-AddCrMvoid*hAppHandle,unsignedchar*pucDerCrl,unsignedintuiDerCrlLen)描述:添加CRL.应用接口句柄DER编码的CRLDEK编码CRL的长度成功失败,返回表C. 1定义的错误代码,应符合 附录C。参数:hppHandleinPucDerCrlinUiDerCrlLentin返回值:0非0备注:本函数仅限于管理员使用。6.3.11验证用户证书原型:intSAF
37、_VerifyCertificate(void*hAppHandle,unsignedchar*pucUsrCertificatc,unsignedintUiUsrCertificateLen)描述:验证用户证书的有效性,包括验证有效期、证书信任列表、吊销状态等。参数;hAppHandleinPucUsrCertificateinUiUsrCertificateLenEin返回值:0非0应用接口句柄DER编码的证书证书长度成功失败,返回表Cl定义的错误代码,应符合附录Co6.3.12根据CRL文件获取用户注销状态原型:intSAFVeriFyCertificateByCrl(void*hApp
38、Handle,unsignedchar*pucUsrCertificate,unsignedintUiUsrCertificateLenunsignedchar*pucDerCrl,unsignedintUiDerCrlLen,unsignedchar*pucRevokeDate)描述:根据CRL文件验证用户证书是否被注销参数:HAppHandlein应用接口句柄pucUsrCertificateinDER编码的证书UiUsrCertificateLonEin证书长度pucDerCrlinDER编码的CRLuiDerCrlLeninCRL长度PucRevokeDateout若证书有效此参数不返
39、回,若证书被注销,则返回注销日期,格式为:YYYY-MM-DDHH:MM:SS.返回值:0成功其它失败,返回附录C.1的错误代码,应符合附录J6.3.13根据OCSP获取证书状态原型:intSAE_GetCertificateStateByOCSP(void*hAppHandle,unsignedchar*pucOcspHostURL,unsignedintUiOcspHostURLLen,unsignedchar*pucUsrCertificate,unsignedintUiUsrCertificateLen,unsignedchar*pucCACertificate,int uiCACer
40、tificateLen, char *pucRevokeDate)unsigned unsigned 描述:从OCSP获取用户证书的实时状态。参数;KAppHandle inpucOcspHostURL in uiOcspHostURLLen in pucUsrCertificatein UiUsrCertificateLentin pucCACertificatein uiCACertificateLenin PucRevokeDateout返回值:0其它应用接口句柄OCSP服务的URLURL长度DER编码证书证书长度DER编码颁发者证书颁发者证书长度若证书有效此参数不返Rh若证书被吊销,则
41、返回吊销日期,格式为:YYYY-MM-DD HH:MM:SS/成功失败,返回表C. 1定义的错误代码,应符合附录J6.3.14通过LDAP方式获取证书原型:intSAF-GotCertFromLdap(void*hAppHandle,char*pcLdapHostURL,unsignedintUiLdapHostURLLen,unsignedchar*pucQueryDN,unsignedintUiQueryDNLen,unsigned char *pucOutCert, unsigned int *puiOutCertLen) 描述:通过LDAP方式获取证书。参数:hppHandleinPc
42、LdapHostURL in uiLdapHostURLLen in PucQueryDN in UiQueryDNLen in PUcOutCertoutPuiOutCertLenin, out返回值:0非0应用接口句柄LDAP服务器IP地址LDAP服务器端口需要查找的证书的查询条件查询条件长度查询到的base64编码的证书,如查询出多 证书,则证书信息中间以&”分割。找到的证书长度成功失败,返回表C. 1定义的错误代码,应符合 附录Co6.3.15通过LDAP方式获取证书对应的CRL原型:intSAFGetCrlFroinLdap(void*hAppHandIe,char*pcLdapHostURL,描述:参数:unsigned int UiLdapHostURLLen, unsigned char * pucCertificate, unsigned int UiCertificateLen, unsigned char * pucCrlData, unsigned int * puiCrlDataLen) 通过LDP方式根据证书获取对应的CRJ返回值:hAppHandlein pcLdapHostURL i n UiLdapHostURLLcn in Pu