1 // Copyright 2015 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 NET_SSL_SSL_PLATFORM_KEY_NSS_H_
6 #define NET_SSL_SSL_PLATFORM_KEY_NSS_H_
7 
8 #include "base/memory/ref_counted.h"
9 #include "net/base/net_export.h"
10 
11 typedef struct CERTCertificateStr CERTCertificate;
12 
13 namespace crypto {
14 class CryptoModuleBlockingPasswordDelegate;
15 }
16 
17 namespace net {
18 
19 class SSLPrivateKey;
20 class X509Certificate;
21 
22 // Returns an SSLPrivateKey backed by the NSS private key that corresponds to
23 // |certificate|'s public key. If |password_delegate| is non-null, it will be
24 // used to prompt for a password if necessary to unlock a slot or perform
25 // signing operations.
26 NET_EXPORT scoped_refptr<SSLPrivateKey> FetchClientCertPrivateKey(
27     const X509Certificate* certificate,
28     CERTCertificate* cert_certificate,
29     scoped_refptr<crypto::CryptoModuleBlockingPasswordDelegate>
30         password_delegate);
31 
32 }  // namespace net
33 
34 #endif  // NET_SSL_SSL_PLATFORM_KEY_NSS_H_
35