]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_keychain/lib/SecBridge.h
Security-59754.80.3.tar.gz
[apple/security.git] / OSX / libsecurity_keychain / lib / SecBridge.h
index 7cfad6730674875bbb46faa1da97df32729ceb7f..c9e39bf9c5cf56d39c38150161628ce33d1523b4 100644 (file)
 
 #include <security_keychain/Globals.h>
 #include <security_keychain/SecCFTypes.h>
 
 #include <security_keychain/Globals.h>
 #include <security_keychain/SecCFTypes.h>
-#include "SecBasePriv.h"
+#include <Security/SecBasePriv.h>
 #include <Security/SecKeychainPriv.h>
 #include <security_keychain/KCUtilities.h>
 #include <security_cdsa_utilities/cssmbridge.h>
 #include <Security/SecKeychainPriv.h>
 #include <security_keychain/KCUtilities.h>
 #include <security_cdsa_utilities/cssmbridge.h>
+#include "LegacyAPICounts.h"
 
 using namespace KeychainCore;
 
 
 using namespace KeychainCore;
 
+#define COUNTLEGACYAPI static dispatch_once_t countToken; \
+       countLegacyAPI(&countToken, __FUNCTION__);
+
 //
 // API boilerplate macros. These provide a frame for C++ code that is impermeable to exceptions.
 // Usage:
 //
 // API boilerplate macros. These provide a frame for C++ code that is impermeable to exceptions.
 // Usage:
@@ -46,6 +50,8 @@ using namespace KeychainCore;
 //
 #define BEGIN_SECAPI \
        OSStatus __secapiresult = errSecSuccess; \
 //
 #define BEGIN_SECAPI \
        OSStatus __secapiresult = errSecSuccess; \
+       static dispatch_once_t countToken; \
+       countLegacyAPI(&countToken, __FUNCTION__); \
        try {
 #define END_SECAPI }\
        catch (const MacOSError &err) { __secapiresult=err.osStatus(); } \
        try {
 #define END_SECAPI }\
        catch (const MacOSError &err) { __secapiresult=err.osStatus(); } \
@@ -71,9 +77,10 @@ using namespace KeychainCore;
 // BEGIN_SECKCITEMAPI
 // Note: this macro assumes an input parameter named "itemRef"
 //
 // BEGIN_SECKCITEMAPI
 // Note: this macro assumes an input parameter named "itemRef"
 //
-#if SECTRUST_OSX
 #define BEGIN_SECKCITEMAPI \
        OSStatus __secapiresult=errSecSuccess; \
 #define BEGIN_SECKCITEMAPI \
        OSStatus __secapiresult=errSecSuccess; \
+       static dispatch_once_t countToken; \
+       countLegacyAPI(&countToken, __FUNCTION__); \
        SecKeychainItemRef __itemImplRef=NULL; \
        bool __is_certificate=(itemRef && (CFGetTypeID(itemRef) == SecCertificateGetTypeID())); \
        if (__is_certificate) { \
        SecKeychainItemRef __itemImplRef=NULL; \
        bool __is_certificate=(itemRef && (CFGetTypeID(itemRef) == SecCertificateGetTypeID())); \
        if (__is_certificate) { \
@@ -90,12 +97,7 @@ using namespace KeychainCore;
                __itemImplRef=(SecKeychainItemRef)((itemRef) ? CFRetain(itemRef) : NULL); \
        } \
        try {
                __itemImplRef=(SecKeychainItemRef)((itemRef) ? CFRetain(itemRef) : NULL); \
        } \
        try {
-#else
-#define BEGIN_SECKCITEMAPI \
-       OSStatus __secapiresult=errSecSuccess; \
-       SecKeychainItemRef __itemImplRef=(SecKeychainItemRef)((itemRef) ? CFRetain(itemRef) : NULL); \
-       try {
-#endif
+
 //
 // END_SECKCITEMAPI
 //
 //
 // END_SECKCITEMAPI
 //
@@ -112,21 +114,17 @@ using namespace KeychainCore;
 // BEGIN_SECCERTAPI
 // Note: this macro assumes an input parameter named "certificate"
 //
 // BEGIN_SECCERTAPI
 // Note: this macro assumes an input parameter named "certificate"
 //
-#if SECTRUST_OSX
 #define BEGIN_SECCERTAPI \
        OSStatus __secapiresult=errSecSuccess; \
 #define BEGIN_SECCERTAPI \
        OSStatus __secapiresult=errSecSuccess; \
+       static dispatch_once_t countToken; \
+       countLegacyAPI(&countToken, __FUNCTION__); \
        SecCertificateRef __itemImplRef=NULL; \
        if (SecCertificateIsItemImplInstance(certificate)) { __itemImplRef=(SecCertificateRef)CFRetain(certificate); } \
        if (!__itemImplRef && certificate) { __itemImplRef=(SecCertificateRef)SecCertificateCopyKeychainItem(certificate); } \
        if (!__itemImplRef && certificate) { __itemImplRef=SecCertificateCreateItemImplInstance(certificate); \
                (void)SecCertificateSetKeychainItem(certificate,__itemImplRef); } \
        try {
        SecCertificateRef __itemImplRef=NULL; \
        if (SecCertificateIsItemImplInstance(certificate)) { __itemImplRef=(SecCertificateRef)CFRetain(certificate); } \
        if (!__itemImplRef && certificate) { __itemImplRef=(SecCertificateRef)SecCertificateCopyKeychainItem(certificate); } \
        if (!__itemImplRef && certificate) { __itemImplRef=SecCertificateCreateItemImplInstance(certificate); \
                (void)SecCertificateSetKeychainItem(certificate,__itemImplRef); } \
        try {
-#else
-#define BEGIN_SECCERTAPI \
-       OSStatus __secapiresult=errSecSuccess; \
-       SecCertificateRef __itemImplRef=(SecCertificateRef)((certificate)?CFRetain(certificate):NULL); \
-       try {
-#endif
+
 //
 // END_SECCERTAPI
 //
 //
 // END_SECCERTAPI
 //