MYKeychain-iPhone.m
changeset 4 f4709533c816
parent 2 8982b8fada63
child 5 b2e360b78189
     1.1 --- a/MYKeychain-iPhone.m	Tue Apr 07 10:56:58 2009 -0700
     1.2 +++ b/MYKeychain-iPhone.m	Thu Apr 09 21:36:21 2009 -0700
     1.3 @@ -74,7 +74,7 @@
     1.4  }
     1.5  
     1.6  
     1.7 -- (MYKeyPair*) keyPairWithDigest: (MYSHA1Digest*)pubKeyDigest {
     1.8 +- (MYPrivateKey*) privateKeyWithDigest: (MYSHA1Digest*)pubKeyDigest {
     1.9      return [MYKeyEnumerator firstItemWithQuery:
    1.10                  $mdict({(id)kSecClass, (id)kSecClassKey},
    1.11                        {(id)kSecAttrKeyClass, (id)kSecAttrKeyClassPrivate},
    1.12 @@ -82,7 +82,7 @@
    1.13                        {(id)kSecReturnRef, $true})];
    1.14  }
    1.15  
    1.16 -- (NSEnumerator*) enumerateKeyPairs {
    1.17 +- (NSEnumerator*) enumeratePrivateKeys {
    1.18      NSMutableDictionary *query = $mdict({(id)kSecClass, (id)kSecClassKey},
    1.19                                  {(id)kSecAttrKeyClass, (id)kSecAttrKeyClassPrivate},
    1.20                                  {(id)kSecMatchLimit, (id)kSecMatchLimitAll},
    1.21 @@ -156,8 +156,8 @@
    1.22                                               algorithm: algorithm inKeychain: self];
    1.23  }
    1.24  
    1.25 -- (MYKeyPair*) generateRSAKeyPairOfSize: (unsigned)keySize {
    1.26 -    return [MYKeyPair _generateRSAKeyPairOfSize: keySize inKeychain: self];
    1.27 +- (MYPrivateKey*) generateRSAKeyPairOfSize: (unsigned)keySize {
    1.28 +    return [MYPrivateKey _generateRSAKeyPairOfSize: keySize inKeychain: self];
    1.29  }
    1.30  
    1.31  
    1.32 @@ -211,19 +211,7 @@
    1.33      while (next==nil && _index < CFArrayGetCount(_results)) {
    1.34          CFTypeRef found = CFArrayGetValueAtIndex(_results, _index++); 
    1.35          if (_itemClass == kSecAttrKeyClassPrivate) {
    1.36 -            MYSHA1Digest *digest = [MYPublicKey _digestOfKey: (SecKeyRef)found];
    1.37 -            if (digest) {
    1.38 -                MYPublicKey *publicKey = [[MYKeychain defaultKeychain] publicKeyWithDigest: digest];
    1.39 -                if (publicKey)
    1.40 -                    next = [[[MYKeyPair alloc] initWithPublicKeyRef: publicKey.keyRef
    1.41 -                                                     privateKeyRef: (SecKeyRef)found]
    1.42 -                           autorelease];
    1.43 -                else {
    1.44 -                    // The matching public key won't turn up if it's embedded in a certificate;
    1.45 -                    // I'd have to search for certs if I wanted to look that up. Skip it for now.
    1.46 -                    //Warn(@"Couldn't find matching public key for private key!");
    1.47 -                }
    1.48 -            }
    1.49 +            next = [[MYPrivateKey alloc] initWithKeyRef: (SecKeyRef)found];
    1.50          } else if (_itemClass == kSecAttrKeyClassPublic) {
    1.51              next = [[[MYPublicKey alloc] initWithKeyRef: (SecKeyRef)found] autorelease];
    1.52          } else if (_itemClass == kSecAttrKeyClassSymmetric) {