Skip to main content

Module vt

Module vt 

Source
Expand description

Explicit variable-time public-key surface.

Most items in this namespace use variable-time big-integer and ECC arithmetic and are unsuitable for side-channel exposed production signing/decryption.

Exception: X25519 and X448 (RFC 7748) are constant-time. They live here because they share serialization conventions with the rest of the public-key surface, but the scalar-mult primitive itself is hardened against timing side channels on the secret scalar.

Re-exportsยง

pub use crate::public_key::bigint::BigInt;
pub use crate::public_key::bigint::BigUint;
pub use crate::public_key::bigint::MontgomeryCtx;
pub use crate::public_key::bigint::Sign;
pub use crate::public_key::cocks::Cocks;
pub use crate::public_key::cocks::CocksPrivateKey;
pub use crate::public_key::cocks::CocksPublicKey;
pub use crate::public_key::dh::Dh;
pub use crate::public_key::dh::DhParams;
pub use crate::public_key::dh::DhPrivateKey;
pub use crate::public_key::dh::DhPublicKey;
pub use crate::public_key::dsa::Dsa;
pub use crate::public_key::dsa::DsaPrivateKey;
pub use crate::public_key::dsa::DsaPublicKey;
pub use crate::public_key::dsa::DsaSignature;
pub use crate::public_key::ec::b163;
pub use crate::public_key::ec::b233;
pub use crate::public_key::ec::b283;
pub use crate::public_key::ec::b409;
pub use crate::public_key::ec::b571;
pub use crate::public_key::ec::k163;
pub use crate::public_key::ec::k233;
pub use crate::public_key::ec::k283;
pub use crate::public_key::ec::k409;
pub use crate::public_key::ec::k571;
pub use crate::public_key::ec::p192;
pub use crate::public_key::ec::p224;
pub use crate::public_key::ec::p256;
pub use crate::public_key::ec::p384;
pub use crate::public_key::ec::p521;
pub use crate::public_key::ec::secp256k1;
pub use crate::public_key::ec::AffinePoint;
pub use crate::public_key::ec::CurveParams;
pub use crate::public_key::ec_elgamal::EcElGamal;
pub use crate::public_key::ec_elgamal::EcElGamalCiphertext;
pub use crate::public_key::ec_elgamal::EcElGamalPrivateKey;
pub use crate::public_key::ec_elgamal::EcElGamalPublicKey;
pub use crate::public_key::ecdh::Ecdh;
pub use crate::public_key::ecdh::EcdhPrivateKey;
pub use crate::public_key::ecdh::EcdhPublicKey;
pub use crate::public_key::ecdsa::Ecdsa;
pub use crate::public_key::ecdsa::EcdsaPrivateKey;
pub use crate::public_key::ecdsa::EcdsaPublicKey;
pub use crate::public_key::ecdsa::EcdsaSignature;
pub use crate::public_key::ecies::Ecies;
pub use crate::public_key::ecies::EciesPrivateKey;
pub use crate::public_key::ecies::EciesPublicKey;
pub use crate::public_key::ed25519::Ed25519;
pub use crate::public_key::ed25519::Ed25519PrivateKey;
pub use crate::public_key::ed25519::Ed25519PublicKey;
pub use crate::public_key::ed25519::Ed25519Signature;
pub use crate::public_key::eddsa::EdDsa;
pub use crate::public_key::eddsa::EdDsaPrivateKey;
pub use crate::public_key::eddsa::EdDsaPublicKey;
pub use crate::public_key::eddsa::EdDsaSignature;
pub use crate::public_key::edwards_dh::EdwardsDh;
pub use crate::public_key::edwards_dh::EdwardsDhPrivateKey;
pub use crate::public_key::edwards_dh::EdwardsDhPublicKey;
pub use crate::public_key::edwards_elgamal::EdwardsElGamal;
pub use crate::public_key::edwards_elgamal::EdwardsElGamalCiphertext;
pub use crate::public_key::edwards_elgamal::EdwardsElGamalPrivateKey;
pub use crate::public_key::edwards_elgamal::EdwardsElGamalPublicKey;
pub use crate::public_key::elgamal::ElGamal;
pub use crate::public_key::elgamal::ElGamalCiphertext;
pub use crate::public_key::elgamal::ElGamalPrivateKey;
pub use crate::public_key::elgamal::ElGamalPublicKey;
pub use crate::public_key::ml_dsa::MlDsa;
pub use crate::public_key::ml_dsa::MlDsaParameterSet;
pub use crate::public_key::ml_dsa::MlDsaPrivateKey;
pub use crate::public_key::ml_dsa::MlDsaPublicKey;
pub use crate::public_key::ml_dsa::MlDsaSignature;
pub use crate::public_key::ml_kem::MlKem;
pub use crate::public_key::ml_kem::MlKemCiphertext;
pub use crate::public_key::ml_kem::MlKemParameterSet;
pub use crate::public_key::ml_kem::MlKemPrivateKey;
pub use crate::public_key::ml_kem::MlKemPublicKey;
pub use crate::public_key::ml_kem::MlKemSharedSecret;
pub use crate::public_key::paillier::Paillier;
pub use crate::public_key::paillier::PaillierPrivateKey;
pub use crate::public_key::paillier::PaillierPublicKey;
pub use crate::public_key::rabin::Rabin;
pub use crate::public_key::rabin::RabinPrivateKey;
pub use crate::public_key::rabin::RabinPublicKey;
pub use crate::public_key::rsa::Rsa;
pub use crate::public_key::rsa::RsaPrivateKey;
pub use crate::public_key::rsa::RsaPublicKey;
pub use crate::public_key::rsa_pkcs1::RsaOaep;
pub use crate::public_key::rsa_pkcs1::RsaPss;
pub use crate::public_key::schmidt_samoa::SchmidtSamoa;
pub use crate::public_key::schmidt_samoa::SchmidtSamoaPrivateKey;
pub use crate::public_key::schmidt_samoa::SchmidtSamoaPublicKey;
pub use crate::public_key::x25519::X25519PrivateKey;
pub use crate::public_key::x25519::X25519PublicKey;
pub use crate::public_key::x25519::X25519;
pub use crate::public_key::x448::X448PrivateKey;
pub use crate::public_key::x448::X448PublicKey;
pub use crate::public_key::x448::X448;