@@ -1530,42 +1530,6 @@ impl<'de> serde::Deserialize<'de> for XOnlyPublicKey {
1530
1530
}
1531
1531
}
1532
1532
1533
- /// Serde implementation for the [`KeyPair`] type.
1534
- ///
1535
- /// Only the secret key part of the [`KeyPair`] is serialized using the [`SecretKey`] serde
1536
- /// implementation, meaning the public key has to be regenerated on deserialization.
1537
- ///
1538
- /// **Attention:** The deserialization algorithm uses the [global context] to generate the public key
1539
- /// belonging to the secret key to form a [`KeyPair`]. The typical caveats regarding use of the
1540
- /// [global context] with secret data apply.
1541
- ///
1542
- /// [`SecretKey`]: crate::SecretKey
1543
- /// [global context]: crate::SECP256K1
1544
- #[ cfg( all( feature = "global-context" , feature = "serde" ) ) ]
1545
- pub mod serde_keypair {
1546
- use serde:: { Deserialize , Deserializer , Serialize , Serializer } ;
1547
-
1548
- use crate :: key:: { KeyPair , SecretKey } ;
1549
-
1550
- #[ allow( missing_docs) ]
1551
- pub fn serialize < S > ( key : & KeyPair , serializer : S ) -> Result < S :: Ok , S :: Error >
1552
- where
1553
- S : Serializer ,
1554
- {
1555
- SecretKey :: from_keypair ( key) . serialize ( serializer)
1556
- }
1557
-
1558
- #[ allow( missing_docs) ]
1559
- pub fn deserialize < ' de , D > ( deserializer : D ) -> Result < KeyPair , D :: Error >
1560
- where
1561
- D : Deserializer < ' de > ,
1562
- {
1563
- let secret_key = SecretKey :: deserialize ( deserializer) ?;
1564
-
1565
- Ok ( KeyPair :: from_secret_key ( crate :: SECP256K1 , & secret_key) )
1566
- }
1567
- }
1568
-
1569
1533
#[ cfg( test) ]
1570
1534
#[ allow( unused_imports) ]
1571
1535
mod test {
@@ -2215,31 +2179,8 @@ mod test {
2215
2179
use serde:: { Deserialize , Deserializer , Serialize , Serializer } ;
2216
2180
use serde_test:: { assert_tokens, Configure , Token } ;
2217
2181
2218
- use super :: serde_keypair;
2219
2182
use crate :: key:: KeyPair ;
2220
-
2221
- // Normally users would derive the serde traits, but we can't easily enable the serde macros
2222
- // here, so they are implemented manually to be able to test the behaviour.
2223
- #[ derive( Debug , Copy , Clone , Eq , PartialEq ) ]
2224
- struct KeyPairWrapper ( KeyPair ) ;
2225
-
2226
- impl < ' de > Deserialize < ' de > for KeyPairWrapper {
2227
- fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
2228
- where
2229
- D : Deserializer < ' de > ,
2230
- {
2231
- serde_keypair:: deserialize ( deserializer) . map ( KeyPairWrapper )
2232
- }
2233
- }
2234
-
2235
- impl Serialize for KeyPairWrapper {
2236
- fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
2237
- where
2238
- S : Serializer ,
2239
- {
2240
- serde_keypair:: serialize ( & self . 0 , serializer)
2241
- }
2242
- }
2183
+ use crate :: SECP256K1 ;
2243
2184
2244
2185
#[ rustfmt:: skip]
2245
2186
static SK_BYTES : [ u8 ; 32 ] = [
@@ -2250,7 +2191,7 @@ mod test {
2250
2191
] ;
2251
2192
static SK_STR : & str = "01010101010101010001020304050607ffff0000ffff00006363636363636363" ;
2252
2193
2253
- let sk = KeyPairWrapper ( KeyPair :: from_seckey_slice ( & crate :: SECP256K1 , & SK_BYTES ) . unwrap ( ) ) ;
2194
+ let sk = KeyPair :: from_seckey_slice ( & SECP256K1 , & SK_BYTES ) . unwrap ( ) ;
2254
2195
#[ rustfmt:: skip]
2255
2196
assert_tokens ( & sk. compact ( ) , & [
2256
2197
Token :: Tuple { len : 32 } ,
0 commit comments