Test converting PEM certificate data to DER and vice versa

This commit is contained in:
Sergey Abramchuk
2017-09-07 10:53:35 +03:00
parent 2e289ec88c
commit 682831ba87
@@ -21,23 +21,48 @@ class OpenVPNCertificateTests: XCTestCase {
super.tearDown() super.tearDown()
} }
func testCertificateFromPEM() { func testCertificatePEMandDER() {
guard guard
let caURL = Bundle.current.url(forResource: "ca", withExtension: "crt"), let caURL = Bundle.current.url(forResource: "ca", withExtension: "crt"),
let caData = try? Data(contentsOf: caURL) let caOriginalPEMData = try? Data(contentsOf: caURL)
// let caContent = try? String(contentsOf: caURL, encoding: .utf8).cString(using: .utf8)
else { else {
XCTFail("") XCTFail()
return return
} }
let certificate: OpenVPNCertificate let certificateFromPEM: OpenVPNCertificate
do { do {
certificate = try OpenVPNCertificate(pem: caData) certificateFromPEM = try OpenVPNCertificate(pem: caOriginalPEMData)
} catch { } catch {
XCTFail(error.localizedDescription) XCTFail(error.localizedDescription)
return return
} }
let caDERData: Data
do {
caDERData = try certificateFromPEM.derData()
} catch {
XCTFail(error.localizedDescription)
return
}
let certificateFromDER: OpenVPNCertificate
do {
certificateFromDER = try OpenVPNCertificate(der: caDERData)
} catch {
XCTFail(error.localizedDescription)
return
}
let caGeneratedPEMData: Data
do {
caGeneratedPEMData = try certificateFromDER.pemData()
} catch {
XCTFail(error.localizedDescription)
return
}
XCTAssert(caGeneratedPEMData.elementsEqual(caOriginalPEMData))
} }
func testCertificateFromEmptyPEM() { func testCertificateFromEmptyPEM() {