123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // 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 <memory>
- #include <CoreServices/CoreServices.h>
- #include <Security/Security.h>
- #include "base/mac/scoped_cftyperef.h"
- #include "net/base/net_export.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_
|