Use Rust 2018 edition idioms.
This commit is contained in:
parent
df1fc1739b
commit
9f478a1d51
37
src/lib.rs
37
src/lib.rs
@ -122,25 +122,14 @@
|
|||||||
//!
|
//!
|
||||||
//! Just like the `SignatureSet` itself, the `Signatures` value can also be deserialized from JSON.
|
//! Just like the `SignatureSet` itself, the `Signatures` value can also be deserialized from JSON.
|
||||||
|
|
||||||
#![deny(missing_docs)]
|
#![deny(missing_docs, warnings)]
|
||||||
|
|
||||||
extern crate base64;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate lazy_static;
|
|
||||||
extern crate ring;
|
|
||||||
extern crate serde;
|
|
||||||
#[cfg(test)]
|
|
||||||
#[macro_use]
|
|
||||||
extern crate serde_derive;
|
|
||||||
extern crate serde_json;
|
|
||||||
extern crate untrusted;
|
|
||||||
extern crate url;
|
|
||||||
|
|
||||||
use std::collections::{HashMap, HashSet};
|
use std::collections::{HashMap, HashSet};
|
||||||
use std::error::Error as StdError;
|
use std::error::Error as StdError;
|
||||||
use std::fmt::{Display, Formatter, Result as FmtResult};
|
use std::fmt::{Display, Formatter, Result as FmtResult};
|
||||||
|
|
||||||
use base64::{CharacterSet, Config, decode_config, encode_config};
|
use base64::{CharacterSet, Config, decode_config, encode_config};
|
||||||
|
use lazy_static::lazy_static;
|
||||||
use ring::signature::{ED25519, Ed25519KeyPair as RingEd25519KeyPair, verify};
|
use ring::signature::{ED25519, Ed25519KeyPair as RingEd25519KeyPair, verify};
|
||||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||||
use serde::de::{Error as SerdeError, MapAccess, Unexpected, Visitor};
|
use serde::de::{Error as SerdeError, MapAccess, Unexpected, Visitor};
|
||||||
@ -224,7 +213,7 @@ enum SplitError<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Extract the algorithm and version from a key identifier.
|
/// Extract the algorithm and version from a key identifier.
|
||||||
fn split_id(id: &str) -> Result<(Algorithm, String), SplitError> {
|
fn split_id(id: &str) -> Result<(Algorithm, String), SplitError<'_>> {
|
||||||
const SIGNATURE_ID_LENGTH: usize = 2;
|
const SIGNATURE_ID_LENGTH: usize = 2;
|
||||||
|
|
||||||
let signature_id: Vec<&str> = id.split(':').collect();
|
let signature_id: Vec<&str> = id.split(':').collect();
|
||||||
@ -341,8 +330,8 @@ impl KeyPair for Ed25519KeyPair {
|
|||||||
fn new(public_key: &[u8], private_key: &[u8], version: String) -> Result<Self, Error> {
|
fn new(public_key: &[u8], private_key: &[u8], version: String) -> Result<Self, Error> {
|
||||||
Ok(Ed25519KeyPair {
|
Ok(Ed25519KeyPair {
|
||||||
ring_key_pair: RingEd25519KeyPair::from_seed_and_public_key(
|
ring_key_pair: RingEd25519KeyPair::from_seed_and_public_key(
|
||||||
untrusted::Input::from(private_key),
|
Input::from(private_key),
|
||||||
untrusted::Input::from(public_key),
|
Input::from(public_key),
|
||||||
).map_err(|_| Error::new("invalid key pair"))?,
|
).map_err(|_| Error::new("invalid key pair"))?,
|
||||||
version: version,
|
version: version,
|
||||||
})
|
})
|
||||||
@ -396,7 +385,7 @@ impl StdError for Error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Display for Error {
|
impl Display for Error {
|
||||||
fn fmt(&self, f: &mut Formatter) -> FmtResult {
|
fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult {
|
||||||
write!(f, "{}", self.message)
|
write!(f, "{}", self.message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -534,7 +523,7 @@ impl Serialize for Signatures {
|
|||||||
impl<'de> Visitor<'de> for SignaturesVisitor {
|
impl<'de> Visitor<'de> for SignaturesVisitor {
|
||||||
type Value = Signatures;
|
type Value = Signatures;
|
||||||
|
|
||||||
fn expecting(&self, formatter: &mut Formatter) -> FmtResult {
|
fn expecting(&self, formatter: &mut Formatter<'_>) -> FmtResult {
|
||||||
write!(formatter, "digital signatures")
|
write!(formatter, "digital signatures")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -613,7 +602,7 @@ impl Serialize for SignatureSet {
|
|||||||
impl<'de> Visitor<'de> for SignatureSetVisitor {
|
impl<'de> Visitor<'de> for SignatureSetVisitor {
|
||||||
type Value = SignatureSet;
|
type Value = SignatureSet;
|
||||||
|
|
||||||
fn expecting(&self, formatter: &mut Formatter) -> FmtResult {
|
fn expecting(&self, formatter: &mut Formatter<'_>) -> FmtResult {
|
||||||
write!(formatter, "a set of digital signatures")
|
write!(formatter, "a set of digital signatures")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -652,7 +641,7 @@ impl<'de> Visitor<'de> for SignatureSetVisitor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Display for Algorithm {
|
impl Display for Algorithm {
|
||||||
fn fmt(&self, f: &mut Formatter) -> FmtResult {
|
fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult {
|
||||||
let name = match *self {
|
let name = match *self {
|
||||||
Algorithm::Ed25519 => "ed25519",
|
Algorithm::Ed25519 => "ed25519",
|
||||||
};
|
};
|
||||||
@ -724,7 +713,7 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn signatures_empty_json() {
|
fn signatures_empty_json() {
|
||||||
#[derive(Serialize)]
|
#[derive(serde_derive::Serialize)]
|
||||||
struct EmptyWithSignatures {
|
struct EmptyWithSignatures {
|
||||||
signatures: Signatures,
|
signatures: Signatures,
|
||||||
}
|
}
|
||||||
@ -754,13 +743,13 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn sign_minimal_json() {
|
fn sign_minimal_json() {
|
||||||
#[derive(Serialize)]
|
#[derive(serde_derive::Serialize)]
|
||||||
struct Alpha {
|
struct Alpha {
|
||||||
one: u8,
|
one: u8,
|
||||||
two: String,
|
two: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize)]
|
#[derive(serde_derive::Serialize)]
|
||||||
struct ReverseAlpha {
|
struct ReverseAlpha {
|
||||||
two: String,
|
two: String,
|
||||||
one: u8,
|
one: u8,
|
||||||
@ -831,7 +820,7 @@ mod test {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn signatures_minimal_json() {
|
fn signatures_minimal_json() {
|
||||||
#[derive(Serialize)]
|
#[derive(serde_derive::Serialize)]
|
||||||
struct MinimalWithSignatures {
|
struct MinimalWithSignatures {
|
||||||
one: u8,
|
one: u8,
|
||||||
signatures: Signatures,
|
signatures: Signatures,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user