void print_cert(SecCertificateRef cert, bool verbose) { // TODO: merge these when all SecCertificate APIs are present on both iOS and OS X #if TARGET_OS_IOS CFArrayRef plist; if (verbose) plist = SecCertificateCopyProperties(cert); else { CFAbsoluteTime now = CFAbsoluteTimeGetCurrent(); plist = SecCertificateCopySummaryProperties(cert, now); } CFStringRef subject = SecCertificateCopySubjectString(cert); if (subject) { print_line(subject); CFRelease(subject); } else { print_line(CFSTR("no subject")); } print_plist(plist); CFRelease(plist); #else CFStringRef certName = NULL; OSStatus status = SecCertificateInferLabel(cert, &certName); if (certName) { print_line(certName); CFRelease(certName); } else { fprintf(stdout, "ERROR: unable to read certificate name\n"); } #endif }
static void print_cert(SecCertificateRef cert, bool verbose) { CFArrayRef plist; if (verbose) plist = SecCertificateCopyProperties(cert); else { CFAbsoluteTime now = CFAbsoluteTimeGetCurrent(); plist = SecCertificateCopySummaryProperties(cert, now); } CFStringRef subject = SecCertificateCopySubjectString(cert); if (subject) { print_line(subject); CFRelease(subject); } else { print_line(CFSTR("no subject")); } print_plist(plist); CFRelease(plist); }