X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fmessage_signing.rs;h=0a45af26f8633e27fa97ad783f2a7e32079bd94f;hb=65efd92c4a931b3b3622c84c6055bc015152fde0;hp=79572f31246a7ae53fa1885b13ee3cc282c68d50;hpb=dfb250b976eb9ad9e93f0c3f543ad88b76924d42;p=rust-lightning diff --git a/lightning/src/util/message_signing.rs b/lightning/src/util/message_signing.rs index 79572f31..0a45af26 100644 --- a/lightning/src/util/message_signing.rs +++ b/lightning/src/util/message_signing.rs @@ -54,12 +54,12 @@ fn sigrec_decode(sig_rec: Vec) -> Result { /// Creates a digital signature of a message given a SecretKey, like the node's secret. /// A receiver knowing the PublicKey (e.g. the node's id) and the message can be sure that the signature was generated by the caller. /// Signatures are EC recoverable, meaning that given the message and the signature the PublicKey of the signer can be extracted. -pub fn sign(msg: &[u8], sk: &SecretKey) -> Result { +pub fn sign(msg: &[u8], sk: &SecretKey) -> String { let secp_ctx = Secp256k1::signing_only(); let msg_hash = sha256d::Hash::hash(&[LN_MESSAGE_PREFIX, msg].concat()); - let sig = secp_ctx.sign_ecdsa_recoverable(&Message::from_slice(msg_hash.as_byte_array())?, sk); - Ok(base32::Alphabet::ZBase32.encode(&sigrec_encode(sig))) + let sig = secp_ctx.sign_ecdsa_recoverable(&Message::from_digest(msg_hash.to_byte_array()), sk); + base32::Alphabet::ZBase32.encode(&sigrec_encode(sig)) } /// Recovers the PublicKey of the signer of the message given the message and the signature. @@ -70,7 +70,7 @@ pub fn recover_pk(msg: &[u8], sig: &str) -> Result { match base32::Alphabet::ZBase32.decode(&sig) { Ok(sig_rec) => { match sigrec_decode(sig_rec) { - Ok(sig) => secp_ctx.recover_ecdsa(&Message::from_slice(msg_hash.as_byte_array())?, &sig), + Ok(sig) => secp_ctx.recover_ecdsa(&Message::from_digest(msg_hash.to_byte_array()), &sig), Err(e) => Err(e) } }, @@ -100,7 +100,7 @@ mod test { let one_key = SecretKey::from_slice(&ONE).unwrap(); let zbase32_sig = sign(message.as_bytes(), &one_key); - assert_eq!(zbase32_sig.unwrap(), "d9tibmnic9t5y41hg7hkakdcra94akas9ku3rmmj4ag9mritc8ok4p5qzefs78c9pqfhpuftqqzhydbdwfg7u6w6wdxcqpqn4sj4e73e") + assert_eq!(zbase32_sig, "d9tibmnic9t5y41hg7hkakdcra94akas9ku3rmmj4ag9mritc8ok4p5qzefs78c9pqfhpuftqqzhydbdwfg7u6w6wdxcqpqn4sj4e73e") } #[test] @@ -117,7 +117,7 @@ mod test { fn test_verify() { let message = "another message"; let one_key = SecretKey::from_slice(&ONE).unwrap(); - let sig = sign(message.as_bytes(), &one_key).unwrap(); + let sig = sign(message.as_bytes(), &one_key); let pk = PublicKey::from_secret_key(&Secp256k1::signing_only(), &one_key); assert!(verify(message.as_bytes(), &sig, &pk))