fixed possible concurrent modification bug

This commit is contained in:
Diego Waxemberg 2015-01-08 17:04:16 -05:00
parent fe64d70577
commit 132a90a865

View File

@ -202,21 +202,25 @@ static NSData* p12 = nil;
} }
+ (void) generateKeyPairUsingSSl { + (void) generateKeyPairUsingSSl {
if (![CryptoManager keyPairExists]) { static dispatch_once_t pred;
dispatch_once(&pred, ^{
NSLog(@"Generating Certificate... "); if (![CryptoManager keyPairExists]) {
CertKeyPair certKeyPair = generateCertKeyPair();
NSLog(@"Generating Certificate... ");
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); CertKeyPair certKeyPair = generateCertKeyPair();
NSString* documentsDirectory = [paths objectAtIndex:0];
NSString* certFile = [documentsDirectory stringByAppendingPathComponent:@"client.crt"]; NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* keyPairFile = [documentsDirectory stringByAppendingPathComponent:@"client.key"]; NSString* documentsDirectory = [paths objectAtIndex:0];
NSString* p12File = [documentsDirectory stringByAppendingPathComponent:@"client.p12"]; NSString* certFile = [documentsDirectory stringByAppendingPathComponent:@"client.crt"];
NSString* keyPairFile = [documentsDirectory stringByAppendingPathComponent:@"client.key"];
//NSLog(@"Writing cert and key to: \n%@\n%@", certFile, keyPairFile); NSString* p12File = [documentsDirectory stringByAppendingPathComponent:@"client.p12"];
saveCertKeyPair([certFile UTF8String], [p12File UTF8String], [keyPairFile UTF8String], certKeyPair);
freeCertKeyPair(certKeyPair); //NSLog(@"Writing cert and key to: \n%@\n%@", certFile, keyPairFile);
} saveCertKeyPair([certFile UTF8String], [p12File UTF8String], [keyPairFile UTF8String], certKeyPair);
freeCertKeyPair(certKeyPair);
NSLog(@"Certificate created");
}
});
} }
+ (NSString*) getUniqueID { + (NSString*) getUniqueID {