Struct SignedPublicKey
pub struct SignedPublicKey {
pub primary_key: PublicKey,
pub details: SignedKeyDetails,
pub public_subkeys: Vec<SignedPublicSubKey>,
}Expand description
An OpenPGP public key (“Transferable Public Key”, also known as an “OpenPGP certificate”).
This object combines primary and subkey material, identity components, and a set of self-signatures (and optionally third party signatures).
This format can be used to transfer a public key to other OpenPGP users.
Fields§
§primary_key: PublicKey§details: SignedKeyDetails§public_subkeys: Vec<SignedPublicSubKey>Implementations§
§impl SignedPublicKey
impl SignedPublicKey
pub fn new( primary_key: PublicKey, details: SignedKeyDetails, public_subkeys: Vec<SignedPublicSubKey>, ) -> SignedPublicKey
pub fn verify_bindings(&self) -> Result<(), Error>
pub fn verify_bindings(&self) -> Result<(), Error>
Verifies all stored bindings.
pub fn to_armored_writer( &self, writer: &mut impl Write, opts: ArmorOptions<'_>, ) -> Result<(), Error>
pub fn to_armored_bytes(&self, opts: ArmorOptions<'_>) -> Result<Vec<u8>, Error>
pub fn to_armored_string(&self, opts: ArmorOptions<'_>) -> Result<String, Error>
§impl SignedPublicKey
impl SignedPublicKey
pub fn bind_with_signing_key<R, K>(
rng: R,
primary_signer: &K,
primary_key: PublicKey,
details: KeyDetails,
key_pw: &Password,
public_subkeys: Vec<SignedPublicSubKey>,
) -> Result<SignedPublicKey, Error>
pub fn bind_with_signing_key<R, K>( rng: R, primary_signer: &K, primary_key: PublicKey, details: KeyDetails, key_pw: &Password, public_subkeys: Vec<SignedPublicSubKey>, ) -> Result<SignedPublicKey, Error>
This uses a separately provided signing key to bind a set of components (public primary
and subkeys, and identities) into a SignedPublicKey.
This is useful when the private key material of the primary key is HSM-backed.
NOTE: When binding signing-capable subkeys to a primary, the caller must ensure that an “Embedded primary key binding signature”, is included. See https://www.rfc-editor.org/rfc/rfc9580.html#sigtype-primary-binding
Trait Implementations§
§impl Clone for SignedPublicKey
impl Clone for SignedPublicKey
§fn clone(&self) -> SignedPublicKey
fn clone(&self) -> SignedPublicKey
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl DcKey for SignedPublicKey
impl DcKey for SignedPublicKey
Source§fn to_asc(&self, header: Option<(&str, &str)>) -> String
fn to_asc(&self, header: Option<(&str, &str)>) -> String
Source§fn is_private() -> bool
fn is_private() -> bool
Source§fn dc_fingerprint(&self) -> Fingerprint
fn dc_fingerprint(&self) -> Fingerprint
Source§fn from_slice(bytes: &[u8]) -> Result<Self>
fn from_slice(bytes: &[u8]) -> Result<Self>
Source§fn from_base64(data: &str) -> Result<Self>
fn from_base64(data: &str) -> Result<Self>
§impl Debug for SignedPublicKey
impl Debug for SignedPublicKey
§impl Deserializable for SignedPublicKey
impl Deserializable for SignedPublicKey
§fn from_packets<'a, I>(
packets: Peekable<I>,
) -> Box<dyn Iterator<Item = Result<SignedPublicKey, Error>> + 'a>
fn from_packets<'a, I>( packets: Peekable<I>, ) -> Box<dyn Iterator<Item = Result<SignedPublicKey, Error>> + 'a>
Parse a transferable key from packets. Ref: https://www.rfc-editor.org/rfc/rfc9580.html#name-transferable-public-keys
§fn matches_block_type(typ: BlockType) -> bool
fn matches_block_type(typ: BlockType) -> bool
§fn from_bytes<R>(bytes: R) -> Result<Self, Error>where
R: BufRead,
fn from_bytes<R>(bytes: R) -> Result<Self, Error>where
R: BufRead,
§fn from_string(
input: &str,
) -> Result<(Self, BTreeMap<String, Vec<String>>), Error>
fn from_string( input: &str, ) -> Result<(Self, BTreeMap<String, Vec<String>>), Error>
§fn from_string_many<'a>(
input: &'a str,
) -> Result<(Box<dyn Iterator<Item = Result<Self, Error>> + 'a>, BTreeMap<String, Vec<String>>), Error>
fn from_string_many<'a>( input: &'a str, ) -> Result<(Box<dyn Iterator<Item = Result<Self, Error>> + 'a>, BTreeMap<String, Vec<String>>), Error>
§fn from_armor_single<R>(
input: R,
) -> Result<(Self, BTreeMap<String, Vec<String>>), Error>where
R: Read,
fn from_armor_single<R>(
input: R,
) -> Result<(Self, BTreeMap<String, Vec<String>>), Error>where
R: Read,
§fn from_armor_single_buf<R>(
input: R,
) -> Result<(Self, BTreeMap<String, Vec<String>>), Error>where
R: BufRead,
fn from_armor_single_buf<R>(
input: R,
) -> Result<(Self, BTreeMap<String, Vec<String>>), Error>where
R: BufRead,
§fn from_armor_single_buf_with_options<R>(
input: R,
opt: DearmorOptions,
) -> Result<(Self, BTreeMap<String, Vec<String>>), Error>where
R: BufRead,
fn from_armor_single_buf_with_options<R>(
input: R,
opt: DearmorOptions,
) -> Result<(Self, BTreeMap<String, Vec<String>>), Error>where
R: BufRead,
§fn from_armor_many<'a, R>(
input: R,
) -> Result<(Box<dyn Iterator<Item = Result<Self, Error>> + 'a>, BTreeMap<String, Vec<String>>), Error>where
R: Read + 'a,
fn from_armor_many<'a, R>(
input: R,
) -> Result<(Box<dyn Iterator<Item = Result<Self, Error>> + 'a>, BTreeMap<String, Vec<String>>), Error>where
R: Read + 'a,
§fn from_armor_many_buf<'a, R>(
input: R,
) -> Result<(Box<dyn Iterator<Item = Result<Self, Error>> + 'a>, BTreeMap<String, Vec<String>>), Error>where
R: BufRead + 'a,
fn from_armor_many_buf<'a, R>(
input: R,
) -> Result<(Box<dyn Iterator<Item = Result<Self, Error>> + 'a>, BTreeMap<String, Vec<String>>), Error>where
R: BufRead + 'a,
§fn from_armor_many_buf_with_options<'a, R>(
input: R,
opt: DearmorOptions,
) -> Result<(Box<dyn Iterator<Item = Result<Self, Error>> + 'a>, BTreeMap<String, Vec<String>>), Error>where
R: BufRead + 'a,
fn from_armor_many_buf_with_options<'a, R>(
input: R,
opt: DearmorOptions,
) -> Result<(Box<dyn Iterator<Item = Result<Self, Error>> + 'a>, BTreeMap<String, Vec<String>>), Error>where
R: BufRead + 'a,
§fn from_bytes_many<'a, R>(
bytes: R,
) -> Result<Box<dyn Iterator<Item = Result<Self, Error>> + 'a>, Error>where
R: BufRead + 'a,
fn from_bytes_many<'a, R>(
bytes: R,
) -> Result<Box<dyn Iterator<Item = Result<Self, Error>> + 'a>, Error>where
R: BufRead + 'a,
§fn from_armor_file<P>(
path: P,
) -> Result<(Self, BTreeMap<String, Vec<String>>), Error>
fn from_armor_file<P>( path: P, ) -> Result<(Self, BTreeMap<String, Vec<String>>), Error>
§fn from_armor_file_many<P>(
path: P,
) -> Result<(Box<dyn Iterator<Item = Result<Self, Error>>>, BTreeMap<String, Vec<String>>), Error>
fn from_armor_file_many<P>( path: P, ) -> Result<(Box<dyn Iterator<Item = Result<Self, Error>>>, BTreeMap<String, Vec<String>>), Error>
§fn from_file_many<P>(
path: P,
) -> Result<Box<dyn Iterator<Item = Result<Self, Error>>>, Error>
fn from_file_many<P>( path: P, ) -> Result<Box<dyn Iterator<Item = Result<Self, Error>>>, Error>
§fn from_reader_single<'a, R>(
input: R,
) -> Result<(Self, Option<BTreeMap<String, Vec<String>>>), Error>where
R: Read + 'a,
fn from_reader_single<'a, R>(
input: R,
) -> Result<(Self, Option<BTreeMap<String, Vec<String>>>), Error>where
R: Read + 'a,
fn from_reader_single_buf<'a, R>(
input: R,
) -> Result<(Self, Option<BTreeMap<String, Vec<String>>>), Error>where
R: BufRead + 'a,
§impl EncryptionKey for SignedPublicKey
impl EncryptionKey for SignedPublicKey
§impl From<SignedSecretKey> for SignedPublicKey
impl From<SignedSecretKey> for SignedPublicKey
§fn from(value: SignedSecretKey) -> SignedPublicKey
fn from(value: SignedSecretKey) -> SignedPublicKey
§impl Imprint for SignedPublicKey
impl Imprint for SignedPublicKey
§impl KeyDetails for SignedPublicKey
impl KeyDetails for SignedPublicKey
§fn fingerprint(&self) -> Fingerprint
fn fingerprint(&self) -> Fingerprint
Fingerprint] for this key.§fn legacy_key_id(&self) -> KeyId
fn legacy_key_id(&self) -> KeyId
KeyId] for this key. Read morefn created_at(&self) -> Timestamp
§fn legacy_v3_expiration_days(&self) -> Option<u16>
fn legacy_v3_expiration_days(&self) -> Option<u16>
§fn public_params(&self) -> &PublicParams
fn public_params(&self) -> &PublicParams
§impl PartialEq for SignedPublicKey
impl PartialEq for SignedPublicKey
§impl Serialize for SignedPublicKey
impl Serialize for SignedPublicKey
§impl TryFrom<PublicOrSecret> for SignedPublicKey
impl TryFrom<PublicOrSecret> for SignedPublicKey
§fn try_from(
public_or_secret: PublicOrSecret,
) -> Result<SignedPublicKey, <SignedPublicKey as TryFrom<PublicOrSecret>>::Error>
fn try_from( public_or_secret: PublicOrSecret, ) -> Result<SignedPublicKey, <SignedPublicKey as TryFrom<PublicOrSecret>>::Error>
§impl VerifyingKey for SignedPublicKey
impl VerifyingKey for SignedPublicKey
impl Eq for SignedPublicKey
impl StructuralPartialEq for SignedPublicKey
Auto Trait Implementations§
impl !Freeze for SignedPublicKey
impl RefUnwindSafe for SignedPublicKey
impl Send for SignedPublicKey
impl Sync for SignedPublicKey
impl Unpin for SignedPublicKey
impl UnwindSafe for SignedPublicKey
Blanket Implementations§
§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
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> Conv for T
impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§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,
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,
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,
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,
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,
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,
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,
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,
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,
§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>
§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,
§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,
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,
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
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
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
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§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
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
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
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
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
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
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
.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
.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
.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
.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
.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
.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
.tap_deref() only in debug builds, and is erased in release
builds.