# Copyright 2018 Google LLC
#
# Use of this source code is governed by an MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT.

[package]
name = "mundane"
version = "0.4.2"
authors = ["Joshua Liebow-Feeser <joshlf@google.com>"]
description = "Cryptography which is easy to use and hard to misuse"
readme = "README.md"
license-file = "LICENSE"
keywords = ["boringssl"]
categories = ["cryptography"]
repository = "https://fuchsia.googlesource.com/mundane"

# Exclude these test files in order to get under the minimum crates.io crate
# file size.
exclude = [
    "boringssl/boringssl/fuzz/*",
    "boringssl/boringssl/third_party/wycheproof_testvectors/*",
    "boringssl/boringssl/crypto/fipsmodule/*/*_tests.txt",
    "boringssl/boringssl/crypto/cipher_extra/test/*"
]

build = "build/main.rs"

[package.metadata.docs.rs]
features = ["bytes","insecure","kdf","rsa-pkcs1v15"]

[build-dependencies]
goblin = "0.0.24"

# If you edit this list, make sure to update test.sh and the package.metadata.docs.rs section.
[features]
default = ["rsa-test-generate-large-keys"]
insecure = []
kdf = []
bytes = []
rsa-pkcs1v15 = []
# Run the RSA `test_generate` test with larger key sizes. This is disabled in
# some configurations because large RSA keys take a long time to generate. This
# feature only affects tests, so shouldn't be relevant to most consumers.
rsa-test-generate-large-keys = []
experimental-sha512-ec = []
# Run the `boringssl/test_symbol_conflict.sh` test during `cargo test`. This is
# disabled by default because the test takes a long time to run.
run-symbol-conflict-test = []
