X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Futil%2Fser.rs;h=0b2a626fb0beff87d7df6b7a44adf1b75f35cc89;hb=f109d13e229aa963ccd078554db3165d94b2b319;hp=84cfa8d1633f98e78a996792d53c146d981be61a;hpb=8cc3be9eab9ff322d543e989f28c775a69d6b78f;p=rust-lightning diff --git a/src/util/ser.rs b/src/util/ser.rs index 84cfa8d1..0b2a626f 100644 --- a/src/util/ser.rs +++ b/src/util/ser.rs @@ -6,12 +6,13 @@ use std::io::{Read, Write}; use std::collections::HashMap; use std::hash::Hash; -use secp256k1::{Secp256k1, Signature}; +use secp256k1::Signature; use secp256k1::key::{PublicKey, SecretKey}; use bitcoin::util::hash::Sha256dHash; use bitcoin::blockdata::script::Script; use std::marker::Sized; use ln::msgs::DecodeError; +use ln::channelmanager::{PaymentPreimage, PaymentHash}; use util::byte_utils; use util::byte_utils::{be64_to_array, be48_to_array, be32_to_array, be16_to_array, slice_to_be16, slice_to_be32, slice_to_be48, slice_to_be64}; @@ -333,7 +334,7 @@ impl Writeable for PublicKey { impl Readable for PublicKey { fn read(r: &mut R) -> Result { let buf: [u8; 33] = Readable::read(r)?; - match PublicKey::from_slice(&Secp256k1::without_caps(), &buf) { + match PublicKey::from_slice(&buf) { Ok(key) => Ok(key), Err(_) => return Err(DecodeError::InvalidValue), } @@ -351,7 +352,7 @@ impl Writeable for SecretKey { impl Readable for SecretKey { fn read(r: &mut R) -> Result { let buf: [u8; 32] = Readable::read(r)?; - match SecretKey::from_slice(&Secp256k1::without_caps(), &buf) { + match SecretKey::from_slice(&buf) { Ok(key) => Ok(key), Err(_) => return Err(DecodeError::InvalidValue), } @@ -373,16 +374,42 @@ impl Readable for Sha256dHash { impl Writeable for Signature { fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { - self.serialize_compact(&Secp256k1::without_caps()).write(w) + self.serialize_compact().write(w) } } impl Readable for Signature { fn read(r: &mut R) -> Result { let buf: [u8; 64] = Readable::read(r)?; - match Signature::from_compact(&Secp256k1::without_caps(), &buf) { + match Signature::from_compact(&buf) { Ok(sig) => Ok(sig), Err(_) => return Err(DecodeError::InvalidValue), } } } + +impl Writeable for PaymentPreimage { + fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { + self.0.write(w) + } +} + +impl Readable for PaymentPreimage { + fn read(r: &mut R) -> Result { + let buf: [u8; 32] = Readable::read(r)?; + Ok(PaymentPreimage(buf)) + } +} + +impl Writeable for PaymentHash { + fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { + self.0.write(w) + } +} + +impl Readable for PaymentHash { + fn read(r: &mut R) -> Result { + let buf: [u8; 32] = Readable::read(r)?; + Ok(PaymentHash(buf)) + } +}