x509 包
class X509Certificate
public class X509Certificate <: Equatable<X509Certificate> & Hashable & ToString {
public init(
certificateInfo: X509CertificateInfo,
parent!: X509Certificate,
publicKey!: PublicKey,
privateKey!: PrivateKey,
signatureAlgorithm!: ?SignatureAlgorithm = None
)
public func encodeToDer(): DerBlob
public func encodeToPem(): PemEntry
public static func decodeFromDer(der: DerBlob): X509Certificate
public static func decodeFromPem(pem: String): Array<X509Certificate>
public static func systemRootCerts(): Array<X509Certificate>
public prop serialNumber: SerialNumber
public prop signatureAlgorithm: SignatureAlgorithm
public prop signature: Signature
public prop issuer: X509Name
public prop subject: X509Name
public prop notBefore: DateTime
public prop notAfter: DateTime
public prop publicKeyAlgorithm: PublicKeyAlgorithm
public prop publicKey: PublicKey
public prop dnsNames: Array<String>
public prop emailAddresses: Array<String>
public prop IPAddresses: Array<IP>
public prop keyUsage: KeyUsage
public prop extKeyUsage: ExtKeyUsage
public func verify(verifyOption: VerifyOption): Bool
public override func toString(): String
public override operator func ==(other: X509Certificate): Bool
public override operator func !=(other: X509Certificate): Bool
public override func hashCode(): Int64
}
功能:X509 数字证书是一种用于加密通信的数字证书,它是公钥基础设施(PKI)的核心组件之一。X509 数字证书包含了一个实体的公钥和身份信息,用于验证该实体的身份和确保通信的安全性。
父类型:
prop dnsNames
public prop dnsNames: Array<String>
功能:解析数字证书备选名称中的域名。
prop emailAddresses
public prop emailAddresses: Array<String>
功能:解析数字证书备选名称中的 email 地址。
prop extKeyUsage
public prop extKeyUsage: ExtKeyUsage
功能:解析数字证书中的扩展密钥用法。
类型:ExtKeyUsage
prop issuer
public prop issuer: X509Name
功能:解析数字证书的颁发者信息。
类型:X509Name
prop IPAddresses
public prop IPAddresses: Array<IP>
功能:解析数字证书备选名称中的 IP 地址。
prop keyUsage
public prop keyUsage: KeyUsage
功能:解析数字证书中的密钥用法。
类型:KeyUsage
prop notAfter
public prop notAfter: DateTime
功能:解析数字证书的有效期截止时间。
类型:DateTime
prop notBefore
public prop notBefore: DateTime
功能:解析数字证书的有效期开始时间。
类型:DateTime
prop publicKey
public prop publicKey: PublicKey
功能:解析数字证书的公钥。
类型:PublicKey
prop publicKeyAlgorithm
public prop publicKeyAlgorithm: PublicKeyAlgorithm
功能:解析数字证书的公钥算法。
prop serialNumber
public prop serialNumber: SerialNumber
功能:解析数字证书的序列号。
类型:SerialNumber
prop signature
public prop signature: Signature
功能:解析数字证书的签名。
类型:Signature
prop signatureAlgorithm
public prop signatureAlgorithm: SignatureAlgorithm
功能:解析数字证书的签名算法。
prop subject
public prop subject: X509Name
功能:解析数字证书的使用者信息。
类型:X509Name
init(X509CertificateInfo, X509Certificate, PublicKey, PrivateKey, ?SignatureAlgorithm)
public init(
certificateInfo: X509CertificateInfo,
parent!: X509Certificate,
publicKey!: PublicKey,
privateKey!: PrivateKey,
signatureAlgorithm!: ?SignatureAlgorithm = None
)
功能:创建数字证书对象。
参数:
- certificateInfo: X509CertificateInfo - 数字证书配置信息。
- parent!: X509Certificate - 颁发者证书。
- publicKey!: PublicKey - 申请人公钥,仅支持 RSA、ECDSA 和 DSA 公钥。
- privateKey!: PrivateKey - 颁发者私钥,仅支持 RSA、ECDSA 和 DSA 私钥。
- signatureAlgorithm!: ?SignatureAlgorithm - 证书签名算法,默认值为 None,使用默认值时默认的摘要类型是 SHA256。
异常:
- X509Exception - 公钥或私钥类型不支持、私钥类型和证书签名算法中的私钥类型不匹配或数字证书信息设置失败时,抛出异常。
static func decodeFromDer(DerBlob)
public static func decodeFromDer(der: DerBlob): X509Certificate
功能:将 DER 格式的数字证书解码。
参数:
- der: DerBlob - DER 格式的二进制数据。
返回值:
- X509Certificate - 由 DER 格式解码出的数字证书。
异常:
- X509Exception - 数据为空时,或数据不是有效的数字证书 DER 格式时抛出异常。
static func decodeFromPem(String)
public static func decodeFromPem(pem: String): Array<X509Certificate>
功能:将数字证书从 PEM 格式解码。
参数:
- pem: String - PEM 格式的数字证书字符流。
返回值:
- Array<X509Certificate> - 由 PEM 格式解码出的数字证书数组。
异常:
- X509Exception - 字符流不符合 PEM 格式时,或文件头不符合数字证书头标准时抛出异常。
func encodeToDer()
public func encodeToDer(): DerBlob
功能:将数字证书编码成 Der 格式。
返回值:
- DerBlob - 编码后的 Der 格式的数字证书。
func encodeToPem()
public func encodeToPem(): PemEntry
功能:将数字证书编码成 PEM 格式。
返回值:
- PemEntry - 编码后的 PEM 格式的数字证书。
func hashCode()
public override func hashCode(): Int64
功能:返回证书哈希值。
返回值:
- Int64 - 对证书对象进行哈希计算后得到的结果。
static func systemRootCerts()
public static func systemRootCerts(): Array<X509Certificate>
功能:返回操作系统的根证书,支持 Linux,MacOS 和 Windows 平台。
返回值:
- Array<X509Certificate> - 操作系统的根证书链。
func toString()
public override func toString(): String
功能:生成证书名称字符串,包含证书的使用者信息、有效期以及颁发者信息。
返回值:
- String - 证书名称字符串。
func verify(VerifyOption)
public func verify(verifyOption: VerifyOption): Bool
功能:根据验证选项验证当前证书的有效性。
验证优先级:
- 优先验证有效期;
- 可选验证DNS域名;
- 最后根据根证书和中间证书验证其有效性。
参数:
- verifyOption: VerifyOption - 证书验证选项。
返回值:
- Bool - 证书有效返回 true,否则返回 false。
异常:
- X509Exception - 检验过程中失败,比如内存分配异常等内部错误,则抛出异常。
operator func !=(X509Certificate)
public override operator func !=(other: X509Certificate): Bool
功能:判不等。
参数:
- other: X509Certificate - 被比较的证书对象。
返回值:
- Bool - 若证书不同,返回 true;否则,返回 false。
operator func ==(X509Certificate)
public override operator func ==(other: X509Certificate): Bool
功能:判等。
参数:
- other: X509Certificate - 被比较的证书对象。
返回值:
- Bool - 若证书相同,返回 true;否则,返回 false。
class X509CertificateRequest
public class X509CertificateRequest <: Hashable & ToString {
public init(
privateKey: PrivateKey,
certificateRequestInfo!: ?X509CertificateRequestInfo = None,
signatureAlgorithm!: ?SignatureAlgorithm = None
)
public func encodeToDer(): DerBlob
public func encodeToPem(): PemEntry
public static func decodeFromDer(der: DerBlob): X509CertificateRequest
public static func decodeFromPem(pem: String): Array<X509CertificateRequest>
public prop signatureAlgorithm: SignatureAlgorithm
public prop signature: Signature
public prop publicKeyAlgorithm: PublicKeyAlgorithm
public prop publicKey: PublicKey
public prop subject: X509Name
public prop dnsNames: Array<String>
public prop emailAddresses: Array<String>
public prop IPAddresses: Array<IP>
public override func toString(): String
public override func hashCode(): Int64
}
功能:数字证书签名请求。
父类型:
prop IPAddresses
public prop IPAddresses: Array<IP>
功能:解析数字证书签名请求备选名称中的 IP 地址。
prop dnsNames
public prop dnsNames: Array<String>
功能:解析数字证书签名请求备选名称中的域名。
prop emailAddresses
public prop emailAddresses: Array<String>
功能:解析数字证书签名请求备选名称中的 email 地址。
prop publicKey
public prop publicKey: PublicKey
功能:解析数字证书签名请求的公钥。
类型:PublicKey
prop publicKeyAlgorithm
public prop publicKeyAlgorithm: PublicKeyAlgorithm
功能:解析数字证书签名请求的公钥算法。
prop signature
public prop signature: Signature
功能:解析数字证书签名请求的签名。
类型:Signature
prop signatureAlgorithm
public prop signatureAlgorithm: SignatureAlgorithm
功能:解析数字证书签名请求的签名算法。
prop subject
public prop subject: X509Name
功能:解析数字证书签名请求的使用者信息。
类型:X509Name
init(PrivateKey, ?X509CertificateRequestInfo, ?SignatureAlgorithm)
public init(
privateKey: PrivateKey,
certificateRequestInfo!: ?X509CertificateRequestInfo = None,
signatureAlgorithm!: ?SignatureAlgorithm = None
)
功能:创建数字证书签名请求对象。
参数:
- privateKey: PrivateKey - 私钥,仅支持 RSA、ECDSA 和 DSA 私钥。
- certificateRequestInfo!: ?X509CertificateRequestInfo - 数字证书签名信息,默认值为 None。
- signatureAlgorithm!: ?SignatureAlgorithm - 证书签名算法,默认值为 None,使用默认值时默认的摘要类型是 SHA256。
异常:
- X509Exception - 私钥类型不支持、私钥类型和证书签名算法中的私钥类型不匹配或数字证书签名信息设置失败时,抛出异常。
static func decodeFromDer(DerBlob)
public static func decodeFromDer(der: DerBlob): X509CertificateRequest
功能:将 DER 格式的数字证书签名请求解码。
参数:
- der: DerBlob - DER 格式的二进制数据。
返回值:
- X509CertificateRequest - 由 DER 格式解码出的数字证书签名请求。
异常:
- X509Exception - 数据为空时,或数据不是有效的数字证书签名请求 DER 格式时抛出异常。
static func decodeFromPem(String)
public static func decodeFromPem(pem: String): Array<X509CertificateRequest>
功能:将数字证书签名请求从 PEM 格式解码。
参数:
- pem: String - PEM 格式的数字证书签名请求字符流。
返回值:
- Array<X509CertificateRequest> - 由 PEM 格式解码出的数字证书签名请求数组。
异常:
- X509Exception - 字符流不符合 PEM 格式时,或文件头不符合数字证书签名请求头标准时抛出异常。
func encodeToDer()
public func encodeToDer(): DerBlob
功能:将数字证书签名请求编码成 Der 格式。
返回值:
- DerBlob - 编码后的 Der 格式的数字证书签名请求。
func encodeToPem()
public func encodeToPem(): PemEntry
功能:将数字证书签名请求编码成 PEM 格式。
返回值:
- PemEntry - 编码后的 PEM 格式的数字证书签名请求。
func hashCode()
public override func hashCode(): Int64
功能:返回证书签名请求哈希值。
返回值:
- Int64 - 对证书签名请求对象进行哈希计算后得到的结果。
func toString()
public override func toString(): String
功能:生成证书签名请求名称字符串,包含证书签名请求的使用者信息。
返回值:
- String - 证书签名请求名称字符串。
class X509Name
public class X509Name <: ToString {
public init(
countryName!: ?String = None,
provinceName!: ?String = None,
localityName!: ?String = None,
organizationName!: ?String = None,
organizationalUnitName!: ?String = None,
commonName!: ?String = None,
email!: ?String = None
)
public prop countryName: ?String
public prop provinceName: ?String
public prop localityName: ?String
public prop organizationName: ?String
public prop organizationalUnitName: ?String
public prop commonName: ?String
public prop email: ?String
public override func toString(): String
}
功能:证书实体可辨识名称(Distinguished Name)是数字证书中的一个重要组成部分,作用是确保证书的持有者身份的真实性和可信度,同时也是数字证书验证的重要依据之一。
X509Name 通常包含证书实体的国家或地区名称(Country Name)、州或省名称(State or Province Name)、城市名称(Locality Name)、组织名称(Organization Name)、组织单位名称(Organizational Unit Name)、通用名称(Common Name)。有时也会包含 email 地址。
父类型:
prop commonName
public prop commonName: ?String
功能:返回证书实体的通用名称。
类型:?String
prop countryName
public prop countryName: ?String
功能:返回证书实体的国家或地区名称。
类型:?String
prop email
public prop email: ?String
功能:返回证书实体的 email 地址。
类型:?String
prop localityName
public prop localityName: ?String
功能:返回证书实体的城市名称。
类型:?String
prop organizationName
public prop organizationName: ?String
功能:返回证书实体的组织名称。
类型:?String
prop organizationalUnitName
public prop organizationalUnitName: ?String
功能:返回证书实体的组织单位名称。
类型:?String
prop provinceName
public prop provinceName: ?String
功能:返回证书实体的州或省名称。
类型:?String
init(?String, ?String, ?String, ?String, ?String, ?String, ?String)
public init(
countryName!: ?String = None,
provinceName!: ?String = None,
localityName!: ?String = None,
organizationName!: ?String = None,
organizationalUnitName!: ?String = None,
commonName!: ?String = None,
email!: ?String = None
)
功能:构造 X509Name 对象。
参数:
- countryName!: ?String - 国家或地区名称,默认值为 None。
- provinceName!: ?String - 州或省名称,默认值为 None。
- localityName!: ?String - 城市名称,默认值为 None。
- organizationName!: ?String - 组织名称,默认值为 None。
- organizationalUnitName!: ?String - 组织单位名称,默认值为 None。
- commonName!: ?String - 通用名称,默认值为 None。
- email!: ?String - email 地址,默认值为 None。
异常:
- X509Exception - 设置证书实体可辨识名称时失败,比如内存分配异常等内部错误,则抛出异常。
func toString()
public override func toString(): String
功能:生成证书实体名称字符串。
返回值:
- String - 证书实体名称字符串,包含实体名称中存在的字段信息。