projects
/
rust-lightning
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
65a2bcf
)
Define a BLOCK_SIZE constant for chacha20
2019-12-var-len-onion
author
Matt Corallo
<git@bluematt.me>
Mon, 10 Feb 2020 23:32:57 +0000
(18:32 -0500)
committer
Matt Corallo
<git@bluematt.me>
Tue, 11 Feb 2020 21:27:38 +0000
(16:27 -0500)
lightning/src/util/chacha20.rs
patch
|
blob
|
history
diff --git
a/lightning/src/util/chacha20.rs
b/lightning/src/util/chacha20.rs
index 09e9a847598e10d51071ab1e3aa2d805d1f15860..8a8205f8dac593b6b41bd71369f2e749c85261f2 100644
(file)
--- a/
lightning/src/util/chacha20.rs
+++ b/
lightning/src/util/chacha20.rs
@@
-56,6
+56,8
@@
mod real_chacha {
}
}
}
}
+ const BLOCK_SIZE: usize = 64;
+
#[derive(Clone,Copy)]
struct ChaChaState {
a: u32x4,
#[derive(Clone,Copy)]
struct ChaChaState {
a: u32x4,
@@
-67,7
+69,7
@@
mod real_chacha {
#[derive(Copy)]
pub struct ChaCha20 {
state : ChaChaState,
#[derive(Copy)]
pub struct ChaCha20 {
state : ChaChaState,
- output : [u8;
64
],
+ output : [u8;
BLOCK_SIZE
],
offset : usize,
}
offset : usize,
}
@@
-135,7
+137,7
@@
mod real_chacha {
assert!(key.len() == 16 || key.len() == 32);
assert!(nonce.len() == 8 || nonce.len() == 12);
assert!(key.len() == 16 || key.len() == 32);
assert!(nonce.len() == 8 || nonce.len() == 12);
- ChaCha20{ state: ChaCha20::expand(key, nonce), output: [0u8;
64
], offset: 64 }
+ ChaCha20{ state: ChaCha20::expand(key, nonce), output: [0u8;
BLOCK_SIZE
], offset: 64 }
}
fn expand(key: &[u8], nonce: &[u8]) -> ChaChaState {
}
fn expand(key: &[u8], nonce: &[u8]) -> ChaChaState {
@@
-197,7
+199,7
@@
mod real_chacha {
}
}
}
}
- // put the the next
64
keystream bytes into self.output
+ // put the the next
BLOCK_SIZE
keystream bytes into self.output
fn update(&mut self) {
let mut state = self.state;
fn update(&mut self) {
let mut state = self.state;
@@
-234,12
+236,12
@@
mod real_chacha {
while i < len {
// If there is no keystream available in the output buffer,
// generate the next block.
while i < len {
// If there is no keystream available in the output buffer,
// generate the next block.
- if self.offset ==
64
{
+ if self.offset ==
BLOCK_SIZE
{
self.update();
}
// Process the min(available keystream, remaining input length).
self.update();
}
// Process the min(available keystream, remaining input length).
- let count = cmp::min(
64
- self.offset, len - i);
+ let count = cmp::min(
BLOCK_SIZE
- self.offset, len - i);
// explicitly assert lengths to avoid bounds checks:
assert!(output.len() >= i + count);
assert!(input.len() >= i + count);
// explicitly assert lengths to avoid bounds checks:
assert!(output.len() >= i + count);
assert!(input.len() >= i + count);
@@
-258,12
+260,12
@@
mod real_chacha {
while i < len {
// If there is no keystream available in the output buffer,
// generate the next block.
while i < len {
// If there is no keystream available in the output buffer,
// generate the next block.
- if self.offset ==
64
{
+ if self.offset ==
BLOCK_SIZE
{
self.update();
}
// Process the min(available keystream, remaining input length).
self.update();
}
// Process the min(available keystream, remaining input length).
- let count = cmp::min(
64
- self.offset, len - i);
+ let count = cmp::min(
BLOCK_SIZE
- self.offset, len - i);
// explicitly assert lengths to avoid bounds checks:
assert!(input_output.len() >= i + count);
assert!(self.output.len() >= self.offset + count);
// explicitly assert lengths to avoid bounds checks:
assert!(input_output.len() >= i + count);
assert!(self.output.len() >= self.offset + count);