1*6777b538SAndroid Build Coastguard Worker // Copyright 2019 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 NET_TEST_KEY_UTIL_H_ 6*6777b538SAndroid Build Coastguard Worker #define NET_TEST_KEY_UTIL_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "base/memory/scoped_refptr.h" 9*6777b538SAndroid Build Coastguard Worker #include "third_party/boringssl/src/include/openssl/base.h" 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Worker namespace base { 12*6777b538SAndroid Build Coastguard Worker class FilePath; 13*6777b538SAndroid Build Coastguard Worker } 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker namespace net { 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker class SSLPrivateKey; 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker namespace key_util { 20*6777b538SAndroid Build Coastguard Worker 21*6777b538SAndroid Build Coastguard Worker // Loads a PEM-encoded private key file from |filepath| into an EVP_PKEY object. 22*6777b538SAndroid Build Coastguard Worker // Returns the new EVP_PKEY or nullptr on error. 23*6777b538SAndroid Build Coastguard Worker bssl::UniquePtr<EVP_PKEY> LoadEVP_PKEYFromPEM(const base::FilePath& filepath); 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker // Returns a PEM-encoded string representing |key|. 26*6777b538SAndroid Build Coastguard Worker std::string PEMFromPrivateKey(EVP_PKEY* key); 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker // Loads a PEM-encoded private key file into a SSLPrivateKey object. 29*6777b538SAndroid Build Coastguard Worker // |filepath| is the private key file path. 30*6777b538SAndroid Build Coastguard Worker // Returns the new SSLPrivateKey. 31*6777b538SAndroid Build Coastguard Worker scoped_refptr<SSLPrivateKey> LoadPrivateKeyOpenSSL( 32*6777b538SAndroid Build Coastguard Worker const base::FilePath& filepath); 33*6777b538SAndroid Build Coastguard Worker 34*6777b538SAndroid Build Coastguard Worker } // namespace key_util 35*6777b538SAndroid Build Coastguard Worker 36*6777b538SAndroid Build Coastguard Worker } // namespace net 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Worker #endif // NET_TEST_KEY_UTIL_H_ 39