5106 Commits

Author SHA1 Message Date
Brian Smith
e45ee6e08d Update documentation in BUILDING.md. 2016-11-07 15:22:18 -10:00
Brian Smith
c96d59a760 Use the v140, not v140-xp toolchain on Windows.
The v140-xp toolchain is an optional component and there was a report
from somebody that didn't have it installed. Also, we don't have
testing on Windows XP yet, and it's likely we're depending on libstd
features that don't work on Windows XP. In particular, does
`lazy_static` work on XP?

We can always add support for v140-xp later if/when somebody needs it
and we can test it.
2016-11-07 12:41:53 -10:00
Brian Smith
7564a2e2bf Work around "private type in public interface" yet again. 2016-11-06 17:35:36 -10:00
Peter Reid
ace4d330ce Use shared bytes-to-integer function in poly1305.
This removes an endianness assumption.

I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2016-11-06 17:21:59 -10:00
Kornelijus Survila
d490c7287b Fix subkey order in chacha20-poly1305@openssh.com.
I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2016-11-06 17:17:23 -10:00
Brian Smith
66602e7310 Refactor & clarify documentation for ECDSA_*_ASN1 algorithms. 2016-11-06 15:48:47 -10:00
Brian Smith
c5b81134c8 Remove ECDSA_P256_SHA512_ASN1 and ECDSA_P384_SHA512_ASN1.
The Chromium/BoringSSL team showed that it isn't necessary to support
ECDSA with SHA-512 for the P-256 and P-384 curves for HTTPS; see
https://groups.google.com/a/chromium.org/d/msg/security-dev/SlfABuvvQas/qOil2X4UBQAJ.
2016-11-06 15:16:59 -10:00
Brian Smith
257b389869 Match digest algorithm with curve in "short s" ECDSA tests.
This facilitates removing support for mismatched curve + digest
combinations in the immediate and not-so-immediate future.
2016-11-06 15:16:25 -10:00
Brian Smith
65e2f51280 Remove ECDSA SHA-1 signature support. Bump version to 0.6.0.
Research by the BoringSSL team has shown that ECDSA-SHA1 support isn't
needed for HTTPS, so we should be safe to get rid of it.

The version number was bumped because this is an incompatible change.
2016-11-05 19:52:48 -10:00
Brian Smith
d05c8431ea Rearrange and rename some parameters in the ecdsa! macro. 2016-11-05 19:52:47 -10:00
Brian Smith
9850ad717f Clarify documentation for ASN.1 ECDSA verification algorithms. 2016-11-05 19:52:46 -10:00
Kornelijus Survila
8c56627ee9 Fix nonce encoding in chacha20-poly1305@openssh.com.
I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2016-10-29 19:48:06 -10:00
Brian Smith
c3f32c7f88 0.5.3. 2016-10-26 19:30:55 -10:00
Brian Smith
2ddd9dacd9 Fix reduction of digest values larger than group order in ECDSA.
After chopping off the excess bytes, reduce the value mod `n` by
doing a conditional subtraction. Previously we were wrongly shifting by
an extra bit if the digest value was larger than or equal to `n`.
2016-10-26 19:18:56 -10:00
Brian Smith
af512273b3 Add RFC 6979 test vectors for ecdsa_verify_tests. 2016-10-26 18:48:54 -10:00
Georg Semmler
a0ee4b5763 Move MSVC build logic to own function.
I agree to license my contributions to each file under the terms given
at the top of each file I changed.

[Tweaked slightly by Brian.]
2016-10-26 14:15:24 -10:00
Brian Smith
f62c2e7dc1 Use std::path::{Path, PathBuf} in build.rs. 2016-10-26 09:58:25 -10:00
Brian Smith
b4b084e9b7 0.5.2. 2016-10-26 09:35:30 -10:00
Brian Smith
7cbf1a1d92 Zeroize plaintext when tag validation fails in ring::aead. 2016-10-26 09:35:06 -10:00
Brian Smith
74651c5cf9 Change order of operations in chacha20_xor_overlapping.
Instead of leaving `in_prefix_len` bytes of plaintext after the
output, leave `in_prefix_len` bytes of ciphertext, which is safer.
2016-10-26 09:27:10 -10:00
Brian Smith
61e6afc87b Reformat build.rs.
Tweak some things that would be poorly reformatted by rustfmt,
then rustfmt.
2016-10-26 09:27:09 -10:00
Brian Smith
c28c11a4b7 Allow unused_qualifications to work around libstd bug. 2016-10-25 20:54:21 -10:00
Brian Smith
e6b1d36a3c Bump version to 0.5.1. 2016-10-25 19:14:58 -10:00
Brian Smith
3ad8179c1f Fix public-in-private issue in ring::digest::sha1. 2016-10-25 19:14:57 -10:00
Brian Smith
0b7413e4a9 Remove image in build status links in README.md.
The badge acts like a tracking beacon, which people working on
security/privacy stuff may not appreciate.
2016-10-25 19:14:56 -10:00
Mikhail Sobolev
8b4639980e Fix links for oxidation and tls-1.3 projects.
The labels were replaced with projects.
2016-10-25 18:47:09 -10:00
Brian Smith
5f293cc447 Add src/rsa/padding.rs to Cargo.toml. 2016-10-24 18:28:27 -10:00
Brian Smith
d5ece3f421 Factor out common Poly1305 key derivation logic. 2016-10-24 16:34:09 -10:00
Brian Smith
8053821b2f Implement chacha20-poly1305@openssh.com. 2016-10-24 16:34:08 -10:00
Brian Smith
66a1b82e40 Factor out Poly1305 into a separate module.
The copyright notice changes are for the tests.
2016-10-24 16:33:59 -10:00
Brian Smith
6f032b0cd4 Factor out ChaCha20 into a separate module.
The copyright notice changes are for the tests.
2016-10-24 16:33:38 -10:00
Brian Smith
21cf0d8c84 Name the internal digest state and output array types. 2016-10-24 10:29:17 -10:00
Mathieu Poumeyrol
4efb6f5a1e Enable NEON support on iOS ARMv7 targets.
This is required to get some assembly language code to build.
2016-10-17 09:23:06 -10:00
Tatsuya Kawano
4102ae7cc5 Issue #287 - Support building on *BSD
- build.rs
  * Default to `gmake` on BSD systems
  * Support `MAKE` variable for pointing to correct `make`
- mk/top_of_makefile.mk
  * Allow target triple on BSD* not to have abi (e.g. x86_64-unknown-freebsd)
- BUILDING.md
  * Add descriptions about `MAKE` variable.

I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2016-10-12 18:16:31 +08:00
Vadim Petrochenkov
5a2c0a2006 Remove use of lint match_of_unit_variant_via_paren_dotdot.
Rust is removing this lint.
2016-10-05 11:23:18 -10:00
Артём Павлов [Artyom Pavlov]
6dac94bac6 Replaced crypto/aes/aes_test.cc with Rust code.
I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2016-10-04 16:43:50 -10:00
Артём Павлов [Artyom Pavlov]
3b5ae496b9 Use Rust instead of C for Poly1305 tests.
I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2016-10-04 16:35:17 -10:00
Brian Smith
b6cfc4a229 Add TODO about Poly1305 alignment requirement. 2016-10-04 16:29:41 -10:00
Brian Smith
ad8b0e9160 Update Cargo.toml for ChaCha20 test C -> Rust replacement.
The replacement was done in commit f5be9c3.
2016-10-01 17:19:12 -10:00
Brian Smith
5f1915293f Move AEAD test vectors from crypto/cipher/test/ to src/aead/. 2016-10-01 16:39:30 -10:00
Brian Smith
acbf75b912 Remove AES key wrap tests & cipher_test.txt.
The AES key wrap code is gone and so is the stuff that
cipher_test.txt tested.
2016-10-01 16:39:28 -10:00
Brian Smith
f11c805e29 Improve comment for is_scalar_within_range.
Use "[1, max_exclusive)" instead of "(0, max_exclusive)". Explain
nuances of its constant-timedness.
2016-10-01 10:36:05 -10:00
David Judd
a0a9328e9b Remove dependence of non-RSA code on Range struct
I agree to license my contributions to each file under the terms
given at the top of each file I changed.
2016-10-01 10:30:21 -10:00
whythat
14fe43dc3c Reimplement PrintLine() to remove last usage of <stdarg.h> and vararg.
I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2016-09-28 09:44:34 -10:00
Brian Smith
737757b93a Add ring::agreement::EphemeralPrivateKey::algorithm(). 2016-09-23 23:42:47 -10:00
Brian Smith
77c8c8091c Allow unsafe_code everywhere.
Since the unsafe code is already in `unsafe` blocks, it's redundant to
also require `#[allow(unsafe_code)]`.
2016-09-18 10:48:44 -10:00
Brian Smith
0cf761264c Derive Clone and Copy for ring::digest::Digest. 2016-09-18 10:48:43 -10:00
Brian Smith
155b8f697e Remove ring::aead::CHACHA20_POLY1305_OLD.
This was the AEAD construction used in the pre-standardization TLS
ChaCha20-Poly1305 cipher suites, which are no longer relevant. I had
thought it was the same construction used in the OpenSSH
ChaCha20-Poly1305 cipher suite, but I was wrong. Thus, it's useless
now.
2016-09-18 10:48:19 -10:00
Brian Smith
8f144603a9 Bump version number for backward-incompatible API change. 2016-09-12 11:42:01 -10:00
Sam Scott
cb3ce35061 Refactor RSA padding to new Encoding/Verification traits.
I agree to license my contributions to each file under the terms given
at the top of each file I changed.
2016-09-12 10:42:45 -10:00