@@ -19,7 +19,7 @@ use bech32::{FromBase32, ToBase32 as _};
1919use byteorder:: { BigEndian , ReadBytesExt as _} ;
2020use failure:: Fail ;
2121use hmac:: { Hmac , Mac } ;
22- use secp256k1:: { PublicKey , Secp256k1 , SecretKey , SignOnly , Signing , VerifyOnly } ;
22+ use secp256k1:: { PublicKey , SecretKey } ;
2323#[ cfg( feature = "serde" ) ]
2424use serde:: { Deserialize , Serialize } ;
2525
@@ -160,22 +160,6 @@ pub type SK = SecretKey;
160160/// Public Key
161161pub type PK = PublicKey ;
162162
163- /// The secp256k1 engine, used to execute all signature operations.
164- ///
165- /// `Engine::new()`: all capabilities
166- /// `Engine::signing_only()`: only be used for signing
167- /// `Engine::verification_only()`: only be used for verification
168- pub type Engine < C > = Secp256k1 < C > ;
169-
170- /// Secp256k1 engine that can only be used for signing.
171- pub type SignEngine = Secp256k1 < SignOnly > ;
172-
173- /// Secp256k1 engine that can only be used for verifying.
174- pub type VerifyEngine = Secp256k1 < VerifyOnly > ;
175-
176- /// Secp256k1 engine that can be used for signing and for verifying.
177- pub type CryptoEngine = Secp256k1 < secp256k1:: All > ;
178-
179163/// Extended Key is just a Key with a Chain Code
180164#[ derive( Clone , PartialEq , Eq , Debug ) ]
181165#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
@@ -292,25 +276,17 @@ impl ExtendedSK {
292276 }
293277
294278 /// Try to derive an extended private key from a given path
295- pub fn derive < C : Signing > (
296- & self ,
297- engine : & Engine < C > ,
298- path : & KeyPath ,
299- ) -> Result < ExtendedSK , KeyDerivationError > {
279+ pub fn derive ( & self , path : & KeyPath ) -> Result < ExtendedSK , KeyDerivationError > {
300280 let mut extended_sk = self . clone ( ) ;
301281 for index in path. iter ( ) {
302- extended_sk = extended_sk. child ( engine , index) ?
282+ extended_sk = extended_sk. child ( index) ?
303283 }
304284
305285 Ok ( extended_sk)
306286 }
307287
308288 /// Try to get a private child key from parent
309- pub fn child < C : Signing > (
310- & self ,
311- engine : & Engine < C > ,
312- index : & KeyPathIndex ,
313- ) -> Result < ExtendedSK , KeyDerivationError > {
289+ pub fn child ( & self , index : & KeyPathIndex ) -> Result < ExtendedSK , KeyDerivationError > {
314290 let mut hmac512: Hmac < sha2:: Sha512 > =
315291 Hmac :: new_varkey ( & self . chain_code ) . map_err ( |_| KeyDerivationError :: InvalidKeyLength ) ?;
316292 let index_bytes = index. as_ref ( ) . to_be_bytes ( ) ;
@@ -319,7 +295,7 @@ impl ExtendedSK {
319295 hmac512. input ( & [ 0 ] ) ; // BIP-32 padding that makes key 33 bytes long
320296 hmac512. input ( & self . secret_key [ ..] ) ;
321297 } else {
322- hmac512. input ( & PublicKey :: from_secret_key ( engine , & self . secret_key ) . serialize ( ) ) ;
298+ hmac512. input ( & PublicKey :: from_secret_key_global ( & self . secret_key ) . serialize ( ) ) ;
323299 }
324300
325301 let ( chain_code, mut secret_key) = get_chain_code_and_secret ( & index_bytes, hmac512) ?;
@@ -355,12 +331,12 @@ pub struct ExtendedPK {
355331
356332impl ExtendedPK {
357333 /// Derive the public key from a private key.
358- pub fn from_secret_key < C : Signing > ( engine : & Engine < C > , key : & ExtendedSK ) -> Self {
334+ pub fn from_secret_key ( key : & ExtendedSK ) -> Self {
359335 let ExtendedSK {
360336 secret_key,
361337 chain_code,
362338 } = key;
363- let key = PublicKey :: from_secret_key ( engine , secret_key) ;
339+ let key = PublicKey :: from_secret_key_global ( secret_key) ;
364340 Self {
365341 key,
366342 chain_code : chain_code. clone ( ) ,
@@ -577,8 +553,7 @@ mod tests {
577553 . hardened ( 0 ) // account: hardened 0
578554 . index ( 0 ) // change: 0
579555 . index ( 0 ) ; // address: 0
580- let engine = SignEngine :: signing_only ( ) ;
581- let account = extended_sk. derive ( & engine, & path) . unwrap ( ) ;
556+ let account = extended_sk. derive ( & path) . unwrap ( ) ;
582557
583558 let expected_account = [
584559 137 , 174 , 230 , 121 , 4 , 190 , 53 , 238 , 47 , 181 , 52 , 226 , 109 , 68 , 153 , 170 , 112 , 150 , 84 ,
@@ -598,10 +573,9 @@ mod tests {
598573 let mnemonic = bip39:: Mnemonic :: from_phrase ( phrase. into ( ) ) . unwrap ( ) ;
599574 let seed = mnemonic. seed ( & "" . into ( ) ) ;
600575 let master_key = MasterKeyGen :: new ( & seed) . generate ( ) . unwrap ( ) ;
601- let engine = Secp256k1 :: signing_only ( ) ;
602576
603577 for ( expected, keypath) in slip32_vectors ( ) {
604- let key = master_key. derive ( & engine , & keypath) . unwrap ( ) ;
578+ let key = master_key. derive ( & keypath) . unwrap ( ) ;
605579 let xprv = key. to_slip32 ( & keypath) . unwrap ( ) ;
606580
607581 assert_eq ! ( expected, xprv) ;
0 commit comments