# crypt.cert 库模块帮助文档

## crypt 成员列表 <a id="crypt" href="#crypt">&#x23;</a>

### crypt.cert(证书数据) <a id="crypt.cert" href="#crypt.cert">&#x23;</a>
从 CER/CRT/DER/PEM 格式数据加载证书。  
参数也可以是 PCCERT_CONTEXT 句柄。  

[返回对象:cryptCertObject](#cryptCertObject)

## crypt.cert 成员列表 <a id="crypt.cert" href="#crypt.cert">&#x23;</a>

X.509 证书操作类。  
支持加载、创建、导出各种格式证书。

### crypt.cert.createPfx(保存路径,密码,主题名称,有效期年数) <a id="crypt.cert.createPfx" href="#crypt.cert.createPfx">&#x23;</a>
创建自签名证书并保存为 PFX。  
返回完整路径和密码。

### crypt.cert.createSelfSigned(主题名称,有效期年数,扩展) <a id="crypt.cert.createSelfSigned" href="#crypt.cert.createSelfSigned">&#x23;</a>
创建自签名证书。  
@主题名称: 如 "CN=localhost" 或 "localhost"。  
@有效期年数: 默认 10 年。  
@扩展: 可选指用一个数组指定 OID 和原始 DER 数据。  

成功返回 crypt.cert 对象。  

[返回对象:cryptCertObject](#cryptCertObject)

### crypt.cert.createSelfSignedFile(文件路径,密码,主题名称,有效期年数,扩展) <a id="crypt.cert.createSelfSignedFile" href="#crypt.cert.createSelfSignedFile">&#x23;</a>
创建自签名证书。  
@文件路径: 指定输出的 pfx 文件路径。  
@密码: 可选参数。  
@主题名称: 如 "CN=localhost" 或 "localhost"。  
@有效期年数: 默认 10 年。  
@扩展: 可选指用一个数组指定 OID 和原始 DER 数据。  

成功返回 true，失败返回 false,错误信息

### crypt.cert.createSelfSignedFileIf(文件路径,密码,主题名称,有效期年数,扩展) <a id="crypt.cert.createSelfSignedFileIf" href="#crypt.cert.createSelfSignedFileIf">&#x23;</a>
创建自签名证书。  
如果指定的证书文件已存在则直接返回true。  
@文件路径: 指定输出的 pfx 文件路径。  
@密码: 可选参数。  
@主题名称: 如 "CN=localhost" 或 "localhost"。  
@有效期年数: 默认 10 年。  
@扩展: 可选指用一个数组指定 OID 和原始 DER 数据。  

成功返回 true，失败返回 false,错误信息

### crypt.cert.find(存储名, 查找值,查找类型) <a id="crypt.cert.find" href="#crypt.cert.find">&#x23;</a>
从系统证书存储查找证书。  
@存储名: 默认为 "MY" (个人证书)，可选 "ROOT", "CA" 等。  
@查找值: 指纹(Hex字符串)或主题包含的文本。  
@查找类型: 可省略。可选 "thumbprint" 或 "subject"。  

[返回对象:cryptCertObject](#cryptCertObject)

### crypt.cert.fromPem(私钥PEM,证书PEM) <a id="crypt.cert.fromPem" href="#crypt.cert.fromPem">&#x23;</a>
从 PEM 格式的私钥和证书创建证书对象。  
@私钥PEM: 支持 PKCS#1 或 PKCS#8 格式。  
@证书PEM: 支持包含证书链，通常会自动识别第一个证书为叶子证书。  
返回包含私钥的证书对象，可用 exportPfx 导出。  

[返回对象:cryptCertObject](#cryptCertObject)

### crypt.cert.loadPfx(pfx数据或路径,密码) <a id="crypt.cert.loadPfx" href="#crypt.cert.loadPfx">&#x23;</a>
从 PFX 文件或数据加载证书（含私钥）。  

[返回对象:cryptCertObject](#cryptCertObject)

## cryptCertObject 成员列表 <a id="cryptCertObject" href="#cryptCertObject">&#x23;</a>

### cryptCertObject.algorithm <a id="cryptCertObject.algorithm" href="#cryptCertObject.algorithm">&#x23;</a>
签名算法 OID

### cryptCertObject.exportDer() <a id="cryptCertObject.exportDer" href="#cryptCertObject.exportDer">&#x23;</a>
导出为 DER 格式（纯证书）

### cryptCertObject.exportPem() <a id="cryptCertObject.exportPem" href="#cryptCertObject.exportPem">&#x23;</a>
导出为 PEM 格式（纯证书）

### cryptCertObject.exportPfx(密码, 保存路径) <a id="cryptCertObject.exportPfx" href="#cryptCertObject.exportPfx">&#x23;</a>
导出为 PFX 格式。  
@保存路径: 可选，不指定则返回二进制数据。  
注意：仅当证书包含私钥时有效。

### cryptCertObject.hasPrivateKey <a id="cryptCertObject.hasPrivateKey" href="#cryptCertObject.hasPrivateKey">&#x23;</a>
是否包含私钥信息（布尔值）

### cryptCertObject.isValid <a id="cryptCertObject.isValid" href="#cryptCertObject.isValid">&#x23;</a>
证书当前是否在有效期内（布尔值）

### cryptCertObject.issuer <a id="cryptCertObject.issuer" href="#cryptCertObject.issuer">&#x23;</a>
颁发者名称

### cryptCertObject.pCertContext <a id="cryptCertObject.pCertContext" href="#cryptCertObject.pCertContext">&#x23;</a>
PCCERT_CONTEXT 句柄

### cryptCertObject.release() <a id="cryptCertObject.release" href="#cryptCertObject.release">&#x23;</a>
释放证书资源

### cryptCertObject.serialNumber <a id="cryptCertObject.serialNumber" href="#cryptCertObject.serialNumber">&#x23;</a>
序列号（十六进制字符串）

### cryptCertObject.subject <a id="cryptCertObject.subject" href="#cryptCertObject.subject">&#x23;</a>
证书主题名称

### cryptCertObject.thumbprint <a id="cryptCertObject.thumbprint" href="#cryptCertObject.thumbprint">&#x23;</a>
证书指纹（SHA1 十六进制）

### cryptCertObject.validFrom <a id="cryptCertObject.validFrom" href="#cryptCertObject.validFrom">&#x23;</a>
生效时间  

[返回对象:timeObject](https://www.aardio.com/zh-cn/doc/library-reference/time/_.html#timeObject)

### cryptCertObject.validTo <a id="cryptCertObject.validTo" href="#cryptCertObject.validTo">&#x23;</a>
过期时间  

[返回对象:timeObject](https://www.aardio.com/zh-cn/doc/library-reference/time/_.html#timeObject)

### cryptCertObject.verify() <a id="cryptCertObject.verify" href="#cryptCertObject.verify">&#x23;</a>
验证证书链可信度。  
成功返回 true，失败返回 false, 错误信息。
