From 682831ba87054e2658c6a428483b3ce6dcd31ebd Mon Sep 17 00:00:00 2001 From: Sergey Abramchuk Date: Thu, 7 Sep 2017 10:53:35 +0300 Subject: [PATCH] Test converting PEM certificate data to DER and vice versa --- .../OpenVPNCertificateTests.swift | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/OpenVPN Adapter Tests/OpenVPNCertificateTests.swift b/OpenVPN Adapter Tests/OpenVPNCertificateTests.swift index dd83b13..8fb1016 100644 --- a/OpenVPN Adapter Tests/OpenVPNCertificateTests.swift +++ b/OpenVPN Adapter Tests/OpenVPNCertificateTests.swift @@ -21,23 +21,48 @@ class OpenVPNCertificateTests: XCTestCase { super.tearDown() } - func testCertificateFromPEM() { + func testCertificatePEMandDER() { guard let caURL = Bundle.current.url(forResource: "ca", withExtension: "crt"), - let caData = try? Data(contentsOf: caURL) -// let caContent = try? String(contentsOf: caURL, encoding: .utf8).cString(using: .utf8) + let caOriginalPEMData = try? Data(contentsOf: caURL) else { - XCTFail("") + XCTFail() return } - let certificate: OpenVPNCertificate + let certificateFromPEM: OpenVPNCertificate do { - certificate = try OpenVPNCertificate(pem: caData) + certificateFromPEM = try OpenVPNCertificate(pem: caOriginalPEMData) } catch { XCTFail(error.localizedDescription) 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() {