- Replace weak ECB encryption with AES-128-CBC + PKCS7 padding - Implement secure key derivation: SHA256(password + salt) - Add cryptographically secure random IV generation - Create standalone C++ decryptor for external binary decryption - Update stub to require external decryption workflow - Maintain cross-platform compatibility (Linux/Windows) - Add proper error handling and padding validation Security improvements: - AES-128-CBC instead of ECB (prevents pattern analysis) - Random IVs prevent identical plaintext producing identical ciphertext - Password-based key derivation with salt - PKCS7 padding with validation - External decryption prevents embedded keys
308 lines
7.4 KiB
TOML
308 lines
7.4 KiB
TOML
# This file is automatically @generated by Cargo.
|
|
# It is not intended for manual editing.
|
|
version = 4
|
|
|
|
[[package]]
|
|
name = "aead"
|
|
version = "0.5.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
|
|
dependencies = [
|
|
"crypto-common",
|
|
"generic-array",
|
|
]
|
|
|
|
[[package]]
|
|
name = "aes"
|
|
version = "0.8.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"cipher",
|
|
"cpufeatures",
|
|
]
|
|
|
|
[[package]]
|
|
name = "aes-gcm"
|
|
version = "0.10.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
|
|
dependencies = [
|
|
"aead",
|
|
"aes",
|
|
"cipher",
|
|
"ctr",
|
|
"ghash",
|
|
"subtle",
|
|
]
|
|
|
|
[[package]]
|
|
name = "argon2"
|
|
version = "0.5.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
|
|
dependencies = [
|
|
"base64ct",
|
|
"blake2",
|
|
"cpufeatures",
|
|
"password-hash",
|
|
]
|
|
|
|
[[package]]
|
|
name = "base64ct"
|
|
version = "1.8.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a"
|
|
|
|
[[package]]
|
|
name = "blake2"
|
|
version = "0.10.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
|
|
dependencies = [
|
|
"digest",
|
|
]
|
|
|
|
[[package]]
|
|
name = "block-buffer"
|
|
version = "0.10.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
|
|
dependencies = [
|
|
"generic-array",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cfg-if"
|
|
version = "1.0.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
|
|
|
[[package]]
|
|
name = "cipher"
|
|
version = "0.4.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
|
|
dependencies = [
|
|
"crypto-common",
|
|
"inout",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cpufeatures"
|
|
version = "0.2.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
|
|
dependencies = [
|
|
"libc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crypt"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"aes",
|
|
"aes-gcm",
|
|
"argon2",
|
|
"crypto",
|
|
"rand",
|
|
"sha2",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crypto"
|
|
version = "0.4.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "17d88231face754cdb045c1b65912a0f4ff78ca24bf371e30a4a8cfa993b3897"
|
|
dependencies = [
|
|
"crypto-common",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crypto-common"
|
|
version = "0.1.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
|
|
dependencies = [
|
|
"generic-array",
|
|
"rand_core",
|
|
"typenum",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ctr"
|
|
version = "0.9.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
|
|
dependencies = [
|
|
"cipher",
|
|
]
|
|
|
|
[[package]]
|
|
name = "digest"
|
|
version = "0.10.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
|
dependencies = [
|
|
"block-buffer",
|
|
"crypto-common",
|
|
"subtle",
|
|
]
|
|
|
|
[[package]]
|
|
name = "generic-array"
|
|
version = "0.14.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
|
|
dependencies = [
|
|
"typenum",
|
|
"version_check",
|
|
]
|
|
|
|
[[package]]
|
|
name = "getrandom"
|
|
version = "0.2.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"libc",
|
|
"wasi",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ghash"
|
|
version = "0.5.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1"
|
|
dependencies = [
|
|
"opaque-debug",
|
|
"polyval",
|
|
]
|
|
|
|
[[package]]
|
|
name = "inout"
|
|
version = "0.1.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
|
|
dependencies = [
|
|
"generic-array",
|
|
]
|
|
|
|
[[package]]
|
|
name = "libc"
|
|
version = "0.2.178"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
|
|
|
|
[[package]]
|
|
name = "opaque-debug"
|
|
version = "0.3.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
|
|
|
|
[[package]]
|
|
name = "password-hash"
|
|
version = "0.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
|
|
dependencies = [
|
|
"base64ct",
|
|
"rand_core",
|
|
"subtle",
|
|
]
|
|
|
|
[[package]]
|
|
name = "polyval"
|
|
version = "0.6.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"cpufeatures",
|
|
"opaque-debug",
|
|
"universal-hash",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ppv-lite86"
|
|
version = "0.2.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
|
|
|
[[package]]
|
|
name = "rand"
|
|
version = "0.8.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
|
dependencies = [
|
|
"libc",
|
|
"rand_chacha",
|
|
"rand_core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rand_chacha"
|
|
version = "0.3.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
|
dependencies = [
|
|
"ppv-lite86",
|
|
"rand_core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rand_core"
|
|
version = "0.6.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
|
dependencies = [
|
|
"getrandom",
|
|
]
|
|
|
|
[[package]]
|
|
name = "sha2"
|
|
version = "0.10.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"cpufeatures",
|
|
"digest",
|
|
]
|
|
|
|
[[package]]
|
|
name = "subtle"
|
|
version = "2.6.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
|
|
|
[[package]]
|
|
name = "typenum"
|
|
version = "1.16.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
|
|
|
|
[[package]]
|
|
name = "universal-hash"
|
|
version = "0.5.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
|
|
dependencies = [
|
|
"crypto-common",
|
|
"subtle",
|
|
]
|
|
|
|
[[package]]
|
|
name = "version_check"
|
|
version = "0.9.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
|
|
|
[[package]]
|
|
name = "wasi"
|
|
version = "0.11.0+wasi-snapshot-preview1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|