From 77bd7aa3a32b77d4dd4f4ceaf2f9f14a00280785 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Mon, 18 Oct 2021 20:37:28 +0100 Subject: [PATCH] age-plugin 0.2 --- Cargo.lock | 114 +++++++++++++++++++++++++++++++------------------ Cargo.toml | 5 +-- src/format.rs | 2 +- src/yubikey.rs | 2 +- 4 files changed, 76 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d04c709..ac998d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,41 +10,39 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aead" -version = "0.3.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ "generic-array", ] [[package]] name = "age-core" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad65fc4325804de2e915f5a50dda38218ed49f97e1270750acef9ff8bb67ac36" +checksum = "a485102f6c7a23e0666b169ba77c9ff6c6d249c05395c379be3cbab48a948e84" dependencies = [ "base64", - "c2-chacha", "chacha20poly1305", "cookie-factory", "hkdf", - "nom", - "rand 0.7.3", - "secrecy", + "nom 7.0.0", + "rand 0.8.4", + "secrecy 0.8.0", "sha2", "tempfile", ] [[package]] name = "age-plugin" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab66824efab6086bdd70e8be63323579bde82da2f336036b3db504ceb2b9dbac" +checksum = "669954b572c349e6e738d81480444ad577f955f240569707877719ab1f94148a" dependencies = [ "age-core", "bech32", "chrono", - "secrecy", ] [[package]] @@ -66,7 +64,6 @@ dependencies = [ "p256", "pcsc", "rand 0.7.3", - "secrecy", "sha2", "which", "x509", @@ -168,16 +165,6 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" -[[package]] -name = "c2-chacha" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f1a1e56adbcfb7a96c51ec42e37a22ee5cda66c0eae80f9b94ff68a71d4759" -dependencies = [ - "cipher", - "ppv-lite86", -] - [[package]] name = "cfg-if" version = "1.0.0" @@ -185,13 +172,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "chacha20poly1305" -version = "0.7.1" +name = "chacha20" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1fc18e6d90c40164bf6c317476f2a98f04661e310e79830366b7e914c58a8e" +checksum = "01b72a433d0cf2aef113ba70f62634c56fddb0f244e6377185c56a7cadbd8f91" +dependencies = [ + "cfg-if", + "cipher 0.3.0", + "cpufeatures", + "zeroize", +] + +[[package]] +name = "chacha20poly1305" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b84ed6d1d5f7aa9bdde921a5090e0ca4d934d250ea3b402a5fab3a994e28a2a" dependencies = [ "aead", - "cipher", + "chacha20", + "cipher 0.3.0", "poly1305", "zeroize", ] @@ -218,6 +218,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array", +] + [[package]] name = "console" version = "0.14.1" @@ -254,12 +263,6 @@ dependencies = [ "libc", ] -[[package]] -name = "cpuid-bool" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" - [[package]] name = "crc32fast" version = "1.2.1" @@ -310,7 +313,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4cccf60bb98c0fca115a581f894aed0e43fa55bf289fdac5599bec440bb4fd6" dependencies = [ - "nom", + "nom 6.2.1", "num-bigint 0.4.2", "num-traits", "syn", @@ -323,7 +326,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d7ededb7525bb4114bc209685ce7894edc2965f4914312a1ea578a645a237f0" dependencies = [ "der-oid-macro", - "nom", + "nom 6.2.1", "num-bigint 0.4.2", "num-traits", "rusticata-macros", @@ -336,7 +339,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b24e7c748888aa2fa8bce21d8c64a52efc810663285315ac7476f7197a982fae" dependencies = [ "byteorder", - "cipher", + "cipher 0.2.5", "opaque-debug", ] @@ -616,6 +619,12 @@ version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" +[[package]] +name = "minimal-lexical" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c64630dcdd71f1a64c435f54885086a0de5d6a12d104d69b165fb7d5286d677" + [[package]] name = "miniz_oxide" version = "0.4.4" @@ -639,6 +648,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "nom" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffd9d26838a953b4af82cbeb9f1592c6798916983959be223a7124e992742c1" +dependencies = [ + "memchr", + "minimal-lexical", + "version_check", +] + [[package]] name = "num-bigint" version = "0.2.6" @@ -807,11 +827,12 @@ checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" [[package]] name = "poly1305" -version = "0.6.2" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b7456bc1ad2d4cf82b3a016be4c2ac48daf11bf990c1603ebd447fe6f30fca8" +checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ - "cpuid-bool", + "cpufeatures", + "opaque-debug", "universal-hash", ] @@ -1001,7 +1022,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbbee512c633ecabd4481c40111b6ded03ddd9ab10ba6caa5a74e14c889921ad" dependencies = [ - "nom", + "nom 6.2.1", ] [[package]] @@ -1025,6 +1046,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + [[package]] name = "serde" version = "1.0.130" @@ -1318,7 +1348,7 @@ dependencies = [ "data-encoding", "der-parser", "lazy_static", - "nom", + "nom 6.2.1", "oid-registry", "rusticata-macros", "rustversion", @@ -1339,7 +1369,7 @@ dependencies = [ "getrandom 0.1.16", "hmac 0.10.1", "log", - "nom", + "nom 6.2.1", "num-bigint-dig", "num-integer", "num-traits", @@ -1348,7 +1378,7 @@ dependencies = [ "pbkdf2", "pcsc", "rsa", - "secrecy", + "secrecy 0.7.0", "sha-1", "sha2", "subtle", diff --git a/Cargo.toml b/Cargo.toml index 51be049..edb99cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,8 +22,8 @@ assets = [ ] [dependencies] -age-core = "0.6" -age-plugin = "0.1" +age-core = "0.7" +age-plugin = "0.2" base64 = "0.13" bech32 = "0.8" console = "0.14" @@ -35,7 +35,6 @@ log = "0.4" p256 = { version = "0.7", features = ["ecdh"] } pcsc = "2.4" rand = "0.7" -secrecy = "0.7" sha2 = "0.9" which = "4.1" x509 = "0.2" diff --git a/src/format.rs b/src/format.rs index bf2b124..4da1f9e 100644 --- a/src/format.rs +++ b/src/format.rs @@ -1,10 +1,10 @@ use age_core::{ format::{FileKey, Stanza}, primitives::{aead_encrypt, hkdf}, + secrecy::ExposeSecret, }; use p256::{ecdh::EphemeralSecret, elliptic_curve::sec1::ToEncodedPoint}; use rand::rngs::OsRng; -use secrecy::ExposeSecret; use std::convert::TryInto; use crate::{p256::Recipient, STANZA_TAG}; diff --git a/src/yubikey.rs b/src/yubikey.rs index 10e47ca..1da5ee0 100644 --- a/src/yubikey.rs +++ b/src/yubikey.rs @@ -3,12 +3,12 @@ use age_core::{ format::{FileKey, FILE_KEY_BYTES}, primitives::{aead_decrypt, hkdf}, + secrecy::ExposeSecret, }; use age_plugin::{identity, Callbacks}; use bech32::{ToBase32, Variant}; use dialoguer::Password; use log::warn; -use secrecy::ExposeSecret; use std::convert::TryInto; use std::fmt; use std::io;