| Index: chrome/browser/mac/security_wrappers.h
|
| diff --git a/chrome/browser/mac/security_wrappers.h b/chrome/browser/mac/security_wrappers.h
|
| index 173c130e85796735141b8e6796332fdd664a461d..4713b4b0de4a0be3ef0392b7a8b0f46a4db38e07 100644
|
| --- a/chrome/browser/mac/security_wrappers.h
|
| +++ b/chrome/browser/mac/security_wrappers.h
|
| @@ -5,12 +5,9 @@
|
| #ifndef CHROME_BROWSER_MAC_SECURITY_WRAPPERS_H_
|
| #define CHROME_BROWSER_MAC_SECURITY_WRAPPERS_H_
|
|
|
| -#include <Security/Security.h>
|
| -#include <Security/SecRequirement.h>
|
| +#include <CoreFoundation/CFBase.h>
|
|
|
| -#include "base/basictypes.h"
|
| -#include "base/mac/scoped_cftyperef.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| +#include "base/macros.h"
|
|
|
| namespace chrome {
|
|
|
| @@ -27,206 +24,6 @@ class ScopedSecKeychainSetUserInteractionAllowed {
|
| DISALLOW_COPY_AND_ASSIGN(ScopedSecKeychainSetUserInteractionAllowed);
|
| };
|
|
|
| -// Holds a paired SecKeychainItemRef and SecAccessRef, maintaining the
|
| -// association between the two, and managing their ownership by retaining
|
| -// the SecKeychainItemRef and SecAccessRef elements placed into a
|
| -// CrSKeychainItemAndAccess object. Suitable for use
|
| -// in standard C++ containers.
|
| -class CrSKeychainItemAndAccess {
|
| - public:
|
| - CrSKeychainItemAndAccess(SecKeychainItemRef item, SecAccessRef access);
|
| - CrSKeychainItemAndAccess(const CrSKeychainItemAndAccess& that);
|
| -
|
| - ~CrSKeychainItemAndAccess();
|
| -
|
| - void operator=(const CrSKeychainItemAndAccess& that);
|
| -
|
| - SecKeychainItemRef item() const { return item_; }
|
| - SecAccessRef access() const { return access_; }
|
| -
|
| - private:
|
| - base::ScopedCFTypeRef<SecKeychainItemRef> item_;
|
| - base::ScopedCFTypeRef<SecAccessRef> access_;
|
| -};
|
| -
|
| -// Holds the return value from CrSACLCopySimpleContents and an argument to
|
| -// CrSACLSetSimpleContents, managing ownership. Used in those wrappers to keep
|
| -// logically grouped data together.
|
| -struct CrSACLSimpleContents {
|
| - CrSACLSimpleContents();
|
| - ~CrSACLSimpleContents();
|
| -
|
| - base::ScopedCFTypeRef<CFArrayRef> application_list;
|
| - base::ScopedCFTypeRef<CFStringRef> description;
|
| - CSSM_ACL_KEYCHAIN_PROMPT_SELECTOR prompt_selector;
|
| -};
|
| -
|
| -// Holds a SecKeychainAttributeInfo*, calling SecKeychainFreeAttributeInfo on
|
| -// destruction.
|
| -class ScopedSecKeychainAttributeInfo {
|
| - public:
|
| - explicit ScopedSecKeychainAttributeInfo(
|
| - SecKeychainAttributeInfo* attribute_info);
|
| - ~ScopedSecKeychainAttributeInfo();
|
| -
|
| - operator SecKeychainAttributeInfo*() const {
|
| - return attribute_info_;
|
| - }
|
| -
|
| - private:
|
| - SecKeychainAttributeInfo* attribute_info_;
|
| -};
|
| -
|
| -// Holds the return value from CrSKeychainItemCopyAttributesAndData and an
|
| -// argument to CrSKeychainItemCreateFromContent. Used in those wrappers to
|
| -// keep logically grouped data together.
|
| -struct CrSKeychainItemAttributesAndData {
|
| - SecItemClass item_class;
|
| - SecKeychainAttributeList* attribute_list;
|
| - UInt32 length;
|
| - void* data;
|
| -};
|
| -
|
| -// Holds a CrSKeychainItemAttributesAndData*, calling
|
| -// CrSKeychainItemFreeAttributesAndData and freeing the owned
|
| -// CrSKeychainItemAttributesAndData* on destruction.
|
| -class ScopedCrSKeychainItemAttributesAndData {
|
| - public:
|
| - ScopedCrSKeychainItemAttributesAndData(
|
| - CrSKeychainItemAttributesAndData* attributes_and_data);
|
| - ~ScopedCrSKeychainItemAttributesAndData();
|
| -
|
| - CrSKeychainItemAttributesAndData* get() const {
|
| - return attributes_and_data_.get();
|
| - }
|
| -
|
| - CrSKeychainItemAttributesAndData* release() {
|
| - return attributes_and_data_.release();
|
| - }
|
| -
|
| - SecItemClass item_class() const {
|
| - return attributes_and_data_->item_class;
|
| - }
|
| -
|
| - SecItemClass* item_class_ptr() const {
|
| - return &attributes_and_data_->item_class;
|
| - }
|
| -
|
| - SecKeychainAttributeList* attribute_list() const {
|
| - return attributes_and_data_->attribute_list;
|
| - }
|
| -
|
| - SecKeychainAttributeList** attribute_list_ptr() const {
|
| - return &attributes_and_data_->attribute_list;
|
| - }
|
| -
|
| - UInt32 length() const {
|
| - return attributes_and_data_->length;
|
| - }
|
| -
|
| - UInt32* length_ptr() const {
|
| - return &attributes_and_data_->length;
|
| - }
|
| -
|
| - void* data() const {
|
| - return attributes_and_data_->data;
|
| - }
|
| -
|
| - void** data_ptr() const {
|
| - return &attributes_and_data_->data;
|
| - }
|
| -
|
| - private:
|
| - scoped_ptr<CrSKeychainItemAttributesAndData> attributes_and_data_;
|
| -};
|
| -
|
| -// Wraps SecKeychainSearchCreateFromAttributes, returning NULL on error and a
|
| -// SecKeychainSearchRef owned by the caller on success.
|
| -SecKeychainSearchRef CrSKeychainSearchCreateFromAttributes(
|
| - CFTypeRef keychain_or_array,
|
| - SecItemClass item_class,
|
| - const SecKeychainAttributeList* attribute_list);
|
| -
|
| -// Wraps SecKeychainSearchCopyNext, tolerating a NULL argument (resulting in
|
| -// a NULL return value but nothing logged), returning NULL on error and a
|
| -// SecKeychainItemRef owned by the caller on success.
|
| -SecKeychainItemRef CrSKeychainSearchCopyNext(SecKeychainSearchRef search);
|
| -
|
| -// Wraps SecKeychainItemFreeAttributesAndData.
|
| -void CrSKeychainItemFreeAttributesAndData(
|
| - SecKeychainAttributeList* attribute_list,
|
| - void* data);
|
| -
|
| -// Tests access to |item| by calling SecKeychainItemCopyAttributesAndData,
|
| -// taking care to properly free any returned data. Returns true if access to
|
| -// |item| is authorized. errSecAuthFailed is considered an "expected" error
|
| -// for which nothing will be logged, although false will be returned.
|
| -bool CrSKeychainItemTestAccess(SecKeychainItemRef item);
|
| -
|
| -// Wraps SecKeychainItemCopyAccess, returning NULL on error and a SecAccessRef
|
| -// owned by the caller on success. errSecNoAccessForItem and errSecAuthFailed
|
| -// are considered "expected" errors for which nothing will be logged, although
|
| -// NULL will be returned.
|
| -SecAccessRef CrSKeychainItemCopyAccess(SecKeychainItemRef item);
|
| -
|
| -// Wraps SecAccessCopyACLList, returning NULL on error and a CFArrayRef owned
|
| -// by the caller on success.
|
| -CFArrayRef CrSAccessCopyACLList(SecAccessRef access);
|
| -
|
| -// Wraps SecACLCopySimpleContents, returning NULL on error and a
|
| -// CrSACLSimpleContents* owned by the caller on success. errSecACLNotSimple is
|
| -// considered an "expected" error for which nothing will be logged, although
|
| -// NULL will be returned.
|
| -CrSACLSimpleContents* CrSACLCopySimpleContents(SecACLRef acl);
|
| -
|
| -// Wraps SecTrustedApplicationCopyRequirement, tolerating a NULL argument
|
| -// (resulting in a NULL return value but nothing logged) and returning NULL on
|
| -// error or a SecRequirementRef owned by the caller on success.
|
| -SecRequirementRef CrSTrustedApplicationCopyRequirement(
|
| - SecTrustedApplicationRef application);
|
| -
|
| -// Wraps SecRequirementCopyString, tolerating a NULL argument (resulting in
|
| -// a NULL return value but nothing logged) and returning NULL on error or a
|
| -// CFStringRef owned by the caller on success.
|
| -CFStringRef CrSRequirementCopyString(SecRequirementRef requirement,
|
| - SecCSFlags flags);
|
| -
|
| -// Wraps SecTrustedApplicationCreateFromPath, returning NULL on error or a
|
| -// SecTrustedApplicationRef owned by the caller on success.
|
| -SecTrustedApplicationRef CrSTrustedApplicationCreateFromPath(const char* path);
|
| -
|
| -// Wraps SecACLSetSimpleContents, adapting it to the CrSACLSimpleContents
|
| -// argument, returning false on error or true on success.
|
| -bool CrSACLSetSimpleContents(SecACLRef acl,
|
| - const CrSACLSimpleContents& acl_simple_contents);
|
| -
|
| -// Wraps SecKeychainItemCopyKeychain, returning NULL on error or a
|
| -// SecKeychainRef owned by the caller on success.
|
| -SecKeychainRef CrSKeychainItemCopyKeychain(SecKeychainItemRef item);
|
| -
|
| -// Wraps SecKeychainAttributeInfoForItemID, returning NULL on error or a
|
| -// SecKeychainAttributeInfo* owned by the caller on success.
|
| -SecKeychainAttributeInfo* CrSKeychainAttributeInfoForItemID(
|
| - SecKeychainRef keychain,
|
| - UInt32 item_id);
|
| -
|
| -// Wraps SecKeychainItemCopyAttributesAndData, returning NULL on error or a
|
| -// CrSKeychainItemAttributesAndData* owned by the caller on success.
|
| -CrSKeychainItemAttributesAndData* CrSKeychainItemCopyAttributesAndData(
|
| - SecKeychainRef keychain,
|
| - SecKeychainItemRef item);
|
| -
|
| -// Wraps SecKeychainItemDelete, returning false on error or true on success.
|
| -bool CrSKeychainItemDelete(SecKeychainItemRef item);
|
| -
|
| -// Wraps SecKeychainItemCreateFromContent, adapting it to the
|
| -// CrSKeychainItemAttributesAndData argument, returning NULL on error or a
|
| -// SecKeychainItemRef owned by the caller on success.
|
| -SecKeychainItemRef CrSKeychainItemCreateFromContent(
|
| - const CrSKeychainItemAttributesAndData& attributes_and_data,
|
| - SecKeychainRef keychain,
|
| - SecAccessRef access);
|
| -
|
| } // namespace chrome
|
|
|
| #endif // CHROME_BROWSER_MAC_SECURITY_WRAPPERS_H_
|
|
|