Skip to content

Instantly share code, notes, and snippets.

@edisonlo
Created October 31, 2017 09:25
Show Gist options
  • Save edisonlo/bbe364edccc329515434c95814c6959b to your computer and use it in GitHub Desktop.
Save edisonlo/bbe364edccc329515434c95814c6959b to your computer and use it in GitHub Desktop.
Obj-c-getPublicKeyRefrenceFromeData
- (SecKeyRef)getPublicKeyRefrenceFromeData: (NSData*)derData {
SecCertificateRef myCertificate = SecCertificateCreateWithData(kCFAllocatorDefault, (__bridge CFDataRef)derData);
SecPolicyRef myPolicy = SecPolicyCreateBasicX509();
SecTrustRef myTrust;
OSStatus status = SecTrustCreateWithCertificates(myCertificate,myPolicy,&myTrust);
SecTrustResultType trustResult;
if (status == noErr) {
status = SecTrustEvaluate(myTrust, &trustResult);
}
SecKeyRef securityKey = SecTrustCopyPublicKey(myTrust);
CFRelease(myCertificate);
CFRelease(myPolicy);
CFRelease(myTrust);
return securityKey;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment