# 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 = "2021"
rust-version = "1.77.0"
name = "oboron"
version = "0.3.0"
authors = ["Bojan Đuričković"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Encryption and encoding library for developer ergonomics: prefix entropy, compact outputs, high performance"
readme = "README.md"
keywords = [
    "encryption",
    "obfuscation",
    "encoding",
    "base32",
    "identifiers",
]
categories = [
    "cryptography",
    "encoding",
]
license = "MIT"
repository = "https://github.com/ob-enc/oboron-rs"

[features]
all-alt-keys = [
    "hex-keys",
    "bytes-keys",
]
all-cbc-schemes = [
    "ob01",
    "ob21p",
]
all-gcm-schemes = [
    "ob31",
    "ob31p",
]
all-schemes = [
    "ob0x",
    "ob1x",
    "ob2x",
    "ob3x",
]
all-siv-schemes = [
    "ob32",
    "ob32p",
]
authenticated-schemes = ["ob3x"]
bytes-keys = []
default = ["std"]
deterministic-schemes = [
    "ob01",
    "ob31",
    "ob32",
]
dev = ["full"]
experimental = []
full = [
    "all-schemes",
    "all-alt-keys",
    "keyless",
    "legacy",
    "non-crypto",
]
hex-keys = []
insecure-schemes = [
    "ob0x",
    "ob1x",
]
keyless = []
legacy = ["ob00"]
non-crypto = [
    "ob70",
    "ob71",
]
ob00 = [
    "aes",
    "cipher",
    "cbc",
]
ob01 = [
    "aes",
    "cipher",
    "cbc",
]
ob0x = ["ob01"]
ob1x = []
ob21p = [
    "aes",
    "cipher",
    "cbc",
]
ob2x = ["ob21p"]
ob31 = ["aes-gcm-siv"]
ob31p = ["aes-gcm-siv"]
ob32 = ["aes-siv"]
ob32p = ["aes-siv"]
ob3x = [
    "ob31",
    "ob31p",
    "ob32",
    "ob32p",
]
ob70 = []
ob71 = []
ob7x = [
    "ob70",
    "ob71",
]
probabilistic-schemes = [
    "ob21p",
    "ob31p",
    "ob32p",
]
secure-min = ["ob32"]
secure-schemes = [
    "ob2x",
    "ob3x",
]
std = ["secure-schemes"]
unchecked-utf8 = []

[lib]
name = "oboron"
crate-type = ["rlib"]
path = "src/lib.rs"

[[bin]]
name = "keygen"
path = "src/bin/keygen.rs"

[[test]]
name = "basic_tests"
path = "tests/basic_tests.rs"

[[test]]
name = "feature_gate_tests"
path = "tests/feature_gate_tests.rs"

[[test]]
name = "integration_test"
path = "tests/integration_tests.rs"
harness = true

[[test]]
name = "legacy_test_vectors"
path = "tests/legacy_test_vectors.rs"

[[test]]
name = "legacy_tests"
path = "tests/legacy_tests.rs"

[[test]]
name = "test_ob"
path = "tests/test_ob.rs"

[[test]]
name = "test_ob70"
path = "tests/test_ob70.rs"
harness = true

[[test]]
name = "test_ob71"
path = "tests/test_ob71.rs"

[[test]]
name = "test_schemes"
path = "tests/test_schemes.rs"

[[test]]
name = "test_vectors"
path = "tests/test_vectors.rs"

[[bench]]
name = "ob"
path = "benches/ob.rs"
harness = false

[[bench]]
name = "ob00"
path = "benches/ob00.rs"
harness = false

[[bench]]
name = "ob00_b32"
path = "benches/ob00_b32.rs"
harness = false

[[bench]]
name = "ob00_b64"
path = "benches/ob00_b64.rs"
harness = false

[[bench]]
name = "ob00_hex"
path = "benches/ob00_hex.rs"
harness = false

[[bench]]
name = "ob01"
path = "benches/ob01.rs"
harness = false

[[bench]]
name = "ob01_b32"
path = "benches/ob01_b32.rs"
harness = false

[[bench]]
name = "ob01_b64"
path = "benches/ob01_b64.rs"
harness = false

[[bench]]
name = "ob01_hex"
path = "benches/ob01_hex.rs"
harness = false

[[bench]]
name = "ob21p"
path = "benches/ob21p.rs"
harness = false

[[bench]]
name = "ob21p_b32"
path = "benches/ob21p_b32.rs"
harness = false

[[bench]]
name = "ob21p_b64"
path = "benches/ob21p_b64.rs"
harness = false

[[bench]]
name = "ob21p_hex"
path = "benches/ob21p_hex.rs"
harness = false

[[bench]]
name = "ob31"
path = "benches/ob31.rs"
harness = false

[[bench]]
name = "ob31_b32"
path = "benches/ob31_b32.rs"
harness = false

[[bench]]
name = "ob31_b64"
path = "benches/ob31_b64.rs"
harness = false

[[bench]]
name = "ob31_hex"
path = "benches/ob31_hex.rs"
harness = false

[[bench]]
name = "ob31p"
path = "benches/ob31p.rs"
harness = false

[[bench]]
name = "ob31p_b32"
path = "benches/ob31p_b32.rs"
harness = false

[[bench]]
name = "ob31p_b64"
path = "benches/ob31p_b64.rs"
harness = false

[[bench]]
name = "ob31p_hex"
path = "benches/ob31p_hex.rs"
harness = false

[[bench]]
name = "ob32"
path = "benches/ob32.rs"
harness = false

[[bench]]
name = "ob32_b32"
path = "benches/ob32_b32.rs"
harness = false

[[bench]]
name = "ob32_b64"
path = "benches/ob32_b64.rs"
harness = false

[[bench]]
name = "ob32_hex"
path = "benches/ob32_hex.rs"
harness = false

[[bench]]
name = "ob32p"
path = "benches/ob32p.rs"
harness = false

[[bench]]
name = "ob32p_b32"
path = "benches/ob32p_b32.rs"
harness = false

[[bench]]
name = "ob32p_b64"
path = "benches/ob32p_b64.rs"
harness = false

[[bench]]
name = "ob32p_hex"
path = "benches/ob32p_hex.rs"
harness = false

[[bench]]
name = "obflex"
path = "benches/obflex.rs"
harness = false

[[bench]]
name = "obmulti"
path = "benches/obmulti.rs"
harness = false

[[bench]]
name = "obstatic"
path = "benches/obstatic.rs"

[[bench]]
name = "test123"
path = "benches/test123.rs"
harness = false

[[bench]]
name = "z_jwt"
path = "benches/z_jwt.rs"

[[bench]]
name = "z_sha256"
path = "benches/z_sha256.rs"
harness = false

[dependencies.aes]
version = "0.8"
optional = true

[dependencies.aes-gcm-siv]
version = "0.11"
optional = true

[dependencies.aes-siv]
version = "0.7"
optional = true

[dependencies.cbc]
version = "0.1"
optional = true

[dependencies.cipher]
version = "0.4"
optional = true

[dependencies.data-encoding]
version = "2.5"

[dependencies.generic-array]
version = "1.0"

[dependencies.hex]
version = "0.4"

[dependencies.num-bigint]
version = "0.4.6"

[dependencies.once_cell]
version = "1.21.3"

[dependencies.thiserror]
version = "1.0"

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]

[dev-dependencies.hex]
version = "0.4"

[dev-dependencies.jsonwebtoken]
version = "9.3"

[dev-dependencies.serde]
version = "1.0"
features = ["derive"]

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

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

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rand]
version = "0.8"

[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.2"
features = ["js"]

[target.'cfg(target_arch = "wasm32")'.dependencies.rand]
version = "0.8"
features = ["getrandom"]
