pub struct SecureConfigManager { /* private fields */ }Expand description
Secure configuration manager with encryption and keychain-backed key storage
Implementations§
Source§impl SecureConfigManager
impl SecureConfigManager
Sourcepub async fn new(storage: Box<dyn SecureStorage>) -> Result<Self, AppError>
pub async fn new(storage: Box<dyn SecureStorage>) -> Result<Self, AppError>
Create a new secure config manager
Loads or generates an encryption key stored in the OS keychain.
Sourcepub async fn with_storage(
storage: Box<dyn SecureStorage>,
) -> Result<Self, AppError>
pub async fn with_storage( storage: Box<dyn SecureStorage>, ) -> Result<Self, AppError>
Create with provided storage (for testing)
Sourcepub fn encrypt<T: Serialize>(&self, data: &T) -> Result<Vec<u8>, AppError>
pub fn encrypt<T: Serialize>(&self, data: &T) -> Result<Vec<u8>, AppError>
Encrypt serializable data
Sourcepub fn decrypt<T: DeserializeOwned>(
&self,
encrypted: &[u8],
) -> Result<T, AppError>
pub fn decrypt<T: DeserializeOwned>( &self, encrypted: &[u8], ) -> Result<T, AppError>
Decrypt to deserializable data
Auto Trait Implementations§
impl Freeze for SecureConfigManager
impl !RefUnwindSafe for SecureConfigManager
impl Send for SecureConfigManager
impl Sync for SecureConfigManager
impl Unpin for SecureConfigManager
impl !UnwindSafe for SecureConfigManager
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].