X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fmessage_signing.rs;fp=lightning%2Fsrc%2Futil%2Fmessage_signing.rs;h=8beff835a4bffe1f0b3d59e672380323b6164f98;hb=8a1c538f88ffc3f387ce3f54ded2d49ab9c9aa31;hp=2055b4087749ada5b3baef731770608baceb629e;hpb=1f1d7c6890c6c9bef70eeb4ec4c6841e3344159b;p=rust-lightning diff --git a/lightning/src/util/message_signing.rs b/lightning/src/util/message_signing.rs index 2055b408..8beff835 100644 --- a/lightning/src/util/message_signing.rs +++ b/lightning/src/util/message_signing.rs @@ -36,6 +36,11 @@ fn sigrec_encode(sig_rec: RecoverableSignature) -> Vec { } fn sigrec_decode(sig_rec: Vec) -> Result { + // Signature must be 64 + 1 bytes long (compact signature + recovery id) + if sig_rec.len() != 65 { + return Err(Error::InvalidSignature); + } + let rsig = &sig_rec[1..]; let rid = sig_rec[0] as i32 - 31;