#include "Globals.h"
#include "KCExceptions.h"
+#include <utilities/SecCFRelease.h>
namespace Security {
#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()