[][src]Trait nubls::PRSKey

pub trait PRSKey: Sized {
    fn resigning_key(&self, bob_pubkey: &PublicKey) -> Self;
fn designated_key(&self, alice_pubkey: &PublicKey) -> Self;
fn resign(&self, signature: &Signature) -> Signature; }

A trait that describes the Penumbral Proxy Re-Signature protocol. Given a Re-Signature key, a BLS signature can be re-signed from Bob's key to Alice's key.

Required methods

fn resigning_key(&self, bob_pubkey: &PublicKey) -> Self

Generates a re-signing key from Bob's designated key to the self key.

fn designated_key(&self, alice_pubkey: &PublicKey) -> Self

Returns the designated PRS key that Bob signs with. Signatures made under this key can be re-signed from Bob to Alice given a re-signing key generated by Alice.

fn resign(&self, signature: &Signature) -> Signature

Performs a re-signature with the re-signing key to transform a Signature under Bob's designated key to Alice's key.

Loading content...

Implementors

impl PRSKey for PrivateKey[src]

fn resigning_key(&self, bob_pubkey: &PublicKey) -> PrivateKey[src]

Calculates $\phi_{B \rightarrow A}$ as $\frac{a}{\phi_B}$

fn designated_key(&self, alice_pubkey: &PublicKey) -> PrivateKey[src]

Calculate $\phi_B$ as a Diffie-Hellman between Alice and Bob.

fn resign(&self, signature: &Signature) -> Signature[src]

Re-Signs a Signature from $\sigma_{\phi_B}$ to $\sigma_A$. This is done by multiplying the Signature by the re-signing key: $\sigma_A = \phi_{B \rightarrow A} \cdot \sigma_{\phi_B}$

TODO: Validate signature before re-signing.

Loading content...