I'm currently working from the following post. Here is the code:
SecCertificateRef certs = NULL;
SecPolicyRef policy = NULL;
NSString *publicKeyString = @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCeJ8N8fuGShAJnniDg4yuRrxrG61ZF2T24eXSEH87jCJmLbc+MV70AgP/LC8btzSU4FFP56lBmDcmW+Prupf5gO1RXhjPIlET73t5Ny1I3ze+xaShAA9qB0c9dNb26NxVd95wCHNmQhon9qBFmTVZb0CdgscxYcDuLOGskDnATrwIDAQAB";
NSData *publicKeyStringData = [[NSData alloc] initWithBase64EncodedString:publicKeyString options:0];
certs = SecCertificateCreateWithData(kCFAllocatorDefault, (__bridge CFDataRef) publicKeyStringData);
Based on the post if the certs
variable is NULL then data was in an incorrect format. I checked the above public key and it is indeed base64, so I can't see why certs
would be NULL?