From a7260f745d182466d0fe17d41b629f6a5a2422ff Mon Sep 17 00:00:00 2001 From: nazeh Date: Tue, 12 Dec 2023 16:25:35 +0300 Subject: [PATCH] chore: simplify --- Cargo.lock | 266 ---------------------------------- kytz/Cargo.toml | 12 -- kytz/src/cli/config.rs | 25 ---- kytz/src/cli/mod.rs | 1 - kytz/src/crypto/encryption.rs | 3 +- kytz/src/crypto/mod.rs | 8 +- kytz/src/crypto/seed.rs | 21 +-- kytz/src/error.rs | 3 - kytz/src/lib.rs | 12 +- kytz/src/main.rs | 72 --------- 10 files changed, 17 insertions(+), 406 deletions(-) delete mode 100644 kytz/src/cli/config.rs delete mode 100644 kytz/src/cli/mod.rs delete mode 100644 kytz/src/main.rs diff --git a/Cargo.lock b/Cargo.lock index 39a8b49..3076319 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,54 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "anstream" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" - -[[package]] -name = "anstyle-parse" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3a318f1f38d2418400f8209655bfd825785afd25aa30bb7ba6cc792e4596748" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" -dependencies = [ - "anstyle", - "windows-sys", -] - [[package]] name = "argon2" version = "0.5.2" @@ -90,18 +42,6 @@ dependencies = [ "rand", ] -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" - [[package]] name = "blake2" version = "0.10.6" @@ -154,52 +94,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "clap" -version = "4.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "clap_lex" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" - -[[package]] -name = "colorchoice" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" - [[package]] name = "constant_time_eq" version = "0.3.0" @@ -236,27 +130,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -278,12 +151,6 @@ dependencies = [ "wasi", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "kytes" version = "0.1.0" @@ -291,8 +158,6 @@ dependencies = [ "argon2", "bessie", "bytes", - "clap", - "dirs-next", "rand", "thiserror", "z32", @@ -304,17 +169,6 @@ version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" -[[package]] -name = "libredox" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" -dependencies = [ - "bitflags 2.4.1", - "libc", - "redox_syscall", -] - [[package]] name = "password-hash" version = "0.5.0" @@ -380,32 +234,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_users" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" -dependencies = [ - "getrandom", - "libredox", - "thiserror", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - [[package]] name = "subtle" version = "2.5.0" @@ -455,12 +283,6 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - [[package]] name = "version_check" version = "0.9.4" @@ -473,94 +295,6 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" - [[package]] name = "z32" version = "1.0.2" diff --git a/kytz/Cargo.toml b/kytz/Cargo.toml index 86f0163..f734c8f 100644 --- a/kytz/Cargo.toml +++ b/kytz/Cargo.toml @@ -12,15 +12,3 @@ bytes = "1.5.0" rand = "0.8.5" thiserror = "1.0.50" z32 = "1.0.2" - -# cli -clap = { version = "4.4.11", optional = true, features = ["derive"] } -dirs-next = { version = "2.0.0", optional = true } - -[features] -default = ["cli"] -cli = ["clap", "dirs-next"] - -[[bin]] -name = "kytes" -required-features = ["cli"] diff --git a/kytz/src/cli/config.rs b/kytz/src/cli/config.rs deleted file mode 100644 index a21d741..0000000 --- a/kytz/src/cli/config.rs +++ /dev/null @@ -1,25 +0,0 @@ -//! Configuration for the Kytz CLI. - -use std::path::{Path, PathBuf}; - -use crate::{Error, Result}; - -/// Name of directory that wraps all kytz files in a given application directory -const KYTZ_DIR: &str = "kytz"; - -/// Returns the path to the user's kytz config directory. -pub fn kytz_config_root() -> Result { - // if let Some(val) = env::var_os("IROH_CONFIG_DIR") { - // return Ok(PathBuf::from(val)); - // } - let cfg = dirs_next::config_dir().ok_or_else(|| { - Error::Generic("operating environment provides no directory for configuration".to_string()) - })?; - Ok(cfg.join(KYTZ_DIR)) -} - -/// Path that leads to a file in the iroh config directory. -pub fn kytz_config_path(file_name: impl AsRef) -> Result { - let path = kytz_config_root()?.join(file_name); - Ok(path) -} diff --git a/kytz/src/cli/mod.rs b/kytz/src/cli/mod.rs deleted file mode 100644 index ef68c36..0000000 --- a/kytz/src/cli/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod config; diff --git a/kytz/src/crypto/encryption.rs b/kytz/src/crypto/encryption.rs index aced92c..116447e 100644 --- a/kytz/src/crypto/encryption.rs +++ b/kytz/src/crypto/encryption.rs @@ -1,9 +1,8 @@ //! Encryption functions. use crate::{Error, Result}; -use rand::{Rng, RngCore}; -use crate::crypto::{Key, Nonce}; +use crate::crypto::Key; /// Compute the length of a ciphertext, given the length of a plaintext. /// diff --git a/kytz/src/crypto/mod.rs b/kytz/src/crypto/mod.rs index 85cb1bd..dd6fa58 100644 --- a/kytz/src/crypto/mod.rs +++ b/kytz/src/crypto/mod.rs @@ -1,7 +1,7 @@ -mod encryption; -mod keys; -mod passphrase; -mod seed; +pub mod encryption; +pub mod keys; +pub mod passphrase; +pub mod seed; /// A 32 bytes key (encryption key or public key or shared_secret key). pub type Key = [u8; bessie::KEY_LEN]; diff --git a/kytz/src/crypto/seed.rs b/kytz/src/crypto/seed.rs index 18e1a6f..9ef9907 100644 --- a/kytz/src/crypto/seed.rs +++ b/kytz/src/crypto/seed.rs @@ -2,15 +2,12 @@ //! //! Seed file contains a seed encrypted with a strong passphrase. -use argon2::PasswordHasher; -use bytes::{BufMut, Bytes, BytesMut}; +use bytes::{Bytes, BytesMut}; use crate::{ crypto::{ encryption::{ciphertext_len, decrypt, encrypt_to_slice}, - keys::generate_seed, - passphrase::generate_4words_passphrase, - Key, Nonce, + Key, }, Error, Result, }; @@ -18,7 +15,6 @@ use crate::{ const SEED_SCHEME: &[u8] = b"kytz:seed:"; const VERSION: u8 = 0; -const KNOWN_VERSIONS: [u8; 1] = [0]; /// Encrypt the seed with a strong passphrase, and return an [encrypted seed /// file](../../../design/seed.md). @@ -62,17 +58,6 @@ fn decrypted_seed_v0(suffix: &[u8], passphrase: &str) -> Result> { decrypt(&encryption_key, encrypted_seed) } -fn parse_version(byte_string: &[u8]) -> Result { - // Convert byte array to string slice - let str_slice = std::str::from_utf8(byte_string) - .map_err(|_| Error::Generic("Invalid version number".to_string()))?; - - str_slice - .parse::() - .map(Ok) - .map_err(|_| Error::Generic("Invalid version number".to_string()))? -} - /// Derive a secret key from a strong passphrase for encrypting/decrypting the seed. fn derive_encrypiton_key(passphrase: &str) -> Key { // Argon2 with default params (Argon2id v19) @@ -99,6 +84,8 @@ mod test { use std::time::Instant; use super::*; + use crate::crypto::keys::*; + use crate::crypto::passphrase::*; #[test] fn test_encrypt_decrypt_seed() { diff --git a/kytz/src/error.rs b/kytz/src/error.rs index 151a66c..144e51a 100644 --- a/kytz/src/error.rs +++ b/kytz/src/error.rs @@ -1,8 +1,5 @@ //! Main Crate Error -// Alias Result to be the crate Result. -pub type Result = core::result::Result; - #[derive(thiserror::Error, Debug)] /// Kytz crate error enum. pub enum Error { diff --git a/kytz/src/lib.rs b/kytz/src/lib.rs index 0f986dd..b9f84fd 100644 --- a/kytz/src/lib.rs +++ b/kytz/src/lib.rs @@ -1,5 +1,9 @@ -#![allow(unused)] -mod crypto; -mod error; +// #![allow(unused)] +pub mod crypto; +pub mod error; -pub use crate::error::{Error, Result}; +// Re-exports +pub use error::Error; + +// Alias Result to be the crate Result. +pub type Result = core::result::Result; diff --git a/kytz/src/main.rs b/kytz/src/main.rs deleted file mode 100644 index d3952f6..0000000 --- a/kytz/src/main.rs +++ /dev/null @@ -1,72 +0,0 @@ -use clap::{Parser, Subcommand}; - -mod cli; -mod error; - -pub use crate::error::{Error, Result}; - -#[derive(Parser)] -#[command(author, version, about, long_about = None)] -struct Cli { - /// Optional name to operate on - name: Option, - - /// Sets a custom config file - // #[arg(short, long, value_name = "FILE")] - // config: Option, - - /// Turn debugging information on - #[arg(short, long, action = clap::ArgAction::Count)] - debug: u8, - - #[command(subcommand)] - command: Option, -} - -#[derive(Subcommand)] -enum Commands { - /// does testing things - Test { - /// lists test values - #[arg(short, long)] - list: bool, - }, -} - -fn main() { - dbg!(cli::config::kytz_config_path("seed.kytz").unwrap()); - let cli = Cli::parse(); - - // You can check the value provided by positional arguments, or option arguments - if let Some(name) = cli.name.as_deref() { - println!("Value for name: {name}"); - } - - // if let Some(config_path) = cli.config.as_deref() { - // println!("Value for config: {}", config_path.display()); - // } - - // You can see how many times a particular flag or argument occurred - // Note, only flags can have multiple occurrences - match cli.debug { - 0 => println!("Debug mode is off"), - 1 => println!("Debug mode is kind of on"), - 2 => println!("Debug mode is on"), - _ => println!("Don't be crazy"), - } - - // You can check for the existence of subcommands, and if found use their - // matches just as you would the top level cmd - match &cli.command { - Some(Commands::Test { list }) => { - if *list { - println!("Printing testing lists..."); - } else { - println!("Not printing testing lists..."); - } - } - None => {} - } - - // Continued program logic goes here... -}