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

View File

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

View File

@ -135,7 +135,7 @@ mod tests {
use crate::{Database, User};
/// Utils to open database in tests
/// Utils to open database in tests
async fn open_db() -> Database {
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"] }
jsonwebtoken = "8.1.0"
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"] }
thiserror = "1.0.31"
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 jsonwebtoken::TokenData;
use rust_utilities::crypto::jsonwebtoken::{Claims, Token};
/// Validate user token
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_types::errors::{AuthError, ServerError};
use rust_utilities::crypto::jsonwebtoken::{Claims, Token};
/// Create user token
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) => Ok(token.encoded),
Err(_) => Err(ServerError::AuthError(AuthError::TokenGenerate)),
}
Ok(token.encoded)
}
/// Search for a user
@ -39,6 +37,7 @@ mod tests {
#[test]
fn test_create_token() {
let secret = b"secret";
let user = User::new("username", "password");
create_token(&user, secret, 1).unwrap();

View File

@ -5,7 +5,7 @@ edition = "2021"
[features]
config = ["toml", "dirs"]
database = ["rust_utilities", "sqlx"]
database = ["crypto-utils", "hex", "sqlx"]
[dependencies]
thiserror = "1.0.31"
@ -14,11 +14,8 @@ anyhow = "1.0.57"
serde = { version = "1.0.137", features = ["derive"] }
zeroize = { version = "1.5.5", features = ["derive"] }
axum = { version = "0.5.7", optional = true }
# config
toml = { version = "0.5.9", optional = true }
dirs = { version = "4.0.0", optional = true }
# database
rust_utilities = { version = "0.2.0", optional = true }
crypto-utils = { version = "0.2.0", features = ["sha"], optional = true }
hex = { version = "0.4.3", 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;
/// SQL user table
@ -31,7 +31,7 @@ impl User {
let id = Uuid::new_v5(&Uuid::NAMESPACE_X500, &sha1_name).to_string();
// hash password using SHA-512
let password = encode(CryptographicHash::hash(
let password = hex::encode(CryptographicHash::hash(
Algorithm::SHA512,
password.as_bytes(),
));
@ -52,9 +52,9 @@ impl User {
///
/// 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 {
// get a user storage path