mirror of
https://github.com/MedzikUser/HomeDisk.git
synced 2024-08-14 21:46:53 +00:00
chore(deps): use crate crypto-utils
instead of rust_utilities
This commit is contained in:
parent
1dcf7250ba
commit
d413a4fa82
8 changed files with 34 additions and 40 deletions
39
Cargo.lock
generated
39
Cargo.lock
generated
|
@ -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",
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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")
|
||||
}
|
||||
|
|
|
@ -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"] }
|
||||
|
|
|
@ -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> {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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 }
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue