Expand description
Compatibility façade for negative fixture primitives.
This crate keeps existing uselesskey_core_negative paths stable while
delegating to focused microcrates:
uselesskey_core_negative_derfor DER corruption helpers.uselesskey_core_negative_pemfor PEM corruption helpers.
§Examples
Corrupt a PEM string with a specific strategy:
use uselesskey_core_negative::{corrupt_pem, CorruptPem};
let pem = "-----BEGIN PUBLIC KEY-----\nABC=\n-----END PUBLIC KEY-----\n";
let bad = corrupt_pem(pem, CorruptPem::BadHeader);
assert!(bad.starts_with("-----BEGIN CORRUPTED KEY-----"));Deterministic DER corruption from a variant string:
use uselesskey_core_negative::corrupt_der_deterministic;
let der = vec![0x30, 0x82, 0x01, 0x22, 0x10, 0x20];
let a = corrupt_der_deterministic(&der, "corrupt:test-v1");
let b = corrupt_der_deterministic(&der, "corrupt:test-v1");
assert_eq!(a, b); // same variant ⇒ same corruptionEnums§
- Corrupt
Pem - Strategies for corrupting PEM-encoded data.
Functions§
- corrupt_
der_ deterministic - Choose a corruption strategy deterministically from
variantand apply it toder. - corrupt_
pem - Apply a specific
CorruptPemcorruption strategy to the given PEM string. - corrupt_
pem_ deterministic - Choose a corruption strategy deterministically from
variantand apply it topem. - flip_
byte - XOR the byte at
offsetwith0x01, returning the original ifoffsetis out of range. - truncate_
der - Truncate
derto at mostlenbytes, returning the original if already shorter.