普贤教程 › 包参考
x509 包
X.509 证书 DER/PEM 解析与验签
| 项 | 值 |
|---|---|
| 包名 | x509 |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | x509.px |
| 分类 | 认证与安全 |
| 文件数 / 行数 | 1 / 407 |
安装与引入
bash
pxpkg init # 首次 pxpkg add x509@0.2.0 pxpkg install
px
import x509所属分类教程:认证与安全
公开接口
| 函数 | 参数 |
|---|---|
x509_parse_pem | pem |
x509_parse_der | der |
x509_verify_der | der |
x509_verify_pem | pem |
其余 21 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
asn_len | data, ip |
asn_elem | data, ip |
asn_oid | data, start, end |
asn_str | data, start, end |
asn_name | data, start, end |
x509_rsa_key | der, start, end |
x509_len | l |
x509_spki_pem | n_hex, e_hex |
x509_cn | cert |
x509_issuer_cn | cert |
x509_is_self_signed | cert |
x509_serial_int | cert |
x509_parse_time | time_str |
x509_cmp_time | t1, t2 |
x509_is_valid_period | cert, now_time |
x509_is_expired | cert, now_time |
x509_fingerprint_sha256 | der |
x509_issuer_info | cert |
x509_subject_info | cert |
x509_pubkey_info | cert |
x509_chain_verify | certs |
包内说明(源码头注释)
text
============================================================ 普贤生态库:registry/x509 —— X.509 证书 DER/PEM 解析与验签 ------------------------------------------------------------ 纯函数库(无 IO、无状态,除原生验签外全为字节运算),双模式一致。 对应缺口表「证书/X.509 解析」(DER 解析纯 .px;验签走 rsa_verify_pkcs1v15_sha256): x509_parse_pem(pem) → Ok(der_bytes) | Err 剥离 PEM 装甲 x509_parse_der(der) → Ok(cert dict) | Err 解析证书字段 x509_verify_der(der) → Ok({valid: bool}) | Err 自验签名(TBS + 公钥 + 签名) x509_verify_pem(pem) → Ok({valid: bool}) | Err 解析字段: version / serial(hex) / sig_alg(oid) / issuer{c,o,ou,cn,l,st} / not_before / not_after(ASN.1 时间串, UTCTime/GeneralizedTime)/ subject{...} / pubkey{alg, n_hex, e_hex, pem} / sig_hex 验签:重建 SPKI PEM(BER/DER 编码)→ rsa_verify_pkcs1v15_sha256(pem_pub, TBS原始字节, sig) 说明:支持 RSA(1.2.840.113549.1.1.1)+ sha256WithRSAEncryption 等常见 OID; EC 证书解析出 alg 但验签需原生差异(文档注明);未知扩展忽略。 ============================================================ ---- ASN.1 ---- 读取长度 → [len, new_ip, err]