267 Commits

Author SHA1 Message Date
Brian Smith
d732cbc5a9 Merge BoringSSL c5e9ac1: Move AES-GCM-SIV out from SMALL and handle unaligned keys. 2018-04-28 16:44:03 -10:00
Brian Smith
73fc52a8f1 Merge BoringSSL 2e2a226: Move cipher/ into crypto/fipsmodule/.
This also includes a refactoring to replace two implementations of
`hwaes_capable()` with one implementation.
2018-04-28 15:48:38 -10:00
Brian Smith
f194794df8 Merge BoringSSL b0521e3: Add AES-GCM-SIV assembly.
NPOTB.
2018-04-28 15:13:21 -10:00
Brian Smith
6e24235d6b Merge BoringSSL aacb72c: Move ec/ and ecdsa/ into fipsmodule/. 2018-04-27 16:30:52 -10:00
Brian Smith
6978033929 Merge BoringSSL 5c38c05: Move bn/ into crypto/fipsmodule/. 2018-04-27 15:12:08 -10:00
Ryan Leckey
1caad72349 Remove -fdata-sections and -ffunction-sections (let cc set these if needed) 2018-04-05 09:43:19 -10:00
Josh Stone
f857df6d27 Update to rayon 1.0
I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2018-04-04 16:47:39 -10:00
Pietro Monteiro
72397dfa71 Define Android API level needed for AArch64. 2018-01-26 13:14:25 -10:00
Brian Smith
affdca5d1c Merge BoringSSL 0648129: Move modes/ into the FIPS module. 2018-01-09 16:56:49 -10:00
Brian Smith
61a3cd17e9 Merge BoringSSL 8c62d9d: Move AES code into the FIPS module. 2018-01-09 14:14:04 -10:00
Brian Smith
d497af3778 Merge BoringSSL fd49993: First part of the FIPS module.
Most of this infrastructure for FIPS is not relevant to *ring* in its
current state (though that may change in the future) so most of it is
ignored.

BoringSSL changed the way that the assembly language code accesses the
CPU feature flags to add a new level of indirection to support their
needs for FIPS. That would be a regression (a miniscule one) with no
upside for *ring*, so don't merge that change. That means the asm code
will be slightly different between *ring* and BoringSSL, but that was
already the case due to the symbol renaming we did.

We assume no tests were added in the BoringSSL commit.
2017-12-29 13:22:56 -10:00
Brian Smith
72f5e2ebf0 Avoid trying to disable removed fat_ptr_transmutes antifeature.
The antifeature was removed from rustc in 2014, according to a new warning,
so this was doing nothing.
2017-12-24 09:50:10 -10:00
Ryan Leckey
8411c0098a Add support for i386-apple-ios in ASM_TARGETS. 2017-11-03 14:32:48 -10:00
Ryan Leckey
1d3ac2ed95 Add x86-64, ios, macosx to the ASM_TARGETS array.
This fixes the build on x86_64-apple-ios.
2017-11-03 14:32:48 -10:00
Brian Smith
300f0d6ff5 Use cc 1.0, which replaces the old gcc crate. 2017-09-19 18:31:26 -10:00
Brian Smith
4e912c1d36 Fix unused_results lint failure in build.rs on Nightly.
The failure is new in Nightly because the `unused_results` lint was
changed.
2017-08-27 14:56:23 -10:00
Brian Smith
05ded0198e Move #[allow(box_pointers)] to the narrowest scope it is needed.
`#[allow(box_pointers)]` is only needed in uninteresting code, so
move it to exactly where it is needed.
2017-08-27 11:53:26 -10:00
Brian Smith
9ad82eb228 Rationalize #![allow], #![deny], #![forbid] in build.rs.
Don't explicitly enumerate things covered by `#[forbid(warnings)]`.
Allow `box_pointers` since the build breaks if we don't allow it.
2017-08-27 11:45:05 -10:00
Brian Smith
abc0c47957 Update dependencies to newest versions. 2017-08-18 14:22:40 -10:00
Brian Smith
4674aabd1d Revert "Define Android API level needed for AArch64."
This reverts commit 759f1cc51fe5f5112066b0bb482514eea988bca0.
2017-06-12 11:03:33 -10:00
Pietro Monteiro
759f1cc51f Define Android API level needed for AArch64. 2017-06-08 10:12:58 -10:00
Brian Smith
9a3878a192 Enforce the unused_qualifications lint. 2017-05-17 21:47:52 -10:00
Brian Smith
60867f2642 Remove GFp/err.h and clean up leftover unused bits. 2017-04-27 16:06:22 -10:00
Brian Smith
c86906bc68 Remove GFp_BN_bin2bn(). 2017-04-27 14:44:34 -10:00
Brian Smith
ede257442b Use the new field init shorthand syntax where applicable. 2017-04-27 11:58:20 -10:00
Brian Smith
d7d2199620 Replace GFp_BN_is_odd(). 2017-04-26 17:24:44 -10:00
Brian Smith
aa6dcd5b55 Replace GFp_BN_usub(). 2017-04-26 17:24:40 -10:00
Brian Smith
8c1d54b353 Replace GFp_BN_mod_sub_quick(). 2017-04-26 17:17:52 -10:00
Brian Smith
76a44de074 Don't build with warnings-as-errors when building from crates.io. 2017-04-25 10:44:53 -10:00
Brian Smith
f9528db33e Replace crypto/bn/random.c with Rust code. 2017-04-25 00:10:02 -10:00
Brian Smith
efdffc91db Remove now-unused BIGNUM functions, and bn_test.cc (the last C++ use).
These functions can be removed thanks to the new modular inversion
implementation.
2017-04-24 16:29:37 -10:00
Brian Smith
ff71d521ff Use "GFp/" instead of "openssl/" for #includes.
Avoid any potential conflicts with OpenSSL header files by using a
different namespace.
2017-04-19 14:56:44 -10:00
Peter Reid
63069777b5 Convert random chunk generation from C to Rust
I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2017-04-16 18:27:26 -10:00
Brian Smith
0aea3d20c2 Remove now-unused/unneeded headers. 2017-04-16 12:58:28 -10:00
Brian Smith
cdc1301b3c Always use ".obj" as the file extension for pre-assembled object files.
This addresses one issue with windows-gnu builds.
2017-04-11 18:16:23 -10:00
Brian Smith
905aca9301 Revert "Use .obj as the object file name for all Windows targets, not just MSVC."
This reverts commit 1e7225bfaa52b4d3f1a30fcc8036c72ff3736c55. That
wasn't quite right.
2017-04-11 18:12:18 -10:00
Brian Smith
1e7225bfaa Use .obj as the object file name for all Windows targets, not just MSVC.
The pregenerated object files are named ".obj", regardless of whether
the target is -msvc or -gnu.
2017-04-11 18:05:10 -10:00
Brian Smith
1e1021d05b Don't assume $PWD is the Cargo manifest directory.
It seems that it isn't the case, at least when cross-compiling from
Linux to Windows.
2017-04-11 17:55:39 -10:00
Brian Smith
2c31f8d545 Print out command line when a command execution fails in build.rs. 2017-04-11 15:18:26 -10:00
Josh Stone
9f0e0286b3 Update to rayon 0.7
I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2017-04-07 15:43:23 -10:00
Brian Smith
d51e389673 Remove now-unused GFp_RAND_bytes. 2017-04-07 15:41:06 -10:00
Brian Smith
3c95a29cc3 Remove non-ASCII characters from C/C++ files; drop /utf-8 on MSVC.
Only the newest versions of MSVC 2015's and MSVC 2017's cl.exe support
the `/utf-8` flag. MSVC 2013 and even the initial versions of MSVC 2015
didn't support it. Make it a non-issue by removing the single non-ASCII
character in C/C++ files.
2017-04-05 14:11:49 -10:00
Stephen Oliver
f674a7e945 Don't require a C++ compiler for -musl targets.
Also, don't build/run `bn_tests` unless RSA signing is enabled, since
the functionality that `bn_tests` tests is RSA-signing-specific.
2017-04-01 16:26:21 -10:00
CrLF0710
a004549b97 Fix windows gnu build. 2017-04-01 15:52:52 -10:00
Brian Smith
8b026c93f2 Replace C code for serializing Elems with Rust code. 2017-03-19 11:48:57 -10:00
Brian Smith
819ad75b4e Disable bn_test.cc on macOS/iOS to avoid worrying about libc++ vs libstdc++. 2017-03-18 22:56:36 -10:00
Brian Smith
16ad542987 Restore some MSVC flags that were used in the MSBuild-based builds.
"/Ox" implies a lot of the other flags that were passed explicitly.
2017-03-18 17:37:53 -10:00
Brian Smith
ad39dd1623 Enable debug assertions based on $DEBUG, not $PROFILE. 2017-03-18 17:37:51 -10:00
Brian Smith
f7f1fb7773 Remove unused crypto/perlasm/x86masm.pl. 2017-03-18 15:31:16 -10:00
Brian Smith
dd659d2994 Improve Perlasm machinery for SHA-2 on X86-64 and ARMv8.
Rename sha-{x86_64, armv8}.pl back to sha512-{x86_64, armv8}.pl. This
will simplify copmarisons between BoringSSL and *ring*.

Replace the *ring*-specific hacky logic done in Perl with hacky logic
done in Rust. The purpose of this hack is to deal with the fact that
sha512-{x86_64, armv8}.pl need to be run twice, once with "512" in the
output file path to generate
`GFp_sha512_block_data_order`, and again with "256" in the output file
path to generate `GFp_sha256_block_data_order`.
2017-03-18 15:31:15 -10:00