chore(deps): use crate `crypto-utils` instead of `rust_utilities`

This commit is contained in:
MedzikUser 2022-06-11 21:36:29 +02:00
parent 1dcf7250ba
commit d413a4fa82
No known key found for this signature in database
GPG Key ID: A5FAC1E185C112DB
8 changed files with 34 additions and 40 deletions

39
Cargo.lock generated
View File

@ -341,6 +341,19 @@ dependencies = [
"typenum", "typenum",
] ]
[[package]]
name = "crypto-utils"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c21850a20f41468aedddf2dcf88124ae8e6959c8c7b610c986f870fd62fbba3c"
dependencies = [
"chrono",
"jsonwebtoken",
"serde",
"sha1",
"sha2",
]
[[package]] [[package]]
name = "digest" name = "digest"
version = "0.10.3" version = "0.10.3"
@ -651,7 +664,6 @@ dependencies = [
"futures-util", "futures-util",
"homedisk-types", "homedisk-types",
"log", "log",
"rust_utilities",
"serde", "serde",
"sqlx", "sqlx",
"thiserror", "thiserror",
@ -667,13 +679,13 @@ dependencies = [
"axum-auth", "axum-auth",
"base64", "base64",
"byte-unit", "byte-unit",
"crypto-utils",
"futures", "futures",
"homedisk-database", "homedisk-database",
"homedisk-types", "homedisk-types",
"hyper", "hyper",
"jsonwebtoken", "jsonwebtoken",
"log", "log",
"rust_utilities",
"serde", "serde",
"thiserror", "thiserror",
"tower-http", "tower-http",
@ -685,8 +697,9 @@ version = "0.0.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"axum", "axum",
"crypto-utils",
"dirs", "dirs",
"rust_utilities", "hex",
"serde", "serde",
"sqlx", "sqlx",
"thiserror", "thiserror",
@ -1191,20 +1204,6 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "rust_utilities"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8524c76496ed3097b6d24d7cb3b435cc8a84cbded6da7153942f6daa3ade9da7"
dependencies = [
"chrono",
"hex",
"jsonwebtoken",
"serde",
"sha-1",
"sha2",
]
[[package]] [[package]]
name = "rustc-demangle" name = "rustc-demangle"
version = "0.1.21" version = "0.1.21"
@ -1290,10 +1289,10 @@ dependencies = [
] ]
[[package]] [[package]]
name = "sha-1" name = "sha1"
version = "0.10.0" version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" checksum = "c77f4e7f65455545c2153c1253d25056825e77ee2533f0e41deb65a93a34852f"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"cpufeatures", "cpufeatures",

View File

@ -10,7 +10,6 @@ futures-util = "0.3.21"
serde = { version = "1.0.137", features = ["derive"] } serde = { version = "1.0.137", features = ["derive"] }
sqlx = { version = "0.5.13", features = ["runtime-tokio-rustls", "sqlite"] } sqlx = { version = "0.5.13", features = ["runtime-tokio-rustls", "sqlite"] }
uuid = { version = "1.1.1", features = ["v5"] } uuid = { version = "1.1.1", features = ["v5"] }
rust_utilities = { version = "0.2.0", features = ["sha"] }
homedisk-types = { path = "../types", features = ["database"] } homedisk-types = { path = "../types", features = ["database"] }
[dev-dependencies] [dev-dependencies]

View File

@ -135,7 +135,7 @@ mod tests {
use crate::{Database, User}; use crate::{Database, User};
/// Utils to open database in tests /// Utils to open database in tests
async fn open_db() -> Database { async fn open_db() -> Database {
Database::open("sqlite::memory:").await.expect("open db") Database::open("sqlite::memory:").await.expect("open db")
} }

View File

@ -12,7 +12,7 @@ futures = "0.3.21"
hyper = { version = "0.14.19", features = ["full"] } hyper = { version = "0.14.19", features = ["full"] }
jsonwebtoken = "8.1.0" jsonwebtoken = "8.1.0"
log = "0.4.17" log = "0.4.17"
rust_utilities = { version = "0.2.0", features = ["jsonwebtoken"] } crypto-utils = { version = "0.2.0", features = ["jwt"] }
serde = { version = "1.0.137", features = ["derive"] } serde = { version = "1.0.137", features = ["derive"] }
thiserror = "1.0.31" thiserror = "1.0.31"
tower-http = { version = "0.3.4", features = ["full"] } tower-http = { version = "0.3.4", features = ["full"] }

View File

@ -1,6 +1,6 @@
use crypto_utils::jsonwebtoken::{Claims, Token};
use homedisk_types::errors::{AuthError, ServerError}; use homedisk_types::errors::{AuthError, ServerError};
use jsonwebtoken::TokenData; use jsonwebtoken::TokenData;
use rust_utilities::crypto::jsonwebtoken::{Claims, Token};
/// Validate user token /// Validate user token
pub fn validate_jwt(secret: &[u8], token: &str) -> Result<TokenData<Claims>, ServerError> { pub fn validate_jwt(secret: &[u8], token: &str) -> Result<TokenData<Claims>, ServerError> {

View File

@ -1,15 +1,13 @@
use crypto_utils::jsonwebtoken::{Claims, Token};
use homedisk_database::{Database, User}; use homedisk_database::{Database, User};
use homedisk_types::errors::{AuthError, ServerError}; use homedisk_types::errors::{AuthError, ServerError};
use rust_utilities::crypto::jsonwebtoken::{Claims, Token};
/// Create user token /// Create user token
pub fn create_token(user: &User, secret: &[u8], expires: i64) -> Result<String, ServerError> { pub fn create_token(user: &User, secret: &[u8], expires: i64) -> Result<String, ServerError> {
let token = Token::new(secret, Claims::new(user.id.clone(), expires)); let token = Token::new(secret, Claims::new(&user.id, expires))
.map_err(|_| ServerError::AuthError(AuthError::TokenGenerate))?;
match token { Ok(token.encoded)
Ok(token) => Ok(token.encoded),
Err(_) => Err(ServerError::AuthError(AuthError::TokenGenerate)),
}
} }
/// Search for a user /// Search for a user
@ -39,6 +37,7 @@ mod tests {
#[test] #[test]
fn test_create_token() { fn test_create_token() {
let secret = b"secret"; let secret = b"secret";
let user = User::new("username", "password"); let user = User::new("username", "password");
create_token(&user, secret, 1).unwrap(); create_token(&user, secret, 1).unwrap();

View File

@ -5,7 +5,7 @@ edition = "2021"
[features] [features]
config = ["toml", "dirs"] config = ["toml", "dirs"]
database = ["rust_utilities", "sqlx"] database = ["crypto-utils", "hex", "sqlx"]
[dependencies] [dependencies]
thiserror = "1.0.31" thiserror = "1.0.31"
@ -14,11 +14,8 @@ anyhow = "1.0.57"
serde = { version = "1.0.137", features = ["derive"] } serde = { version = "1.0.137", features = ["derive"] }
zeroize = { version = "1.5.5", features = ["derive"] } zeroize = { version = "1.5.5", features = ["derive"] }
axum = { version = "0.5.7", optional = true } axum = { version = "0.5.7", optional = true }
# config
toml = { version = "0.5.9", optional = true } toml = { version = "0.5.9", optional = true }
dirs = { version = "4.0.0", optional = true } dirs = { version = "4.0.0", optional = true }
crypto-utils = { version = "0.2.0", features = ["sha"], optional = true }
# database hex = { version = "0.4.3", optional = true }
rust_utilities = { version = "0.2.0", optional = true }
sqlx = { version = "0.5.13", features = ["sqlite"], optional = true } sqlx = { version = "0.5.13", features = ["sqlite"], optional = true }

View File

@ -1,4 +1,4 @@
use rust_utilities::crypto::sha::{encode, Algorithm, CryptographicHash}; use crypto_utils::sha::{Algorithm, CryptographicHash};
use uuid::Uuid; use uuid::Uuid;
/// SQL user table /// SQL user table
@ -31,7 +31,7 @@ impl User {
let id = Uuid::new_v5(&Uuid::NAMESPACE_X500, &sha1_name).to_string(); let id = Uuid::new_v5(&Uuid::NAMESPACE_X500, &sha1_name).to_string();
// hash password using SHA-512 // hash password using SHA-512
let password = encode(CryptographicHash::hash( let password = hex::encode(CryptographicHash::hash(
Algorithm::SHA512, Algorithm::SHA512,
password.as_bytes(), password.as_bytes(),
)); ));
@ -52,9 +52,9 @@ impl User {
/// ///
/// let user = User::new("medzik", "whatever"); /// let user = User::new("medzik", "whatever");
/// ///
/// let dir = user.user_dir("/home/homedisk"); // will return `/home/homedisk/medzik` /// let dir = user.user_dir("/storage"); // will return `/storage/medzik`
/// ///
/// assert_eq!(dir, "/home/homedisk/medzik") /// assert_eq!(dir, "/storage/medzik")
/// ``` /// ```
pub fn user_dir(&self, storage: &str) -> String { pub fn user_dir(&self, storage: &str) -> String {
// get a user storage path // get a user storage path