OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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/chacha20_poly1305_decrypter.h" | 5 #include "net/quic/crypto/chacha20_poly1305_decrypter.h" |
6 | 6 |
7 #include <pk11pub.h> | 7 #include <pk11pub.h> |
8 | 8 |
9 using base::StringPiece; | 9 using base::StringPiece; |
10 | 10 |
(...skipping 17 matching lines...) Expand all Loading... |
28 } | 28 } |
29 | 29 |
30 ChaCha20Poly1305Decrypter::~ChaCha20Poly1305Decrypter() {} | 30 ChaCha20Poly1305Decrypter::~ChaCha20Poly1305Decrypter() {} |
31 | 31 |
32 void ChaCha20Poly1305Decrypter::FillAeadParams(StringPiece nonce, | 32 void ChaCha20Poly1305Decrypter::FillAeadParams(StringPiece nonce, |
33 StringPiece associated_data, | 33 StringPiece associated_data, |
34 size_t auth_tag_size, | 34 size_t auth_tag_size, |
35 AeadParams* aead_params) const { | 35 AeadParams* aead_params) const { |
36 aead_params->len = sizeof(aead_params->data.nss_aead_params); | 36 aead_params->len = sizeof(aead_params->data.nss_aead_params); |
37 CK_NSS_AEAD_PARAMS* nss_aead_params = &aead_params->data.nss_aead_params; | 37 CK_NSS_AEAD_PARAMS* nss_aead_params = &aead_params->data.nss_aead_params; |
38 nss_aead_params->pIv = | 38 nss_aead_params->pNonce = |
39 reinterpret_cast<CK_BYTE*>(const_cast<char*>(nonce.data())); | 39 reinterpret_cast<CK_BYTE*>(const_cast<char*>(nonce.data())); |
40 nss_aead_params->ulIvLen = nonce.size(); | 40 nss_aead_params->ulNonceLen = nonce.size(); |
41 nss_aead_params->pAAD = | 41 nss_aead_params->pAAD = |
42 reinterpret_cast<CK_BYTE*>(const_cast<char*>(associated_data.data())); | 42 reinterpret_cast<CK_BYTE*>(const_cast<char*>(associated_data.data())); |
43 nss_aead_params->ulAADLen = associated_data.size(); | 43 nss_aead_params->ulAADLen = associated_data.size(); |
44 nss_aead_params->ulTagLen = auth_tag_size; | 44 nss_aead_params->ulTagLen = auth_tag_size; |
45 } | 45 } |
46 | 46 |
47 const char* ChaCha20Poly1305Decrypter::cipher_name() const { | 47 const char* ChaCha20Poly1305Decrypter::cipher_name() const { |
48 // TODO(rtenneti): Use TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 instead of | 48 // TODO(rtenneti): Use TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 instead of |
49 // hard coded string. | 49 // hard coded string. |
50 // return TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305; | 50 // return TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305; |
51 return "ECDHE-RSA-CHACHA20-POLY1305"; | 51 return "ECDHE-RSA-CHACHA20-POLY1305"; |
52 } | 52 } |
53 | 53 |
54 uint32_t ChaCha20Poly1305Decrypter::cipher_id() const { | 54 uint32_t ChaCha20Poly1305Decrypter::cipher_id() const { |
55 // TODO(rtenneti): when Chromium requires NSS 3.15.2 or later, use | 55 // TODO(rtenneti): when Chromium requires NSS 3.15.2 or later, use |
56 // TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 instead of 0xCC13. | 56 // TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 instead of 0xCC13. |
57 // "OR" 0x03000000 to match OpenSSL/BoringSSL implementations. | 57 // "OR" 0x03000000 to match OpenSSL/BoringSSL implementations. |
58 return 0x03000000 | 0xCC13; | 58 return 0x03000000 | 0xCC13; |
59 } | 59 } |
60 | 60 |
61 } // namespace net | 61 } // namespace net |
OLD | NEW |