rscrypto 0.1.1

Pure Rust cryptography, hardware-accelerated: BLAKE3, SHA-2/3, AES-GCM, ChaCha20-Poly1305, Ed25519, X25519, HMAC, HKDF, Argon2, CRC. no_std, WASM, ten CPU architectures.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.91.0"
name = "rscrypto"
version = "0.1.1"
authors = ["loadingalias"]
build = false
include = [
    "/Cargo.toml",
    "/LICENSE-APACHE",
    "/LICENSE-MIT",
    "/README.md",
    "/.config/target-matrix.json",
    "/src/**",
    "!/src/**/*.md",
    "!/src/**/*.txt",
    "!/src/**/.gitignore",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure Rust cryptography, hardware-accelerated: BLAKE3, SHA-2/3, AES-GCM, ChaCha20-Poly1305, Ed25519, X25519, HMAC, HKDF, Argon2, CRC. no_std, WASM, ten CPU architectures."
documentation = "https://docs.rs/rscrypto"
readme = "README.md"
keywords = [
    "cryptography",
    "no-std",
    "aead",
    "blake3",
    "simd",
]
categories = [
    "cryptography",
    "no-std",
    "algorithms",
    "hardware-support",
    "embedded",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/loadingalias/rscrypto"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
aead = [
    "aes-gcm",
    "aes-gcm-siv",
    "chacha20poly1305",
    "xchacha20poly1305",
    "aegis256",
    "ascon-aead",
]
aegis256 = []
aes-gcm = []
aes-gcm-siv = []
alloc = []
argon2 = [
    "blake2b",
    "alloc",
]
ascon-aead = []
ascon-hash = []
auth = [
    "macs",
    "kdfs",
    "password-hashing",
    "signatures",
    "key-exchange",
]
blake2b = []
blake2s = []
blake3 = []
chacha20poly1305 = []
checksums = [
    "crc16",
    "crc24",
    "crc32",
    "crc64",
]
crc16 = []
crc24 = []
crc32 = []
crc64 = []
crypto-hashes = [
    "sha2",
    "sha3",
    "blake2b",
    "blake2s",
    "blake3",
    "ascon-hash",
]
default = ["std"]
diag = ["std"]
ed25519 = ["sha2"]
fast-hashes = [
    "xxh3",
    "rapidhash",
]
full = [
    "checksums",
    "hashes",
    "auth",
    "aead",
]
getrandom = ["dep:getrandom"]
hashes = [
    "crypto-hashes",
    "fast-hashes",
]
hkdf = ["hmac"]
hmac = ["sha2"]
kdfs = [
    "hkdf",
    "pbkdf2",
]
key-exchange = ["x25519"]
kmac = ["sha3"]
macs = [
    "hmac",
    "kmac",
]
parallel = [
    "std",
    "blake3",
    "argon2",
    "dep:rayon",
]
password-hashing = [
    "argon2",
    "scrypt",
    "phc-strings",
]
pbkdf2 = ["hmac"]
phc-strings = ["alloc"]
portable-only = []
rapidhash = []
scrypt = [
    "pbkdf2",
    "alloc",
]
serde = ["dep:serde"]
serde-secrets = ["serde"]
sha2 = []
sha3 = []
signatures = ["ed25519"]
std = ["alloc"]
x25519 = []
xchacha20poly1305 = []
xxh3 = []

[lib]
name = "rscrypto"
path = "src/lib.rs"
bench = false

[dependencies.getrandom]
version = "0.4.2"
optional = true

[dependencies.rayon]
version = "1.12.0"
optional = true

[dependencies.serde]
version = "1"
optional = true
default-features = false

[dev-dependencies.aegis]
version = "0.9.8"

[dev-dependencies.aes-gcm]
version = "0.10.3"

[dev-dependencies.aes-gcm-siv]
version = "0.11.1"

[dev-dependencies.argon2]
version = "0.6.0-rc.8"
features = ["alloc"]
default-features = false

[dev-dependencies.ascon-aead]
version = "0.5"
features = ["alloc"]
default-features = false

[dev-dependencies.ascon-hash]
version = "0.4.0"

[dev-dependencies.blake2]
version = "0.11.0-rc.6"

[dev-dependencies.blake3]
version = "1.8.5"
features = [
    "std",
    "rayon",
]
default-features = false

[dev-dependencies.chacha20poly1305]
version = "0.10.1"

[dev-dependencies.crc]
version = "3.4.0"

[dev-dependencies.crc-fast]
version = "1.10.0"

[dev-dependencies.crc32c]
version = "0.6.8"

[dev-dependencies.crc32fast]
version = "1.5.0"

[dev-dependencies.crc64fast]
version = "1.1.0"

[dev-dependencies.crc64fast-nvme]
version = "1.2.1"

[dev-dependencies.criterion]
version = "^0.8.2"
features = [
    "html_reports",
    "plotters",
]
default-features = false

[dev-dependencies.digest]
version = "0.11.2"
features = ["dev"]

[dev-dependencies.ed25519-dalek]
version = "2.2.0"

[dev-dependencies.hkdf]
version = "0.13.0"

[dev-dependencies.hmac]
version = "0.13.0"

[dev-dependencies.keccak]
version = "0.2.0"

[dev-dependencies.pbkdf2]
version = "0.13.0"

[dev-dependencies.proptest]
version = "^1.11.0"

[dev-dependencies.rapidhash]
version = "4.4.1"

[dev-dependencies.scrypt]
version = "0.12.0"
default-features = false

[dev-dependencies.serde_json]
version = "1"

[dev-dependencies.sha2]
version = "0.11.0"

[dev-dependencies.sha3]
version = "0.11.0"

[dev-dependencies.tiny-keccak]
version = "2.0.2"
features = [
    "cshake",
    "kmac",
]

[dev-dependencies.x25519-dalek]
version = "2.0.1"
features = ["static_secrets"]

[dev-dependencies.xxhash-rust]
version = "0.8.15"
features = ["xxh3"]

[lints.clippy]
expect_used = "allow"
indexing_slicing = "allow"
missing_safety_doc = "deny"
std_instead_of_alloc = "warn"
std_instead_of_core = "warn"
undocumented_unsafe_blocks = "deny"
unwrap_used = "allow"

[lints.clippy.correctness]
level = "deny"
priority = -1

[lints.clippy.perf]
level = "deny"
priority = -1

[lints.clippy.suspicious]
level = "deny"
priority = -1

[lints.rust]
dangling_pointers_from_locals = "deny"
integer_to_ptr_transmutes = "deny"
unsafe_code = "allow"
unsafe_op_in_unsafe_fn = "deny"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
    "cfg(miri)",
    'cfg(target_feature, values("movdiri", "movdir64b", "serialize"))',
]

[lints.rustdoc]
broken_intra_doc_links = "deny"
private_intra_doc_links = "warn"

[profile.bench]
debug = 2
inherits = "release"

[profile.dev]
opt-level = 0
lto = false
codegen-units = 256
debug = 2
split-debuginfo = "unpacked"
debug-assertions = true
overflow-checks = true
incremental = false
strip = "none"

[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
debug = 0
panic = "abort"
overflow-checks = true
strip = "debuginfo"