pub struct SecurityState {
version: u64,
}Expand description
The security state is a signed object attesting to the security state of a user.
It contains a version, which can only ever increment. Based on the version, old formats and features are blocked. This prevents a server from downgrading a user’s account features, because only the user can create this signed object.
Fields§
§version: u64The version of the security state gates feature availability. It can only ever be incremented. Components can use it to gate format support of specific formats (like item url hashes).
Implementations§
Source§impl SecurityState
impl SecurityState
Sourcepub fn new() -> Self
pub fn new() -> Self
Initialize a new SecurityState for the given user ID, to the lowest version possible.
The user needs to be a v2 encryption user.
Sourcepub fn sign<Ids: KeySlotIds>(
&self,
signing_key_id: Ids::Signing,
ctx: &mut KeyStoreContext<'_, Ids>,
) -> Result<SignedSecurityState, CryptoError>
pub fn sign<Ids: KeySlotIds>( &self, signing_key_id: Ids::Signing, ctx: &mut KeyStoreContext<'_, Ids>, ) -> Result<SignedSecurityState, CryptoError>
Signs the SecurityState with the provided signing key ID from the context.
Trait Implementations§
Source§impl Clone for SecurityState
impl Clone for SecurityState
Source§fn clone(&self) -> SecurityState
fn clone(&self) -> SecurityState
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<UT> ConvertError<UT> for SecurityState
impl<UT> ConvertError<UT> for SecurityState
fn try_convert_unexpected_callback_error( e: UnexpectedUniFFICallbackError, ) -> Result<Self>
Source§impl Debug for SecurityState
impl Debug for SecurityState
Source§impl Default for SecurityState
impl Default for SecurityState
Source§impl<'de> Deserialize<'de> for SecurityState
impl<'de> Deserialize<'de> for SecurityState
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<UT> FfiConverter<UT> for SecurityState
impl<UT> FfiConverter<UT> for SecurityState
Source§const TYPE_ID_META: MetadataBuffer
const TYPE_ID_META: MetadataBuffer
Type ID metadata, serialized into a [MetadataBuffer].
Source§type FfiType = RustBuffer
type FfiType = RustBuffer
The low-level type used for passing values of this type over the FFI. Read more
Source§fn lower(v: Self) -> RustBuffer
fn lower(v: Self) -> RustBuffer
Lower a rust value of the target type, into an FFI value of type Self::FfiType. Read more
Source§fn try_lift(buf: RustBuffer) -> Result<Self>
fn try_lift(buf: RustBuffer) -> Result<Self>
Lift a rust value of the target type, from an FFI value of type Self::FfiType. Read more
Source§impl<UT> Lift<UT> for SecurityState
impl<UT> Lift<UT> for SecurityState
Source§impl<UT> LiftRef<UT> for SecurityState
impl<UT> LiftRef<UT> for SecurityState
type LiftType = SecurityState
Source§impl<UT> LiftReturn<UT> for SecurityState
impl<UT> LiftReturn<UT> for SecurityState
Source§type ReturnType = <SecurityState as Lift<UT>>::FfiType
type ReturnType = <SecurityState as Lift<UT>>::FfiType
FFI return type for trait interfaces
Source§fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>
fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>
Lift a successfully returned value from a trait interface
§fn lift_foreign_return(
ffi_return: Self::ReturnType,
call_status: RustCallStatus,
) -> Self
fn lift_foreign_return( ffi_return: Self::ReturnType, call_status: RustCallStatus, ) -> Self
Lift a foreign returned value from a trait interface Read more
§fn lift_error(_buf: RustBuffer) -> Self
fn lift_error(_buf: RustBuffer) -> Self
Lift a Rust value for a callback interface method error result Read more
§fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self
fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self
Lift a Rust value for an unexpected callback interface error Read more
Source§impl<UT> Lower<UT> for SecurityState
impl<UT> Lower<UT> for SecurityState
Source§impl<UT> LowerError<UT> for SecurityState
impl<UT> LowerError<UT> for SecurityState
Source§fn lower_error(obj: Self) -> RustBuffer
fn lower_error(obj: Self) -> RustBuffer
Lower this value for scaffolding function return Read more
Source§impl<UT> LowerReturn<UT> for SecurityState
impl<UT> LowerReturn<UT> for SecurityState
Source§type ReturnType = <SecurityState as Lower<UT>>::FfiType
type ReturnType = <SecurityState as Lower<UT>>::FfiType
The type that should be returned by scaffolding functions for this type. Read more
Source§fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>
fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>
Lower the return value from an scaffolding call Read more
§fn handle_failed_lift(
error: LiftArgsError,
) -> Result<Self::ReturnType, RustCallError>
fn handle_failed_lift( error: LiftArgsError, ) -> Result<Self::ReturnType, RustCallError>
Lower the return value for failed argument lifts Read more
Source§impl Serialize for SecurityState
impl Serialize for SecurityState
Source§impl<UT> TypeId<UT> for SecurityState
impl<UT> TypeId<UT> for SecurityState
const TYPE_ID_META: MetadataBuffer
Auto Trait Implementations§
impl Freeze for SecurityState
impl RefUnwindSafe for SecurityState
impl Send for SecurityState
impl Sync for SecurityState
impl Unpin for SecurityState
impl UnsafeUnpin for SecurityState
impl UnwindSafe for SecurityState
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
§fn new_handle(value: Arc<T>) -> Handle
fn new_handle(value: Arc<T>) -> Handle
Create a new handle for an Arc value Read more
§unsafe fn clone_handle(handle: Handle) -> Handle
unsafe fn clone_handle(handle: Handle) -> Handle
Clone a handle Read more
§unsafe fn consume_handle(handle: Handle) -> Arc<T>
unsafe fn consume_handle(handle: Handle) -> Arc<T>
Consume a handle, getting back the initial
Arc<> Read more§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