25 Commits

Author SHA1 Message Date
Brian Smith
f8bb8677e9 Windows: Split assembly language components into seperate static lib. 2016-08-14 20:24:43 -10:00
Brian Smith
ea497f0c64 Windows: Rename libtest to libring-test. 2016-08-14 20:12:32 -10:00
Brian Smith
849a6ac871 Windows: Remove "Tests" project folder from ring.sln.
This was a relic from when we had multiple test executable projects.
2016-08-14 20:12:27 -10:00
Brian Smith
48fb95e560 Use /NODEFAULTLIB on Windows.
The Rust toolchain chooses which Windows libraries to link. Avoid
potential conflicts by avoiding specifying our own preferences.
2016-04-25 11:16:35 -10:00
Brian Smith
4165289b36 Use one process for all tests.
Instead of building the test suites inherited from BoringSSL as
seperate executables, link them all together into one executable,
giving all their `main` functions unique names.

This allows all the tests to be run, even on platforms that don't have
traditional process spawning, and avoids the need to keep track of
directory names even on platforms that do support process spawning.

This also makes it easier to integrate new BoringSSL test suites on
Windows, because we don't need to create a new `vcxproj` file for each
one.

Having one test executable may also make code coverage easier.
2016-04-16 18:55:05 -10:00
Brian Smith
4db5f88f61 Enable asm implementations for Windows; drop NO_ASM mode. 2016-04-14 11:37:37 -10:00
Brian Smith
ec91f2803d Merge BoringSSL d7166d0: Add a standalone ChaCha test.
The test was adapted to call `ChaCha20_ctr32` directly, since that's
what *ring* does. Also, the unused arguments to `main` were removed.
2016-03-09 09:34:31 -10:00
Brian Smith
b713290336 Remove reference counting code.
Rust programs can use Rust's `Rc` or other mechanisms for reference
counting and non-Rust code can do similar.
2016-02-14 16:05:00 -10:00
Brian Smith
3e47fea7ca Remove gcm_test.
All the test cases in gcm_test (except the AES-192 test vectors we
don't care about) are already tested in the AEAD tests; i.e.
aes_128_gcm_tests.txt and aes_256_gcm_tests.txt already contain all
the test vectors in gcm_test.c.
2016-02-14 15:55:16 -10:00
Brian Smith
cc019c246d Remove crypto/ec/example_mul.c.
This code seems to test weird things that I don't understand. I think
it might be some very important regression test for some very important
bug that was fixed, or maybe it is a special test for p256-64.c or
something. Regardless, it was in the way removing it gets it out of the
way. This may not be the best course of action; if not, then it would
be great to learn what this is for.
2015-12-11 15:22:00 -10:00
Brian Smith
e1d461fa5e Remove the bssl tool.
As more of the logic moves to Rust, the `bssl` tool's utility decreases,
and the difficulty of maintaining it increases, so get rid of it.
2015-12-05 13:44:37 -10:00
Brian Smith
2ca12aabde Remove crypto/digest except for crypto/digest/md32_common.h. 2015-10-31 16:27:58 -10:00
Brian Smith
8e089dddc1 Avoid using the heap in |ring::aead|. 2015-10-15 01:26:44 -10:00
Brian Smith
180f71de10 Remove crypto/dh. 2015-10-10 16:30:19 -10:00
Brian Smith
c424bc9dc0 Build the tool on Windows. 2015-10-09 13:25:49 -10:00
Brian Smith
e91d7c3c73 Remove non-AEAD crypto/cipher interface. 2015-10-05 12:01:03 -10:00
Brian Smith
9e6f673f59 Remove crypto/cmac. 2015-10-05 10:38:26 -10:00
Brian Smith
c8f72f70d1 Remove the C implementation of HMAC.
This has been superceded by the Rust implementation in |ring::hmac|.

See also the memory safety issues pointed out in
https://boringssl-review.googlesource.com/#/c/5911/.
2015-09-17 23:11:11 -07:00
Brian Smith
ba2cec6b7b Remove crypto/err.
Maintaining the error state is shockingly complicated and error-prone.
Since all the readers of the error state have been removed, we can
avoid maintaing it at all, avoiding all that complexity.

There are about 500 calls to |OPENSSL_PUT_ERROR| in the code. This
change makes them all a no-op. This will reduce code size. The calls to
|OPENSSL_PUT_ERROR| were left in the code to keep syncing with
upstreams easy.

fix error removal.
2015-09-16 22:03:27 -07:00
Brian Smith
117db947fa Remove C language HKDF implementation. 2015-09-16 19:44:14 -07:00
Brian Smith
2d48f07e3c Remove C language implementation of PBKDF2. 2015-09-16 19:37:39 -07:00
Brian Smith
cad2a37d16 Minor build system improvements.
* Fix typo in a comment in mk/top_of_makefile.mk.
* Update ring.sln to mention VS 2015 RTM version.
* Suppress variable shadowing warning on Windows in mk/Common.props.
2015-08-26 21:18:41 -07:00
Brian Smith
4c6ae8ad0b Build dh_test for x64 on Windows too.
The Visual Studio solution didn't contain the entries needed for this
test for the x64 platform, so it wasn't being built.
2015-08-26 21:18:28 -07:00
Brian Smith
3685ef6d97 Improve Visual Studio 2015 Compatibility.
* Silence some warnings about things that MSVC 2015 warns about that
  MSVC 2013 didn't.

* Change the solution so that it opens in Visual Studio 2015 if Visual
  Studio 2015 is installed.

* Change ToolsVersion to 14.0 in the project files so that Visual
  Studio 2015 does not put a warning in the build log about the version
  being 12.0. This means that Visual Studio 2013 will have a warning,
  but the warning is harmless, and if we have to choose, it's better
  for VS 2013 to warn than VS 2015 to warn, in the long term. See
  https://github.com/Microsoft/msbuild/issues/52#issuecomment-88674094.

* Build with the VS 2013 XP-compatible toolchain if using Visual Studio
  2013 (including its msbuild); Otherwise build with the Visual Studio
  2015 XP-compatible toolchain. See
  https://social.msdn.microsoft.com/Forums/vstudio/en-US/ \
    d06c3741-c637-4627-9b1a-1e068803a067/ \
    setting-platformtoolset-value-based-on-vs-version.
2015-08-26 21:18:21 -07:00
Brian Smith
e78f56048f Add Visual Studio solution, OPENSSL_NO_ASM only for now.
Much of the repetitive logic was put into mk/Common.props,
mk/Windows.props, and mk/WindowsTest.props. There is still a lot of
repetitive logic in the test project files that should be moved to
WindowsTest.props in the future. (In fact, it would be better if the
build system were modified in the future to work like CMake does,
(re-)generating the necessary project files during the build.)

Regular (OPENSSL_NO_ASM) mode will come in a later commit.

I've marked the Visual Studio files as eol=crlf in .gitattributes for
now. This should be the least painful option, since it any CRLF
conversion would create problems for for people sharing a source tree
across platforms (e.g. a shared folder in a VM), and because Visual
Studio IDE resets the files back to CR/LF line endings whenever a
change to project or solution settings is made using its GUI. There is
no license comment in these files because Visual Studio strips comments
when changes are made using the GUI.
2015-08-26 21:18:19 -07:00