hscrypto: Use derive_more, and derive Deref for public keys.
This commit is contained in:
parent
fe6575ef98
commit
386de7587e
|
@ -3903,6 +3903,7 @@ dependencies = [
|
|||
name = "tor-hscrypto"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"derive_more",
|
||||
"digest 0.10.6",
|
||||
"hex-literal",
|
||||
"humantime 2.1.0",
|
||||
|
|
|
@ -15,6 +15,7 @@ repository = "https://gitlab.torproject.org/tpo/core/arti.git/"
|
|||
default = []
|
||||
|
||||
[dependencies]
|
||||
derive_more = "0.99.3"
|
||||
digest = "0.10.0"
|
||||
paste = "1"
|
||||
rand_core = "0.6.2"
|
||||
|
|
|
@ -10,44 +10,14 @@ macro_rules! define_pk_keypair {
|
|||
} => {
|
||||
paste::paste!{
|
||||
$(#[$meta])*
|
||||
#[derive(Clone,Debug)]
|
||||
#[derive(Clone,Debug,derive_more::From,derive_more::Deref,derive_more::Into,derive_more::AsRef)]
|
||||
pub struct $pk ($pkt);
|
||||
|
||||
impl AsRef<$pkt> for $pk {
|
||||
fn as_ref(&self) -> &$pkt {
|
||||
&self.0
|
||||
}
|
||||
}
|
||||
impl From<$pkt> for $pk {
|
||||
fn from(inp: $pkt) -> Self {
|
||||
Self(inp)
|
||||
}
|
||||
}
|
||||
impl From<$pk> for $pkt {
|
||||
fn from(inp: $pk) -> Self {
|
||||
inp.0
|
||||
}
|
||||
}
|
||||
|
||||
#[doc = concat!("The private counterpart of a [`", stringify!($pk), "Key'].")]
|
||||
$(#[$sk_meta])*
|
||||
#[derive(derive_more::From,derive_more::Into,derive_more::AsRef)]
|
||||
pub struct $sk ($skt);
|
||||
|
||||
impl AsRef<$skt> for $sk {
|
||||
fn as_ref(&self) -> &$skt {
|
||||
&self.0
|
||||
}
|
||||
}
|
||||
impl From<$skt> for $sk {
|
||||
fn from(inp: $skt) -> Self {
|
||||
Self(inp)
|
||||
}
|
||||
}
|
||||
impl From<$sk> for $skt {
|
||||
fn from(inp: $sk) -> $skt {
|
||||
inp.0
|
||||
}
|
||||
}
|
||||
impl std::fmt::Debug for $sk
|
||||
{
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
|
|
Loading…
Reference in New Issue