• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[package]
2authors = ["Brian Smith <brian@briansmith.org>"]
3build = "build.rs"
4categories = ["cryptography", "no-std"]
5description = "Safe, fast, small crypto using Rust."
6documentation = "https://briansmith.org/rustdoc/ring/"
7edition = "2018"
8keywords = ["crypto", "cryptography", "rand", "ECC", "RSA"]
9license-file = "LICENSE"
10name = "ring"
11readme = "doc/link-to-readme.md"
12repository = "https://github.com/briansmith/ring"
13
14# Keep in sync with `links` below.
15version = "0.17.0-alpha.11"
16
17# Keep in sync with `version` above.
18#
19# "ring_core_" + version, replacing punctuation with underscores.
20#
21# build.rs uses this to derive the prefix for FFI symbols and the file names
22# of the FFI libraries, so it must be a valid identifier prefix and a valid
23# filename prefix.
24links = "ring_core_0_17_0_alpha_11"
25
26include = [
27    "LICENSE",
28    "Cargo.toml",
29
30    "pregenerated/*",
31
32    "build.rs",
33
34    "crypto/chacha/asm/chacha-armv4.pl",
35    "crypto/chacha/asm/chacha-armv8.pl",
36    "crypto/chacha/asm/chacha-x86.pl",
37    "crypto/chacha/asm/chacha-x86_64.pl",
38    "crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt",
39    "crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt",
40    "crypto/constant_time_test.c",
41    "crypto/cpu-intel.c",
42    "crypto/crypto.c",
43    "crypto/curve25519/asm/x25519-asm-arm.S",
44    "crypto/curve25519/curve25519.c",
45    "crypto/curve25519/curve25519_tables.h",
46    "crypto/curve25519/internal.h",
47    "crypto/fipsmodule/aes/aes_nohw.c",
48    "crypto/fipsmodule/aes/asm/aesni-x86.pl",
49    "crypto/fipsmodule/aes/asm/aesni-x86_64.pl",
50    "crypto/fipsmodule/aes/asm/aesv8-armx.pl",
51    "crypto/fipsmodule/aes/asm/bsaes-armv7.pl",
52    "crypto/fipsmodule/aes/asm/bsaes-x86_64.pl",
53    "crypto/fipsmodule/aes/asm/vsaes-armv7.pl",
54    "crypto/fipsmodule/aes/asm/vpaes-x86.pl",
55    "crypto/fipsmodule/aes/asm/vpaes-x86_64.pl",
56    "crypto/fipsmodule/bn/asm/armv4-mont.pl",
57    "crypto/fipsmodule/bn/asm/armv8-mont.pl",
58    "crypto/fipsmodule/bn/asm/x86-mont.pl",
59    "crypto/fipsmodule/bn/asm/x86_64-mont.pl",
60    "crypto/fipsmodule/bn/asm/x86_64-mont5.pl",
61    "crypto/fipsmodule/bn/internal.h",
62    "crypto/fipsmodule/bn/montgomery.c",
63    "crypto/fipsmodule/bn/montgomery_inv.c",
64    "crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl",
65    "crypto/fipsmodule/ec/ecp_nistz.c",
66    "crypto/fipsmodule/ec/ecp_nistz.h",
67    "crypto/fipsmodule/ec/ecp_nistz384.h",
68    "crypto/fipsmodule/ec/ecp_nistz384.inl",
69    "crypto/fipsmodule/ec/gfp_p256.c",
70    "crypto/fipsmodule/ec/gfp_p384.c",
71    "crypto/fipsmodule/ec/p256.c",
72    "crypto/fipsmodule/ec/p256-x86_64-table.h",
73    "crypto/fipsmodule/ec/p256-x86_64.c",
74    "crypto/fipsmodule/ec/p256-x86_64.h",
75    "crypto/fipsmodule/ec/p256_shared.h",
76    "crypto/fipsmodule/ec/p256_table.h",
77    "crypto/fipsmodule/ec/util.h",
78    "crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt",
79    "crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl",
80    "crypto/fipsmodule/modes/asm/ghash-armv4.pl",
81    "crypto/fipsmodule/modes/asm/ghash-x86.pl",
82    "crypto/fipsmodule/modes/asm/ghash-x86_64.pl",
83    "crypto/fipsmodule/modes/asm/ghashv8-armx.pl",
84    "crypto/fipsmodule/rsa/padding.c",
85    "crypto/fipsmodule/sha/asm/sha256-armv4.pl",
86    "crypto/fipsmodule/sha/asm/sha512-armv4.pl",
87    "crypto/fipsmodule/sha/asm/sha512-armv8.pl",
88    "crypto/fipsmodule/sha/asm/sha512-x86_64.pl",
89    "crypto/internal.h",
90    "crypto/limbs/limbs.c",
91    "crypto/limbs/limbs.h",
92    "crypto/limbs/limbs.inl",
93    "crypto/mem.c",
94    "crypto/perlasm/arm-xlate.pl",
95    "crypto/perlasm/x86asm.pl",
96    "crypto/perlasm/x86gas.pl",
97    "crypto/perlasm/x86nasm.pl",
98    "crypto/perlasm/x86_64-xlate.pl",
99    "crypto/poly1305/internal.h",
100    "crypto/poly1305/poly1305.c",
101    "crypto/poly1305/poly1305_arm.c",
102    "crypto/poly1305/poly1305_arm_asm.S",
103    "crypto/poly1305/poly1305_vec.c",
104    "crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl",
105    "doc/link-to-readme.md",
106    "examples/checkdigest.rs",
107    "include/ring-core/aes.h",
108    "include/ring-core/arm_arch.h",
109    "include/ring-core/base.h",
110    "include/ring-core/check.h",
111    "include/ring-core/cpu.h",
112    "include/ring-core/mem.h",
113    "include/ring-core/poly1305.h",
114    "include/ring-core/type_check.h",
115    "src/aead.rs",
116    "src/aead/aes.rs",
117    "src/aead/aes_gcm.rs",
118    "src/aead/aes_tests.txt",
119    "src/aead/block.rs",
120    "src/aead/chacha.rs",
121    "src/aead/chacha/fallback.rs",
122    "src/aead/chacha_tests.txt",
123    "src/aead/chacha20_poly1305.rs",
124    "src/aead/chacha20_poly1305_openssh.rs",
125    "src/aead/gcm.rs",
126    "src/aead/gcm/gcm_nohw.rs",
127    "src/aead/less_safe_key.rs",
128    "src/aead/nonce.rs",
129    "src/aead/opening_key.rs",
130    "src/aead/poly1305.rs",
131    "src/aead/poly1305_test.txt",
132    "src/aead/quic.rs",
133    "src/aead/sealing_key.rs",
134    "src/aead/shift.rs",
135    "src/aead/unbound_key.rs",
136    "src/agreement.rs",
137    "src/arithmetic.rs",
138    "src/arithmetic/bigint.rs",
139    "src/arithmetic/bigint_elem_exp_consttime_tests.txt",
140    "src/arithmetic/bigint_elem_exp_vartime_tests.txt",
141    "src/arithmetic/bigint_elem_mul_tests.txt",
142    "src/arithmetic/bigint_elem_reduced_once_tests.txt",
143    "src/arithmetic/bigint_elem_reduced_tests.txt",
144    "src/arithmetic/bigint_elem_squared_tests.txt",
145    "src/arithmetic/constant.rs",
146    "src/arithmetic/montgomery.rs",
147    "src/array.rs",
148    "src/bits.rs",
149    "src/bssl.rs",
150    "src/c.rs",
151    "src/constant_time.rs",
152    "src/cpu.rs",
153    "src/data/alg-rsa-encryption.der",
154    "src/debug.rs",
155    "src/digest.rs",
156    "src/digest/sha1.rs",
157    "src/digest/sha2.rs",
158    "src/ec/curve25519/ed25519/digest.rs",
159    "src/ec/curve25519/ed25519.rs",
160    "src/ec/curve25519/ed25519/signing.rs",
161    "src/ec/curve25519/ed25519/verification.rs",
162    "src/ec/curve25519/ed25519/ed25519_pkcs8_v2_template.der",
163    "src/ec/curve25519.rs",
164    "src/ec/curve25519/ops.rs",
165    "src/ec/curve25519/scalar.rs",
166    "src/ec/curve25519/x25519.rs",
167    "src/ec.rs",
168    "src/ec/keys.rs",
169    "src/ec/suite_b/curve.rs",
170    "src/ec/suite_b/ecdh.rs",
171    "src/ec/suite_b/ecdsa/digest_scalar.rs",
172    "src/ec/suite_b/ecdsa.rs",
173    "src/ec/suite_b/ecdsa/signing.rs",
174    "src/ec/suite_b/ecdsa/verification.rs",
175    "src/ec/suite_b/ecdsa/ecdsa_digest_scalar_tests.txt",
176    "src/ec/suite_b/ecdsa/ecPublicKey_p256_pkcs8_v1_template.der",
177    "src/ec/suite_b/ecdsa/ecPublicKey_p384_pkcs8_v1_template.der",
178    "src/ec/suite_b/ecdsa/ecdsa_sign_asn1_tests.txt",
179    "src/ec/suite_b/ecdsa/ecdsa_sign_fixed_tests.txt",
180    "src/ec/suite_b.rs",
181    "src/ec/suite_b/ops/elem.rs",
182    "src/ec/suite_b/ops.rs",
183    "src/ec/suite_b/ops/p256.rs",
184    "src/ec/suite_b/ops/p256_elem_mul_tests.txt",
185    "src/ec/suite_b/ops/p256_elem_neg_tests.txt",
186    "src/ec/suite_b/ops/p256_elem_sum_tests.txt",
187    "src/ec/suite_b/ops/p256_point_double_tests.txt",
188    "src/ec/suite_b/ops/p256_point_mul_base_tests.txt",
189    "src/ec/suite_b/ops/p256_point_mul_serialized_tests.txt",
190    "src/ec/suite_b/ops/p256_point_mul_tests.txt",
191    "src/ec/suite_b/ops/p256_point_sum_mixed_tests.txt",
192    "src/ec/suite_b/ops/p256_point_sum_tests.txt",
193    "src/ec/suite_b/ops/p256_scalar_mul_tests.txt",
194    "src/ec/suite_b/ops/p256_scalar_square_tests.txt",
195    "src/ec/suite_b/ops/p384.rs",
196    "src/ec/suite_b/ops/p384_elem_div_by_2_tests.txt",
197    "src/ec/suite_b/ops/p384_elem_mul_tests.txt",
198    "src/ec/suite_b/ops/p384_elem_neg_tests.txt",
199    "src/ec/suite_b/ops/p384_elem_sum_tests.txt",
200    "src/ec/suite_b/ops/p384_point_double_tests.txt",
201    "src/ec/suite_b/ops/p384_point_mul_base_tests.txt",
202    "src/ec/suite_b/ops/p384_point_mul_tests.txt",
203    "src/ec/suite_b/ops/p384_point_sum_tests.txt",
204    "src/ec/suite_b/ops/p384_scalar_mul_tests.txt",
205    "src/ec/suite_b/private_key.rs",
206    "src/ec/suite_b/public_key.rs",
207    "src/ec/suite_b/suite_b_public_key_tests.txt",
208    "src/endian.rs",
209    "src/error.rs",
210    "src/hkdf.rs",
211    "src/hmac.rs",
212    "src/hmac_generate_serializable_tests.txt",
213    "src/io.rs",
214    "src/io/der.rs",
215    "src/io/der_writer.rs",
216    "src/io/positive.rs",
217    "src/io/writer.rs",
218    "src/lib.rs",
219    "src/limb.rs",
220    "src/endian.rs",
221    "src/pbkdf2.rs",
222    "src/pkcs8.rs",
223    "src/polyfill.rs",
224    "src/polyfill/array_map.rs",
225    "src/polyfill/chunks_fixed.rs",
226    "src/prefixed.rs",
227    "src/rand.rs",
228    "src/rsa/convert_nist_rsa_test_vectors.py",
229    "src/rsa.rs",
230    "src/rsa/bounds.rs",
231    "src/rsa/keypair.rs",
232    "src/rsa/keypair/asn1.rs",
233    "src/rsa/keypair/components.rs",
234    "src/rsa/keypair/core.rs",
235    "src/rsa/keypair/oaep.rs",
236    "src/rsa/keypair/signature_rsa_example_private_key.der",
237    "src/rsa/keypair/signature_rsa_example_public_key.der",
238    "src/rsa/keypair/signing.rs",
239    "src/rsa/padding.rs",
240    "src/rsa/public.rs",
241    "src/rsa/public/components.rs",
242    "src/rsa/public/key.rs",
243    "src/rsa/public/oaep.rs",
244    "src/rsa/random.rs",
245    "src/rsa/rsa_pss_padding_tests.txt",
246    "src/rsa/verification.rs",
247    "src/signature.rs",
248    "src/test.rs",
249    "src/test_1_syntax_error_tests.txt",
250    "src/test_1_tests.txt",
251    "src/test_3_tests.txt",
252    "tests/aead_aes_128_gcm_tests.txt",
253    "tests/aead_aes_256_gcm_tests.txt",
254    "tests/aead_chacha20_poly1305_tests.txt",
255    "tests/aead_chacha20_poly1305_openssh_tests.txt",
256    "tests/aead_tests.rs",
257    "tests/agreement_tests.rs",
258    "tests/agreement_tests.txt",
259    "tests/constant_time_tests.rs",
260    "tests/digest_tests.rs",
261    "tests/digest_tests.txt",
262    "tests/ecdsa_from_pkcs8_tests.txt",
263    "tests/ecdsa_tests.rs",
264    "tests/ecdsa_test_private_key_p256.p8",
265    "tests/ecdsa_test_public_key_p256.der",
266    "tests/ecdsa_test_public_key_p256_debug.txt",
267    "tests/ecdsa_sign_asn1_tests.txt",
268    "tests/ecdsa_sign_fixed_tests.txt",
269    "tests/ecdsa_verify_asn1_tests.txt",
270    "tests/ecdsa_verify_fixed_tests.txt",
271    "tests/ed25519_from_pkcs8_tests.txt",
272    "tests/ed25519_from_pkcs8_unchecked_tests.txt",
273    "tests/ed25519_tests.rs",
274    "tests/ed25519_tests.txt",
275    "tests/ed25519_test_private_key.bin",
276    "tests/ed25519_test_private_key.p8",
277    "tests/ed25519_test_public_key.bin",
278    "tests/ed25519_test_public_key.der",
279    "tests/hkdf_tests.rs",
280    "tests/hkdf_tests.txt",
281    "tests/hmac_tests.rs",
282    "tests/hmac_tests.txt",
283    "tests/pbkdf2_tests.rs",
284    "tests/pbkdf2_tests.txt",
285    "tests/quic_aes_128_tests.txt",
286    "tests/quic_aes_256_tests.txt",
287    "tests/quic_chacha20_tests.txt",
288    "tests/quic_tests.rs",
289    "tests/rand_tests.rs",
290    "tests/rsa_from_pkcs8_tests.txt",
291    "tests/rsa_pkcs1_sign_tests.txt",
292    "tests/rsa_pkcs1_verify_tests.txt",
293    "tests/rsa_primitive_verify_tests.txt",
294    "tests/rsa_pss_sign_tests.txt",
295    "tests/rsa_pss_verify_tests.txt",
296    "tests/rsa_tests.rs",
297    "tests/rsa_test_private_key_2048.p8",
298    "tests/rsa_test_public_key_2048.der",
299    "tests/rsa_test_public_key_2048_debug.txt",
300    "tests/signature_tests.rs",
301    "third_party/fiat/curve25519_32.h",
302    "third_party/fiat/curve25519_64.h",
303    "third_party/fiat/p256_32.h",
304    "third_party/fiat/p256_64.h",
305    "third_party/fiat/LICENSE",
306    "third_party/NIST/SHAVS/SHA1LongMsg.rsp",
307    "third_party/NIST/SHAVS/SHA1Monte.rsp",
308    "third_party/NIST/SHAVS/SHA1ShortMsg.rsp",
309    "third_party/NIST/SHAVS/SHA224LongMsg.rsp",
310    "third_party/NIST/SHAVS/SHA224Monte.rsp",
311    "third_party/NIST/SHAVS/SHA224ShortMsg.rsp",
312    "third_party/NIST/SHAVS/SHA256LongMsg.rsp",
313    "third_party/NIST/SHAVS/SHA256Monte.rsp",
314    "third_party/NIST/SHAVS/SHA256ShortMsg.rsp",
315    "third_party/NIST/SHAVS/SHA384LongMsg.rsp",
316    "third_party/NIST/SHAVS/SHA384Monte.rsp",
317    "third_party/NIST/SHAVS/SHA384ShortMsg.rsp",
318    "third_party/NIST/SHAVS/SHA512LongMsg.rsp",
319    "third_party/NIST/SHAVS/SHA512Monte.rsp",
320    "third_party/NIST/SHAVS/SHA512ShortMsg.rsp",
321]
322
323[package.metadata.docs.rs]
324all-features = true
325
326[lib]
327name = "ring"
328
329[dependencies]
330untrusted = { version = "0.7.1" }
331
332[target.'cfg(any(target_arch = "x86",target_arch = "x86_64", all(any(target_arch = "aarch64", target_arch = "arm"), any(target_os = "android", target_os = "fuchsia", target_os = "linux"))))'.dependencies]
333spin = { version = "0.5.2", default-features = false }
334
335[target.'cfg(any(target_os = "android", target_os = "linux"))'.dependencies]
336libc = { version = "0.2.84", default-features = false }
337once_cell = { version = "1.5.2", default-features = false, features=["std"], optional = true }
338
339[target.'cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "illumos", target_os = "netbsd", target_os = "openbsd", target_os = "solaris"))'.dependencies]
340once_cell = { version = "1.5.2", default-features = false, features=["std"] }
341
342[target.'cfg(all(target_arch = "wasm32", target_vendor = "unknown", target_os = "unknown", target_env = ""))'.dependencies]
343web-sys = { version = "0.3.37", default-features = false, features = ["Crypto", "Window"] }
344
345[target.'cfg(target_os = "windows")'.dependencies]
346winapi = { version = "0.3.8", default-features = false, features = ["ntsecapi", "wtypesbase"] }
347
348[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
349wasm-bindgen-test = { version = "0.3.18", default-features = false }
350
351[target.'cfg(any(unix, windows))'.dev-dependencies]
352libc = { version = "0.2.84", default-features = false }
353
354[build-dependencies]
355cc = { version = "1.0.66", default-features = false }
356
357[features]
358# These features are documented in the top-level module's documentation.
359default = ["alloc", "dev_urandom_fallback"]
360alloc = []
361dev_urandom_fallback = ["once_cell"]
362internal_benches = []
363slow_tests = []
364std = ["alloc"]
365test_logging = []
366wasm32_c = []
367
368# XXX: debug = false because of https://github.com/rust-lang/rust/issues/34122
369
370[profile.bench]
371opt-level = 3
372debug = false
373rpath = false
374lto = true
375debug-assertions = false
376codegen-units = 1
377
378[profile.release]
379opt-level = 3
380debug = false
381rpath = false
382lto = true
383debug-assertions = false
384codegen-units = 1
385