| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef NET_CERT_TEST_KEYCHAIN_SEARCH_LIST_MAC_H_ |
| #define NET_CERT_TEST_KEYCHAIN_SEARCH_LIST_MAC_H_ |
| |
| #include <CoreServices/CoreServices.h> |
| #include <Security/Security.h> |
| |
| #include "base/mac/scoped_cftyperef.h" |
| #include "net/base/net_export.h" |
| #include "starboard/types.h" |
| |
| namespace net { |
| |
| class NET_EXPORT TestKeychainSearchList { |
| public: |
| ~TestKeychainSearchList(); |
| |
| // Creates a TestKeychainSearchList, which will be used by HasInstance and |
| // GetInstance. |
| // Only one TestKeychainSearchList object may exist at a time, returns nullptr |
| // if one exists already. |
| static std::unique_ptr<TestKeychainSearchList> Create(); |
| |
| // Returns true if a TestKeychainSearchList currently exists. |
| static bool HasInstance(); |
| |
| // Returns the current TestKeychainSearchList instance, if any. |
| static TestKeychainSearchList* GetInstance(); |
| |
| // Copies the test keychain search list into |keychain_search_list|. |
| OSStatus CopySearchList(CFArrayRef* keychain_search_list) const; |
| |
| // Adds |keychain| to the end of the test keychain search list. |
| void AddKeychain(SecKeychainRef keychain); |
| |
| private: |
| TestKeychainSearchList(); |
| |
| base::ScopedCFTypeRef<CFMutableArrayRef> scoped_keychain_search_list; |
| }; |
| |
| } // namespace net |
| |
| #endif // NET_CERT_TEST_KEYCHAIN_SEARCH_LIST_MAC_H_ |