PublicKey

Struct PublicKey 

Source
pub struct PublicKey { /* private fields */ }
Expand description

An Ed25519 public key for verifying license signatures.

This is the key that should be embedded in client applications. It can only verify signatures, not create them.

§Example

use rust_license_key::crypto::PublicKey;

// Load from base64 (e.g., embedded in application)
let public_key_base64 = "..."; // Your public key here
// let public_key = PublicKey::from_base64(public_key_base64).unwrap();

Implementations§

Source§

impl PublicKey

Source

pub fn from_base64(public_key_base64: &str) -> Result<Self>

Creates a public key from a base64-encoded string.

§Arguments
  • public_key_base64 - The base64-encoded public key (32 bytes when decoded).
Source

pub fn from_bytes(bytes: &[u8]) -> Result<Self>

Creates a public key from raw bytes.

§Arguments
  • bytes - The raw public key bytes (exactly 32 bytes).
Source

pub fn to_bytes(&self) -> [u8; 32]

Returns the public key as raw bytes.

Source

pub fn to_base64(&self) -> String

Returns the public key as a base64-encoded string.

Source

pub fn verify(&self, data: &[u8], signature_bytes: &[u8]) -> Result<()>

Verifies a signature against the given data.

§Arguments
  • data - The original data that was signed.
  • signature_bytes - The signature to verify (64 bytes).
§Returns

Ok(()) if the signature is valid, or an error if verification fails.

Source

pub fn verify_base64(&self, data: &[u8], signature_base64: &str) -> Result<()>

Verifies a base64-encoded signature against the given data.

§Arguments
  • data - The original data that was signed.
  • signature_base64 - The base64-encoded signature.
§Returns

Ok(()) if the signature is valid, or an error if verification fails.

Trait Implementations§

Source§

impl Clone for PublicKey

Source§

fn clone(&self) -> PublicKey

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 PublicKey

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V