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.
232 lines
8.1 KiB
TOML
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",
|
|
]
|