有没有一种方法可以将CSR解码为String以获取属性?

时间:2019-08-27 09:40:55

标签: ios swift csr certificate-signing-request

我的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编码的。

1 个答案:

答案 0 :(得分:0)

我假设您正在寻找对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-----页脚。