1 // Copyright 2014 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.
5 #ifndef NET_QUIC_CRYPTO_CHANNEL_ID_CHROMIUM_H_
6 #define NET_QUIC_CRYPTO_CHANNEL_ID_CHROMIUM_H_
10 #include "net/quic/crypto/channel_id.h"
18 class ChannelIDService;
20 class NET_EXPORT_PRIVATE ChannelIDKeyChromium: public ChannelIDKey {
22 explicit ChannelIDKeyChromium(crypto::ECPrivateKey* ec_private_key);
23 ~ChannelIDKeyChromium() override;
25 // ChannelIDKey interface
26 bool Sign(base::StringPiece signed_data,
27 std::string* out_signature) const override;
28 std::string SerializeKey() const override;
31 scoped_ptr<crypto::ECPrivateKey> ec_private_key_;
34 // ChannelIDSourceChromium implements the QUIC ChannelIDSource interface.
35 class ChannelIDSourceChromium : public ChannelIDSource {
37 explicit ChannelIDSourceChromium(
38 ChannelIDService* channel_id_service);
39 ~ChannelIDSourceChromium() override;
41 // ChannelIDSource interface
42 QuicAsyncStatus GetChannelIDKey(const std::string& hostname,
43 scoped_ptr<ChannelIDKey>* channel_id_key,
44 ChannelIDSourceCallback* callback) override;
48 typedef std::set<Job*> JobSet;
50 void OnJobComplete(Job* job);
52 // Set owning pointers to active jobs.
55 // The service for retrieving Channel ID keys.
56 ChannelIDService* const channel_id_service_;
58 DISALLOW_COPY_AND_ASSIGN(ChannelIDSourceChromium);
63 #endif // NET_QUIC_CRYPTO_CHANNEL_ID_CHROMIUM_H_