Updated the README for the 0.1 release.
5 // Created by Jens Alfke on 4/9/09.
6 // Copyright 2009 Jens Alfke. All rights reserved.
10 #import "MYCrypto_Private.h"
13 @implementation MYIdentity
16 - (id) initWithIdentityRef: (SecIdentityRef)identityRef {
18 SecCertificateRef certificateRef;
19 if (!check(SecIdentityCopyCertificate(identityRef, &certificateRef), @"SecIdentityCopyCertificate")) {
23 self = [super initWithCertificateRef: certificateRef];
25 _identityRef = identityRef;
26 CFRetain(identityRef);
28 CFRelease(certificateRef);
34 - (id) initWithCertificateRef: (SecCertificateRef)certificateRef {
35 self = [super initWithCertificateRef: certificateRef];
37 if (!check(SecIdentityCreateWithCertificate(NULL, certificateRef, &_identityRef),
38 @"SecIdentityCreateWithCertificate")) {
49 if (_identityRef) CFRelease(_identityRef);
55 if (_identityRef) CFRelease(_identityRef);
60 - (MYPrivateKey*) privateKey {
61 SecKeyRef keyRef = NULL;
62 if (!check(SecIdentityCopyPrivateKey(_identityRef, &keyRef), @"SecIdentityCopyPrivateKey"))
64 MYPrivateKey *privateKey = [[MYPrivateKey alloc] _initWithKeyRef: keyRef
65 publicKey: self.publicKey];
67 return [privateKey autorelease];
73 + (MYIdentity*) preferredIdentityForName: (NSString*)name
76 SecIdentityRef identityRef;
77 if (!check(SecIdentityCopyPreference((CFStringRef)name, 0, NULL, &identityRef),
78 @"SecIdentityCopyPreference"))
80 return identityRef ?[[[self alloc] initWithIdentityRef: identityRef] autorelease] :nil;
83 - (BOOL) makePreferredIdentityForName: (NSString*)name {
85 return check(SecIdentitySetPreference(_identityRef, (CFStringRef)name, 0),
86 @"SecIdentitySetPreference");
89 #endif !TARGET_OS_IPHONE