Files
khadhroony-solana-project/crates/ksp-raw-transaction-lib/tests/security_hardening.rs

29 lines
1.5 KiB
Rust

// file: crates/ksp-raw-transaction-lib/tests/security_hardening.rs
// version: 2
//! Adversarial canaries for the common RAW Transaction foundation.
#[test]
fn pre_002_signature_errors_never_echo_hostile_input() {
let hostile = format!("{}0", "A".repeat(63));
let result = ksp_raw_transaction_lib::parse_raw_transaction_signature(hostile.as_str());
assert!(result.is_err());
if let std::result::Result::Err(error) = result {
assert_eq!(error.code(), ksp_raw_transaction_lib::ERROR_CODE_RAW_TRANSACTION_SIGNATURE_INVALID);
assert!(!std::format!("{error:?}").contains(hostile.as_str()));
assert!(!error.to_string().contains(hostile.as_str()));
}
return;
}
#[test]
fn pre_002_public_error_codes_are_stable_and_domain_scoped() {
assert_eq!(ksp_raw_transaction_lib::ERROR_CODE_RAW_TRANSACTION_CANONICALIZATION_INVALID.domain(), "raw_transaction");
assert_eq!(ksp_raw_transaction_lib::ERROR_CODE_RAW_TRANSACTION_CANONICALIZATION_INVALID.code(), "canonicalization_invalid");
assert_eq!(ksp_raw_transaction_lib::ERROR_CODE_RAW_TRANSACTION_MATERIAL_INVALID.domain(), "raw_transaction");
assert_eq!(ksp_raw_transaction_lib::ERROR_CODE_RAW_TRANSACTION_MATERIAL_INVALID.code(), "material_invalid");
assert_eq!(ksp_raw_transaction_lib::ERROR_CODE_RAW_TRANSACTION_SIGNATURE_INVALID.domain(), "raw_transaction");
assert_eq!(ksp_raw_transaction_lib::ERROR_CODE_RAW_TRANSACTION_SIGNATURE_INVALID.code(), "signature_invalid");
return;
}