Implement writing certificate DER data

This commit is contained in:
Sergey Abramchuk
2017-09-07 10:21:10 +03:00
parent d5a96bf764
commit b714cf11a1
2 changed files with 14 additions and 0 deletions

View File

@@ -19,5 +19,6 @@
- (nonnull instancetype) __unavailable init;
- (nullable NSData *)pemData:(out NSError * __nullable * __nullable)error;
- (nullable NSData *)derData:(out NSError * __nullable * __nullable)error;
@end

View File

@@ -96,6 +96,19 @@
return [NSData dataWithBytes:pem_buffer length:output_length];
}
- (NSData *)derData:(out NSError **)error {
if (self.crt->raw.p == NULL || self.crt->raw.len == 0) {
*error = [NSError errorWithDomain:OpenVPNIdentityErrorDomain code:MBEDTLS_ERR_X509_BAD_INPUT_DATA userInfo:@{
NSLocalizedDescriptionKey: @"Failed to write DER data.",
NSLocalizedFailureReasonErrorKey: @"Input invalid"
}];
return nil;
}
return [NSData dataWithBytes:self.crt->raw.p length:self.crt->raw.len];
}
- (void)dealloc {
mbedtls_x509_crt_free(self.crt);
free(self.crt);