diff --git a/OpenVPN Adapter/OpenVPNCertificate.m b/OpenVPN Adapter/OpenVPNCertificate.m index fd09813..aee5591 100644 --- a/OpenVPN Adapter/OpenVPNCertificate.m +++ b/OpenVPN Adapter/OpenVPNCertificate.m @@ -31,7 +31,12 @@ + (OpenVPNCertificate *)certificateWithPEM:(NSData *)pemData error:(out NSError * __nullable * __nullable)error { OpenVPNCertificate *certificate = [OpenVPNCertificate new]; - // TODO: Parse PEM data + NSString *pemString = [[NSString alloc] initWithData:pemData encoding:NSUTF8StringEncoding]; + + int result = mbedtls_x509_crt_parse(certificate.crt, (const unsigned char *)pemString.UTF8String, pemData.length + 1); + if (result != 0) { + return nil; + } return certificate; }