X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5c19dc3ae3bd8e40a9c028b0deddd50ff337692c..90dc47c27df1983f6ebc252b0c4b94c8718fe52d:/OSX/libsecurity_keychain/lib/Globals.cpp diff --git a/OSX/libsecurity_keychain/lib/Globals.cpp b/OSX/libsecurity_keychain/lib/Globals.cpp index f8d1e70e..153877d9 100644 --- a/OSX/libsecurity_keychain/lib/Globals.cpp +++ b/OSX/libsecurity_keychain/lib/Globals.cpp @@ -25,6 +25,7 @@ #include "Globals.h" #include "KCExceptions.h" +#include namespace Security { @@ -38,8 +39,18 @@ bool gServerMode; #pragma mark ÑÑÑÑ Constructor/Destructor ÑÑÑÑ Globals::Globals() : -mUI(true) +mUI(true), mIntegrityProtection(false) { + //sudo defaults write /Library/Preferences/com.apple.security KeychainIntegrity -bool YES + CFTypeRef integrity = (CFNumberRef)CFPreferencesCopyValue(CFSTR("KeychainIntegrity"), CFSTR("com.apple.security"), kCFPreferencesAnyUser, kCFPreferencesCurrentHost); + + if (integrity && CFGetTypeID(integrity) == CFBooleanGetTypeID()) { + mIntegrityProtection = CFBooleanGetValue((CFBooleanRef)integrity); + } else { + // preference not set: defaulting to true + mIntegrityProtection = true; + } + CFReleaseSafe(integrity); } const AccessCredentials * Globals::keychainCredentials()