X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fcrypto.rs;h=98963c7c2bd4fd823c614e25b50dd1785d8dbab2;hb=cd5f09b8e34e838041a9dcdc512ddcf37a976634;hp=617f71e42c6854cb5d106e7a20d7543b14332e3b;hpb=0ecb4b093ac1134cbf06275cc48dd79ef7524774;p=rust-lightning diff --git a/lightning/src/util/crypto.rs b/lightning/src/util/crypto.rs index 617f71e4..98963c7c 100644 --- a/lightning/src/util/crypto.rs +++ b/lightning/src/util/crypto.rs @@ -11,31 +11,38 @@ macro_rules! hkdf_extract_expand { ($salt: expr, $ikm: expr) => {{ let mut hmac = HmacEngine::::new($salt); hmac.input($ikm); - let prk = Hmac::from_engine(hmac).into_inner(); + let prk = Hmac::from_engine(hmac).to_byte_array(); let mut hmac = HmacEngine::::new(&prk[..]); hmac.input(&[1; 1]); - let t1 = Hmac::from_engine(hmac).into_inner(); + let t1 = Hmac::from_engine(hmac).to_byte_array(); let mut hmac = HmacEngine::::new(&prk[..]); hmac.input(&t1); hmac.input(&[2; 1]); - (t1, Hmac::from_engine(hmac).into_inner(), prk) + (t1, Hmac::from_engine(hmac).to_byte_array(), prk) }}; ($salt: expr, $ikm: expr, 2) => {{ let (k1, k2, _) = hkdf_extract_expand!($salt, $ikm); (k1, k2) }}; - ($salt: expr, $ikm: expr, 4) => {{ + ($salt: expr, $ikm: expr, 5) => {{ let (k1, k2, prk) = hkdf_extract_expand!($salt, $ikm); let mut hmac = HmacEngine::::new(&prk[..]); hmac.input(&k2); hmac.input(&[3; 1]); - let k3 = Hmac::from_engine(hmac).into_inner(); + let k3 = Hmac::from_engine(hmac).to_byte_array(); let mut hmac = HmacEngine::::new(&prk[..]); hmac.input(&k3); hmac.input(&[4; 1]); - (k1, k2, k3, Hmac::from_engine(hmac).into_inner()) + let k4 = Hmac::from_engine(hmac).to_byte_array(); + + let mut hmac = HmacEngine::::new(&prk[..]); + hmac.input(&k4); + hmac.input(&[5; 1]); + let k5 = Hmac::from_engine(hmac).to_byte_array(); + + (k1, k2, k3, k4, k5) }} } @@ -43,8 +50,8 @@ pub fn hkdf_extract_expand_twice(salt: &[u8], ikm: &[u8]) -> ([u8; 32], [u8; 32] hkdf_extract_expand!(salt, ikm, 2) } -pub fn hkdf_extract_expand_4x(salt: &[u8], ikm: &[u8]) -> ([u8; 32], [u8; 32], [u8; 32], [u8; 32]) { - hkdf_extract_expand!(salt, ikm, 4) +pub fn hkdf_extract_expand_5x(salt: &[u8], ikm: &[u8]) -> ([u8; 32], [u8; 32], [u8; 32], [u8; 32], [u8; 32]) { + hkdf_extract_expand!(salt, ikm, 5) } #[inline] @@ -57,6 +64,7 @@ pub fn sign(ctx: &Secp256k1, msg: &Message, sk: &SecretKey) -> Si } #[inline] +#[allow(unused_variables)] pub fn sign_with_aux_rand( ctx: &Secp256k1, msg: &Message, sk: &SecretKey, entropy_source: &ES ) -> Signature where ES::Target: EntropySource {