Index: src/X509Certificate.m ================================================================== --- src/X509Certificate.m +++ src/X509Certificate.m @@ -253,12 +253,13 @@ - (BOOL)hasCommonNameMatchingDomain: (OFString*)domain { OFString *name; OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFList *CNs = [[self subject] objectForKey: OID_commonName]; + OFEnumerator *enumerator = [CNs objectEnumerator]; - for (name in CNs) { + while ((name = [enumerator nextObject]) != nil) { if ([self X509_isAssertedDomain: name equalDomain: domain]) { [pool release]; return YES; } @@ -272,12 +273,13 @@ { OFString *name; OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFDictionary *SANs = [self subjectAlternativeName]; OFList *assertedNames = [SANs objectForKey: @"dNSName"]; + OFEnumerator *enumerator = [assertedNames objectEnumerator]; - for (name in assertedNames) { + while ((name = [enumerator nextObject]) != nil) { if ([self X509_isAssertedDomain: name equalDomain: domain]) { [pool release]; return YES; } @@ -294,18 +296,19 @@ OFString *name; OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFDictionary *SANs = [self subjectAlternativeName]; OFList *assertedNames = [[SANs objectForKey: @"otherName"] objectForKey: OID_SRVName]; + OFEnumerator *enumerator = [assertedNames objectEnumerator]; if (![service hasPrefix: @"_"]) service = [service stringByPrependingString: @"_"]; service = [service stringByAppendingString: @"."]; serviceLength = [service length]; - for (name in assertedNames) { + while ((name = [enumerator nextObject]) != nil) { if ([name hasPrefix: service]) { OFString *asserted; asserted = [name substringWithRange: of_range( serviceLength, [name length] - serviceLength)]; if ([self X509_isAssertedDomain: asserted