blob: 278d2392ce999a0df1ed11655cb1182accca6b62 [file] [log] [blame]
David Ghandehari9e5b5872016-07-28 09:50:04 -07001// Copyright (c) 2012 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_SPDY_SPDY_CREDENTIAL_BUILDER_H_
6#define NET_SPDY_SPDY_CREDENTIAL_BUILDER_H_
7
8#include <string>
9
10#include "net/base/net_export.h"
11#include "net/base/ssl_client_cert_type.h"
12
13namespace net {
14
15class SSLClientSocket;
16struct SpdyCredential;
17
18// This class provides facilities for building the various fields of
19// SPDY CREDENTIAL frames.
20class NET_EXPORT_PRIVATE SpdyCredentialBuilder {
21 public:
22 static int Build(const std::string& tls_unique,
23 SSLClientCertType type,
24 const std::string& key,
25 const std::string& cert,
26 size_t slot,
27 SpdyCredential* credential);
28
29 private:
30 friend class SpdyCredentialBuilderTest;
31
32 // Returns the secret data to be signed as part of a credential frame.
33 static std::string GetCredentialSecret(const std::string& tls_unique);
34};
35
36} // namespace net
37
38#endif // NET_SPDY_SPDY_CREDENTIAL_BUILDER_H_