Update rand and sha
This commit is contained in:
parent
7ead9440ee
commit
8940b099e9
4 changed files with 42 additions and 13 deletions
31
Cargo.lock
generated
31
Cargo.lock
generated
|
|
@ -34,7 +34,7 @@ dependencies = [
|
||||||
"p256",
|
"p256",
|
||||||
"prost",
|
"prost",
|
||||||
"quick-xml",
|
"quick-xml",
|
||||||
"rand 0.8.5",
|
"rand 0.10.1",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"rocket",
|
"rocket",
|
||||||
"rocket_cors",
|
"rocket_cors",
|
||||||
|
|
@ -573,6 +573,17 @@ version = "1.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "chacha20"
|
||||||
|
version = "0.10.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"cpufeatures 0.3.0",
|
||||||
|
"rand_core 0.10.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "chrono"
|
name = "chrono"
|
||||||
version = "0.4.44"
|
version = "0.4.44"
|
||||||
|
|
@ -1254,6 +1265,7 @@ dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"libc",
|
"libc",
|
||||||
"r-efi",
|
"r-efi",
|
||||||
|
"rand_core 0.10.1",
|
||||||
"wasip2",
|
"wasip2",
|
||||||
"wasip3",
|
"wasip3",
|
||||||
]
|
]
|
||||||
|
|
@ -2632,6 +2644,17 @@ dependencies = [
|
||||||
"rand_core 0.9.3",
|
"rand_core 0.9.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand"
|
||||||
|
version = "0.10.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207"
|
||||||
|
dependencies = [
|
||||||
|
"chacha20",
|
||||||
|
"getrandom 0.4.2",
|
||||||
|
"rand_core 0.10.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand_chacha"
|
name = "rand_chacha"
|
||||||
version = "0.3.1"
|
version = "0.3.1"
|
||||||
|
|
@ -2670,6 +2693,12 @@ dependencies = [
|
||||||
"getrandom 0.3.1",
|
"getrandom 0.3.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rand_core"
|
||||||
|
version = "0.10.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "redox_syscall"
|
name = "redox_syscall"
|
||||||
version = "0.5.9"
|
version = "0.5.9"
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ juniper_rocket = "0.10.0"
|
||||||
|
|
||||||
prost = "0.13.4"
|
prost = "0.13.4"
|
||||||
lettre = "0.11.15"
|
lettre = "0.11.15"
|
||||||
rand = "0.8.5"
|
rand = { version = "0.10.0", features = ["std"] }
|
||||||
reqwest = "0.12.12"
|
reqwest = "0.12.12"
|
||||||
binrw = "0.15.1"
|
binrw = "0.15.1"
|
||||||
ecdsa = { version = "0.16.9", features = ["pem", "std", "verifying"] }
|
ecdsa = { version = "0.16.9", features = ["pem", "std", "verifying"] }
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ use openssl::ecdsa::EcdsaSig;
|
||||||
use openssl::error::ErrorStack;
|
use openssl::error::ErrorStack;
|
||||||
use openssl::nid::Nid;
|
use openssl::nid::Nid;
|
||||||
use openssl::pkey::Public;
|
use openssl::pkey::Public;
|
||||||
use rand::Rng;
|
use rand::prelude::*;
|
||||||
use rocket::http::Status;
|
use rocket::http::Status;
|
||||||
use rocket::request::{FromRequest, Outcome};
|
use rocket::request::{FromRequest, Outcome};
|
||||||
use rocket::{Request, async_trait};
|
use rocket::{Request, async_trait};
|
||||||
|
|
@ -81,9 +81,9 @@ pub struct _CertificatePid {
|
||||||
fn generate_nintendo_hash(pid: i32, text_password: &str) -> String {
|
fn generate_nintendo_hash(pid: i32, text_password: &str) -> String {
|
||||||
let mut sha = Sha256::new();
|
let mut sha = Sha256::new();
|
||||||
|
|
||||||
sha.write_all(&bytes_of(&pid)).unwrap();
|
sha.update(&bytes_of(&pid));
|
||||||
sha.write_all(&[0x02, 0x65, 0x43, 0x46]).unwrap();
|
sha.update(&[0x02, 0x65, 0x43, 0x46]);
|
||||||
sha.write_all(text_password.as_bytes()).unwrap();
|
sha.update(text_password.as_bytes());
|
||||||
|
|
||||||
hex::encode(&sha.finalize()[..])
|
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 {
|
pub fn generate_nex_password() -> String {
|
||||||
let mut rng = rand::thread_rng();
|
let mut rng = rand::rng();
|
||||||
let mut output = String::with_capacity(16);
|
let mut output = String::with_capacity(16);
|
||||||
|
|
||||||
while output.len() < 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 {
|
let character = if offset < 10 {
|
||||||
(offset + b'0') as char
|
(offset + b'0') as char
|
||||||
} else if offset < 36 {
|
} else if offset < 36 {
|
||||||
(offset + 55) as char
|
(offset + 55) as char // A-Z
|
||||||
} else {
|
} else {
|
||||||
(offset + 61) as char
|
(offset + 61) as char // a-z
|
||||||
};
|
};
|
||||||
|
|
||||||
output.push(character);
|
output.push(character);
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ use crate::nnid::timezones::{OFFSET_FROM_TIMEZONE};
|
||||||
use crate::Pool;
|
use crate::Pool;
|
||||||
use crate::xml::{Xml, YesNoVal};
|
use crate::xml::{Xml, YesNoVal};
|
||||||
use crate::email::send_verification_email;
|
use crate::email::send_verification_email;
|
||||||
use rand::Rng;
|
use rand::prelude::*;
|
||||||
// Not in use currently.
|
// Not in use currently.
|
||||||
//use mii::{get_image_png, get_image_tga};
|
//use mii::{get_image_png, get_image_tga};
|
||||||
use crate::mii_util::get_mii_img_url;
|
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 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 {
|
let AccountCreationData {
|
||||||
user_id,
|
user_id,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue