Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(483)

Side by Side Diff: chrome/browser/keychain_mac.h

Issue 9699112: Move *keychain_mac* files to crypto/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Made another pass Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/keychain_mac.cc » ('j') | crypto/keychain_mac.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 #ifndef CHROME_BROWSER_KEYCHAIN_MAC_H_
6 #define CHROME_BROWSER_KEYCHAIN_MAC_H_
7 #pragma once
8
9 #include <Security/Security.h>
10
11 #include "base/basictypes.h"
12
13 // Wraps the KeychainServices API in a very thin layer, to allow it to be
14 // mocked out for testing.
15
16 // See Keychain Services documentation for function documentation, as these call
17 // through directly to their Keychain Services equivalents (Foo ->
18 // SecKeychainFoo). The only exception is Free, which should be used for
19 // anything returned from this class that would normally be freed with
20 // CFRelease (to aid in testing).
21 class MacKeychain {
22 public:
23 MacKeychain() {}
24 virtual ~MacKeychain() {}
25
26 virtual OSStatus ItemCopyAttributesAndData(
27 SecKeychainItemRef itemRef, SecKeychainAttributeInfo *info,
28 SecItemClass *itemClass, SecKeychainAttributeList **attrList,
29 UInt32 *length, void **outData) const;
30
31 virtual OSStatus ItemModifyAttributesAndData(
32 SecKeychainItemRef itemRef, const SecKeychainAttributeList *attrList,
33 UInt32 length, const void *data) const;
34
35 virtual OSStatus ItemFreeAttributesAndData(SecKeychainAttributeList *attrList,
36 void *data) const;
37
38 virtual OSStatus ItemDelete(SecKeychainItemRef itemRef) const;
39
40 virtual OSStatus SearchCreateFromAttributes(
41 CFTypeRef keychainOrArray, SecItemClass itemClass,
42 const SecKeychainAttributeList *attrList,
43 SecKeychainSearchRef *searchRef) const;
44
45 virtual OSStatus SearchCopyNext(SecKeychainSearchRef searchRef,
46 SecKeychainItemRef *itemRef) const;
47
48 virtual OSStatus AddInternetPassword(SecKeychainRef keychain,
49 UInt32 serverNameLength,
50 const char *serverName,
51 UInt32 securityDomainLength,
52 const char *securityDomain,
53 UInt32 accountNameLength,
54 const char *accountName,
55 UInt32 pathLength, const char *path,
56 UInt16 port, SecProtocolType protocol,
57 SecAuthenticationType authenticationType,
58 UInt32 passwordLength,
59 const void *passwordData,
60 SecKeychainItemRef *itemRef) const;
61
62 virtual OSStatus FindGenericPassword(CFTypeRef keychainOrArray,
63 UInt32 serviceNameLength,
64 const char *serviceName,
65 UInt32 accountNameLength,
66 const char *accountName,
67 UInt32 *passwordLength,
68 void **passwordData,
69 SecKeychainItemRef *itemRef) const;
70
71 virtual OSStatus ItemFreeContent(SecKeychainAttributeList *attrList,
72 void *data) const;
73
74 virtual OSStatus AddGenericPassword(SecKeychainRef keychain,
75 UInt32 serviceNameLength,
76 const char *serviceName,
77 UInt32 accountNameLength,
78 const char *accountName,
79 UInt32 passwordLength,
80 const void *passwordData,
81 SecKeychainItemRef *itemRef) const;
82
83 // Calls CFRelease on the given ref, after checking that |ref| is non-NULL.
84 virtual void Free(CFTypeRef ref) const;
85
86 private:
87 DISALLOW_COPY_AND_ASSIGN(MacKeychain);
88 };
89
90 #endif // CHROME_BROWSER_KEYCHAIN_MAC_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/keychain_mac.cc » ('j') | crypto/keychain_mac.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698