diff options
author | Robert Sloan <varomodt@google.com> | 2017-07-24 08:40:01 -0700 |
---|---|---|
committer | Robert Sloan <varomodt@google.com> | 2017-07-24 08:42:03 -0700 |
commit | b6d070c5081ba0ca11545eb50870817d6d72d926 (patch) | |
tree | 707f1e4d159e58912d448a90714557bae8154325 /src/crypto | |
parent | 682d4e9e966a91cfdd932e78c2d322294a48f4ba (diff) | |
download | boringssl-b6d070c5081ba0ca11545eb50870817d6d72d926.tar.gz |
external/boringssl: Sync to c642aca28feb7e18f244658559f4042286aed0c8.
This includes the following changes:
https://boringssl.googlesource.com/boringssl/+log/14308731e5446a73ac2258688a9688b524483cb6..c642aca28feb7e18f244658559f4042286aed0c8
Test: BoringSSL CTS Presubmits
Change-Id: Ia0b5b2cdd64eb2b54ec5335d48da9001e9d6dafa
Diffstat (limited to 'src/crypto')
-rw-r--r-- | src/crypto/fipsmodule/FIPS.md | 10 | ||||
-rw-r--r-- | src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx | bin | 0 -> 105579 bytes | |||
-rw-r--r-- | src/crypto/fipsmodule/rand/urandom.c | 44 |
3 files changed, 31 insertions, 23 deletions
diff --git a/src/crypto/fipsmodule/FIPS.md b/src/crypto/fipsmodule/FIPS.md index 30c44874..8378f1b1 100644 --- a/src/crypto/fipsmodule/FIPS.md +++ b/src/crypto/fipsmodule/FIPS.md @@ -1,6 +1,14 @@ # FIPS 140-2 -BoringSSL as a whole is not FIPS validated. However, there is a core library (called BoringCrypto) that is undergoing validation at time of writing. This document contains some notes about the design of the FIPS module and some documentation on performing FIPS-related tasks. This is not a substitute for reading the offical Security Policy (which, at the time of writing, has not yet been published). +BoringSSL as a whole is not FIPS validated. However, there is a core library (called BoringCrypto) that has been FIPS validated. This document contains some notes about the design of the FIPS module and some documentation on performing FIPS-related tasks. This is not a substitute for reading the offical Security Policy. + +Please note that we cannot answer questions about FIPS, nor about using BoringSSL in a FIPS-compliant manner. Please consult with an [accredited CMVP lab](http://csrc.nist.gov/groups/STM/testing_labs/) on these subjects. + +## Validations + +BoringCrypto has undergone the following validations: + +1. 2017-06-15: certificate [#2964](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/1401val2017.htm#2964), [security policy](/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx) (in docx format). ## Running CAVP tests diff --git a/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx b/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx Binary files differnew file mode 100644 index 00000000..272713b2 --- /dev/null +++ b/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx diff --git a/src/crypto/fipsmodule/rand/urandom.c b/src/crypto/fipsmodule/rand/urandom.c index 2ea8730c..8cbf7278 100644 --- a/src/crypto/fipsmodule/rand/urandom.c +++ b/src/crypto/fipsmodule/rand/urandom.c @@ -45,33 +45,33 @@ #if defined(OPENSSL_LINUX) #if defined(OPENSSL_X86_64) -#define EXPECTED_SYS_getrandom 318 +#define EXPECTED_NR_getrandom 318 #elif defined(OPENSSL_X86) -#define EXPECTED_SYS_getrandom 355 +#define EXPECTED_NR_getrandom 355 #elif defined(OPENSSL_AARCH64) -#define EXPECTED_SYS_getrandom 278 +#define EXPECTED_NR_getrandom 278 #elif defined(OPENSSL_ARM) -#define EXPECTED_SYS_getrandom 384 +#define EXPECTED_NR_getrandom 384 #elif defined(OPENSSL_PPC64LE) -#define EXPECTED_SYS_getrandom 359 +#define EXPECTED_NR_getrandom 359 #endif -#if defined(EXPECTED_SYS_getrandom) -#define USE_SYS_getrandom +#if defined(EXPECTED_NR_getrandom) +#define USE_NR_getrandom -#if defined(SYS_getrandom) +#if defined(__NR_getrandom) -#if SYS_getrandom != EXPECTED_SYS_getrandom +#if __NR_getrandom != EXPECTED_NR_getrandom #error "system call number for getrandom is not the expected value" #endif -#else /* SYS_getrandom */ +#else /* __NR_getrandom */ -#define SYS_getrandom EXPECTED_SYS_getrandom +#define __NR_getrandom EXPECTED_NR_getrandom -#endif /* SYS_getrandom */ +#endif /* __NR_getrandom */ -#endif /* EXPECTED_SYS_getrandom */ +#endif /* EXPECTED_NR_getrandom */ #if !defined(GRND_NONBLOCK) #define GRND_NONBLOCK 1 @@ -95,7 +95,7 @@ DEFINE_BSS_GET(int, urandom_fd); DEFINE_STATIC_ONCE(rand_once); -#if defined(USE_SYS_getrandom) || defined(BORINGSSL_FIPS) +#if defined(USE_NR_getrandom) || defined(BORINGSSL_FIPS) /* message writes |msg| to stderr. We use this because referencing |stderr| * with |fprintf| generates relocations, which is a problem inside the FIPS * module. */ @@ -116,10 +116,10 @@ static void init_once(void) { int fd = *urandom_fd_requested_bss_get(); CRYPTO_STATIC_MUTEX_unlock_read(rand_lock_bss_get()); -#if defined(USE_SYS_getrandom) +#if defined(USE_NR_getrandom) uint8_t dummy; long getrandom_ret = - syscall(SYS_getrandom, &dummy, sizeof(dummy), GRND_NONBLOCK); + syscall(__NR_getrandom, &dummy, sizeof(dummy), GRND_NONBLOCK); if (getrandom_ret == 1) { *urandom_fd_bss_get() = kHaveGetrandom; @@ -132,7 +132,7 @@ static void init_once(void) { do { getrandom_ret = - syscall(SYS_getrandom, &dummy, sizeof(dummy), 0 /* no flags */); + syscall(__NR_getrandom, &dummy, sizeof(dummy), 0 /* no flags */); } while (getrandom_ret == -1 && errno == EINTR); if (getrandom_ret == 1) { @@ -140,7 +140,7 @@ static void init_once(void) { return; } } -#endif /* USE_SYS_getrandom */ +#endif /* USE_NR_getrandom */ if (fd == kUnset) { do { @@ -234,7 +234,7 @@ void RAND_set_urandom_fd(int fd) { } } -#if defined(USE_SYS_getrandom) && defined(OPENSSL_MSAN) +#if defined(USE_NR_getrandom) && defined(OPENSSL_MSAN) void __msan_unpoison(void *, size_t); #endif @@ -245,9 +245,9 @@ static char fill_with_entropy(uint8_t *out, size_t len) { ssize_t r; if (*urandom_fd_bss_get() == kHaveGetrandom) { -#if defined(USE_SYS_getrandom) +#if defined(USE_NR_getrandom) do { - r = syscall(SYS_getrandom, out, len, 0 /* no flags */); + r = syscall(__NR_getrandom, out, len, 0 /* no flags */); } while (r == -1 && errno == EINTR); #if defined(OPENSSL_MSAN) @@ -258,7 +258,7 @@ static char fill_with_entropy(uint8_t *out, size_t len) { } #endif /* OPENSSL_MSAN */ -#else /* USE_SYS_getrandom */ +#else /* USE_NR_getrandom */ abort(); #endif } else { |