ring-native 0.0.0 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGES.md +7 -0
- data/Makefile +5 -0
- data/README.md +12 -5
- data/Rakefile +4 -0
- data/ext/ring/extconf.rb +4 -5
- data/lib/ring/native.rb +3 -1
- data/lib/ring/native/version.rb +5 -1
- data/ring-native.gemspec +6 -6
- data/vendor/ring-ffi/Cargo.lock +26 -0
- data/vendor/ring-ffi/Cargo.toml +45 -0
- data/vendor/ring-ffi/LICENSE +16 -0
- data/vendor/ring-ffi/README.md +59 -0
- data/vendor/ring-ffi/src/lib.rs +79 -0
- metadata +10 -255
- data/vendor/ring/BUILDING.md +0 -40
- data/vendor/ring/Cargo.toml +0 -43
- data/vendor/ring/LICENSE +0 -185
- data/vendor/ring/Makefile +0 -35
- data/vendor/ring/PORTING.md +0 -163
- data/vendor/ring/README.md +0 -113
- data/vendor/ring/STYLE.md +0 -197
- data/vendor/ring/appveyor.yml +0 -27
- data/vendor/ring/build.rs +0 -108
- data/vendor/ring/crypto/aes/aes.c +0 -1142
- data/vendor/ring/crypto/aes/aes_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/aes/aes_test.cc +0 -93
- data/vendor/ring/crypto/aes/asm/aes-586.pl +0 -2368
- data/vendor/ring/crypto/aes/asm/aes-armv4.pl +0 -1249
- data/vendor/ring/crypto/aes/asm/aes-x86_64.pl +0 -2246
- data/vendor/ring/crypto/aes/asm/aesni-x86.pl +0 -1318
- data/vendor/ring/crypto/aes/asm/aesni-x86_64.pl +0 -2084
- data/vendor/ring/crypto/aes/asm/aesv8-armx.pl +0 -675
- data/vendor/ring/crypto/aes/asm/bsaes-armv7.pl +0 -1364
- data/vendor/ring/crypto/aes/asm/bsaes-x86_64.pl +0 -1565
- data/vendor/ring/crypto/aes/asm/vpaes-x86.pl +0 -841
- data/vendor/ring/crypto/aes/asm/vpaes-x86_64.pl +0 -1116
- data/vendor/ring/crypto/aes/internal.h +0 -87
- data/vendor/ring/crypto/aes/mode_wrappers.c +0 -61
- data/vendor/ring/crypto/bn/add.c +0 -394
- data/vendor/ring/crypto/bn/asm/armv4-mont.pl +0 -694
- data/vendor/ring/crypto/bn/asm/armv8-mont.pl +0 -1503
- data/vendor/ring/crypto/bn/asm/bn-586.pl +0 -774
- data/vendor/ring/crypto/bn/asm/co-586.pl +0 -287
- data/vendor/ring/crypto/bn/asm/rsaz-avx2.pl +0 -1882
- data/vendor/ring/crypto/bn/asm/x86-mont.pl +0 -592
- data/vendor/ring/crypto/bn/asm/x86_64-gcc.c +0 -599
- data/vendor/ring/crypto/bn/asm/x86_64-mont.pl +0 -1393
- data/vendor/ring/crypto/bn/asm/x86_64-mont5.pl +0 -3507
- data/vendor/ring/crypto/bn/bn.c +0 -352
- data/vendor/ring/crypto/bn/bn_asn1.c +0 -74
- data/vendor/ring/crypto/bn/bn_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/bn/bn_test.cc +0 -1696
- data/vendor/ring/crypto/bn/cmp.c +0 -200
- data/vendor/ring/crypto/bn/convert.c +0 -433
- data/vendor/ring/crypto/bn/ctx.c +0 -311
- data/vendor/ring/crypto/bn/div.c +0 -594
- data/vendor/ring/crypto/bn/exponentiation.c +0 -1335
- data/vendor/ring/crypto/bn/gcd.c +0 -711
- data/vendor/ring/crypto/bn/generic.c +0 -1019
- data/vendor/ring/crypto/bn/internal.h +0 -316
- data/vendor/ring/crypto/bn/montgomery.c +0 -516
- data/vendor/ring/crypto/bn/mul.c +0 -888
- data/vendor/ring/crypto/bn/prime.c +0 -829
- data/vendor/ring/crypto/bn/random.c +0 -334
- data/vendor/ring/crypto/bn/rsaz_exp.c +0 -262
- data/vendor/ring/crypto/bn/rsaz_exp.h +0 -53
- data/vendor/ring/crypto/bn/shift.c +0 -276
- data/vendor/ring/crypto/bytestring/bytestring_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/bytestring/bytestring_test.cc +0 -421
- data/vendor/ring/crypto/bytestring/cbb.c +0 -399
- data/vendor/ring/crypto/bytestring/cbs.c +0 -227
- data/vendor/ring/crypto/bytestring/internal.h +0 -46
- data/vendor/ring/crypto/chacha/chacha_generic.c +0 -140
- data/vendor/ring/crypto/chacha/chacha_vec.c +0 -323
- data/vendor/ring/crypto/chacha/chacha_vec_arm.S +0 -1447
- data/vendor/ring/crypto/chacha/chacha_vec_arm_generate.go +0 -153
- data/vendor/ring/crypto/cipher/cipher_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/cipher/e_aes.c +0 -390
- data/vendor/ring/crypto/cipher/e_chacha20poly1305.c +0 -208
- data/vendor/ring/crypto/cipher/internal.h +0 -173
- data/vendor/ring/crypto/cipher/test/aes_128_gcm_tests.txt +0 -543
- data/vendor/ring/crypto/cipher/test/aes_128_key_wrap_tests.txt +0 -9
- data/vendor/ring/crypto/cipher/test/aes_256_gcm_tests.txt +0 -475
- data/vendor/ring/crypto/cipher/test/aes_256_key_wrap_tests.txt +0 -23
- data/vendor/ring/crypto/cipher/test/chacha20_poly1305_old_tests.txt +0 -422
- data/vendor/ring/crypto/cipher/test/chacha20_poly1305_tests.txt +0 -484
- data/vendor/ring/crypto/cipher/test/cipher_test.txt +0 -100
- data/vendor/ring/crypto/constant_time_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/constant_time_test.c +0 -304
- data/vendor/ring/crypto/cpu-arm-asm.S +0 -32
- data/vendor/ring/crypto/cpu-arm.c +0 -199
- data/vendor/ring/crypto/cpu-intel.c +0 -261
- data/vendor/ring/crypto/crypto.c +0 -151
- data/vendor/ring/crypto/curve25519/asm/x25519-arm.S +0 -2118
- data/vendor/ring/crypto/curve25519/curve25519.c +0 -4888
- data/vendor/ring/crypto/curve25519/x25519_test.cc +0 -128
- data/vendor/ring/crypto/digest/md32_common.h +0 -181
- data/vendor/ring/crypto/ec/asm/p256-x86_64-asm.pl +0 -2725
- data/vendor/ring/crypto/ec/ec.c +0 -193
- data/vendor/ring/crypto/ec/ec_curves.c +0 -61
- data/vendor/ring/crypto/ec/ec_key.c +0 -228
- data/vendor/ring/crypto/ec/ec_montgomery.c +0 -114
- data/vendor/ring/crypto/ec/example_mul.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/ec/internal.h +0 -243
- data/vendor/ring/crypto/ec/oct.c +0 -253
- data/vendor/ring/crypto/ec/p256-64.c +0 -1794
- data/vendor/ring/crypto/ec/p256-x86_64-table.h +0 -9548
- data/vendor/ring/crypto/ec/p256-x86_64.c +0 -509
- data/vendor/ring/crypto/ec/simple.c +0 -1007
- data/vendor/ring/crypto/ec/util-64.c +0 -183
- data/vendor/ring/crypto/ec/wnaf.c +0 -508
- data/vendor/ring/crypto/ecdh/ecdh.c +0 -155
- data/vendor/ring/crypto/ecdsa/ecdsa.c +0 -304
- data/vendor/ring/crypto/ecdsa/ecdsa_asn1.c +0 -193
- data/vendor/ring/crypto/ecdsa/ecdsa_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/ecdsa/ecdsa_test.cc +0 -327
- data/vendor/ring/crypto/header_removed.h +0 -17
- data/vendor/ring/crypto/internal.h +0 -495
- data/vendor/ring/crypto/libring.Windows.vcxproj +0 -101
- data/vendor/ring/crypto/mem.c +0 -98
- data/vendor/ring/crypto/modes/asm/aesni-gcm-x86_64.pl +0 -1045
- data/vendor/ring/crypto/modes/asm/ghash-armv4.pl +0 -517
- data/vendor/ring/crypto/modes/asm/ghash-x86.pl +0 -1393
- data/vendor/ring/crypto/modes/asm/ghash-x86_64.pl +0 -1741
- data/vendor/ring/crypto/modes/asm/ghashv8-armx.pl +0 -422
- data/vendor/ring/crypto/modes/ctr.c +0 -226
- data/vendor/ring/crypto/modes/gcm.c +0 -1206
- data/vendor/ring/crypto/modes/gcm_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/modes/gcm_test.c +0 -348
- data/vendor/ring/crypto/modes/internal.h +0 -299
- data/vendor/ring/crypto/perlasm/arm-xlate.pl +0 -170
- data/vendor/ring/crypto/perlasm/readme +0 -100
- data/vendor/ring/crypto/perlasm/x86_64-xlate.pl +0 -1164
- data/vendor/ring/crypto/perlasm/x86asm.pl +0 -292
- data/vendor/ring/crypto/perlasm/x86gas.pl +0 -263
- data/vendor/ring/crypto/perlasm/x86masm.pl +0 -200
- data/vendor/ring/crypto/perlasm/x86nasm.pl +0 -187
- data/vendor/ring/crypto/poly1305/poly1305.c +0 -331
- data/vendor/ring/crypto/poly1305/poly1305_arm.c +0 -301
- data/vendor/ring/crypto/poly1305/poly1305_arm_asm.S +0 -2015
- data/vendor/ring/crypto/poly1305/poly1305_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/poly1305/poly1305_test.cc +0 -80
- data/vendor/ring/crypto/poly1305/poly1305_test.txt +0 -52
- data/vendor/ring/crypto/poly1305/poly1305_vec.c +0 -892
- data/vendor/ring/crypto/rand/asm/rdrand-x86_64.pl +0 -75
- data/vendor/ring/crypto/rand/internal.h +0 -32
- data/vendor/ring/crypto/rand/rand.c +0 -189
- data/vendor/ring/crypto/rand/urandom.c +0 -219
- data/vendor/ring/crypto/rand/windows.c +0 -56
- data/vendor/ring/crypto/refcount_c11.c +0 -66
- data/vendor/ring/crypto/refcount_lock.c +0 -53
- data/vendor/ring/crypto/refcount_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/refcount_test.c +0 -58
- data/vendor/ring/crypto/rsa/blinding.c +0 -462
- data/vendor/ring/crypto/rsa/internal.h +0 -108
- data/vendor/ring/crypto/rsa/padding.c +0 -300
- data/vendor/ring/crypto/rsa/rsa.c +0 -450
- data/vendor/ring/crypto/rsa/rsa_asn1.c +0 -261
- data/vendor/ring/crypto/rsa/rsa_impl.c +0 -944
- data/vendor/ring/crypto/rsa/rsa_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/rsa/rsa_test.cc +0 -437
- data/vendor/ring/crypto/sha/asm/sha-armv8.pl +0 -436
- data/vendor/ring/crypto/sha/asm/sha-x86_64.pl +0 -2390
- data/vendor/ring/crypto/sha/asm/sha256-586.pl +0 -1275
- data/vendor/ring/crypto/sha/asm/sha256-armv4.pl +0 -735
- data/vendor/ring/crypto/sha/asm/sha256-armv8.pl +0 -14
- data/vendor/ring/crypto/sha/asm/sha256-x86_64.pl +0 -14
- data/vendor/ring/crypto/sha/asm/sha512-586.pl +0 -911
- data/vendor/ring/crypto/sha/asm/sha512-armv4.pl +0 -666
- data/vendor/ring/crypto/sha/asm/sha512-armv8.pl +0 -14
- data/vendor/ring/crypto/sha/asm/sha512-x86_64.pl +0 -14
- data/vendor/ring/crypto/sha/sha1.c +0 -271
- data/vendor/ring/crypto/sha/sha256.c +0 -204
- data/vendor/ring/crypto/sha/sha512.c +0 -355
- data/vendor/ring/crypto/test/file_test.cc +0 -326
- data/vendor/ring/crypto/test/file_test.h +0 -181
- data/vendor/ring/crypto/test/malloc.cc +0 -150
- data/vendor/ring/crypto/test/scoped_types.h +0 -95
- data/vendor/ring/crypto/test/test.Windows.vcxproj +0 -35
- data/vendor/ring/crypto/test/test_util.cc +0 -46
- data/vendor/ring/crypto/test/test_util.h +0 -41
- data/vendor/ring/crypto/thread_none.c +0 -55
- data/vendor/ring/crypto/thread_pthread.c +0 -165
- data/vendor/ring/crypto/thread_test.Windows.vcxproj +0 -25
- data/vendor/ring/crypto/thread_test.c +0 -200
- data/vendor/ring/crypto/thread_win.c +0 -282
- data/vendor/ring/examples/checkdigest.rs +0 -103
- data/vendor/ring/include/openssl/aes.h +0 -121
- data/vendor/ring/include/openssl/arm_arch.h +0 -129
- data/vendor/ring/include/openssl/base.h +0 -156
- data/vendor/ring/include/openssl/bn.h +0 -794
- data/vendor/ring/include/openssl/buffer.h +0 -18
- data/vendor/ring/include/openssl/bytestring.h +0 -235
- data/vendor/ring/include/openssl/chacha.h +0 -37
- data/vendor/ring/include/openssl/cmac.h +0 -76
- data/vendor/ring/include/openssl/cpu.h +0 -184
- data/vendor/ring/include/openssl/crypto.h +0 -43
- data/vendor/ring/include/openssl/curve25519.h +0 -88
- data/vendor/ring/include/openssl/ec.h +0 -225
- data/vendor/ring/include/openssl/ec_key.h +0 -129
- data/vendor/ring/include/openssl/ecdh.h +0 -110
- data/vendor/ring/include/openssl/ecdsa.h +0 -156
- data/vendor/ring/include/openssl/err.h +0 -201
- data/vendor/ring/include/openssl/mem.h +0 -101
- data/vendor/ring/include/openssl/obj_mac.h +0 -71
- data/vendor/ring/include/openssl/opensslfeatures.h +0 -68
- data/vendor/ring/include/openssl/opensslv.h +0 -18
- data/vendor/ring/include/openssl/ossl_typ.h +0 -18
- data/vendor/ring/include/openssl/poly1305.h +0 -51
- data/vendor/ring/include/openssl/rand.h +0 -70
- data/vendor/ring/include/openssl/rsa.h +0 -399
- data/vendor/ring/include/openssl/thread.h +0 -133
- data/vendor/ring/include/openssl/type_check.h +0 -71
- data/vendor/ring/mk/Common.props +0 -63
- data/vendor/ring/mk/Windows.props +0 -42
- data/vendor/ring/mk/WindowsTest.props +0 -18
- data/vendor/ring/mk/appveyor.bat +0 -62
- data/vendor/ring/mk/bottom_of_makefile.mk +0 -54
- data/vendor/ring/mk/ring.mk +0 -266
- data/vendor/ring/mk/top_of_makefile.mk +0 -214
- data/vendor/ring/mk/travis.sh +0 -40
- data/vendor/ring/mk/update-travis-yml.py +0 -229
- data/vendor/ring/ring.sln +0 -153
- data/vendor/ring/src/aead.rs +0 -682
- data/vendor/ring/src/agreement.rs +0 -248
- data/vendor/ring/src/c.rs +0 -129
- data/vendor/ring/src/constant_time.rs +0 -37
- data/vendor/ring/src/der.rs +0 -96
- data/vendor/ring/src/digest.rs +0 -690
- data/vendor/ring/src/digest_tests.txt +0 -57
- data/vendor/ring/src/ecc.rs +0 -28
- data/vendor/ring/src/ecc_build.rs +0 -279
- data/vendor/ring/src/ecc_curves.rs +0 -117
- data/vendor/ring/src/ed25519_tests.txt +0 -2579
- data/vendor/ring/src/exe_tests.rs +0 -46
- data/vendor/ring/src/ffi.rs +0 -29
- data/vendor/ring/src/file_test.rs +0 -187
- data/vendor/ring/src/hkdf.rs +0 -153
- data/vendor/ring/src/hkdf_tests.txt +0 -59
- data/vendor/ring/src/hmac.rs +0 -414
- data/vendor/ring/src/hmac_tests.txt +0 -97
- data/vendor/ring/src/input.rs +0 -312
- data/vendor/ring/src/lib.rs +0 -41
- data/vendor/ring/src/pbkdf2.rs +0 -265
- data/vendor/ring/src/pbkdf2_tests.txt +0 -113
- data/vendor/ring/src/polyfill.rs +0 -57
- data/vendor/ring/src/rand.rs +0 -28
- data/vendor/ring/src/signature.rs +0 -314
- data/vendor/ring/third-party/NIST/README.md +0 -9
- data/vendor/ring/third-party/NIST/SHAVS/SHA1LongMsg.rsp +0 -263
- data/vendor/ring/third-party/NIST/SHAVS/SHA1Monte.rsp +0 -309
- data/vendor/ring/third-party/NIST/SHAVS/SHA1ShortMsg.rsp +0 -267
- data/vendor/ring/third-party/NIST/SHAVS/SHA224LongMsg.rsp +0 -263
- data/vendor/ring/third-party/NIST/SHAVS/SHA224Monte.rsp +0 -309
- data/vendor/ring/third-party/NIST/SHAVS/SHA224ShortMsg.rsp +0 -267
- data/vendor/ring/third-party/NIST/SHAVS/SHA256LongMsg.rsp +0 -263
- data/vendor/ring/third-party/NIST/SHAVS/SHA256Monte.rsp +0 -309
- data/vendor/ring/third-party/NIST/SHAVS/SHA256ShortMsg.rsp +0 -267
- data/vendor/ring/third-party/NIST/SHAVS/SHA384LongMsg.rsp +0 -519
- data/vendor/ring/third-party/NIST/SHAVS/SHA384Monte.rsp +0 -309
- data/vendor/ring/third-party/NIST/SHAVS/SHA384ShortMsg.rsp +0 -523
- data/vendor/ring/third-party/NIST/SHAVS/SHA512LongMsg.rsp +0 -519
- data/vendor/ring/third-party/NIST/SHAVS/SHA512Monte.rsp +0 -309
- data/vendor/ring/third-party/NIST/SHAVS/SHA512ShortMsg.rsp +0 -523
- data/vendor/ring/third-party/NIST/sha256sums.txt +0 -1
data/vendor/ring/BUILDING.md
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
Building *ring*
|
2
|
-
===============
|
3
|
-
|
4
|
-
*ring*'s Rust crate is named ```ring```. You can build it
|
5
|
-
using ```cargo build --release``` and you can run the tests
|
6
|
-
with ```cargo test --release```. When you use ```cargo``` to build *ring,
|
7
|
-
the build script [build.rs](build.rs) automatically builds the C and
|
8
|
-
assembly language components of *ring*.
|
9
|
-
|
10
|
-
Currently on Windows you must currently invoke cargo from a Visual Studio
|
11
|
-
Native Tools Command Prompt. Otherwise the build will likely fail in confusing
|
12
|
-
ways because either msbuild won't be found or there will be a version mismatch
|
13
|
-
between the toolchain used to build the C parts of the library and the toolchain
|
14
|
-
used by cargo/rustc for linking. Visual Studio 2015 Update 1 and Visual Studio
|
15
|
-
2013 Update 5 are supported.
|
16
|
-
|
17
|
-
*ring* uses Visual Studio's native build system (msbuild) on Windows, and GNU
|
18
|
-
Make otherwise. Because this is a little unusual, I would be particularly grateful
|
19
|
-
if you could report any problems building (or using) *ring*'s Rust crate.
|
20
|
-
|
21
|
-
GCC 4.8 and later, and Clang 3.4 and later are supported. Other compilers
|
22
|
-
will also probably work without too much trouble. Note in particular that if
|
23
|
-
you are cross-compiling an x86 build on a 64-bit version of Linux, then you
|
24
|
-
need to have the proper gcc-multilibs and g++-multilibs packages or equivalent
|
25
|
-
installed.
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
Prerequisites for Regenerating `crypto/chacha/chacha_vec_arm.S`
|
30
|
-
===============================================================
|
31
|
-
|
32
|
-
If you change `crypto/chacha/chacha_vec.c`, you will need the
|
33
|
-
arm-linux-gnueabihf-gcc compiler:
|
34
|
-
|
35
|
-
```
|
36
|
-
wget https://releases.linaro.org/14.11/components/toolchain/binaries/arm-linux-gnueabihf/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz && \
|
37
|
-
echo bc4ca2ced084d2dc12424815a4442e19cb1422db87068830305d90075feb1a3b gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz | sha256sum -c && \
|
38
|
-
tar xf gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz && \
|
39
|
-
sudo mv gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf /opt/
|
40
|
-
```
|
data/vendor/ring/Cargo.toml
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
[package]
|
2
|
-
authors = ["Brian Smith <brian@briansmith.org>"]
|
3
|
-
build = "build.rs"
|
4
|
-
description = "A Rust interface for a simplification of BoringSSL's libcrypto."
|
5
|
-
license-file = "LICENSE"
|
6
|
-
name = "ring"
|
7
|
-
readme = "README.md"
|
8
|
-
repository = "https://github.com/briansmith/ring"
|
9
|
-
version = "0.1.0"
|
10
|
-
|
11
|
-
[lib]
|
12
|
-
name = "ring"
|
13
|
-
crate_type = ["dylib"]
|
14
|
-
|
15
|
-
[build-dependencies]
|
16
|
-
num = "0.1.27"
|
17
|
-
rustc-serialize = "0.3.15"
|
18
|
-
|
19
|
-
[dev-dependencies]
|
20
|
-
rustc-serialize = "0.3.15"
|
21
|
-
time = "0.1.32"
|
22
|
-
|
23
|
-
# Fix the `bench`, `release`, and `test` profiles so they all have the
|
24
|
-
# same configuration.
|
25
|
-
#
|
26
|
-
# XXX: We can't build with `debug = true` yet because that breaks the
|
27
|
-
# Windows builds. See https://github.com/briansmith/ring/issues/44.
|
28
|
-
|
29
|
-
[profile.bench]
|
30
|
-
opt-level = 3
|
31
|
-
debug = false
|
32
|
-
rpath = false
|
33
|
-
lto = true
|
34
|
-
debug-assertions = false
|
35
|
-
codegen-units = 1
|
36
|
-
|
37
|
-
[profile.release]
|
38
|
-
opt-level = 3
|
39
|
-
debug = false
|
40
|
-
rpath = false
|
41
|
-
lto = true
|
42
|
-
debug-assertions = false
|
43
|
-
codegen-units = 1
|
data/vendor/ring/LICENSE
DELETED
@@ -1,185 +0,0 @@
|
|
1
|
-
BoringSSL is a fork of OpenSSL. As such, large parts of it fall under OpenSSL
|
2
|
-
licensing. Files that are completely new have a Google copyright and an ISC
|
3
|
-
license. This license is reproduced at the bottom of this file.
|
4
|
-
|
5
|
-
Contributors to BoringSSL are required to follow the CLA rules for Chromium:
|
6
|
-
https://cla.developers.google.com/clas
|
7
|
-
|
8
|
-
Some files from Intel are under yet another license, which is also included
|
9
|
-
underneath.
|
10
|
-
|
11
|
-
The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the
|
12
|
-
OpenSSL License and the original SSLeay license apply to the toolkit. See below
|
13
|
-
for the actual license texts. Actually both licenses are BSD-style Open Source
|
14
|
-
licenses. In case of any license issues related to OpenSSL please contact
|
15
|
-
openssl-core@openssl.org.
|
16
|
-
|
17
|
-
OpenSSL License
|
18
|
-
---------------
|
19
|
-
|
20
|
-
/* ====================================================================
|
21
|
-
* Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
|
22
|
-
*
|
23
|
-
* Redistribution and use in source and binary forms, with or without
|
24
|
-
* modification, are permitted provided that the following conditions
|
25
|
-
* are met:
|
26
|
-
*
|
27
|
-
* 1. Redistributions of source code must retain the above copyright
|
28
|
-
* notice, this list of conditions and the following disclaimer.
|
29
|
-
*
|
30
|
-
* 2. Redistributions in binary form must reproduce the above copyright
|
31
|
-
* notice, this list of conditions and the following disclaimer in
|
32
|
-
* the documentation and/or other materials provided with the
|
33
|
-
* distribution.
|
34
|
-
*
|
35
|
-
* 3. All advertising materials mentioning features or use of this
|
36
|
-
* software must display the following acknowledgment:
|
37
|
-
* "This product includes software developed by the OpenSSL Project
|
38
|
-
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
39
|
-
*
|
40
|
-
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
41
|
-
* endorse or promote products derived from this software without
|
42
|
-
* prior written permission. For written permission, please contact
|
43
|
-
* openssl-core@openssl.org.
|
44
|
-
*
|
45
|
-
* 5. Products derived from this software may not be called "OpenSSL"
|
46
|
-
* nor may "OpenSSL" appear in their names without prior written
|
47
|
-
* permission of the OpenSSL Project.
|
48
|
-
*
|
49
|
-
* 6. Redistributions of any form whatsoever must retain the following
|
50
|
-
* acknowledgment:
|
51
|
-
* "This product includes software developed by the OpenSSL Project
|
52
|
-
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
53
|
-
*
|
54
|
-
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
55
|
-
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
56
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
57
|
-
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
58
|
-
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
59
|
-
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
60
|
-
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
61
|
-
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
62
|
-
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
63
|
-
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
64
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
65
|
-
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
66
|
-
* ====================================================================
|
67
|
-
*
|
68
|
-
* This product includes cryptographic software written by Eric Young
|
69
|
-
* (eay@cryptsoft.com). This product includes software written by Tim
|
70
|
-
* Hudson (tjh@cryptsoft.com).
|
71
|
-
*
|
72
|
-
*/
|
73
|
-
|
74
|
-
Original SSLeay License
|
75
|
-
-----------------------
|
76
|
-
|
77
|
-
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
78
|
-
* All rights reserved.
|
79
|
-
*
|
80
|
-
* This package is an SSL implementation written
|
81
|
-
* by Eric Young (eay@cryptsoft.com).
|
82
|
-
* The implementation was written so as to conform with Netscapes SSL.
|
83
|
-
*
|
84
|
-
* This library is free for commercial and non-commercial use as long as
|
85
|
-
* the following conditions are aheared to. The following conditions
|
86
|
-
* apply to all code found in this distribution, be it the RC4, RSA,
|
87
|
-
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
88
|
-
* included with this distribution is covered by the same copyright terms
|
89
|
-
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
90
|
-
*
|
91
|
-
* Copyright remains Eric Young's, and as such any Copyright notices in
|
92
|
-
* the code are not to be removed.
|
93
|
-
* If this package is used in a product, Eric Young should be given attribution
|
94
|
-
* as the author of the parts of the library used.
|
95
|
-
* This can be in the form of a textual message at program startup or
|
96
|
-
* in documentation (online or textual) provided with the package.
|
97
|
-
*
|
98
|
-
* Redistribution and use in source and binary forms, with or without
|
99
|
-
* modification, are permitted provided that the following conditions
|
100
|
-
* are met:
|
101
|
-
* 1. Redistributions of source code must retain the copyright
|
102
|
-
* notice, this list of conditions and the following disclaimer.
|
103
|
-
* 2. Redistributions in binary form must reproduce the above copyright
|
104
|
-
* notice, this list of conditions and the following disclaimer in the
|
105
|
-
* documentation and/or other materials provided with the distribution.
|
106
|
-
* 3. All advertising materials mentioning features or use of this software
|
107
|
-
* must display the following acknowledgement:
|
108
|
-
* "This product includes cryptographic software written by
|
109
|
-
* Eric Young (eay@cryptsoft.com)"
|
110
|
-
* The word 'cryptographic' can be left out if the rouines from the library
|
111
|
-
* being used are not cryptographic related :-).
|
112
|
-
* 4. If you include any Windows specific code (or a derivative thereof) from
|
113
|
-
* the apps directory (application code) you must include an acknowledgement:
|
114
|
-
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
115
|
-
*
|
116
|
-
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
117
|
-
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
118
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
119
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
120
|
-
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
121
|
-
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
122
|
-
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
123
|
-
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
124
|
-
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
125
|
-
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
126
|
-
* SUCH DAMAGE.
|
127
|
-
*
|
128
|
-
* The licence and distribution terms for any publically available version or
|
129
|
-
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
130
|
-
* copied and put under another distribution licence
|
131
|
-
* [including the GNU Public Licence.]
|
132
|
-
*/
|
133
|
-
|
134
|
-
|
135
|
-
ISC license used for completely new code in BoringSSL:
|
136
|
-
|
137
|
-
/* Copyright (c) 2015, Google Inc.
|
138
|
-
*
|
139
|
-
* Permission to use, copy, modify, and/or distribute this software for any
|
140
|
-
* purpose with or without fee is hereby granted, provided that the above
|
141
|
-
* copyright notice and this permission notice appear in all copies.
|
142
|
-
*
|
143
|
-
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
144
|
-
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
145
|
-
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
146
|
-
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
147
|
-
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
148
|
-
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
149
|
-
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
150
|
-
|
151
|
-
|
152
|
-
Some files from Intel carry the following license:
|
153
|
-
|
154
|
-
# Copyright (c) 2012, Intel Corporation
|
155
|
-
#
|
156
|
-
# All rights reserved.
|
157
|
-
#
|
158
|
-
# Redistribution and use in source and binary forms, with or without
|
159
|
-
# modification, are permitted provided that the following conditions are
|
160
|
-
# met:
|
161
|
-
#
|
162
|
-
# * Redistributions of source code must retain the above copyright
|
163
|
-
# notice, this list of conditions and the following disclaimer.
|
164
|
-
#
|
165
|
-
# * Redistributions in binary form must reproduce the above copyright
|
166
|
-
# notice, this list of conditions and the following disclaimer in the
|
167
|
-
# documentation and/or other materials provided with the
|
168
|
-
# distribution.
|
169
|
-
#
|
170
|
-
# * Neither the name of the Intel Corporation nor the names of its
|
171
|
-
# contributors may be used to endorse or promote products derived from
|
172
|
-
# this software without specific prior written permission.
|
173
|
-
#
|
174
|
-
#
|
175
|
-
# THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION ""AS IS"" AND ANY
|
176
|
-
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
177
|
-
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
178
|
-
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR
|
179
|
-
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
180
|
-
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
181
|
-
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
182
|
-
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
183
|
-
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
184
|
-
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
185
|
-
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/vendor/ring/Makefile
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# Copyright 2015 Brian Smith.
|
2
|
-
#
|
3
|
-
# Permission to use, copy, modify, and/or distribute this software for any
|
4
|
-
# purpose with or without fee is hereby granted, provided that the above
|
5
|
-
# copyright notice and this permission notice appear in all copies.
|
6
|
-
#
|
7
|
-
# THE SOFTWARE IS PROVIDED "AS IS" AND BRIAN SMITH AND THE AUTHORS DISCLAIM
|
8
|
-
# ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
9
|
-
# OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL BRIAN SMITH OR THE AUTHORS
|
10
|
-
# BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
|
11
|
-
# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
12
|
-
# AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
13
|
-
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
14
|
-
|
15
|
-
include mk/top_of_makefile.mk
|
16
|
-
|
17
|
-
RING_PREFIX =
|
18
|
-
|
19
|
-
include mk/ring.mk
|
20
|
-
|
21
|
-
OBJS += \
|
22
|
-
$(RING_OBJS) \
|
23
|
-
$(RING_TEST_LIB_OBJS) \
|
24
|
-
$(RING_TEST_MAIN_OBJS) \
|
25
|
-
$(NULL)
|
26
|
-
|
27
|
-
LIBS += \
|
28
|
-
$(RING_LIB) \
|
29
|
-
$(NULL)
|
30
|
-
|
31
|
-
EXES += $(RING_TEST_EXES)
|
32
|
-
|
33
|
-
check:: check-ring
|
34
|
-
|
35
|
-
include mk/bottom_of_makefile.mk
|
data/vendor/ring/PORTING.md
DELETED
@@ -1,163 +0,0 @@
|
|
1
|
-
# Porting from OpenSSL to BoringSSL
|
2
|
-
|
3
|
-
BoringSSL is an OpenSSL derivative and is mostly source-compatible, for the
|
4
|
-
subset of OpenSSL retained. Libraries ideally need little to no changes for
|
5
|
-
BoringSSL support, provided they do not use removed APIs. In general, see if the
|
6
|
-
library compiles and, on failure, consult the documentation in the header files
|
7
|
-
and see if problematic features can be removed.
|
8
|
-
|
9
|
-
In some cases, BoringSSL-specific code may be necessary. In that case, the
|
10
|
-
`OPENSSL_IS_BORINGSSL` preprocessor macro may be used in `#ifdef`s. This macro
|
11
|
-
should also be used in lieu of the presence of any particular function to detect
|
12
|
-
OpenSSL vs BoringSSL in configure scripts, etc., where those are necessary.
|
13
|
-
|
14
|
-
For convenience, BoringSSL defines upstream's `OPENSSL_NO_*` feature macros
|
15
|
-
corresponding to removed features. These may also be used to disable code which
|
16
|
-
uses a removed feature.
|
17
|
-
|
18
|
-
Note: BoringSSL does *not* have a stable API or ABI. It must be updated with its
|
19
|
-
consumers. It is not suitable for, say, a system library in a traditional Linux
|
20
|
-
distribution. For instance, Chromium statically links the specific revision of
|
21
|
-
BoringSSL it was built against. Likewise, Android's system-internal copy of
|
22
|
-
BoringSSL is not exposed by the NDK and must not be used by third-party
|
23
|
-
applications.
|
24
|
-
|
25
|
-
|
26
|
-
## Major API changes
|
27
|
-
|
28
|
-
### Integer types
|
29
|
-
|
30
|
-
Some APIs have been converted to use `size_t` for consistency and to avoid
|
31
|
-
integer overflows at the API boundary. (Existing logic uses a mismash of `int`,
|
32
|
-
`long`, and `unsigned`.) For the most part, implicit casts mean that existing
|
33
|
-
code continues to compile. In some cases, this may require BoringSSL-specific
|
34
|
-
code, particularly to avoid compiler warnings.
|
35
|
-
|
36
|
-
Most notably, the `STACK_OF(T)` types have all been converted to use `size_t`
|
37
|
-
instead of `int` for indices and lengths.
|
38
|
-
|
39
|
-
### Reference counts
|
40
|
-
|
41
|
-
Some external consumers increment reference counts directly by calling
|
42
|
-
`CRYPTO_add` with the corresponding `CRYPTO_LOCK_*` value.
|
43
|
-
|
44
|
-
These APIs no longer exist in BoringSSL. Instead, code which increments
|
45
|
-
reference counts should call the corresponding `FOO_up_ref` function, such as
|
46
|
-
`EVP_PKEY_up_ref`. Note that not all of these APIs are present in OpenSSL and
|
47
|
-
may require `#ifdef`s.
|
48
|
-
|
49
|
-
### Error codes
|
50
|
-
|
51
|
-
OpenSSL's errors are extremely specific, leaking internals of the library,
|
52
|
-
including even a function code for the function which emitted the error! As some
|
53
|
-
logic in BoringSSL has been rewritten, code which conditions on the error may
|
54
|
-
break (grep for `ERR_GET_REASON` and `ERR_GET_FUNC`). This danger also exists
|
55
|
-
when upgrading OpenSSL versions.
|
56
|
-
|
57
|
-
Where possible, avoid conditioning on the exact error reason. Otherwise, a
|
58
|
-
BoringSSL `#ifdef` may be necessary. Exactly how best to resolve this issue is
|
59
|
-
still being determined. It's possible some new APIs will be added in the future.
|
60
|
-
|
61
|
-
Function codes have been completely removed. Remove code which conditions on
|
62
|
-
these as it will break with the slightest change in the library, OpenSSL or
|
63
|
-
BoringSSL.
|
64
|
-
|
65
|
-
### `*_ctrl` functions
|
66
|
-
|
67
|
-
Some OpenSSL APIs are implemented with `ioctl`-style functions such as
|
68
|
-
`SSL_ctrl` and `EVP_PKEY_CTX_ctrl`, combined with convenience macros, such as
|
69
|
-
|
70
|
-
# define SSL_CTX_set_mode(ctx,op) \
|
71
|
-
SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
|
72
|
-
|
73
|
-
In BoringSSL, these macros have been replaced with proper functions. The
|
74
|
-
underlying `_ctrl` functions have been removed.
|
75
|
-
|
76
|
-
For convenience, `SSL_CTRL_*` values are retained as macros to `doesnt_exist` so
|
77
|
-
existing code which uses them (or the wrapper macros) in `#ifdef` expressions
|
78
|
-
will continue to function. However, the macros themselves will not work.
|
79
|
-
|
80
|
-
Switch any `*_ctrl` callers to the macro/function versions. This works in both
|
81
|
-
OpenSSL and BoringSSL. Note that BoringSSL's function versions will be
|
82
|
-
type-checked and may require more care with types.
|
83
|
-
|
84
|
-
### HMAC `EVP_PKEY`s
|
85
|
-
|
86
|
-
`EVP_PKEY_HMAC` is removed. Use the `HMAC_*` functions in `hmac.h` instead. This
|
87
|
-
is compatible with OpenSSL.
|
88
|
-
|
89
|
-
### DSA `EVP_PKEY`s
|
90
|
-
|
91
|
-
`EVP_PKEY_DSA` is deprecated. It is currently still possible to parse DER into a
|
92
|
-
DSA `EVP_PKEY`, but signing or verifying with those objects will not work.
|
93
|
-
|
94
|
-
### DES
|
95
|
-
|
96
|
-
The `DES_cblock` type has been switched from an array to a struct to avoid the
|
97
|
-
pitfalls around array types in C. Where features which require DES cannot be
|
98
|
-
disabled, BoringSSL-specific codepaths may be necessary.
|
99
|
-
|
100
|
-
### TLS renegotiation
|
101
|
-
|
102
|
-
OpenSSL enables TLS renegotiation by default and accepts renegotiation requests
|
103
|
-
from the peer transparently. Renegotiation is an extremely problematic protocol
|
104
|
-
feature, so BoringSSL rejects peer renegotiations by default.
|
105
|
-
|
106
|
-
To enable renegotiation, call `SSL_set_reject_peer_renegotiations` and set it to
|
107
|
-
off. Renegotiation is only supported as a client in SSL3/TLS and the
|
108
|
-
HelloRequest must be received at a quiet point in the application protocol. This
|
109
|
-
is sufficient to support the common use of requesting a new client certificate
|
110
|
-
between an HTTP request and response in (unpipelined) HTTP/1.1.
|
111
|
-
|
112
|
-
Things which do not work:
|
113
|
-
|
114
|
-
* There is no support for renegotiation as a server.
|
115
|
-
|
116
|
-
* There is no support for renegotiation in DTLS.
|
117
|
-
|
118
|
-
* There is no support for initiating renegotiation; `SSL_renegotiate` always
|
119
|
-
fails and `SSL_set_state` does nothing.
|
120
|
-
|
121
|
-
* Interleaving application data with the new handshake is forbidden.
|
122
|
-
|
123
|
-
* If a HelloRequest is received while `SSL_write` has unsent application data,
|
124
|
-
the renegotiation is rejected.
|
125
|
-
|
126
|
-
### Lowercase hexadecimal
|
127
|
-
|
128
|
-
BoringSSL's `BN_bn2hex` function uses lowercase hexadecimal digits instead of
|
129
|
-
uppercase. Some code may require changes to avoid being sensitive to this
|
130
|
-
difference.
|
131
|
-
|
132
|
-
|
133
|
-
## Optional BoringSSL-specific simplifications
|
134
|
-
|
135
|
-
BoringSSL makes some changes to OpenSSL which simplify the API but remain
|
136
|
-
compatible with OpenSSL consumers. In general, consult the BoringSSL
|
137
|
-
documentation for any functions in new BoringSSL-only code.
|
138
|
-
|
139
|
-
### Return values
|
140
|
-
|
141
|
-
Most OpenSSL APIs return 1 on success and either 0 or -1 on failure. BoringSSL
|
142
|
-
has narrowed most of these to 1 on success and 0 on failure. BoringSSL-specific
|
143
|
-
code may take advantage of the less error-prone APIs and use `!` to check for
|
144
|
-
errors.
|
145
|
-
|
146
|
-
### Initialization
|
147
|
-
|
148
|
-
OpenSSL has a number of different initialization functions for setting up error
|
149
|
-
strings and loading algorithms, etc. All of these functions still exist in
|
150
|
-
BoringSSL for convenience, but they do nothing and are not necessary.
|
151
|
-
|
152
|
-
The one exception is `CRYPTO_library_init`. In `BORINGSSL_NO_STATIC_INITIALIZER`
|
153
|
-
builds, it must be called to query CPU capabitilies before the rest of the
|
154
|
-
library. In the default configuration, this is done with a static initializer
|
155
|
-
and is also unnecessary.
|
156
|
-
|
157
|
-
### Threading
|
158
|
-
|
159
|
-
OpenSSL provides a number of APIs to configure threading callbacks and set up
|
160
|
-
locks. Without initializing these, the library is not thread-safe. Configuring
|
161
|
-
these does nothing in BoringSSL. Instead, BoringSSL calls pthreads and the
|
162
|
-
corresponding Windows APIs internally and is always thread-safe where the API
|
163
|
-
guarantees it.
|