Struct KeytoolStorage
pub struct KeytoolStorage { /* private fields */ }
Implementations§
§impl KeytoolStorage
impl KeytoolStorage
pub fn new() -> KeytoolStorage
pub fn new() -> KeytoolStorage
Returns a new KeytoolStorage that will use the IOTA binary in PATH.
pub fn new_with_custom_bin(iota_bin: impl AsRef<Path>) -> KeytoolStorage
pub fn new_with_custom_bin(iota_bin: impl AsRef<Path>) -> KeytoolStorage
Returns a new KeytoolStorage that will use the provided IOTA binary.
pub fn signer(&self) -> KeytoolSignerBuilder
pub fn signer(&self) -> KeytoolSignerBuilder
Returns a KeytoolSignerBuilder to construct a super::KeytoolSigner after selecting an address.
pub fn generate_key(
&self,
key_scheme: SignatureScheme,
) -> Result<(PublicKey, String), Error>
pub fn generate_key( &self, key_scheme: SignatureScheme, ) -> Result<(PublicKey, String), Error>
Generates a new keypair of type key_scheme
.
Returns the resulting [PublicKey] together with its alias.
pub fn insert_key(&self, key: IotaKeyPair) -> Result<String, Error>
pub fn insert_key(&self, key: IotaKeyPair) -> Result<String, Error>
Inserts a new key in this keytool. Returns the alias assigned to the inserted key.
pub fn sign_raw(
&self,
address: IotaAddress,
data: impl AsRef<[u8]>,
) -> Result<Vec<u8>, Error>
pub fn sign_raw( &self, address: IotaAddress, data: impl AsRef<[u8]>, ) -> Result<Vec<u8>, Error>
Uses the private key corresponding to [IotaAddress] address
to sign data
.
§Notes
- SHA-512 is used to produce signatures when the key is ed25519.
- SHA-256 is used otherwise.
pub fn update_alias(
&self,
old_alias: &str,
new_alias: Option<&str>,
) -> Result<(), Error>
pub fn update_alias( &self, old_alias: &str, new_alias: Option<&str>, ) -> Result<(), Error>
Updates an alias from old_alias
to new_alias
If no value for new_alias
is provided, a randomly generated one will be used.
pub fn get_key(
&self,
address: IotaAddress,
) -> Result<Option<(PublicKey, String)>, Error>
pub fn get_key( &self, address: IotaAddress, ) -> Result<Option<(PublicKey, String)>, Error>
Returns the [PublicKey] for the given [IotaAddress] together with its alias.
pub fn get_key_by_alias(&self, alias: &str) -> Result<Option<PublicKey>, Error>
pub fn get_key_by_alias(&self, alias: &str) -> Result<Option<PublicKey>, Error>
Returns the [PublicKey] that has the given alias, if any.
Trait Implementations§
§impl Clone for KeytoolStorage
impl Clone for KeytoolStorage
§fn clone(&self) -> KeytoolStorage
fn clone(&self) -> KeytoolStorage
Returns a copy 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 more§impl Default for KeytoolStorage
impl Default for KeytoolStorage
§fn default() -> KeytoolStorage
fn default() -> KeytoolStorage
Returns the “default value” for a type. Read more
Source§impl From<KeytoolStorage> for Storage<KeytoolStorage, KeytoolStorage>
impl From<KeytoolStorage> for Storage<KeytoolStorage, KeytoolStorage>
Source§fn from(keytool: KeytoolStorage) -> Storage<KeytoolStorage, KeytoolStorage>
fn from(keytool: KeytoolStorage) -> Storage<KeytoolStorage, KeytoolStorage>
Converts to this type from the input type.
Source§impl JwkStorage for KeytoolStorage
impl JwkStorage for KeytoolStorage
Source§fn generate<'life0, 'async_trait>(
&'life0 self,
key_type: KeyType,
alg: JwsAlgorithm,
) -> Pin<Box<dyn Future<Output = Result<JwkGenOutput, SingleStructError<KeyStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
KeytoolStorage: 'async_trait,
fn generate<'life0, 'async_trait>(
&'life0 self,
key_type: KeyType,
alg: JwsAlgorithm,
) -> Pin<Box<dyn Future<Output = Result<JwkGenOutput, SingleStructError<KeyStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
KeytoolStorage: 'async_trait,
Generate a new key represented as a JSON Web Key. Read more
Source§fn insert<'life0, 'async_trait>(
&'life0 self,
jwk: Jwk,
) -> Pin<Box<dyn Future<Output = Result<KeyId, SingleStructError<KeyStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
KeytoolStorage: 'async_trait,
fn insert<'life0, 'async_trait>(
&'life0 self,
jwk: Jwk,
) -> Pin<Box<dyn Future<Output = Result<KeyId, SingleStructError<KeyStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
KeytoolStorage: 'async_trait,
Insert an existing JSON Web Key into the storage. Read more
Source§fn sign<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
key_id: &'life1 KeyId,
data: &'life2 [u8],
_pk_jwk: &'life3 Jwk,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, SingleStructError<KeyStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
KeytoolStorage: 'async_trait,
fn sign<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
key_id: &'life1 KeyId,
data: &'life2 [u8],
_pk_jwk: &'life3 Jwk,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, SingleStructError<KeyStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
KeytoolStorage: 'async_trait,
Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
_key_id: &'life1 KeyId,
) -> Pin<Box<dyn Future<Output = Result<(), SingleStructError<KeyStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
KeytoolStorage: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
_key_id: &'life1 KeyId,
) -> Pin<Box<dyn Future<Output = Result<(), SingleStructError<KeyStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
KeytoolStorage: 'async_trait,
Deletes the key identified by
key_id
. Read moreSource§fn exists<'life0, 'life1, 'async_trait>(
&'life0 self,
key_id: &'life1 KeyId,
) -> Pin<Box<dyn Future<Output = Result<bool, SingleStructError<KeyStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
KeytoolStorage: 'async_trait,
fn exists<'life0, 'life1, 'async_trait>(
&'life0 self,
key_id: &'life1 KeyId,
) -> Pin<Box<dyn Future<Output = Result<bool, SingleStructError<KeyStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
KeytoolStorage: 'async_trait,
Returns
true
if the key with the given key_id
exists in storage, false
otherwise.Source§impl KeyIdStorage for KeytoolStorage
impl KeyIdStorage for KeytoolStorage
Source§fn insert_key_id<'life0, 'async_trait>(
&'life0 self,
method_digest: MethodDigest,
key_id: KeyId,
) -> Pin<Box<dyn Future<Output = Result<(), SingleStructError<KeyIdStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
KeytoolStorage: 'async_trait,
fn insert_key_id<'life0, 'async_trait>(
&'life0 self,
method_digest: MethodDigest,
key_id: KeyId,
) -> Pin<Box<dyn Future<Output = Result<(), SingleStructError<KeyIdStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
KeytoolStorage: 'async_trait,
Source§fn get_key_id<'life0, 'life1, 'async_trait>(
&'life0 self,
method_digest: &'life1 MethodDigest,
) -> Pin<Box<dyn Future<Output = Result<KeyId, SingleStructError<KeyIdStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
KeytoolStorage: 'async_trait,
fn get_key_id<'life0, 'life1, 'async_trait>(
&'life0 self,
method_digest: &'life1 MethodDigest,
) -> Pin<Box<dyn Future<Output = Result<KeyId, SingleStructError<KeyIdStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
KeytoolStorage: 'async_trait,
Obtain the
KeyId
associated with the given MethodDigest
.Source§fn delete_key_id<'life0, 'life1, 'async_trait>(
&'life0 self,
method_digest: &'life1 MethodDigest,
) -> Pin<Box<dyn Future<Output = Result<(), SingleStructError<KeyIdStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
KeytoolStorage: 'async_trait,
fn delete_key_id<'life0, 'life1, 'async_trait>(
&'life0 self,
method_digest: &'life1 MethodDigest,
) -> Pin<Box<dyn Future<Output = Result<(), SingleStructError<KeyIdStorageErrorKind>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
KeytoolStorage: 'async_trait,
Auto Trait Implementations§
impl Freeze for KeytoolStorage
impl RefUnwindSafe for KeytoolStorage
impl Send for KeytoolStorage
impl Sync for KeytoolStorage
impl Unpin for KeytoolStorage
impl UnwindSafe for KeytoolStorage
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self
to type T
. The semantics of numeric casting with the as
operator are followed, so <T as As>::as_::<U>
can be used in the same way as T as U
for numeric conversions. Read more§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> Conv for T
impl<T> Conv for T
§impl<T> ConvertTo<T> for Twhere
T: Send,
impl<T> ConvertTo<T> for Twhere
T: Send,
fn convert(self) -> Result<T, Error>
fn convert_unchecked(self) -> T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. 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§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 Request
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.