0.3.17-pre.002
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-store-api/tests/security_hardening.rs
|
||||
// version: 3
|
||||
// version: 4
|
||||
|
||||
//! Adversarial and retention-race canaries for the Store API RAW foundation.
|
||||
|
||||
@@ -166,3 +166,62 @@ fn v0_3_8_pre_003_inspection_summaries_and_counts_reject_payload_shaped_or_incon
|
||||
assert!(ksp_store_api::RawInspectionPage::<u64>::try_new(std::vec::Vec::new(), 1, 2).is_err());
|
||||
return;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn v0_3_17_pre_002_variant_detail_debug_keeps_complete_payload_material_redacted() {
|
||||
let network = match ksp_store_api::RawNetworkId::new("mainnet".to_owned()) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let transaction_reference = ksp_store_api::RawTransactionReference::new(network, ksp_store_api::RawTransactionSignature::new([0x71_u8; 64]));
|
||||
let variant_id = match ksp_store_api::RawTransactionVariantId::try_new(1) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let variant_reference = ksp_store_api::RawTransactionVariantReference::new(transaction_reference.clone(), variant_id);
|
||||
let format = match ksp_store_api::RawFormatId::new("ksp.solana.raw_transaction".to_owned()) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let created_at = match ksp_store_api::RawTimestamp::from_unix_millis(1_000) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let payload_bytes = HOSTILE_MARKER.as_bytes().to_vec().into_boxed_slice();
|
||||
let payload_size = match u64::try_from(payload_bytes.len()) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let summary = ksp_store_api::RawTransactionVariantSummary::try_new(
|
||||
variant_reference,
|
||||
ksp_store_api::RawTransactionVariantOrigin::Native,
|
||||
77,
|
||||
std::option::Option::None,
|
||||
format.clone(),
|
||||
1,
|
||||
ksp_store_api::RawRetentionState::Full,
|
||||
std::option::Option::Some(payload_size),
|
||||
true,
|
||||
1,
|
||||
created_at,
|
||||
);
|
||||
let summary = match summary {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let payload = ksp_store_api::RawPayload::try_new(format, 1, payload_bytes, ksp_store_api::RawContentHash::new([0x72_u8; 32]));
|
||||
let payload = match payload {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let transaction = ksp_store_api::RawTransaction::new(transaction_reference, 77, std::option::Option::None, payload);
|
||||
let detail = ksp_store_api::RawTransactionVariantDetail::try_new(summary, std::option::Option::Some(transaction));
|
||||
let detail = match detail {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(_) => return,
|
||||
};
|
||||
let debug = std::format!("{detail:?}");
|
||||
assert!(!debug.contains(HOSTILE_MARKER));
|
||||
assert!(!debug.contains("payload: ["));
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user