X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fcrypto.rs;h=2f2d33b29f7ea53c0a2dda084ac7a139583c6345;hb=65920818db58880f6576fd50c3ea5df273912978;hp=f8a3f847d4348e5cbe13033fef25645125cdf6d4;hpb=8e7f241149b286b5bd467642fef06ad9daeb5c77;p=rust-lightning diff --git a/lightning/src/util/crypto.rs b/lightning/src/util/crypto.rs index f8a3f847..2f2d33b2 100644 --- a/lightning/src/util/crypto.rs +++ b/lightning/src/util/crypto.rs @@ -1,6 +1,7 @@ use bitcoin::hashes::{Hash, HashEngine}; use bitcoin::hashes::hmac::{Hmac, HmacEngine}; use bitcoin::hashes::sha256::Hash as Sha256; +use bitcoin::secp256k1::{Message, Secp256k1, SecretKey, ecdsa::Signature, Signing}; macro_rules! hkdf_extract_expand { ($salt: expr, $ikm: expr) => {{ @@ -36,3 +37,12 @@ pub fn hkdf_extract_expand_twice(salt: &[u8], ikm: &[u8]) -> ([u8; 32], [u8; 32] pub fn hkdf_extract_expand_thrice(salt: &[u8], ikm: &[u8]) -> ([u8; 32], [u8; 32], [u8; 32]) { hkdf_extract_expand!(salt, ikm, 3) } + +#[inline] +pub fn sign(ctx: &Secp256k1, msg: &Message, sk: &SecretKey) -> Signature { + #[cfg(feature = "grind_signatures")] + let sig = ctx.sign_ecdsa_low_r(msg, sk); + #[cfg(not(feature = "grind_signatures"))] + let sig = ctx.sign_ecdsa(msg, sk); + sig +}