Compare commits

...

8 commits

Author SHA1 Message Date
140e31ef08 Update Rust crate aes to 0.9.0
Some checks failed
Build and Test / account (push) Failing after 2m16s
2026-04-29 09:00:42 +00:00
9c13fa267d Merge pull request 'Update Rust crate hmac to 0.13.0' (#36) from renovate/hmac-0.x into main
All checks were successful
Build and Test / account (push) Successful in 6m18s
Reviewed-on: #36
2026-04-29 10:46:56 +02:00
bd85e5905d Merge pull request 'Update Rust crate sha2 to 0.11.0' (#32) from renovate/sha2-0.x into main
Some checks failed
Build and Test / account (push) Has been cancelled
Reviewed-on: #32
2026-04-29 10:46:31 +02:00
229cd16bdd Merge branch 'renovate/sha2-0.x' of https://git.spbr.net/spacebar/account into renovate/sha2-0.x
All checks were successful
Build and Test / account (push) Successful in 5m52s
2026-04-29 10:45:29 +02:00
8940b099e9 Update rand and sha 2026-04-29 10:42:09 +02:00
aa0cd97faa Update Rust crate sha2 to 0.11.0
Some checks failed
Build and Test / account (push) Failing after 4m3s
2026-04-29 08:31:17 +00:00
a7910bb167 Update Rust crate hmac to 0.13.0
All checks were successful
Build and Test / account (push) Successful in 8m22s
2026-04-29 08:30:59 +00:00
7ead9440ee Update Rust crate sha2 to 0.11.0
Some checks failed
Build and Test / account (push) Failing after 2m28s
2026-04-29 00:01:09 +00:00
4 changed files with 99 additions and 38 deletions

107
Cargo.lock generated
View file

@ -21,7 +21,7 @@ dependencies = [
"gxhash",
"hex",
"hickory-resolver",
"hmac",
"hmac 0.13.0",
"juniper",
"juniper_rocket",
"k256",
@ -34,14 +34,14 @@ dependencies = [
"p256",
"prost",
"quick-xml",
"rand 0.8.5",
"rand 0.10.1",
"reqwest",
"rocket",
"rocket_cors",
"sentry",
"serde",
"serde_json",
"sha2",
"sha2 0.11.0",
"sha256",
"sqlx",
"thiserror 2.0.18",
@ -218,13 +218,13 @@ checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
[[package]]
name = "aes"
version = "0.8.4"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
checksum = "66bd29a732b644c0431c6140f370d097879203d79b80c94a6747ba0872adaef8"
dependencies = [
"cfg-if",
"cipher",
"cpufeatures 0.2.17",
"cipher 0.5.1",
"cpubits",
"cpufeatures 0.3.0",
]
[[package]]
@ -521,7 +521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
dependencies = [
"byteorder",
"cipher",
"cipher 0.4.4",
]
[[package]]
@ -586,7 +586,7 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
dependencies = [
"cipher",
"cipher 0.4.4",
]
[[package]]
@ -645,7 +645,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
dependencies = [
"crypto-common 0.1.6",
"inout",
"inout 0.1.4",
]
[[package]]
name = "cipher"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e34d8227fe1ba289043aeb13792056ff80fd6de1a9f49137a5f499de8e8c78ea"
dependencies = [
"crypto-common 0.2.1",
"inout 0.2.2",
]
[[package]]
@ -657,6 +667,12 @@ dependencies = [
"cc",
]
[[package]]
name = "cmov"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f88a43d011fc4a6876cb7344703e297c71dda42494fee094d5f7c76bf13f746"
[[package]]
name = "combine"
version = "4.6.7"
@ -739,6 +755,12 @@ version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
name = "cpubits"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae"
[[package]]
name = "cpufeatures"
version = "0.2.17"
@ -827,6 +849,15 @@ dependencies = [
"hybrid-array",
]
[[package]]
name = "ctutils"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e"
dependencies = [
"cmov",
]
[[package]]
name = "data-encoding"
version = "2.11.0"
@ -959,6 +990,7 @@ dependencies = [
"block-buffer 0.12.0",
"const-oid 0.10.2",
"crypto-common 0.2.1",
"ctutils",
]
[[package]]
@ -989,7 +1021,7 @@ dependencies = [
"num-traits",
"pkcs8",
"rfc6979",
"sha2",
"sha2 0.10.9",
"signature",
"zeroize",
]
@ -1536,7 +1568,7 @@ version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
dependencies = [
"hmac",
"hmac 0.12.1",
]
[[package]]
@ -1548,6 +1580,15 @@ dependencies = [
"digest 0.10.7",
]
[[package]]
name = "hmac"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f"
dependencies = [
"digest 0.11.2",
]
[[package]]
name = "home"
version = "0.5.11"
@ -1949,6 +1990,15 @@ dependencies = [
"generic-array",
]
[[package]]
name = "inout"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7"
dependencies = [
"hybrid-array",
]
[[package]]
name = "ipconfig"
version = "0.3.4"
@ -2142,7 +2192,7 @@ dependencies = [
"ecdsa",
"elliptic-curve",
"once_cell",
"sha2",
"sha2 0.10.9",
"signature",
]
@ -2565,7 +2615,7 @@ dependencies = [
"ecdsa",
"elliptic-curve",
"primeorder",
"sha2",
"sha2 0.10.9",
]
[[package]]
@ -3072,7 +3122,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
dependencies = [
"hmac",
"hmac 0.12.1",
"subtle",
]
@ -3634,6 +3684,17 @@ dependencies = [
"digest 0.10.7",
]
[[package]]
name = "sha2"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
"digest 0.11.2",
]
[[package]]
name = "sha256"
version = "1.6.0"
@ -3643,7 +3704,7 @@ dependencies = [
"async-trait",
"bytes",
"hex",
"sha2",
"sha2 0.10.9",
"tokio",
]
@ -3795,7 +3856,7 @@ dependencies = [
"percent-encoding",
"serde",
"serde_json",
"sha2",
"sha2 0.10.9",
"smallvec",
"thiserror 2.0.18",
"tokio",
@ -3832,7 +3893,7 @@ dependencies = [
"quote",
"serde",
"serde_json",
"sha2",
"sha2 0.10.9",
"sqlx-core",
"sqlx-mysql",
"sqlx-postgres",
@ -3865,7 +3926,7 @@ dependencies = [
"generic-array",
"hex",
"hkdf",
"hmac",
"hmac 0.12.1",
"itoa",
"log",
"md-5 0.10.6",
@ -3876,7 +3937,7 @@ dependencies = [
"rsa",
"serde",
"sha1 0.10.6",
"sha2",
"sha2 0.10.9",
"smallvec",
"sqlx-core",
"stringprep",
@ -3904,7 +3965,7 @@ dependencies = [
"futures-util",
"hex",
"hkdf",
"hmac",
"hmac 0.12.1",
"home",
"ipnetwork",
"itoa",
@ -3915,7 +3976,7 @@ dependencies = [
"rand 0.8.5",
"serde",
"serde_json",
"sha2",
"sha2 0.10.9",
"smallvec",
"sqlx-core",
"stringprep",

View file

@ -23,15 +23,15 @@ once_cell = "1.20.3"
serde_json = "1.0.139"
chrono = { version = "0.4.39", features = ["serde"] }
argon2 = "0.5.3"
sha2 = "0.10.8"
sha2 = "0.11.0"
bytemuck = { version = "1.21.0", features = ["derive"] }
base64 = "0.22.1"
hex = "0.4.3"
thiserror = "2.0.11"
bcrypt = "0.19.0"
sqlx = { version = "0.8.3", features = [ "runtime-tokio", "tls-native-tls", "postgres", "chrono", "ipnetwork" ] }
aes = "0.8.4"
hmac = "0.12.1"
aes = "0.9.0"
hmac = "0.13.0"
md-5 = "0.11.0"
cbc = "0.1.2"
mii = { path = "./mii" }
@ -45,7 +45,7 @@ juniper_rocket = "0.10.0"
prost = "0.14.0"
lettre = "0.11.15"
rand = "0.8.5"
rand = { version = "0.10.0", features = ["std"] }
reqwest = "0.13.0"
binrw = "0.15.1"
ecdsa = { version = "0.16.9", features = ["pem", "std", "verifying"] }
@ -55,4 +55,4 @@ k256 = "0.13.4"
dsa = "0.6.3"
openssl = "0.10.78"
time = "0.3.47"
hickory-resolver = { version = "0.24", features = ["tokio-runtime"] }
hickory-resolver = { version = "0.24", features = ["tokio-runtime"] }

View file

@ -20,7 +20,7 @@ use openssl::ecdsa::EcdsaSig;
use openssl::error::ErrorStack;
use openssl::nid::Nid;
use openssl::pkey::Public;
use rand::Rng;
use rand::prelude::*;
use rocket::http::Status;
use rocket::request::{FromRequest, Outcome};
use rocket::{Request, async_trait};
@ -81,9 +81,9 @@ pub struct _CertificatePid {
fn generate_nintendo_hash(pid: i32, text_password: &str) -> String {
let mut sha = Sha256::new();
sha.write_all(&bytes_of(&pid)).unwrap();
sha.write_all(&[0x02, 0x65, 0x43, 0x46]).unwrap();
sha.write_all(text_password.as_bytes()).unwrap();
sha.update(&bytes_of(&pid));
sha.update(&[0x02, 0x65, 0x43, 0x46]);
sha.update(text_password.as_bytes());
hex::encode(&sha.finalize()[..])
}
@ -193,18 +193,18 @@ pub async fn read_bearer_auth_token(connection: &Pool, token: &str) -> Option<Us
}
pub fn generate_nex_password() -> String {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let mut output = String::with_capacity(16);
while output.len() < 16 {
let offset: u8 = rng.gen_range(0..62);
let offset: u8 = rng.random_range(0..62);
let character = if offset < 10 {
(offset + b'0') as char
} else if offset < 36 {
(offset + 55) as char
(offset + 55) as char // A-Z
} else {
(offset + 61) as char
(offset + 61) as char // a-z
};
output.push(character);

View file

@ -11,7 +11,7 @@ use crate::nnid::timezones::{OFFSET_FROM_TIMEZONE};
use crate::Pool;
use crate::xml::{Xml, YesNoVal};
use crate::email::send_verification_email;
use rand::Rng;
use rand::prelude::*;
// Not in use currently.
//use mii::{get_image_png, get_image_tga};
use crate::mii_util::get_mii_img_url;
@ -118,7 +118,7 @@ pub async fn create_account(database: &State<Pool>, data: Xml<AccountCreationDat
let pid = next_pid(database).await;
let verification_code: i32 = rand::thread_rng().gen_range(100_000..1_000_000);
let verification_code: i32 = rand::rng().random_range(100_000..1_000_000);
let AccountCreationData {
user_id,