Skip to main content

Module hex

Module hex 

Source
Expand description

Hexadecimal decoding trait.

This trait provides secure, explicit decoding of hexadecimal strings to byte vectors. It is designed for handling untrusted input in cryptographic contexts, such as decoding hex-encoded keys or nonces.

Requires the encoding-hex feature.

§Security Notes

  • Treat all input as untrusted**: validate hex strings upstream before wrapping in secrets. Invalid input fails immediately. in secrets. Invalid hex may indicate tampering or injection attempts.
  • Heap allocation: Returns Vec<u8> — wrap in Fixed or Dynamic to store as a secret.
  • Case-insensitive: Accepts both uppercase and lowercase hex digits.

§Example

use secure_gate::{FromHexStr, Fixed};
{
let bytes = "01234567".try_from_hex().unwrap();
assert_eq!(bytes, vec![0x01, 0x23, 0x45, 0x67]);

// Wrap result in a secret immediately
let secret: Fixed<[u8; 4]> = Fixed::try_from_hex("deadbeef").unwrap();

// Error on invalid input
assert!("xyz!".try_from_hex().is_err());
}

Traits§

FromHexStr
Extension trait for decoding hexadecimal strings into byte vectors.