ring/Cargo.toml
Brian Smith febe76dc77 cpu arm: Fix static feature detection initialization.
Commit f932b941bd1f59782cb3db8f7cd7b8b2c9842ee9 was incomplete and
wrong. On targets where we do any static or dynamic feature detection
and where we have these global variables, we need to unconditionally
write the detected features to the global variable so that assembly
can see them. Since we do static feature detection regardless of
operating system, the initialization of the global most be done
without any conditions on the operating system.
2023-12-01 17:57:15 -08:00

232 lines
8.1 KiB
TOML

[package]
authors = ["Brian Smith <brian@briansmith.org>"]
build = "build.rs"
categories = ["cryptography", "no-std"]
description = "Safe, fast, small crypto using Rust."
edition = "2021"
keywords = ["crypto", "cryptography", "rand", "ECC", "RSA"]
license-file = "LICENSE"
name = "ring"
repository = "https://github.com/briansmith/ring"
# Keep in sync with .github/workflows/ci.yml ("MSRV") and see the MSRV note
# in cpu/arm.rs
rust-version = "1.61.0"
# Keep in sync with `links` below.
version = "0.17.6"
# Keep in sync with `version` above.
#
# "ring_core_" + version, replacing punctuation with underscores.
#
# build.rs uses this to derive the prefix for FFI symbols and the file names
# of the FFI libraries, so it must be a valid identifier prefix and a valid
# filename prefix.
links = "ring_core_0_17_6"
include = [
"LICENSE",
"Cargo.toml",
"pregenerated/*",
"benches/*.rs",
"build.rs",
"crypto/chacha/asm/chacha-armv4.pl",
"crypto/chacha/asm/chacha-armv8.pl",
"crypto/chacha/asm/chacha-x86.pl",
"crypto/chacha/asm/chacha-x86_64.pl",
"crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt",
"crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt",
"crypto/constant_time_test.c",
"crypto/cpu_intel.c",
"crypto/crypto.c",
"crypto/curve25519/asm/x25519-asm-arm.S",
"crypto/curve25519/curve25519.c",
"crypto/curve25519/curve25519_64_adx.c",
"crypto/curve25519/curve25519_tables.h",
"crypto/curve25519/internal.h",
"crypto/fipsmodule/aes/aes_nohw.c",
"crypto/fipsmodule/aes/asm/aesni-x86.pl",
"crypto/fipsmodule/aes/asm/aesni-x86_64.pl",
"crypto/fipsmodule/aes/asm/aesv8-armx.pl",
"crypto/fipsmodule/aes/asm/bsaes-armv7.pl",
"crypto/fipsmodule/aes/asm/bsaes-x86_64.pl",
"crypto/fipsmodule/aes/asm/vsaes-armv7.pl",
"crypto/fipsmodule/aes/asm/vpaes-x86.pl",
"crypto/fipsmodule/aes/asm/vpaes-x86_64.pl",
"crypto/fipsmodule/bn/asm/armv4-mont.pl",
"crypto/fipsmodule/bn/asm/armv8-mont.pl",
"crypto/fipsmodule/bn/asm/x86-mont.pl",
"crypto/fipsmodule/bn/asm/x86_64-mont.pl",
"crypto/fipsmodule/bn/asm/x86_64-mont5.pl",
"crypto/fipsmodule/bn/internal.h",
"crypto/fipsmodule/bn/montgomery.c",
"crypto/fipsmodule/bn/montgomery_inv.c",
"crypto/fipsmodule/ec/asm/p256-armv8-asm.pl",
"crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl",
"crypto/fipsmodule/ec/ecp_nistz.c",
"crypto/fipsmodule/ec/ecp_nistz.h",
"crypto/fipsmodule/ec/ecp_nistz384.h",
"crypto/fipsmodule/ec/ecp_nistz384.inl",
"crypto/fipsmodule/ec/gfp_p256.c",
"crypto/fipsmodule/ec/gfp_p384.c",
"crypto/fipsmodule/ec/p256.c",
"crypto/fipsmodule/ec/p256-nistz-table.h",
"crypto/fipsmodule/ec/p256-nistz.c",
"crypto/fipsmodule/ec/p256-nistz.h",
"crypto/fipsmodule/ec/p256_shared.h",
"crypto/fipsmodule/ec/p256_table.h",
"crypto/fipsmodule/ec/util.h",
"crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt",
"crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl",
"crypto/fipsmodule/modes/asm/ghash-armv4.pl",
"crypto/fipsmodule/modes/asm/ghash-x86.pl",
"crypto/fipsmodule/modes/asm/ghash-x86_64.pl",
"crypto/fipsmodule/modes/asm/ghashv8-armx.pl",
"crypto/fipsmodule/sha/asm/sha256-armv4.pl",
"crypto/fipsmodule/sha/asm/sha512-armv4.pl",
"crypto/fipsmodule/sha/asm/sha512-armv8.pl",
"crypto/fipsmodule/sha/asm/sha512-x86_64.pl",
"crypto/internal.h",
"crypto/limbs/limbs.c",
"crypto/limbs/limbs.h",
"crypto/limbs/limbs.inl",
"crypto/mem.c",
"crypto/perlasm/arm-xlate.pl",
"crypto/perlasm/x86asm.pl",
"crypto/perlasm/x86gas.pl",
"crypto/perlasm/x86nasm.pl",
"crypto/perlasm/x86_64-xlate.pl",
"crypto/poly1305/internal.h",
"crypto/poly1305/poly1305.c",
"crypto/poly1305/poly1305_arm.c",
"crypto/poly1305/poly1305_arm_asm.S",
"crypto/poly1305/poly1305_vec.c",
"crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl",
"crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl",
"examples/**/*.rs",
"include/ring-core/aes.h",
"include/ring-core/arm_arch.h",
"include/ring-core/asm_base.h",
"include/ring-core/base.h",
"include/ring-core/check.h",
"include/ring-core/mem.h",
"include/ring-core/poly1305.h",
"include/ring-core/target.h",
"include/ring-core/type_check.h",
"src/**/*.rs",
"src/aead/poly1305_test.txt",
"src/data/alg-rsa-encryption.der",
"src/ec/curve25519/ed25519/ed25519_pkcs8_v2_template.der",
"src/ec/suite_b/ecdsa/ecPublicKey_p256_pkcs8_v1_template.der",
"src/ec/suite_b/ecdsa/ecPublicKey_p384_pkcs8_v1_template.der",
"src/rsa/signature_rsa_example_private_key.der",
"src/rsa/signature_rsa_example_public_key.der",
"tests/**/*.rs",
"tests/ecdsa_test_private_key_p256.p8",
"tests/ecdsa_test_public_key_p256.der",
"tests/ecdsa_test_public_key_p256_debug.txt",
"tests/ed25519_test_private_key.bin",
"tests/ed25519_test_private_key.p8",
"tests/ed25519_test_public_key.bin",
"tests/ed25519_test_public_key.der",
"tests/rsa_test_private_key_2048.p8",
"tests/rsa_test_public_key_2048.der",
"tests/rsa_test_public_key_2048_debug.txt",
"tests/rsa_test_public_modulus.bin",
"third_party/fiat/asm/fiat_curve25519_adx_mul.S",
"third_party/fiat/asm/fiat_curve25519_adx_square.S",
"third_party/fiat/curve25519_32.h",
"third_party/fiat/curve25519_64.h",
"third_party/fiat/curve25519_64_adx.h",
"third_party/fiat/curve25519_64_msvc.h",
"third_party/fiat/p256_32.h",
"third_party/fiat/p256_64.h",
"third_party/fiat/p256_64_msvc.h",
"third_party/fiat/LICENSE",
"third_party/NIST/SHAVS/SHA1LongMsg.rsp",
"third_party/NIST/SHAVS/SHA1Monte.rsp",
"third_party/NIST/SHAVS/SHA1ShortMsg.rsp",
"third_party/NIST/SHAVS/SHA224LongMsg.rsp",
"third_party/NIST/SHAVS/SHA224Monte.rsp",
"third_party/NIST/SHAVS/SHA224ShortMsg.rsp",
"third_party/NIST/SHAVS/SHA256LongMsg.rsp",
"third_party/NIST/SHAVS/SHA256Monte.rsp",
"third_party/NIST/SHAVS/SHA256ShortMsg.rsp",
"third_party/NIST/SHAVS/SHA384LongMsg.rsp",
"third_party/NIST/SHAVS/SHA384Monte.rsp",
"third_party/NIST/SHAVS/SHA384ShortMsg.rsp",
"third_party/NIST/SHAVS/SHA512LongMsg.rsp",
"third_party/NIST/SHAVS/SHA512Monte.rsp",
"third_party/NIST/SHAVS/SHA512ShortMsg.rsp",
]
[package.metadata.docs.rs]
all-features = true
[lib]
name = "ring"
[dependencies]
getrandom = { version = "0.2.10" }
untrusted = { version = "0.9" }
[target.'cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86",target_arch = "x86_64"))'.dependencies]
spin = { version = "0.9.8", default-features = false, features = ["once"] }
[target.'cfg(all(any(target_os = "android", target_os = "linux"), any(target_arch = "aarch64", target_arch = "arm")))'.dependencies]
libc = { version = "0.2.148", default-features = false }
[target.'cfg(all(target_arch = "aarch64", target_os = "windows"))'.dependencies]
windows-sys = { version = "0.48", features = ["Win32_Foundation", "Win32_System_Threading"] }
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dev-dependencies]
wasm-bindgen-test = { version = "0.3.37", default-features = false }
[target.'cfg(any(unix, windows, target_os = "wasi"))'.dev-dependencies]
libc = { version = "0.2.148", default-features = false }
[build-dependencies]
cc = { version = "1.0.83", default-features = false }
[features]
# These features are documented in the top-level module's documentation.
default = ["alloc", "dev_urandom_fallback"]
alloc = []
dev_urandom_fallback = []
less-safe-getrandom-custom-or-rdrand = []
slow_tests = []
std = ["alloc"]
unstable-testing-arm-no-hw = []
unstable-testing-arm-no-neon = []
test_logging = []
wasm32_unknown_unknown_js = ["getrandom/js"]
# XXX: debug = false because of https://github.com/rust-lang/rust/issues/34122
[profile.bench]
opt-level = 3
debug = false
rpath = false
lto = true
debug-assertions = false
codegen-units = 1
[profile.release]
opt-level = 3
debug = false
rpath = false
lto = true
debug-assertions = false
codegen-units = 1
[workspace]
members = [
# intentionally not a default member so that `cargo test` doesn't cause criterion.rs and all its
# dependencies to get built.
"bench",
]