mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 09:28:11 +00:00
wip
This commit is contained in:
1 parent
b7739295a8
commit
0eb2f9f79c
4 files changed
+109
-7
No files matched your search
Generated
+62
-6
@@ -1523,6 +1523,15 @@ dependencies = [
|
||||
"generic-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "block-buffer"
|
||||
version = "0.11.0-rc.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e9ef36a6fcdb072aa548f3da057640ec10859eb4e91ddf526ee648d50c76a949"
|
||||
dependencies = [
|
||||
"hybrid-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "block-modes"
|
||||
version = "0.8.1"
|
||||
@@ -2088,7 +2097,7 @@ version = "0.4.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
|
||||
dependencies = [
|
||||
"crypto-common",
|
||||
"crypto-common 0.1.6",
|
||||
"inout",
|
||||
]
|
||||
|
||||
@@ -2349,6 +2358,12 @@ version = "0.9.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
|
||||
|
||||
[[package]]
|
||||
name = "const-oid"
|
||||
version = "0.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0dabb6555f92fb9ee4140454eb5dcd14c7960e1225c6d1a6cc361f032947713e"
|
||||
|
||||
[[package]]
|
||||
name = "const-random"
|
||||
version = "0.1.18"
|
||||
@@ -2657,6 +2672,15 @@ dependencies = [
|
||||
"typenum",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crypto-common"
|
||||
version = "0.2.0-rc.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a8235645834fbc6832939736ce2f2d08192652269e11010a6240f61b908a1c6"
|
||||
dependencies = [
|
||||
"hybrid-array",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crypto-mac"
|
||||
version = "0.10.0"
|
||||
@@ -2960,7 +2984,7 @@ version = "0.7.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
|
||||
dependencies = [
|
||||
"const-oid",
|
||||
"const-oid 0.9.6",
|
||||
"pem-rfc7468",
|
||||
"zeroize",
|
||||
]
|
||||
@@ -3184,11 +3208,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
||||
dependencies = [
|
||||
"block-buffer 0.10.4",
|
||||
"const-oid",
|
||||
"crypto-common",
|
||||
"const-oid 0.9.6",
|
||||
"crypto-common 0.1.6",
|
||||
"subtle",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.11.0-rc.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dac89f8a64533a9b0eaa73a68e424db0fb1fd6271c74cc0125336a05f090568d"
|
||||
dependencies = [
|
||||
"block-buffer 0.11.0-rc.5",
|
||||
"const-oid 0.10.1",
|
||||
"crypto-common 0.2.0-rc.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "diligent-date-parser"
|
||||
version = "0.1.4"
|
||||
@@ -4697,6 +4732,7 @@ dependencies = [
|
||||
"scraper 0.24.0",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sha2 0.11.0-rc.2",
|
||||
"test_data",
|
||||
"testing",
|
||||
"tokio",
|
||||
@@ -5160,6 +5196,15 @@ version = "2.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
|
||||
|
||||
[[package]]
|
||||
name = "hybrid-array"
|
||||
version = "0.4.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f471e0a81b2f90ffc0cb2f951ae04da57de8baa46fa99112b062a5173a5088d0"
|
||||
dependencies = [
|
||||
"typenum",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hyper"
|
||||
version = "0.14.28"
|
||||
@@ -9225,7 +9270,7 @@ version = "0.9.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
|
||||
dependencies = [
|
||||
"const-oid",
|
||||
"const-oid 0.9.6",
|
||||
"digest 0.10.7",
|
||||
"num-bigint-dig",
|
||||
"num-integer",
|
||||
@@ -10206,6 +10251,17 @@ dependencies = [
|
||||
"digest 0.10.7",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha2"
|
||||
version = "0.11.0-rc.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d1e3878ab0f98e35b2df35fe53201d088299b41a6bb63e3e34dada2ac4abd924"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"cpufeatures",
|
||||
"digest 0.11.0-rc.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha3"
|
||||
version = "0.10.8"
|
||||
@@ -13984,7 +14040,7 @@ dependencies = [
|
||||
"cookie 0.18.1",
|
||||
"core-foundation-sys",
|
||||
"crossbeam-utils 0.8.20",
|
||||
"crypto-common",
|
||||
"crypto-common 0.1.6",
|
||||
"deranged",
|
||||
"derive_more 0.99.17",
|
||||
"digest 0.10.7",
|
||||
|
||||
@@ -250,6 +250,7 @@ serde = { version = "1.0.219", features = ["derive"] }
|
||||
serde_derive = "1.0.219"
|
||||
serde_json = "1.0.140"
|
||||
serde_yaml = "0.9.34+deprecated"
|
||||
sha2 = "0.11.0-rc.2"
|
||||
sha3 = "0.10.8"
|
||||
tauri = { version = "2.8.3", features = ["unstable", "devtools"] } # NB: "devtools" prevents App Store distribution; "ubstable" is needed for window access
|
||||
tauri-plugin-dialog = "2.3.3"
|
||||
|
||||
@@ -33,6 +33,7 @@ regex.workspace = true
|
||||
scraper = "0.24.0"
|
||||
serde.workspace = true
|
||||
serde_json.workspace = true
|
||||
sha2.workspace = true
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
url.workspace = true
|
||||
uuid.workspace = true
|
||||
|
||||
+45
-1
@@ -4,9 +4,10 @@ use base64::prelude::BASE64_STANDARD;
|
||||
use byteorder::{LittleEndian, WriteBytesExt};
|
||||
use chrono::{TimeDelta, Utc};
|
||||
use log::error;
|
||||
use sha2::{Digest, Sha256};
|
||||
use crate::error::grok_client_error::GrokClientError;
|
||||
use crate::requests::index_page::index_parsers::parse_index_verification_token::VerificationToken;
|
||||
|
||||
use crate::requests::index_page::signature::signature_xs::signature_xs;
|
||||
/*
|
||||
xsid: str = Signature.generate_sign('/rest/app-chat/conversations/new', 'POST', self.verification_token, self.svg_data, self.numbers)
|
||||
|
||||
@@ -46,6 +47,7 @@ pub struct GenerateSignArgs<'a> {
|
||||
|
||||
pub svg_data: &'a str,
|
||||
|
||||
// "x_values"
|
||||
pub numbers: &'a [u8],
|
||||
}
|
||||
|
||||
@@ -75,6 +77,48 @@ pub fn generate_sign(args: GenerateSignArgs<'_>) -> Result<(), GrokClientError>
|
||||
|
||||
println!("r = {:?}", r);
|
||||
|
||||
// o = Signature.xs(r, svg, x_values)
|
||||
let o = signature_xs(&r, &args.svg_data, &args.numbers)?;
|
||||
|
||||
// generate_sign.o 4320e30fd70a3d70a3d7028f5c28f5c28f6028f5c28f5c28f60fd70a3d70a3d700
|
||||
println!("o = {:?}", o);
|
||||
|
||||
//msg = "!".join([method, path, str(n)]) + "obfiowerehiring" + o
|
||||
let method = args.method;
|
||||
let path = args.path;
|
||||
let msg = format!("{method}!{path}!{n}obfiowerehiring{o}");
|
||||
|
||||
// POST!/rest/app-chat/conversations/new!78721673obfiowerehiring4320e30fd70a3d70a3d7028f5c28f5c28f6028f5c28f5c28f60fd70a3d70a3d700
|
||||
println!("msg = {}", msg);
|
||||
|
||||
|
||||
//digest = sha256(msg.encode('utf-8')).digest()[:16]
|
||||
|
||||
let digest_all_bytes = Sha256::digest(msg.as_bytes()).to_vec();
|
||||
println!("digest_all_bytes = {:?}", digest_all_bytes);
|
||||
|
||||
if digest_all_bytes.len() < 16 {
|
||||
error!("Digest is too short: {}", digest_all_bytes.len());
|
||||
return Err(GrokClientError::BadSignatureInputs);
|
||||
}
|
||||
|
||||
let digest : &[u8] = &digest_all_bytes[.. 16];
|
||||
|
||||
println!("digest = {:?}", digest);
|
||||
|
||||
//prefix_byte = int(floor(random() if not random_float else random_float * 256))
|
||||
let prefix_byte = 0; // NB: This is bad code? floor(random) = 0 always.
|
||||
|
||||
//assembled = bytes([prefix_byte]) + r + t + digest + bytes([3])
|
||||
|
||||
let mut assembled = vec![prefix_byte];
|
||||
assembled.extend(r);
|
||||
assembled.extend(t);
|
||||
assembled.extend(digest);
|
||||
assembled.extend([3]);
|
||||
|
||||
println!("assembled = {:?}", assembled);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user