1

我有 CSR 文件,其内容如下

-----BEGIN CERTIFICATE REQUEST-----
XXXX
-----END CERTIFICATE REQUEST-----

CSR 是使用属性生成的

 Attributes:
        Requested Extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            X509v3 Key Usage: 
                Digital Signature, Non Repudiation, Key Encipherment
            xxx: 
                ..TC200
            yyy: 
                ..1234

我尝试过了

guard let base64data = Data(base64Encoded: request.body) else {
            return getResponse(message: "Most likely, the request sent was in a wrong format.", code: 400)
        }

但是,base64data 为零。

是否可以解码 CSR,以某种方式访问​​ Swift 中的 xxx 和 yyy 属性?附加信息是它是用 base64 编码的。

4

1 回答 1

1

我假设您正在寻找解码 ASN1 DER 编码的 X.509 证书。查看ASN1Decoder CocoaPod

安装后,您可以使用 Pod,如下例所示:

import ASN1Decoder

let base64CertData = "MIID..."

guard let data = Data(base64Encoded: base64CertData) else {
    return
}

do {
    let x509 = try X509Certificate(data: certData)

    let subject = x509.subjectDistinguishedName ?? ""

} catch {
    print(error)
}

请注意删除-----BEGIN CERTIFICATE REQUEST-----页眉和-----END CERTIFICATE REQUEST-----页脚。

于 2019-08-30T11:57:22.693 回答