# 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://mundane.googlesource.com/mundane"

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

# 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"
[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 = []
