1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/keychain_mac.h"
6
ItemCopyAttributesAndData(SecKeychainItemRef itemRef,SecKeychainAttributeInfo * info,SecItemClass * itemClass,SecKeychainAttributeList ** attrList,UInt32 * length,void ** outData) const7 OSStatus MacKeychain::ItemCopyAttributesAndData(
8 SecKeychainItemRef itemRef, SecKeychainAttributeInfo *info,
9 SecItemClass *itemClass, SecKeychainAttributeList **attrList,
10 UInt32 *length, void **outData) const {
11 return SecKeychainItemCopyAttributesAndData(itemRef, info, itemClass,
12 attrList, length, outData);
13 }
14
ItemModifyAttributesAndData(SecKeychainItemRef itemRef,const SecKeychainAttributeList * attrList,UInt32 length,const void * data) const15 OSStatus MacKeychain::ItemModifyAttributesAndData(
16 SecKeychainItemRef itemRef, const SecKeychainAttributeList *attrList,
17 UInt32 length, const void *data) const {
18 return SecKeychainItemModifyAttributesAndData(itemRef, attrList, length,
19 data);
20 }
21
ItemFreeAttributesAndData(SecKeychainAttributeList * attrList,void * data) const22 OSStatus MacKeychain::ItemFreeAttributesAndData(
23 SecKeychainAttributeList *attrList, void *data) const {
24 return SecKeychainItemFreeAttributesAndData(attrList, data);
25 }
26
ItemDelete(SecKeychainItemRef itemRef) const27 OSStatus MacKeychain::ItemDelete(SecKeychainItemRef itemRef) const {
28 return SecKeychainItemDelete(itemRef);
29 }
30
SearchCreateFromAttributes(CFTypeRef keychainOrArray,SecItemClass itemClass,const SecKeychainAttributeList * attrList,SecKeychainSearchRef * searchRef) const31 OSStatus MacKeychain::SearchCreateFromAttributes(
32 CFTypeRef keychainOrArray, SecItemClass itemClass,
33 const SecKeychainAttributeList *attrList,
34 SecKeychainSearchRef *searchRef) const {
35 return SecKeychainSearchCreateFromAttributes(keychainOrArray, itemClass,
36 attrList, searchRef);
37 }
38
SearchCopyNext(SecKeychainSearchRef searchRef,SecKeychainItemRef * itemRef) const39 OSStatus MacKeychain::SearchCopyNext(SecKeychainSearchRef searchRef,
40 SecKeychainItemRef *itemRef) const {
41 return SecKeychainSearchCopyNext(searchRef, itemRef);
42 }
43
AddInternetPassword(SecKeychainRef keychain,UInt32 serverNameLength,const char * serverName,UInt32 securityDomainLength,const char * securityDomain,UInt32 accountNameLength,const char * accountName,UInt32 pathLength,const char * path,UInt16 port,SecProtocolType protocol,SecAuthenticationType authenticationType,UInt32 passwordLength,const void * passwordData,SecKeychainItemRef * itemRef) const44 OSStatus MacKeychain::AddInternetPassword(
45 SecKeychainRef keychain,
46 UInt32 serverNameLength, const char *serverName,
47 UInt32 securityDomainLength, const char *securityDomain,
48 UInt32 accountNameLength, const char *accountName,
49 UInt32 pathLength, const char *path,
50 UInt16 port, SecProtocolType protocol,
51 SecAuthenticationType authenticationType,
52 UInt32 passwordLength, const void *passwordData,
53 SecKeychainItemRef *itemRef) const {
54 return SecKeychainAddInternetPassword(keychain,
55 serverNameLength, serverName,
56 securityDomainLength, securityDomain,
57 accountNameLength, accountName,
58 pathLength, path,
59 port, protocol, authenticationType,
60 passwordLength, passwordData,
61 itemRef);
62 }
63
FindGenericPassword(CFTypeRef keychainOrArray,UInt32 serviceNameLength,const char * serviceName,UInt32 accountNameLength,const char * accountName,UInt32 * passwordLength,void ** passwordData,SecKeychainItemRef * itemRef) const64 OSStatus MacKeychain::FindGenericPassword(CFTypeRef keychainOrArray,
65 UInt32 serviceNameLength,
66 const char *serviceName,
67 UInt32 accountNameLength,
68 const char *accountName,
69 UInt32 *passwordLength,
70 void **passwordData,
71 SecKeychainItemRef *itemRef) const {
72 return SecKeychainFindGenericPassword(keychainOrArray,
73 serviceNameLength,
74 serviceName,
75 accountNameLength,
76 accountName,
77 passwordLength,
78 passwordData,
79 itemRef);
80 }
81
ItemFreeContent(SecKeychainAttributeList * attrList,void * data) const82 OSStatus MacKeychain::ItemFreeContent(SecKeychainAttributeList *attrList,
83 void *data) const {
84 return SecKeychainItemFreeContent(attrList, data);
85 }
86
AddGenericPassword(SecKeychainRef keychain,UInt32 serviceNameLength,const char * serviceName,UInt32 accountNameLength,const char * accountName,UInt32 passwordLength,const void * passwordData,SecKeychainItemRef * itemRef) const87 OSStatus MacKeychain::AddGenericPassword(SecKeychainRef keychain,
88 UInt32 serviceNameLength,
89 const char *serviceName,
90 UInt32 accountNameLength,
91 const char *accountName,
92 UInt32 passwordLength,
93 const void *passwordData,
94 SecKeychainItemRef *itemRef) const {
95 return SecKeychainAddGenericPassword(keychain,
96 serviceNameLength,
97 serviceName,
98 accountNameLength,
99 accountName,
100 passwordLength,
101 passwordData,
102 itemRef);
103 }
104
Free(CFTypeRef ref) const105 void MacKeychain::Free(CFTypeRef ref) const {
106 if (ref) {
107 CFRelease(ref);
108 }
109 }
110