From 2dbd2332c3604a5a9df48103fd52b5345596d388 Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Wed, 19 May 2021 23:12:04 +0200 Subject: [PATCH] mod(db): PeerCardDbV1: use dubp PeerV10 --- dbs/src/values/peer_card.rs | 63 ++----------------------------------- 1 file changed, 2 insertions(+), 61 deletions(-) diff --git a/dbs/src/values/peer_card.rs b/dbs/src/values/peer_card.rs index 39979f5..fc58492 100644 --- a/dbs/src/values/peer_card.rs +++ b/dbs/src/values/peer_card.rs @@ -14,43 +14,15 @@ // along with this program. If not, see <https://www.gnu.org/licenses/>. use crate::*; +use dubp::peer::PeerV10; #[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] pub struct PeerCardDbV1 { - pub version: u32, - pub currency: String, - pub pubkey: PublicKey, - pub blockstamp: Blockstamp, - pub endpoints: Vec<String>, - pub signature: Signature, + pub peer: PeerV10, pub status: bool, pub member: bool, } -impl PeerCardDbV1 { - pub fn to_raw_string(&self) -> String { - format!( - "{}{}\n", - self.to_raw_unsigned_string(), - self.signature.to_base64(), - ) - } - fn to_raw_unsigned_string(&self) -> String { - format!( - "Version: {}\nType: Peer\nCurrency: {}\nPublicKey: {}\nBlock: {}\nEndpoints:\n{}\n", - self.version, - self.currency, - self.pubkey.to_base58(), - self.blockstamp, - self.endpoints.join("\n"), - ) - } - pub fn verify_sig(&self) -> Result<(), dubp::crypto::keys::SigError> { - self.pubkey - .verify(self.to_raw_unsigned_string().as_bytes(), &self.signature) - } -} - impl AsBytes for PeerCardDbV1 { fn as_bytes<T, F: FnMut(&[u8]) -> T>(&self, mut f: F) -> T { let bytes = bincode_db() @@ -85,34 +57,3 @@ impl ExplorableValue for PeerCardDbV1 { serde_json::to_value(self).map_err(|e| KvError::DeserError(e.into())) } } - -#[cfg(test)] -mod tests { - use super::*; - use unwrap::unwrap; - - #[test] - fn test_old_peer_sig() { - let peer = PeerCardDbV1 { - version: 10, - currency: "g1".to_owned(), - pubkey: unwrap!(PublicKey::from_base58("8iVdpXqFLCxGyPqgVx5YbFSkmWKkceXveRd2yvBKeARL")), - blockstamp: unwrap!(Blockstamp::from_str("423354-00000033A87209DC21BD643088ED8AD52464A80C04BE3F8FBFA4291A9999BE50")), - endpoints: vec![ - "BMAS g1.duniter.org 443".to_owned(), - "BASIC_MERKLED_API 91.121.157.13 10901".to_owned(), - "WS2P e66254bf g1.duniter.org 443 ws2p".to_owned() - ], - signature: unwrap!(Signature::from_base64("qr6Cnr/Qsgw/clbt0LbdkaFaUwhdgBJw5Fzpn8EhI9zM5/rGbVF6kqiB5pRJxf17XtI45qQ7H7SBbl8X2kAtCA==")), - status: true, - member: false, - }; - - let peer_raw = peer.to_raw_unsigned_string(); - assert_eq!( - &peer_raw, - "Version: 10\nType: Peer\nCurrency: g1\nPublicKey: 8iVdpXqFLCxGyPqgVx5YbFSkmWKkceXveRd2yvBKeARL\nBlock: 423354-00000033A87209DC21BD643088ED8AD52464A80C04BE3F8FBFA4291A9999BE50\nEndpoints:\nBMAS g1.duniter.org 443\nBASIC_MERKLED_API 91.121.157.13 10901\nWS2P e66254bf g1.duniter.org 443 ws2p\n", - ); - assert!(peer.verify_sig().is_ok()); - } -} -- GitLab