pub struct InnerSecret<T: Zeroize>(/* private fields */);Expand description
Owned, zeroizing secret extracted via [RevealSecret::into_inner].
InnerSecret<T> preserves the zeroization contract by wrapping
zeroize::Zeroizing<T>, while restoring a strict redaction policy for Debug:
formatting this type always prints [REDACTED], regardless of T.
This is not a secret wrapper like Fixed or
Dynamic — it is the owned extraction result from
into_inner(). It implements
Deref<Target = T> (the only type in this crate that derefs to the secret).
Use into_zeroizing only when an API explicitly requires
a Zeroizing<T> value.
§Examples
use secure_gate::{Fixed, RevealSecret};
let key = Fixed::new([0xABu8; 4]);
let owned = key.into_inner();
// Deref access to the inner value.
assert_eq!(owned[0], 0xAB);
// Debug is redacted.
assert_eq!(format!("{:?}", owned), "[REDACTED]");
// Convert to Zeroizing<T> for interop.
let z = owned.into_zeroizing();See also EncodedSecret — the encoded-string counterpart.
Implementations§
Source§impl<T: Zeroize> InnerSecret<T>
impl<T: Zeroize> InnerSecret<T>
Sourcepub fn into_zeroizing(self) -> Zeroizing<T>
pub fn into_zeroizing(self) -> Zeroizing<T>
Unwraps and returns the underlying zeroize::Zeroizing<T>.
This is an explicit escape hatch for interoperability with APIs that accept
Zeroizing<T> directly.
Trait Implementations§
Source§impl<T: Zeroize> Debug for InnerSecret<T>
impl<T: Zeroize> Debug for InnerSecret<T>
Source§impl<T: Zeroize> Deref for InnerSecret<T>
impl<T: Zeroize> Deref for InnerSecret<T>
Auto Trait Implementations§
impl<T> Freeze for InnerSecret<T>where
T: Freeze,
impl<T> RefUnwindSafe for InnerSecret<T>where
T: RefUnwindSafe,
impl<T> Send for InnerSecret<T>where
T: Send,
impl<T> Sync for InnerSecret<T>where
T: Sync,
impl<T> Unpin for InnerSecret<T>where
T: Unpin,
impl<T> UnsafeUnpin for InnerSecret<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for InnerSecret<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more