Struct Key

Source
pub struct Key {
    pub fingerprint: String,
    pub name: String,
    pub mail: String,
    pub password: Option<String>,
}
Expand description

A struct representing a public key.

Fields§

§fingerprint: String

The fingerprint of the key.

§name: String

The name associated with the key.

§mail: String

The email address associated with the key.

§password: Option<String>

The password the key is protected with

Implementations§

Source§

impl Key

Source

pub fn new( name: &str, mail: &str, password: Option<&str>, gpg: &GnuPG, ) -> Result<Self, GPGError>

Creates a new GPG key with the given name and email address.

§Parameters
  • name: the name of the key
  • mail: the email address associated with the key
  • password: an optional password to use for the key
  • gpg: a reference to GnuPG struct
§Returns

If the key is successfully created, returns an instance of Key wrapped in an Ok variant. If the key creation fails, returns an instance of GPGError wrapped in an Err variant.

Source

pub fn get_by_name(name: &str, gpg: &GnuPG) -> Option<Self>

Retrieves a GPG key by its name.

§Parameters
  • name: the name of the key to retrieve
  • gpg: a reference to GnuPG struct
§Returns

If a key with the given name is found, returns an instance of Key. If no key with the given name is found, returns None.

Source

pub fn get_by_mail(mail: &str, gpg: &GnuPG) -> Option<Self>

Retrieves a GPG key by its email address.

§Parameters
  • mail: the email address associated with the key to retrieve
  • gpg: a reference to GnuPG struct
§Returns

If a key with the given email address is found, returns an instance of Key. If no key with the given email address is found, returns None.

Source

pub fn get_by_fingerprint(fingerprint: &str, gpg: &GnuPG) -> Option<Self>

Retrieves a GPG key by its fingerprint.

§Parameters
  • fingerprint: the fingerprint associated with the key to retrieve
  • gpg: a reference to GnuPG struct
§Returns

If a key with the given fingerprint is found, returns an instance of Key. If no key with the given fingerprint is found, returns None.

Source

pub fn unlock(&self, pw: &str) -> Self

Adds information to unlock a GPG key with the given password.

§Parameters
  • pw: the password to use to unlock the key
§Returns

Returns a new Key object, with the password set to the given value.

§Example
use gnupg::*;
let gnupg = GnuPG::new().unwrap();
let encrypted = "-----BEGIN PGP MESSAGE-----
                ...
                -----END PGP MESSAGE-----";
let key = Key::get_by_name("Arisu", &gnupg).unwrap();
let plain = gnupg.decrypt(&key.unlock("pass"), encrypted);
println!("Plain Text: {:?}", plain);

Trait Implementations§

Source§

impl Clone for Key

Source§

fn clone(&self) -> Key

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Key

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Key

Source§

fn eq(&self, other: &Key) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Key

Source§

impl StructuralPartialEq for Key

Auto Trait Implementations§

§

impl Freeze for Key

§

impl RefUnwindSafe for Key

§

impl Send for Key

§

impl Sync for Key

§

impl Unpin for Key

§

impl UnwindSafe for Key

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.