【发布时间】:2019-08-27 15:54:03
【问题描述】:
上下文:
我有以下代码将数据加载到 BIO 中,然后使用它获取 X509Req:
let reqBIO = BIO_new(BIO_s_mem())
let result = BIO_write(reqBIO, (reqData as NSData).bytes, Int32(reqData.count))
let x509ReqContainer: UnsafeMutablePointer<X509_REQ> = d2i_X509_REQ_bio(reqBIO, nil)
BIO_free(reqBIO)
当输入是预期的 base64 编码 DER 时,此代码效果很好。但是,如果我传递一个 base64Encoded 垃圾字符串,它就会爆炸,而且丑陋,抛出一个致命的错误。
所以我的问题是:
- 我可以调用 OpenSSL 中的某些方法来确定 BIO 是否可以安全地发送到 d2i 函数,以便在这些情况下正常失败
- 有什么方法可以快速捕捉到 fatalError 吗? (我猜没有)
- 还有其他方法可以验证我的 base64 字符串是否包含 CSR
【问题讨论】:
标签: ios swift error-handling openssl