[][src]Trait nazgul::traits::Sign

pub trait Sign<PrivateKey, Ring> {
    fn sign<Hash: Digest<OutputSize = U64> + Clone + Default, CSPRNG: CryptoRng + RngCore + Default>(
        k: PrivateKey,
        ring: Ring,
        message: &Vec<u8>
    ) -> Self; }

Required methods

fn sign<Hash: Digest<OutputSize = U64> + Clone + Default, CSPRNG: CryptoRng + RngCore + Default>(
    k: PrivateKey,
    ring: Ring,
    message: &Vec<u8>
) -> Self

Loading content...

Implementors

impl Sign<(RistrettoPoint, Scalar, Scalar), Vec<(RistrettoPoint, RistrettoPoint, Scalar)>> for DLSAG[src]

fn sign<Hash: Digest<OutputSize = U64> + Clone + Default, CSPRNG: CryptoRng + RngCore + Default>(
    k: (RistrettoPoint, Scalar, Scalar),
    ring: Vec<(RistrettoPoint, RistrettoPoint, Scalar)>,
    message: &Vec<u8>
) -> DLSAG
[src]

To sign you need k your private key, and ring which is the public keys of everyone except you. You are signing the message

The private key k in this case is your private key, the public key of the other end of the channel and a random bitstring generated by hashing-to-scalar: the transaction ID, and output index.

The ring contains public key pairs from the blockchain together with their random bitstrings as mentioned above.

This implementation of sign(...) is for the user who has the private key for the right side of the channel

impl Sign<(Scalar, RistrettoPoint, Scalar), Vec<(RistrettoPoint, RistrettoPoint, Scalar)>> for DLSAG[src]

fn sign<Hash: Digest<OutputSize = U64> + Clone + Default, CSPRNG: CryptoRng + RngCore + Default>(
    k: (Scalar, RistrettoPoint, Scalar),
    ring: Vec<(RistrettoPoint, RistrettoPoint, Scalar)>,
    message: &Vec<u8>
) -> DLSAG
[src]

To sign you need k your private key, and ring which is the public keys of everyone except you. You are signing the message

The private key k in this case is your private key, the public key of the other end of the channel and a random bitstring generated by hashing-to-scalar: the transaction ID, and output index.

The ring contains public key pairs from the blockchain together with their random bitstrings as mentioned above.

This implementation of sign(...) is for the user who has the private key for the left side of the channel

impl Sign<Vec<(RistrettoPoint, Scalar, Scalar)>, Vec<Vec<(RistrettoPoint, RistrettoPoint, Scalar)>>> for MDLSAG[src]

fn sign<Hash: Digest<OutputSize = U64> + Clone + Default, CSPRNG: CryptoRng + RngCore + Default>(
    ks: Vec<(RistrettoPoint, Scalar, Scalar)>,
    ring: Vec<Vec<(RistrettoPoint, RistrettoPoint, Scalar)>>,
    message: &Vec<u8>
) -> MDLSAG
[src]

To sign you need k your private key, and ring which is the public keys of everyone except you. You are signing the message

The private key k in this case is your private key, the public key of the other end of the channel and a random bitstring generated by hashing-to-scalar: the transaction ID, and output index.

The ring contains public key pairs from the blockchain together with their random bitstrings as mentioned above.

impl Sign<Vec<(Scalar, RistrettoPoint, Scalar)>, Vec<Vec<(RistrettoPoint, RistrettoPoint, Scalar)>>> for MDLSAG[src]

fn sign<Hash: Digest<OutputSize = U64> + Clone + Default, CSPRNG: CryptoRng + RngCore + Default>(
    ks: Vec<(Scalar, RistrettoPoint, Scalar)>,
    ring: Vec<Vec<(RistrettoPoint, RistrettoPoint, Scalar)>>,
    message: &Vec<u8>
) -> MDLSAG
[src]

To sign you need k your private key, and ring which is the public keys of everyone except you. You are signing the message

The private key k in this case is your private key, the public key of the other end of the channel and a random bitstring generated by hashing-to-scalar: the transaction ID, and output index.

The ring contains public key pairs from the blockchain together with their random bitstrings as mentioned above.

impl Sign<Vec<Scalar>, Vec<Vec<RistrettoPoint>>> for CLSAG[src]

fn sign<Hash: Digest<OutputSize = U64> + Clone + Default, CSPRNG: CryptoRng + RngCore + Default>(
    ks: Vec<Scalar>,
    ring: Vec<Vec<RistrettoPoint>>,
    message: &Vec<u8>
) -> CLSAG
[src]

To sign you need ks which is the set of private keys you want to sign with. Only the first one is linkable. The ring contains public keys for everybody except you. Your public key will be inserted into it at random (secret) index. The message is what you are signing

impl Sign<Vec<Scalar>, Vec<Vec<RistrettoPoint>>> for MLSAG[src]

fn sign<Hash: Digest<OutputSize = U64> + Clone + Default, CSPRNG: CryptoRng + RngCore + Default>(
    ks: Vec<Scalar>,
    ring: Vec<Vec<RistrettoPoint>>,
    message: &Vec<u8>
) -> MLSAG
[src]

To sign you need ks which is the set of private keys you want to sign with. The ring contains public keys for everybody except you. Your public key will be inserted into it at random (secret) index. The message is what you are signing

impl Sign<Scalar, Vec<RistrettoPoint>> for BLSAG[src]

fn sign<Hash: Digest<OutputSize = U64> + Clone + Default, CSPRNG: CryptoRng + RngCore + Default>(
    k: Scalar,
    ring: Vec<RistrettoPoint>,
    message: &Vec<u8>
) -> BLSAG
[src]

To sign you need k your private key, and ring which is the public keys of everyone except you. You are signing the message

impl Sign<Scalar, Vec<RistrettoPoint>> for SAG[src]

fn sign<Hash: Digest<OutputSize = U64> + Clone, CSPRNG: CryptoRng + RngCore + Default>(
    k: Scalar,
    ring: Vec<RistrettoPoint>,
    message: &Vec<u8>
) -> SAG
[src]

To sign you need k your private key, and ring which is the public keys of everyone except you. You are signing the message

Loading content...