General purpose Elliptic Curve Cryptography (ECC) support, including types
and traits for representing various elliptic curve forms, scalars, points,
and public/secret keys composed thereof.
base16ct • 0.1.1Pure Rust implementation of Base16 a.k.a hexadecimal (RFC 4648) which avoids
any usages of data-dependent branches/LUTs and thereby provides portable
"best effort" constant-time operation and embedded-friendly no_std support
DIRECT
0
base64ct • 1.6.0Pure Rust implementation of Base64 (RFC 4648) which avoids any usages of
data-dependent branches/LUTs and thereby provides portable "best effort"
constant-time operation and embedded-friendly no_std support
cfg-if • 1.0.0A macro to ergonomically define an item depending on a large number of #[cfg]
parameters. Structured like an if-else chain, the first matching branch is the
item that gets emitted.
INDIRECT
0
const-oid • 0.9.6Const-friendly implementation of the ISO/IEC Object Identifier (OID) standard
as defined in ITU X.660, with support for BER/DER encoding/decoding as well as
heapless no_std (i.e. embedded) support
INDIRECT
0
cpufeatures • 0.2.14Lightweight runtime CPU feature detection for aarch64, loongarch64, and x86/x86_64 targets,
with no_std support and support for mobile targets including Android and iOS
INDIRECT
1
crypto-bigint • 0.4.9Pure Rust implementation of a big integer library which has been designed from
the ground-up for use in cryptographic applications. Provides constant-time,
no_std-friendly implementations of modern formulas using const generics.
der • 0.6.1Pure Rust embedded-friendly implementation of the Distinguished Encoding Rules
(DER) for Abstract Syntax Notation One (ASN.1) as described in ITU X.690 with
full support for heapless no_std targets
DIRECT
1
digest • 0.10.7Traits for cryptographic hash functions and message authentication codes
DIRECT
6
ff • 0.12.1Library for building and interfacing with finite fields
hex-literal • 0.3.4Macro for converting hexadecimal string to a byte array at compile time
DIRECT
0
hkdf • 0.12.4HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
DIRECT
8
hmac • 0.12.1Generic implementation of Hash-based Message Authentication Code (HMAC)
INDIRECT
7
itoa • 1.0.11Fast integer primitive to string conversion
INDIRECT
0
keccak • 0.1.5Pure Rust implementation of the Keccak sponge function including the keccak-f
and keccak-p variants
INDIRECT
2
libc • 0.2.161Raw FFI bindings to platform libraries like libc.
INDIRECT
0
pem-rfc7468 • 0.6.0PEM Encoding (RFC 7468) for PKIX, PKCS, and CMS Structures, implementing a
strict subset of the original Privacy-Enhanced Mail encoding intended
specifically for use with cryptographic keys, certificates, and other messages.
Provides a no_std-friendly, constant-time implementation suitable for use with
cryptographic private keys.
DIRECT
1
pkcs8 • 0.9.0Pure Rust implementation of Public-Key Cryptography Standards (PKCS) #8:
Private-Key Information Syntax Specification (RFC 5208), with additional
support for PKCS#8v2 asymmetric key packages (RFC 5958)
DIRECT
3
proc-macro2 • 1.0.89A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.
rand_core • 0.6.4Core random number generator traits and tools for implementation.
DIRECT
0
sec1 • 0.3.0Pure Rust implementation of SEC1: Elliptic Curve Cryptography encoding formats
including ASN.1 DER-serialized private keys as well as the
Elliptic-Curve-Point-to-Octet-String encoding
serdect • 0.1.0Constant-time serde serializer/deserializer helpers for data that potentially
contains secrets (e.g. cryptographic keys)
DIRECT
7
sha2 • 0.10.8Pure Rust implementation of the SHA-2 hash function family
including SHA-224, SHA-256, SHA-384, and SHA-512.
DIRECT
10
sha3 • 0.10.8Pure Rust implementation of SHA-3, a family of Keccak-based hash functions
including the SHAKE family of eXtendable-Output Functions (XOFs), as well as
the accelerated variant TurboSHAKE
DIRECT
10
spki • 0.6.0X.509 Subject Public Key Info (RFC5280) describing public keys as well as their
associated AlgorithmIdentifiers (i.e. OIDs)
typenum • 1.17.0Typenum is a Rust library for type-level numbers evaluated at
compile time. It currently supports bits, unsigned integers, and signed
integers. It also provides a type-level array of type-level numbers, but its
implementation is incomplete.
INDIRECT
0
version_check • 0.9.5Tiny crate to check the version of the installed/running rustc.
INDIRECT
0
zeroize • 1.8.1Securely clear secrets from memory with a simple trait built on
stable Rust primitives which guarantee memory is zeroed using an
operation will not be 'optimized away' by the compiler.
Uses a portable pure Rust implementation that works everywhere,
even WASM!