remove useless manual serde definition
fixes #102
diff --git a/src/crypto.rs b/src/crypto.rs
index ab21637..f63b7b4 100644
--- a/src/crypto.rs
+++ b/src/crypto.rs
@@ -189,57 +189,19 @@
}
/// Cryptographic signature schemes.
-#[derive(Debug, Clone, PartialEq)]
+#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum SignatureScheme {
/// [Ed25519](https://ed25519.cr.yp.to/)
+ #[serde(rename="ed25519")]
Ed25519,
/// [RSASSA-PSS](https://tools.ietf.org/html/rfc5756) calculated over SHA256
+ #[serde(rename="rsassa-pss-sha256")]
RsaSsaPssSha256,
/// [RSASSA-PSS](https://tools.ietf.org/html/rfc5756) calculated over SHA512
+ #[serde(rename="rsassa-pss-sha512")]
RsaSsaPssSha512,
}
-impl ToString for SignatureScheme {
- fn to_string(&self) -> String {
- match self {
- &SignatureScheme::Ed25519 => "ed25519",
- &SignatureScheme::RsaSsaPssSha256 => "rsassa-pss-sha256",
- &SignatureScheme::RsaSsaPssSha512 => "rsassa-pss-sha512",
- }.to_string()
- }
-}
-
-impl FromStr for SignatureScheme {
- type Err = Error;
-
- fn from_str(s: &str) -> ::std::result::Result<Self, Self::Err> {
- match s {
- "ed25519" => Ok(SignatureScheme::Ed25519),
- "rsassa-pss-sha256" => Ok(SignatureScheme::RsaSsaPssSha256),
- "rsassa-pss-sha512" => Ok(SignatureScheme::RsaSsaPssSha512),
- typ => Err(Error::Encoding(typ.into())),
- }
- }
-}
-
-impl Serialize for SignatureScheme {
- fn serialize<S>(&self, ser: S) -> ::std::result::Result<S::Ok, S::Error>
- where
- S: Serializer,
- {
- ser.serialize_str(&self.to_string())
- }
-}
-
-impl<'de> Deserialize<'de> for SignatureScheme {
- fn deserialize<D: Deserializer<'de>>(de: D) -> ::std::result::Result<Self, D::Error> {
- let string: String = Deserialize::deserialize(de)?;
- string.parse().map_err(|e| {
- DeserializeError::custom(format!("{:?}", e))
- })
- }
-}
-
/// Wrapper type for the value of a cryptographic signature.
#[derive(Clone, PartialEq)]
pub struct SignatureValue(Vec<u8>);