Pure Rust implementation of the Elliptic Curve Digital Signature Algorithm
(ECDSA) as specified in FIPS 186-4 (Digital Signature Standard), providing
RFC6979 deterministic signatures as well as support for added entropy
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
INDIRECT
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
4
digest • 0.10.7Traits for cryptographic hash functions and message authentication codes
INDIRECT
6
elliptic-curve • 0.12.3General purpose Elliptic Curve Cryptography (ECC) support, including types
and traits for representing various elliptic curve forms, scalars, points,
and public/secret keys composed thereof.
DIRECT
21
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
hmac • 0.12.1Generic implementation of Hash-based Message Authentication Code (HMAC)
INDIRECT
7
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.
INDIRECT
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)
INDIRECT
6
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.
INDIRECT
0
rfc6979 • 0.3.1Pure Rust implementation of RFC6979: Deterministic Usage of the
Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)
DIRECT
11
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
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!