diff --git a/OpenVPN Adapter/OpenVPNCertificate.h b/OpenVPN Adapter/OpenVPNCertificate.h index 22408d0..e799778 100644 --- a/OpenVPN Adapter/OpenVPNCertificate.h +++ b/OpenVPN Adapter/OpenVPNCertificate.h @@ -15,8 +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; diff --git a/OpenVPN Adapter/OpenVPNCertificate.m b/OpenVPN Adapter/OpenVPNCertificate.m index 1400f77..8e40725 100644 --- a/OpenVPN Adapter/OpenVPNCertificate.m +++ b/OpenVPN Adapter/OpenVPNCertificate.m @@ -53,10 +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]) {