iOS web browser with a focus on security and privacy
1/*
2 * Endless
3 * Copyright (c) 2015 joshua stein <jcs@jcs.org>
4 *
5 * See LICENSE file for redistribution terms.
6 */
7
8#import <Foundation/Foundation.h>
9
10@interface SSLCertificate : NSObject
11
12/* Relative Distinguished Name (RDN) table */
13#define X509_KEY_CN @"Common Name (CN)"
14#define X509_KEY_O @"Organization (O)"
15#define X509_KEY_OU @"Organizational Unit Number (OU)"
16#define X509_KEY_L @"Locality (L)"
17#define X509_KEY_ST @"State/Province (ST)"
18#define X509_KEY_C @"Country (C)"
19#define X509_KEY_SN @"Serial Number (SN)"
20
21#define X509_KEY_STREET @"Street Address"
22#define X509_KEY_ZIP @"Postal Code"
23#define X509_KEY_SERIAL @"Serial Number"
24#define X509_KEY_BUSCAT @"Business Category"
25
26@property (strong, readonly) NSDictionary *oids;
27
28@property (strong, readonly) NSNumber *version;
29@property (strong, readonly) NSString *serialNumber;
30@property (strong, readonly) NSString *signatureAlgorithm;
31@property (strong, readonly) NSDictionary *issuer;
32@property (strong, readonly) NSDate *validityNotBefore;
33@property (strong, readonly) NSDate *validityNotAfter;
34@property (strong, readonly) NSDictionary *subject;
35
36@property SSLProtocol negotiatedProtocol;
37@property SSLCipherSuite negotiatedCipher;
38
39@property (readonly) BOOL isEV;
40@property (strong, readonly) NSString *evOrgName;
41
42- (id)initWithSecTrustRef:(SecTrustRef)secTrustRef;
43- (id)initWithData:(NSData *)data;
44- (BOOL)isExpired;
45- (BOOL)hasWeakSignatureAlgorithm;
46- (NSString *)negotiatedProtocolString;
47- (NSString *)negotiatedCipherString;
48
49@end