diff -r 4c0eafa7b233 -r 058394513f33 MYCertificate-iPhone.m --- a/MYCertificate-iPhone.m Sun Apr 12 22:02:20 2009 -0700 +++ b/MYCertificate-iPhone.m Sat Jun 06 15:36:35 2009 -0700 @@ -7,6 +7,7 @@ // #import "MYCertificate.h" +#import "MYCertificateInfo.h" #import "MYCrypto_Private.h" #if MYCRYPTO_USE_IPHONE_API @@ -37,6 +38,12 @@ return self; } +- (void) dealloc +{ + [_info release]; + [super dealloc]; +} + - (BOOL)isEqualToCertificate:(MYCertificate*)cert { return [self isEqual: cert] || [self.certificateData isEqual: cert.certificateData]; @@ -69,6 +76,21 @@ return key; } +- (MYIdentity*) identity { + return [self.keychain identityWithDigest: self.publicKey.publicKeyDigest]; +} + + +- (MYCertificateInfo*) info { + if (!_info) { + NSError *error; + _info = [[MYCertificateInfo alloc] initWithCertificateData: self.certificateData + error: &error]; + if (!_info) + Warn(@"Couldn't parse certificate %@: %@", self, error); + } + return _info; +} - (NSString*) commonName { CFStringRef name = SecCertificateCopySubjectSummary(_certificateRef);