pub struct PgpSignedAttestation {
pub content_type: Option<String>,
pub pgp_key_id: Option<String>,
pub signature: Option<String>,
}
Expand description
An attestation wrapper with a PGP-compatible signature. This message only supports ATTACHED
signatures, where the payload that is signed is included alongside the signature itself in the same file.
This type is not used in any activity, and only used as part of another schema.
Fields§
§content_type: Option<String>
Type (for example schema) of the attestation payload that was signed. The verifier must ensure that the provided type is one that the verifier supports, and that the attestation payload is a valid instantiation of that type (for example by validating a JSON schema).
pgp_key_id: Option<String>
The cryptographic fingerprint of the key used to generate the signature, as output by, e.g. gpg --list-keys
. This should be the version 4, full 160-bit fingerprint, expressed as a 40 character hexadecimal string. See https://tools.ietf.org/html/rfc4880#section-12.2 for details. Implementations may choose to acknowledge “LONG”, “SHORT”, or other abbreviated key IDs, but only the full fingerprint is guaranteed to work. In gpg, the full fingerprint can be retrieved from the fpr
field returned when calling –list-keys with –with-colons. For example: gpg --with-colons --with-fingerprint --force-v4-certs \ --list-keys attester@example.com tru::1:1513631572:0:3:1:5 pub:...... fpr:::::::::24FF6481B76AC91E66A00AC657A93A81EF3AE6FB:
Above, the fingerprint is 24FF6481B76AC91E66A00AC657A93A81EF3AE6FB
.
signature: Option<String>
Required. The raw content of the signature, as output by GNU Privacy Guard (GPG) or equivalent. Since this message only supports attached signatures, the payload that was signed must be attached. While the signature format supported is dependent on the verification implementation, currently only ASCII-armored (--armor
to gpg), non-clearsigned (--sign
rather than --clearsign
to gpg) are supported. Concretely, gpg --sign --armor --output=signature.gpg payload.json
will create the signature content expected in this field in signature.gpg
for the payload.json
attestation payload.
Trait Implementations§
Source§impl Clone for PgpSignedAttestation
impl Clone for PgpSignedAttestation
Source§fn clone(&self) -> PgpSignedAttestation
fn clone(&self) -> PgpSignedAttestation
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for PgpSignedAttestation
impl Debug for PgpSignedAttestation
Source§impl Default for PgpSignedAttestation
impl Default for PgpSignedAttestation
Source§fn default() -> PgpSignedAttestation
fn default() -> PgpSignedAttestation
Source§impl<'de> Deserialize<'de> for PgpSignedAttestation
impl<'de> Deserialize<'de> for PgpSignedAttestation
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>,
Source§impl Serialize for PgpSignedAttestation
impl Serialize for PgpSignedAttestation
impl Part for PgpSignedAttestation
Auto Trait Implementations§
impl Freeze for PgpSignedAttestation
impl RefUnwindSafe for PgpSignedAttestation
impl Send for PgpSignedAttestation
impl Sync for PgpSignedAttestation
impl Unpin for PgpSignedAttestation
impl UnwindSafe for PgpSignedAttestation
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
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>
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