1*6777b538SAndroid Build Coastguard Worker // Copyright 2024 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef CRYPTO_UNEXPORTABLE_KEY_WIN_H_ 6*6777b538SAndroid Build Coastguard Worker #define CRYPTO_UNEXPORTABLE_KEY_WIN_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <windows.h> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include <ncrypt.h> 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker #include "base/containers/span.h" 13*6777b538SAndroid Build Coastguard Worker #include "crypto/crypto_export.h" 14*6777b538SAndroid Build Coastguard Worker #include "crypto/scoped_cng_types.h" 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Worker namespace crypto { 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Worker // Attempts to load a TPM-backed CNG key from the given `wrapped` value. Will 19*6777b538SAndroid Build Coastguard Worker // assign the out `provider` and `key` values respectively. Returns true if all 20*6777b538SAndroid Build Coastguard Worker // operations were successful. 21*6777b538SAndroid Build Coastguard Worker CRYPTO_EXPORT bool LoadWrappedTPMKey(base::span<const uint8_t> wrapped, 22*6777b538SAndroid Build Coastguard Worker ScopedNCryptProvider& provider, 23*6777b538SAndroid Build Coastguard Worker ScopedNCryptKey& key); 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker } // namespace crypto 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Worker #endif // CRYPTO_UNEXPORTABLE_KEY_WIN_H_ 28