Merge branch 'feature/certificate-serial' into develop

This commit is contained in:
Sergey Abramchuk
2018-05-16 09:50:16 +03:00
3 changed files with 43 additions and 0 deletions

View File

@@ -76,5 +76,25 @@ class OpenVPNCertificateTests: XCTestCase {
XCTFail("Initialization with empty PEM data should fail")
}
func testReadSerial() {
guard
let caURL = Bundle.current.url(forResource: "test-ca", withExtension: "crt"),
let caOriginalPEMData = try? Data(contentsOf: caURL)
else {
XCTFail()
return
}
let certificateFromPEM: OpenVPNCertificate
do {
certificateFromPEM = try OpenVPNCertificate(pem: caOriginalPEMData)
} catch {
XCTFail(error.localizedDescription)
return
}
XCTAssert(!certificateFromPEM.serial.isEmpty)
}
}

View File

@@ -15,6 +15,12 @@ NS_ASSUME_NONNULL_BEGIN
+ (nullable OpenVPNCertificate *)certificateWithPEM:(NSData *)pemData error:(NSError **)error;
+ (nullable OpenVPNCertificate *)certificateWithDER:(NSData *)derData error:(NSError **)error;
@property (readonly, nonatomic) NSInteger version;
@property (readonly, nonatomic) NSData *serial;
@property (readonly, nonatomic) NSData *issuer;
@property (readonly, nonatomic) NSData *subject;
- (instancetype) init NS_UNAVAILABLE;
- (nullable NSData *)pemData:(NSError **)error;

View File

@@ -9,6 +9,7 @@
#include <mbedtls/x509_crt.h>
#include <mbedtls/pem.h>
#include <mbedtls/bignum.h>
#import "NSError+OpenVPNError.h"
@@ -52,6 +53,22 @@
return certificate;
}
- (NSInteger)version {
return self.crt->version;
}
- (NSData *)serial {
return [NSData dataWithBytes:self.crt->serial.p length:self.crt->serial.len];
}
- (NSData *)issuer {
return [NSData dataWithBytes:self.crt->issuer_raw.p length:self.crt->issuer_raw.len];
}
- (NSData *)subject {
return [NSData dataWithBytes:self.crt->subject_raw.p length:self.crt->subject_raw.len];
}
- (instancetype)init
{
if (self = [super init]) {