# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

[package]
name = "dpe-rs"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
aes-gcm = { version = "0.10.3", default-features = false, features = ["aes", "heapless", "zeroize"] }
env_logger = "0.10.0"
hash32 = "0.3.1"
heapless = { version = "0.7.16", default-features = false }
libc-print = "0.1.22"
log = "0.4.20"
minicbor = "0.19.1"
noise-protocol = "0.2.0"
rand_core = "0.6.4"
zeroize = { version = "1.7.0", features = ["zeroize_derive"], default-features = false }

[dev-dependencies]
aes-gcm-siv = "0.11.1"
ed25519-dalek = { version = "2.1.0", default-features = false, features = ["zeroize"] }
hkdf = "0.12.3"
hmac = "0.12.1"
hpke = { version = "0.11.0", default-features = false, features = ["x25519"] }
noise-rust-crypto = "0.6.2"
sha2 = { version = "0.10.8", default-features = false }
x25519-dalek = { version = "2.0.0", default-features = false, features = ["zeroize"] }
rand_chacha = { version = "0.3.1", default-features = false }

[workspace.lints.rust]
unsafe_code = "deny"
missing_docs = "deny"
trivial_casts = "deny"
trivial_numeric_casts = "deny"
unused_extern_crates = "deny"
unused_import_braces = "deny"
unused_results = "deny"

[workspace.lints.clippy]
indexing_slicing = "deny"
unwrap_used = "deny"
panic = "deny"
expect_used = "deny"
