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

Side by Side Diff: net/quic/crypto/curve25519_key_exchange.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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
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 #include "net/quic/crypto/curve25519_key_exchange.h" 5 #include "net/quic/crypto/curve25519_key_exchange.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "crypto/curve25519.h" 9 #include "crypto/curve25519.h"
10 #include "net/quic/crypto/quic_random.h" 10 #include "net/quic/crypto/quic_random.h"
11 11
12 using base::StringPiece; 12 using base::StringPiece;
13 using std::string; 13 using std::string;
14 14
15 namespace net { 15 namespace net {
16 16
17 Curve25519KeyExchange::Curve25519KeyExchange() {} 17 Curve25519KeyExchange::Curve25519KeyExchange() {
18 }
18 19
19 Curve25519KeyExchange::~Curve25519KeyExchange() {} 20 Curve25519KeyExchange::~Curve25519KeyExchange() {
21 }
20 22
21 // static 23 // static
22 Curve25519KeyExchange* Curve25519KeyExchange::New( 24 Curve25519KeyExchange* Curve25519KeyExchange::New(
23 const StringPiece& private_key) { 25 const StringPiece& private_key) {
24 Curve25519KeyExchange* ka; 26 Curve25519KeyExchange* ka;
25 // We don't want to #include the NaCl headers in the public header file, so 27 // We don't want to #include the NaCl headers in the public header file, so
26 // we use literals for the sizes of private_key_ and public_key_. Here we 28 // we use literals for the sizes of private_key_ and public_key_. Here we
27 // assert that those values are equal to the values from the NaCl header. 29 // assert that those values are equal to the values from the NaCl header.
28 COMPILE_ASSERT( 30 COMPILE_ASSERT(sizeof(ka->private_key_) == crypto::curve25519::kScalarBytes,
29 sizeof(ka->private_key_) == crypto::curve25519::kScalarBytes, 31 header_out_of_sync);
30 header_out_of_sync);
31 COMPILE_ASSERT(sizeof(ka->public_key_) == crypto::curve25519::kBytes, 32 COMPILE_ASSERT(sizeof(ka->public_key_) == crypto::curve25519::kBytes,
32 header_out_of_sync); 33 header_out_of_sync);
33 34
34 if (private_key.size() != crypto::curve25519::kScalarBytes) { 35 if (private_key.size() != crypto::curve25519::kScalarBytes) {
35 return NULL; 36 return NULL;
36 } 37 }
37 38
38 ka = new Curve25519KeyExchange(); 39 ka = new Curve25519KeyExchange();
39 memcpy(ka->private_key_, private_key.data(), 40 memcpy(
40 crypto::curve25519::kScalarBytes); 41 ka->private_key_, private_key.data(), crypto::curve25519::kScalarBytes);
41 crypto::curve25519::ScalarBaseMult(ka->private_key_, ka->public_key_); 42 crypto::curve25519::ScalarBaseMult(ka->private_key_, ka->public_key_);
42 return ka; 43 return ka;
43 } 44 }
44 45
45 // static 46 // static
46 string Curve25519KeyExchange::NewPrivateKey(QuicRandom* rand) { 47 string Curve25519KeyExchange::NewPrivateKey(QuicRandom* rand) {
47 uint8 private_key[crypto::curve25519::kScalarBytes]; 48 uint8 private_key[crypto::curve25519::kScalarBytes];
48 rand->RandBytes(private_key, sizeof(private_key)); 49 rand->RandBytes(private_key, sizeof(private_key));
49 50
50 // This makes |private_key| a valid scalar, as specified on 51 // This makes |private_key| a valid scalar, as specified on
(...skipping 24 matching lines...) Expand all
75 out_result->assign(reinterpret_cast<char*>(result), sizeof(result)); 76 out_result->assign(reinterpret_cast<char*>(result), sizeof(result));
76 77
77 return true; 78 return true;
78 } 79 }
79 80
80 StringPiece Curve25519KeyExchange::public_value() const { 81 StringPiece Curve25519KeyExchange::public_value() const {
81 return StringPiece(reinterpret_cast<const char*>(public_key_), 82 return StringPiece(reinterpret_cast<const char*>(public_key_),
82 sizeof(public_key_)); 83 sizeof(public_key_));
83 } 84 }
84 85
85 QuicTag Curve25519KeyExchange::tag() const { return kC255; } 86 QuicTag Curve25519KeyExchange::tag() const {
87 return kC255;
88 }
86 89
87 } // namespace net 90 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698