Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(434)

Side by Side Diff: net/quic/crypto/p256_key_exchange.h

Issue 14816006: Land Recent QUIC changes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added missing NET_PRIVATE_EXPORT to QuicWallTime Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/quic/crypto/null_encrypter_test.cc ('k') | net/quic/crypto/p256_key_exchange_nss.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_QUIC_CRYPTO_P256_KEY_EXCHANGE_H_ 5 #ifndef NET_QUIC_CRYPTO_P256_KEY_EXCHANGE_H_
6 #define NET_QUIC_CRYPTO_P256_KEY_EXCHANGE_H_ 6 #define NET_QUIC_CRYPTO_P256_KEY_EXCHANGE_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 22 matching lines...) Expand all
33 // New creates a new key exchange object from a private key. If 33 // New creates a new key exchange object from a private key. If
34 // |private_key| is invalid, NULL is returned. 34 // |private_key| is invalid, NULL is returned.
35 static P256KeyExchange* New(base::StringPiece private_key); 35 static P256KeyExchange* New(base::StringPiece private_key);
36 36
37 // |NewPrivateKey| returns a private key, suitable for passing to |New|. 37 // |NewPrivateKey| returns a private key, suitable for passing to |New|.
38 // If |NewPrivateKey| can't generate a private key, it returns an empty 38 // If |NewPrivateKey| can't generate a private key, it returns an empty
39 // string. 39 // string.
40 static std::string NewPrivateKey(); 40 static std::string NewPrivateKey();
41 41
42 // KeyExchange interface. 42 // KeyExchange interface.
43 virtual KeyExchange* NewKeyPair(QuicRandom* rand) const OVERRIDE;
43 virtual bool CalculateSharedKey(const base::StringPiece& peer_public_value, 44 virtual bool CalculateSharedKey(const base::StringPiece& peer_public_value,
44 std::string* shared_key) const OVERRIDE; 45 std::string* shared_key) const OVERRIDE;
45 virtual base::StringPiece public_value() const OVERRIDE; 46 virtual base::StringPiece public_value() const OVERRIDE;
46 virtual CryptoTag tag() const OVERRIDE; 47 virtual QuicTag tag() const OVERRIDE;
47 48
48 private: 49 private:
49 enum { 50 enum {
50 // A P-256 field element consists of 32 bytes. 51 // A P-256 field element consists of 32 bytes.
51 kP256FieldBytes = 32, 52 kP256FieldBytes = 32,
52 // A P-256 point in uncompressed form consists of 0x04 (to denote 53 // A P-256 point in uncompressed form consists of 0x04 (to denote
53 // that the point is uncompressed) followed by two, 32-byte field 54 // that the point is uncompressed) followed by two, 32-byte field
54 // elements. 55 // elements.
55 kUncompressedP256PointBytes = 1 + 2 * kP256FieldBytes, 56 kUncompressedP256PointBytes = 1 + 2 * kP256FieldBytes,
56 // The first byte in an uncompressed P-256 point. 57 // The first byte in an uncompressed P-256 point.
(...skipping 13 matching lines...) Expand all
70 71
71 scoped_ptr<crypto::ECPrivateKey> key_pair_; 72 scoped_ptr<crypto::ECPrivateKey> key_pair_;
72 #endif 73 #endif
73 // The public key stored as an uncompressed P-256 point. 74 // The public key stored as an uncompressed P-256 point.
74 uint8 public_key_[kUncompressedP256PointBytes]; 75 uint8 public_key_[kUncompressedP256PointBytes];
75 }; 76 };
76 77
77 } // namespace net 78 } // namespace net
78 #endif // NET_QUIC_CRYPTO_P256_KEY_EXCHANGE_H_ 79 #endif // NET_QUIC_CRYPTO_P256_KEY_EXCHANGE_H_
79 80
OLDNEW
« no previous file with comments | « net/quic/crypto/null_encrypter_test.cc ('k') | net/quic/crypto/p256_key_exchange_nss.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698