Modified: trunk/dports/security/certsync/files/certsync.m (124890 => 124891)
--- trunk/dports/security/certsync/files/certsync.m 2014-08-30 10:36:35 UTC (rev 124890)
+++ trunk/dports/security/certsync/files/certsync.m 2014-08-30 10:49:53 UTC (rev 124891)
@@ -403,8 +403,14 @@
/* Set the keychain preference domain to user, this causes
* ValidateSystemTrust to use the user's keychain */
if ((err = SecKeychainSetPreferenceDomain(kSecPreferencesDomainUser)) != errSecSuccess) {
- CFStringRef errMsg = PLCFAutorelease(SecCopyErrorMessageString(err, NULL));
- nsfprintf(stderr, @"Failed to set keychain preference domain: %@\n", errMsg);
+ if (SecCopyErrorMessageString != NULL) {
+ /* >= 10.5 */
+ CFStringRef errMsg = PLCFAutorelease(SecCopyErrorMessageString(err, NULL));
+ nsfprintf(stderr, @"Failed to set keychain preference domain: %@\n", errMsg);
+ } else {
+ /* <= 10.4 */
+ nsfprintf(stderr, @"Failed to set keychain preference domain: %d\n", err);
+ }
[pool release];
return EXIT_FAILURE;
@@ -423,8 +429,14 @@
/* Admin & System */
/* Causes ValidateSystemTrust to ignore the user's keychain */
if ((err = SecKeychainSetPreferenceDomain(kSecPreferencesDomainSystem)) != errSecSuccess) {
- CFStringRef errMsg = PLCFAutorelease(SecCopyErrorMessageString(err, NULL));
- nsfprintf(stderr, @"Failed to set keychain preference domain: %@\n", errMsg);
+ if (SecCopyErrorMessageString != NULL) {
+ /* >= 10.5 */
+ CFStringRef errMsg = PLCFAutorelease(SecCopyErrorMessageString(err, NULL));
+ nsfprintf(stderr, @"Failed to set keychain preference domain: %@\n", errMsg);
+ } else {
+ /* <= 10.4 */
+ nsfprintf(stderr, @"Failed to set keychain preference domain: %d\n", err);
+ }
[pool release];
return EXIT_FAILURE;
Modified: trunk/dports/security/certsync/files/compat.h (124890 => 124891)
--- trunk/dports/security/certsync/files/compat.h 2014-08-30 10:36:35 UTC (rev 124890)
+++ trunk/dports/security/certsync/files/compat.h 2014-08-30 10:49:53 UTC (rev 124891)
@@ -54,6 +54,13 @@
/* SecTrustSettingsCopyCertificates() was added in 10.5 */
extern OSStatus SecTrustSettingsCopyCertificates (SecTrustSettingsDomain domain, CFArrayRef *certArray) __attribute__((weak_import));
#define SecTrustSettingsCopyCertificates ((OSStatus(*)(SecTrustSettingsDomain, CFArrayRef *)) NULL) /* We can't safely weak-link what we don't have */
+
+ /* SecTrustSettingsCopyTrustSettings() was added in 10.5 */
+ extern OSStatus SecTrustSettingsCopyTrustSettings (SecCertificateRef certRef, SecTrustSettingsDomain domain, CFArrayRef *trustSettings) __attribute__((weak_import));
+ #define SecTrustSettingsCopyTrustSettings ((OSStatus(*)(SecCertificateRef, SecTrustSettingsDomain, CFArrayRef *)) NULL) /* We can't safely weak-link what we don't have */
+
+ extern CFStringRef SecCopyErrorMessageString (OSStatus status, void *reserved) __attribute__((weak_import));
+ #define SecCopyErrorMessageString ((CFStringRef(*)(OSStatus, void *)) NULL) /* We can't safely weak-link what we don't have */
/* CFError was added in 10.5 */
typedef CFTypeRef CFErrorRef;