| OLD | NEW | 
|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 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 "components/gcm_driver/crypto/gcm_message_cryptographer.h" | 5 #include "components/gcm_driver/crypto/gcm_message_cryptographer.h" | 
| 6 | 6 | 
| 7 #include <algorithm> | 7 #include <algorithm> | 
| 8 #include <sstream> | 8 #include <sstream> | 
| 9 | 9 | 
| 10 #include "base/logging.h" | 10 #include "base/logging.h" | 
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 47 | 47 | 
| 48   std::stringstream info_stream; | 48   std::stringstream info_stream; | 
| 49   info_stream << "Content-Encoding: " << content_encoding << '\x00'; | 49   info_stream << "Content-Encoding: " << content_encoding << '\x00'; | 
| 50 | 50 | 
| 51   switch (label) { | 51   switch (label) { | 
| 52     case GCMMessageCryptographer::Label::P256: | 52     case GCMMessageCryptographer::Label::P256: | 
| 53       info_stream << "P-256" << '\x00'; | 53       info_stream << "P-256" << '\x00'; | 
| 54       break; | 54       break; | 
| 55   } | 55   } | 
| 56 | 56 | 
| 57   uint16_t local_len = base::HostToNet16(recipient_public_key.size()); | 57   uint16_t local_len = | 
|  | 58       base::HostToNet16(static_cast<uint16_t>(recipient_public_key.size())); | 
| 58   info_stream.write(reinterpret_cast<char*>(&local_len), sizeof(local_len)); | 59   info_stream.write(reinterpret_cast<char*>(&local_len), sizeof(local_len)); | 
| 59   info_stream << recipient_public_key; | 60   info_stream << recipient_public_key; | 
| 60 | 61 | 
| 61   uint16_t peer_len = base::HostToNet16(sender_public_key.size()); | 62   uint16_t peer_len = | 
|  | 63       base::HostToNet16(static_cast<uint16_t>(sender_public_key.size())); | 
| 62   info_stream.write(reinterpret_cast<char*>(&peer_len), sizeof(peer_len)); | 64   info_stream.write(reinterpret_cast<char*>(&peer_len), sizeof(peer_len)); | 
| 63   info_stream << sender_public_key; | 65   info_stream << sender_public_key; | 
| 64 | 66 | 
| 65   return info_stream.str(); | 67   return info_stream.str(); | 
| 66 } | 68 } | 
| 67 | 69 | 
| 68 }  // namespace | 70 }  // namespace | 
| 69 | 71 | 
| 70 const size_t GCMMessageCryptographer::kAuthenticationTagBytes = 16; | 72 const size_t GCMMessageCryptographer::kAuthenticationTagBytes = 16; | 
| 71 const size_t GCMMessageCryptographer::kSaltSize = 16; | 73 const size_t GCMMessageCryptographer::kSaltSize = 16; | 
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 229                     0   /* subkey_secret_bytes_to_generate */); | 231                     0   /* subkey_secret_bytes_to_generate */); | 
| 230 | 232 | 
| 231   // draft-thomson-http-encryption defines that the result should be XOR'ed with | 233   // draft-thomson-http-encryption defines that the result should be XOR'ed with | 
| 232   // the record's sequence number, however, Web Push encryption is limited to a | 234   // the record's sequence number, however, Web Push encryption is limited to a | 
| 233   // single record per draft-ietf-webpush-encryption. | 235   // single record per draft-ietf-webpush-encryption. | 
| 234 | 236 | 
| 235   return hkdf.client_write_key().as_string(); | 237   return hkdf.client_write_key().as_string(); | 
| 236 } | 238 } | 
| 237 | 239 | 
| 238 }  // namespace gcm | 240 }  // namespace gcm | 
| OLD | NEW | 
|---|