Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

stdx.crypto.x509

功能介绍

x509 包提供处理数字证书功能,提供包括解析和序列化 X509 证书、验证证书、创建自签名证书、创建和验证证书链等主要功能。

使用本包需要外部依赖 OpenSSL 3 的 crypto 动态库文件,故使用前需安装相关工具。

  • 对于 Linux 操作系统,可参考以下方式:

    • 如果系统的包管理工具支持安装 OpenSSL 3 开发工具包,可通过这个方式安装,并确保系统安装目录下含有 libcrypto.so 和 libcrypto.so.3 这两个动态库文件,例如 Ubuntu 22.04 系统上可使用 sudo apt install libssl-dev 命令安装 libssl-dev 工具包;
    • 如果无法通过上面的方式安装,可自行下载 OpenSSL 3.x.x 源码编译安装软件包,并确保安装目录下含有 libcrypto.so 和 libcrypto.so.3 这两个动态库文件,然后可选择下面任意一种方式来保证系统链接器可以找到这些文件:
      • 在系统未安装 OpenSSL 的场景,安装时选择直接安装到系统路径下;
      • 安装在自定义目录的场景,将这些文件所在目录设置到环境变量 LD_LIBRARY_PATH 以及 LIBRARY_PATH 中。
  • 对于 Windows 操作系统,可按照以下步骤:

    • 自行下载 OpenSSL 3.x.x 源码编译安装 x64 架构软件包或者自行下载安装第三方预编译的供开发人员使用的 OpenSSL 3.x.x 软件包;
    • 确保安装目录下含有 libcrypto.dll.a(或 libcrypto.lib)、libcrypto-3-x64.dll 这两个库文件;
    • 将 libcrypto.dll.a(或 libcrypto.lib) 所在的目录路径设置到环境变量 LIBRARY_PATH 中,将 libcrypto-3-x64.dll 所在的目录路径设置到环境变量 PATH 中。
  • 对于 macOS 操作系统,可参考以下方式:

    • 使用 brew install openssl@3 安装,并确保系统安装目录下含有 libcrypto.dylib 和 libcrypto.3.dylib 这两个动态库文件;
    • 如果无法通过上面的方式安装,可自行下载 OpenSSL 3.x.x 源码编译安装软件包,并确保安装目录下含有 libcrypto.dylib 和 libcrypto.3.dylib 这两个动态库文件,然后可选择下面任意一种方式来保证系统链接器可以找到这些文件:
      • 在系统未安装 OpenSSL 的场景,安装时选择直接安装到系统路径下;
      • 安装在自定义目录的场景,将这些文件所在目录设置到环境变量 DYLD_LIBRARY_PATH 以及 LIBRARY_PATH 中。
  • 对于 Android 操作系统,可参考以下方式:

    • 由于 Android 系统默认自带的 OpenSSL 是裁剪版本,部分接口可能找不到符号而抛出异常,因此需要用户自行编译安装完整的 OpenSSL 3.x.x 版本;
    • 可自行下载 OpenSSL 3.x.x 源码,使用 Android NDK 交叉编译生成对应架构(当前只支持 arm64-v8a)的动态库文件,确保编译产物中含有 libcrypto.so 和 libcrypto.so.3 这些动态库文件;
    • 将这些文件所在目录设置到环境变量 LD_LIBRARY_PATH 中。

说明:

如果未安装 OpenSSL 3 软件包或者安装低版本的软件包,程序可能无法使用并抛出相关异常 X509Exception: Can not load openssl library or function xxx。

API 列表

类型别名

类型别名功能
IPx509 用 Array<Byte> 来记录 IP。

类名功能
GeneralDHParameters通用的 DH 密钥参数加解密功能实现。
X509CertificateX509 数字证书是一种用于加密通信的数字证书。
X509CertificateRequest数字证书签名请求。
X509Name证书实体可辨识名称。

枚举

枚举名功能
PublicKeyAlgorithm数字证书中包含的公钥信息。
SignatureAlgorithm证书签名算法。

结构体

结构体名功能
ExtKeyUsage数字证书扩展字段。
KeyUsage数字证书扩展字段中通常会包含携带公钥的用法说明。
SerialNumber数字证书的序列号。
Signature数字证书的签名。
VerifyOption校验选项。
X509CertificateInfo证书信息。
X509CertificateRequestInfo证书请求信息。

异常类

异常类名功能
X509Exceptionx509 包的异常类。