A wrapper type that marks the inner value as secret. This is used to prevent accidental logging
of secrets by overriding the Debug and Display implementations to redact the value. This
redaction can be bypassed by enabling the dangerous-crypto-debug feature.
A trait for types that can expose their inner secret value. This is implemented for
Sensitive<T> and can be implemented for other wrapper types as needed. The expose and
expose_owned methods are intentionally explicit and require justification in comments to
prevent accidental misuse.