Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to upstream ae88f19 #100

Merged
merged 433 commits into from
Jun 17, 2023
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
433 commits
Select commit Hold shift + click to select a range
9580424
Bound the overall output size of ASN1_generate_v3
davidben Feb 9, 2023
bd7e419
Generate Rust wrappers for HKDF
Feb 9, 2023
ace3316
Add a note in INCORPORATING about which branch to use
davidben Feb 10, 2023
350f854
Add OPENSSL_asprintf and friends for asprintf(3) functionality.
Feb 7, 2023
fc524c1
Make ERR and thread use system malloc.
Feb 7, 2023
d5e93f5
Cap decimal input sizes in s2i_ASN1_INTEGER
davidben Feb 13, 2023
dcabfe2
Make OPENSSL_malloc push ERR_R_MALLOC_FAILURE on failure.
Feb 8, 2023
ec64d7e
Fix a -Wignored-qualifiers warning in trust_token_test.cc
davidben Feb 10, 2023
9c9b2c2
Align the hash-to-curve formulation with draft-16.
davidben Feb 10, 2023
3950d6c
Implement P256_XMD:SHA-256_SSWU_RO_ and P384_XMD:SHA-384_SSWU_RO_
davidben Feb 10, 2023
de12e3c
Unify the two copies of bn_add_words and bn_sub_words
davidben Feb 14, 2023
0e68520
Specify -Iinclude with the crypto target.
davidben Feb 5, 2023
e5f7266
Don't include custom builds of libc++ in CMake installs
davidben Jan 29, 2023
8c75ed0
Remove global_target from build.
davidben Feb 5, 2023
503ba98
Remove proxy certificate support.
Feb 14, 2023
ca1690e
Tidy up check_chain_extensions after proxy certificate removal
davidben Feb 14, 2023
b8b924c
Use --allowlist-file in bssl-sys
davidben Feb 14, 2023
f30c031
Update build tools
davidben Feb 10, 2023
987dff1
Make boringssl_gtest_main a STATIC library
davidben Feb 15, 2023
890c201
Make EVP_PKEY opaque.
davidben Feb 8, 2023
ffb8050
Replace the union inside EVP_PKEY with void*.
davidben Feb 9, 2023
bab2f96
Revert go:build ignore lines
davidben Feb 16, 2023
badf673
Add bbe@ to list of reviewers
Feb 17, 2023
e18ba27
Move constants from .text to .rodata on aarch64
botovq Feb 17, 2023
bade461
Update Go dependencies
davidben Feb 21, 2023
016de5a
acvp: fix tests
agl Feb 17, 2023
f39826d
acvp: write updated tests without `.bz2` suffix
agl Feb 17, 2023
583c60b
acvp: update test expectations
agl Feb 17, 2023
9227295
Fix Android tests with new recipe changes
davidben Feb 22, 2023
7c860a4
Gracefully handle DSA objects with missing fields
davidben Feb 13, 2023
aa8d3b5
Reject zero ECDSA keys in EC_KEY_set_private_key
davidben Feb 11, 2023
85a1e2e
Revert "Revert "Fetch entropy from a system daemon in FIPS mode on An…
Jul 29, 2022
788bf74
Add more DSA consistency checks.
davidben Feb 13, 2023
474ddf8
Cap the number of ECDSA and DSA sign iterations.
davidben Feb 11, 2023
3cd7faa
Tweak urandom_test for Android devices without getrandom.
agl Feb 23, 2023
7864b14
Start a Kyber implementation with basic Keccak code.
agl Feb 17, 2023
ebd43ef
Move data from .text to .rodata on x86_64
botovq Feb 17, 2023
bffae8a
Print the reason the child stopped in urandom_test
davidben Feb 23, 2023
8251dd8
Pass the full user_regs_struct to PTRACE_SETREGS
davidben Feb 23, 2023
5eb9343
Go back to breaking syscalls with the syscall number
davidben Feb 23, 2023
6ab4f0a
Require getauxval on 32-bit Arm Linux
davidben Feb 21, 2023
7fa0910
Create the SSLKeyShare object in TLS 1.2 client ECDHE slightly later
davidben Jan 26, 2023
a5dcf35
Move the ASN.1-based SSLKeyShare serialization to handoff.cc.
davidben Jan 26, 2023
9cbff81
Simplify ECKeyShare slightly.
davidben Jan 26, 2023
55902f2
Switch to CIPD's copy of perl
davidben Feb 24, 2023
b3c2c75
Pick up a VS 2022 toolchain from Chromium
davidben Feb 24, 2023
f53ca9f
Run Go tests as part of run_tests
davidben Feb 24, 2023
1b666dd
Ignore elf.ErrNoSymbols in util/read_symbols.go
davidben Feb 27, 2023
8c4ec3b
Replace almost all instances of CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR
davidben Feb 27, 2023
92859cc
Fix the generated CMake build
davidben Feb 27, 2023
3c6085b
Workaround yet more NULL + 0 language bugs
davidben Feb 27, 2023
e3a5fac
Fix ninja run_tests
davidben Feb 27, 2023
f88b7c8
Use the common location for CMake in the bots
davidben Feb 27, 2023
028bae7
Define a NID for P-384 + Kyber768.
agl Feb 27, 2023
08b1f38
Use KEM terminology in TLS ECDHE and key_share abstractions
davidben Feb 28, 2023
76cb7c5
urandom_test: force MADV_WIPEONFORK both ways.
agl Mar 1, 2023
e06f172
Fix use of unitialized cbb on failure case.
Mar 2, 2023
93e8d44
Add a few more assertions to compiler_test.cc.
davidben Mar 2, 2023
3a7dfdb
Plug a leak in ASN1_item_i2d()
botovq Mar 5, 2023
abb9af8
Work around a NASM bug
davidben Mar 6, 2023
082e953
test_fips: flush stdout before aborting on failure.
prbprbprb Aug 25, 2022
a925c22
Remove EVP_PKEY_ASN1_METHOD and EVP_PKEY_METHOD from public headers
davidben Mar 7, 2023
ecb722a
Add prefetch to sha1_block_data_order_shaext
TocarIP Mar 6, 2023
8aa51dd
Add OPENSSL_EXPORT to BN_mod_inverse_blinded
rrliu Mar 9, 2023
be79283
initial setup for bssl crate with hmac and sha2 bindings
Feb 14, 2023
6f3e822
Rust build cleanup
Mar 14, 2023
39da68f
Rust bindings to boringssl plain AES implementation
Feb 17, 2023
50bc2ea
Tidy up HMAC_Init_ex slightly
davidben Mar 14, 2023
d0cff63
Test that X509_NAMEs sort their RDNs when encoding.
davidben Mar 14, 2023
8c7aa6b
Const-correct and document a few functions in x509v3.h.
davidben Mar 14, 2023
3002573
Hmac should be able to take longer keys
Mar 14, 2023
7464656
Add CTRDBG_STATE to bssl::UniquePtr
davidben Mar 15, 2023
6a231e5
Add a test for OPTIONAL CHOICE values
davidben Mar 12, 2023
860cc73
Reduce type-punning in ASN1_TYPE
davidben Mar 12, 2023
9ea4128
Set up cargo deny to deny new dependencies by default.
Mar 16, 2023
7b04d72
Get rid of the libc crate dependency in bssl-sys
Mar 16, 2023
cc57542
add bindings for hkdf and update panic handler
Feb 23, 2023
2cb7b33
Rewrite ASN1_OBJECT and ASN1_BOOLEAN d2i/i2d functions.
davidben Dec 29, 2022
173b639
Make ASN1_OBJECT_create size_t-clean.
davidben Jan 1, 2023
898de8d
Rewrite c2i_ASN1_OBJECT
davidben Mar 11, 2023
92de195
- remove dependency on hex-literal crate
Mar 20, 2023
8c8629b
Represent unknown universal types with V_ASN1_OTHER
davidben Mar 13, 2023
172b291
add bindings to RAND_bytes
Mar 20, 2023
2a52444
Reimplement X509 parsing without templates
davidben Mar 16, 2023
8ebfea7
Reject non-minimal lengths in ASN1_get_object
davidben Mar 16, 2023
b6a50fd
Give X509 an ASN1_ITEM again
davidben Mar 22, 2023
2e13e36
Fix parameter name for i2d_X509_EXTENSION
davidben Mar 23, 2023
0e8e3c6
Add a warning about OBJ_create and global state
davidben Mar 28, 2023
97d48db
Sort various X.509 global lists sooner
davidben Mar 28, 2023
af0739f
Const-correct sk_FOO_cmp_func
davidben Jan 9, 2023
678bae4
Remove dynamic X509_VERIFY_PARAM registration
davidben Mar 28, 2023
fca688f
Fix policy validation when the user policy set is NULL
davidben Mar 29, 2023
28226f5
Fix handling of critical X.509 policy constraints
davidben Mar 29, 2023
58472cc
Adding a C implementation of Kyber.
sophieschmieg Mar 7, 2023
bc49415
Add comment about regenerating peg files.
agl Mar 31, 2023
d897027
Update X25519+Kyber ID.
agl Mar 31, 2023
502d24c
Add various tests for memory BIOs.
davidben Apr 2, 2023
6e723e5
Convert a few more ints to bools in libssl.
davidben Mar 29, 2023
e8b168d
Fix size_t truncations in bio_mem.c
davidben Apr 1, 2023
44a389a
Tidy up some lengths in SSL_SESSION
davidben Dec 10, 2022
9a56503
RESOURCE_LEAK in method STACK_OF(TRUST_TOKEN) *voprf_unblind before r…
wangjiale3 Mar 31, 2023
0c069cb
Don't consume the newline in BIO_gets for fds
davidben Apr 3, 2023
8843d98
If the ret is not null, it needs to be released before return
wangjiale3 Mar 31, 2023
fe7a067
Run `go fmt` in `ssl/test/runner`.
agl Apr 10, 2023
bf1b792
Remove SSL_CIPHER_get_rfc_name
davidben Apr 11, 2023
a438519
Fix miscellaneous size_t truncations
davidben Mar 25, 2023
7b9b9ba
leaked_storage in method POLICYQUALINFO *notice_section
wangjiale3 Mar 31, 2023
89de6e1
Move RSA (en|de)cryption out of the FIPS module.
agl Mar 31, 2023
c5f762d
Add Trust Token version using standardized hash2curve.
dvorak42 Mar 20, 2023
9423510
Fix up do_ext_i2d's error-handling
davidben Apr 12, 2023
8cacbd9
Add functions to allow the mocking of AES hw support for testing.
Apr 5, 2023
abfd5eb
Restore some default cases in tasn_dec.c and tasn_enc.c
davidben Apr 12, 2023
8abd1b5
Remove support for "old-style" X509V3_EXT_METHODs.
davidben Apr 12, 2023
5fb362c
Remove X509V3_EXT_add_list and X509V3_EXT_cleanup
davidben Apr 13, 2023
298e6c2
expose a reset API on hmac which resets the current instance back to …
Apr 4, 2023
4ae4fb7
Drop CECPQ2 support.
agl Apr 11, 2023
d3acd45
Move HKDF into the FIPS module.
agl Apr 12, 2023
480344d
Move TLS 1.3 KDF functions into the FIPS module.
agl Apr 13, 2023
404d98b
Include bindgen generated file via a build time env var, this plays n…
Apr 14, 2023
fa7afff
add extra lints to align with Chromium rust toolchain
Apr 14, 2023
cee2dbb
Default SSL_set_enforce_rsa_key_usage to enabled.
davidben Apr 14, 2023
6e1e367
Switch to new ACVP test for TLS 1.2 KDF.
agl Apr 15, 2023
c466222
Skip some BIO_gets tests if tmpfile fails on Android
davidben Apr 17, 2023
a4593ce
break-tests.sh: break run-time tests and use two test_fips binaries.
Aug 4, 2022
6776d5c
Update test_fips.c with new functions added to FIPS module.
agl Apr 17, 2023
32b5130
Widen ASN1_mbstring_copy and ASN1_mbstring_ncopy to ossl_ssize_t
davidben Mar 25, 2023
aa31748
Generate 64-bit Curve25519 and P256 code for MSVC
andres-erbsen Feb 27, 2023
d9f209b
Document a pile of X509 print functions
davidben Apr 19, 2023
787713b
Organize X509_ATTRIBUTE functions into sections.
davidben Apr 19, 2023
437ef4d
Remove the X509at_* functions
davidben Apr 19, 2023
58a4094
Move the X509 time functions under "Convenience functions"
davidben Apr 19, 2023
3e91d37
Clarify in ssl.h documentation not to use the verify callback
davidben Apr 19, 2023
e2d1401
Remove --size_t-is-usize from bindgen call
davidben Apr 19, 2023
26ead95
Trim some unused XN_FLAG_* values
davidben Apr 19, 2023
1a5570b
Update docs to recommend a much more convenient CMake invocation
davidben Apr 19, 2023
a38d600
Fix allowlist regex in bindgen invocation
davidben Apr 19, 2023
bcecc7d
Replace sort.Sort with sort.Slice
davidben Apr 18, 2023
d5ac273
Spell includes in wrapper.h like the rest of the project
davidben Apr 20, 2023
ac6d558
Add mechanism for deprecated declarations.
Mar 28, 2023
b0b1f9d
Only rerun bindgen when its dependencies change
davidben Apr 19, 2023
de2d610
Remove TLS_RSA_WITH_NULL_SHA
davidben Apr 21, 2023
edf7662
Allow passing extra flags to BoGo shim
rolandshoemaker Apr 25, 2023
5748eb8
Move convert_wycheproof into its own package
davidben Apr 24, 2023
ece1f86
Re-add go:build ignore lines
davidben Apr 24, 2023
4b6d950
Align TRUST_TOKEN_pst_v1_voprf with draft-21 of VOPRF
dvorak42 Apr 18, 2023
d5f3a9e
Squeeze a block at a time when computing the matrix in Kyber
davidben Apr 25, 2023
d42c4e4
Specify the TLS cipher order more straightforwardly
davidben Apr 22, 2023
a0afd6a
Add some missing includes
davidben Apr 26, 2023
0c7527b
X509_sign, etc., should return the length of the signature on success
davidben Apr 26, 2023
b352546
Remove go:build ignore from convert_wycheproof
davidben Apr 26, 2023
26669ff
Don't copy all of bssl-sys into the CMake build directory
davidben Apr 21, 2023
691e45a
Remove unimplemented SSL BIO_ctrl values
davidben Apr 21, 2023
d206f3d
Move the old SPKAC types to their own section
davidben Apr 20, 2023
a02b743
runner: Remove an unnecessary use of AllCurves
davidben Apr 26, 2023
2f6409e
Support WPA 3.1 "enterprise" mode.
agl Apr 10, 2023
9939e14
Invalidated cached RSA, DH, and DSA state when changing keys
davidben Apr 26, 2023
b811a6c
Add Kyber to runner tests
agl May 1, 2023
048d21c
Disable BlindingCacheConcurrency on FreeBSD.
davidben May 1, 2023
86ada1e
Add new APIs for creating RSA keys
davidben Apr 26, 2023
77b6f25
Replace interface{} with any
davidben May 2, 2023
051f891
Update references to draft-irtf-cfrg-gcmsiv
davidben May 2, 2023
4c8bcf0
Implement the AuthEncap/AuthDecap HPKE modes
davidben Apr 28, 2023
a7f83c4
Don't make assumptions about GCM128_CONTEXT layout in aesv8-gcm-armv8.pl
davidben May 2, 2023
62f9751
Don't make assumptions about GCM128_CONTEXT layout in aesni-gcm-x86_6…
davidben May 2, 2023
e7c3f47
Remove H from GCM128_KEY
davidben May 2, 2023
85e6453
Remove unions in polyval implementation
davidben May 2, 2023
1b724a6
Align Kyber names with draft-tls-westerbaan-xyber768d00
davidben May 3, 2023
2e565ef
Clarify that X25519 also supports EVP_PKEY_new_raw_private_key, etc
davidben May 4, 2023
5e988c4
Rename EC_RAW_POINT to EC_JACOBIAN
davidben May 3, 2023
5b32e81
Remove unions in GCM implementation
davidben May 2, 2023
6d55dc3
Add APIs to support RSA keys with large e.
davidben May 5, 2023
4d30888
Add a more general mechanism for deprecating TLS ciphers
davidben Apr 21, 2023
722f5d8
Fix PKCS8Test to not rely on RSA-512
davidben May 5, 2023
b1c6f45
Add back support for TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
agl May 3, 2023
a972b78
Add APIs to query a list of possible strings for TLS features
davidben May 5, 2023
2aae3f5
Bump the minimum supported MSVC version to VS2019
davidben May 5, 2023
c6dd304
Remove unions in BLAKE2b implementation
davidben May 3, 2023
4540c3c
OpenBSD Support
bob-beck Mar 8, 2023
4137759
Update build tools
davidben May 11, 2023
bf80254
Update googletest
davidben May 11, 2023
e24491a
acvptool: implement pipelining.
Nov 25, 2022
b92fcfd
Cap the input size to the conf fuzzer
davidben May 11, 2023
c215ce7
Use a helper function to implement get_all_foo_names functions.
May 8, 2023
c1f5d79
Add a multi-threaded mode to bssl speed
davidben Mar 4, 2023
706846d
Add documentation for X509_STORE_CTX_set_verify_cb and friends
Apr 19, 2023
15a0c9a
Remove now redundant RSA test
davidben May 12, 2023
786554f
Check public components in freeze_private_key
davidben May 12, 2023
dd9ee60
Reject RSA keys under 512 bits
davidben May 11, 2023
5b845de
Use Windows Interlocked* APIs for refcounts when C11 isn't available
davidben Jan 8, 2023
8a85012
Remove the lock-based atomics fallback
davidben Jan 8, 2023
a05691d
Add an atomics library to crypto/internal.h
davidben Jan 9, 2023
1599fea
Remove read locks from PRNG steady state
davidben Jan 9, 2023
2eaf070
Add a thread test for ex_data
davidben May 13, 2023
dd52194
Fix RAND_enable_fork_unsafe_buffering when called after fork
davidben Jan 9, 2023
47b2fef
Update hkdf.c to avoid potentially vulnerable code pattern.
May 17, 2023
74a75b3
Add a comment about the Chromium sandbox for macOS sysctls
davidben May 18, 2023
8abcb6f
Don't include <stdatomic.h> in C++
davidben May 19, 2023
b0251b1
Disable TLS_RSA_WITH_3DES_EDE_CBC_SHA by default
davidben Apr 21, 2023
f712c86
Avoid locks in CRYPTO_free_ex_data
davidben May 22, 2023
cf3851c
acvptool: clean up better.
agl May 23, 2023
8c7e925
Bound STACK_OF(T) sizes by int
davidben May 23, 2023
89a6253
Add int casts as needed around STACK_OF(T) sizes and indices
davidben May 23, 2023
7e56051
Miscellaneous size_t truncation fixes
davidben May 23, 2023
83a6ba1
Test the CONF parser more extensively
davidben May 23, 2023
5aefcba
Remove some unnecessary NULL checks in conf.c.
davidben May 23, 2023
f31b45d
Remove some unreachable character types in the CONF parser
davidben May 23, 2023
825bec8
Remove variable expansion from CONF fuzzer
davidben May 24, 2023
5fcd47d
Add prefetch to aes_hw_ctr32_encrypt_blocks
TocarIP May 22, 2023
da757e6
Add constant-time validation for curve25519
davidben May 24, 2023
e30750c
Add an ABI test for x25519_NEON
davidben May 25, 2023
b0a026f
add rust bindings for ed25519
May 12, 2023
4631ccc
Remove SSL_CIPHER_get_value
davidben May 27, 2023
2da5ba9
Align on using the "group" over "curve" for ECDH in TLS
davidben May 27, 2023
335523a
Align remaining TLS ECDH APIs on "group" terminology
davidben May 27, 2023
6cf9820
Align NIDs vs group IDs in TLS group APIs
davidben May 27, 2023
55b069d
Add a value barrier when checking for point doubling.
davidben May 26, 2023
be0fdf7
Constant-time test that X25519 has a single path.
andres-erbsen May 30, 2023
28c2409
Define TLSEXT_nid_unknown
davidben Jun 1, 2023
e106b53
Remove BN_DEC_FMT2 and test the others
davidben Jun 1, 2023
b034104
Make BN_mod_inverse() deal with repeated arguments
botovq Jun 2, 2023
4a0393f
Add SHA256 and SHA512 bindings to bssl-crypto
Jun 1, 2023
d605df5
Use packed representation for large Curve25519 table
andres-erbsen May 24, 2023
df9955b
Handle ChaCha20 counter overflow consistently
davidben Jun 1, 2023
43f8891
Add saturated X25519 for x86_64+ADX running Linux
andres-erbsen May 22, 2023
f4a4e27
Make DSA opaque
davidben Jun 3, 2023
9d4f833
Use ADX asm for Curve25519 base-point multiplication
andres-erbsen May 30, 2023
d995d82
Add .type, .hidden, and .size to the new fiat ADX assembly
davidben Jun 6, 2023
99d3c22
Prefix the private stack functions
davidben Jun 4, 2023
9dcc97d
Add fiat_curve25519_adx.S to generate_build_files.py
davidben Jun 7, 2023
9d48902
Remove a pointer indirection in STACK_OF(T) comparisons
davidben Jun 6, 2023
1340a5b
Give up on qsort for sk_FOO_sort
davidben Jun 7, 2023
d86e2fd
Update build tools
davidben Jun 7, 2023
aaf771e
Fix the combined asm source lists in generate_build_files.py
davidben Jun 7, 2023
3f680b0
Remove a layer of indirection from fiat curve25519 assembly
davidben Jun 7, 2023
8e16c04
Avoid another NULL+0 in BIO_s_mem
davidben Jun 8, 2023
2a72f97
Tidy bssl-crypto documentation
davidben Jun 7, 2023
cbb96b4
Const-correct a few X509_PURPOSE and X509_TRUST functions
davidben Jun 4, 2023
556a973
Add SSL_CIPHER_get_handshake_digest
davidben Jun 4, 2023
1ca5723
Don't allow timezone offsets in ASN1_UTCTIME_set_string
davidben Jun 8, 2023
761c3ed
Add ASN1_TIME_set_string_X509
davidben Jun 4, 2023
23ed9d3
Add target attributes to curve25519_64_adx.h
davidben Jun 8, 2023
d4553e0
Make RSA opaque
davidben Jun 3, 2023
04c3d40
Remove CRYPTO_MUTEX from public headers
davidben Jun 3, 2023
5159ae6
Add memcmp binding to bssl-crypto
Jun 1, 2023
754bcf6
Don't expose EVP_PKEY internal representation through EVP_PKEY_assign
davidben Jun 9, 2023
ae88f19
Fix fiat asm .private_extern declaration on Apple platforms
davidben Jun 10, 2023
49a32a9
Syncing with upstream-ae88f19
Jun 12, 2023
636f6c3
Fix errors related to ae88f19
Raytonne Jun 15, 2023
78ceb4a
Fix errors related to ae88f19
Raytonne Jun 15, 2023
b2af519
fix BIKE and Falcon
Raytonne Jun 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ PointerAlignment: Right
IncludeBlocks: Preserve
TypenameMacros: ['LHASH_OF', 'STACK_OF']
StatementMacros:
- "ASN1_SEQUENCE_END"
- "DECLARE_ASN1_ALLOC_FUNCTIONS"
- "DECLARE_ASN1_ALLOC_FUNCTIONS_name"
- "DECLARE_ASN1_ENCODE_FUNCTIONS"
Expand Down Expand Up @@ -69,6 +68,7 @@ StatementMacros:
- "IMPLEMENT_PEM_write_fp_const"
- "ASN1_ADB_END"
- "ASN1_CHOICE_END"
- "ASN1_CHOICE_END_cb"
- "ASN1_ITEM_TEMPLATE_END"
- "ASN1_SEQUENCE_END"
- "ASN1_SEQUENCE_END_cb"
Expand Down
8 changes: 4 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,26 @@ ssl/test/runner/runner
doc/*.html
doc/doc.css
rust/Cargo.lock
rust/bssl-crypto/Cargo.lock
rust/target

util/bot/android_ndk
util/bot/android_sdk/public
util/bot/cmake-linux64
util/bot/cmake-mac
util/bot/cmake-win32
util/bot/cmake
util/bot/golang
util/bot/libFuzzer
util/bot/libcxx
util/bot/libcxxabi
util/bot/llvm-build
util/bot/nasm-win32.exe
util/bot/ninja
util/bot/perl-win32
util/bot/perl-win32.zip
util/bot/sde-linux64
util/bot/sde-linux64.tar.xz
util/bot/sde-win32
util/bot/sde-win32.tar.xz
util/bot/win_toolchain.json
target/
util/bot/yasm-win32.exe

oqs/
Expand Down
33 changes: 14 additions & 19 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Unless otherwise noted, build tools must at most five years old, matching
[Abseil guidelines](https://abseil.io/about/compatibility). If in doubt, use the
most recent stable version of each tool.

* [CMake](https://cmake.org/download/) 3.8 or later is required.
* [CMake](https://cmake.org/download/) 3.10 or later is required.

* A recent version of Perl is required. On Windows,
[Active State Perl](http://www.activestate.com/activeperl/) has been
Expand All @@ -32,9 +32,9 @@ most recent stable version of each tool.

* C and C++ compilers with C++14 support are required. If using a C compiler
other than MSVC, C11 support is also requried. On Windows, MSVC from
Visual Studio 2017 or later with Platform SDK 8.1 or later are supported,
but newer versions are recommended. Recent versions of GCC (6.1+) and Clang
should work on non-Windows platforms, and maybe on Windows too.
Visual Studio 2019 or later with Windows 10 SDK 2104 or later are supported,
but using the latest versions is recommended. Recent versions of GCC (6.1+)
and Clang should work on non-Windows platforms, and maybe on Windows too.

* The most recent stable version of [Go](https://golang.org/dl/) is required.
Note Go is exempt from the five year support window. If not found by CMake,
Expand All @@ -48,17 +48,13 @@ most recent stable version of each tool.

Using Ninja (note the 'N' is capitalized in the cmake invocation):

mkdir build
cd build
cmake -GNinja ..
ninja
cmake -GNinja -B build
ninja -C build

Using Make (does not work on Windows):

mkdir build
cd build
cmake ..
make
cmake -B build
make -C build

You usually don't need to run `cmake` again after changing `CMakeLists.txt`
files because the build scripts will detect changes to them and rebuild
Expand All @@ -69,10 +65,9 @@ debugging—optimisation isn't enabled. Pass `-DCMAKE_BUILD_TYPE=Release` to
`cmake` to configure a release build.

If you want to cross-compile then there is an example toolchain file for 32-bit
Intel in `util/`. Wipe out the build directory, recreate it and run `cmake` like
this:
Intel in `util/`. Wipe out the build directory, run `cmake` like this:

cmake -DCMAKE_TOOLCHAIN_FILE=../util/32-bit-toolchain.cmake -GNinja ..
cmake -B build -DCMAKE_TOOLCHAIN_FILE=../util/32-bit-toolchain.cmake -GNinja

If you want to build as a shared library, pass `-DBUILD_SHARED_LIBS=1`. On
Windows, where functions need to be tagged with `dllimport` when coming from a
Expand All @@ -93,12 +88,12 @@ versions of the NDK include a CMake toolchain file which works with CMake 3.6.0
or later. This has been tested with version r16b of the NDK.

Unpack the Android NDK somewhere and export `ANDROID_NDK` to point to the
directory. Then make a build directory as above and run CMake like this:
directory. Then run CMake like this:

cmake -DANDROID_ABI=armeabi-v7a \
-DANDROID_PLATFORM=android-19 \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
-DANDROID_NATIVE_API_LEVEL=16 \
-GNinja ..
-GNinja -B build

Once you've run that, Ninja should produce Android-compatible binaries. You
can replace `armeabi-v7a` in the above with `arm64-v8a` and use API level 21 or
Expand Down Expand Up @@ -140,7 +135,7 @@ In order to build with prefixed symbols, the `BORINGSSL_PREFIX` CMake variable
should specify the prefix to add to all symbols, and the
`BORINGSSL_PREFIX_SYMBOLS` CMake variable should specify the path to a file
which contains a list of symbols which should be prefixed (one per line;
comments are supported with `#`). In other words, `cmake ..
comments are supported with `#`). In other words, `cmake -B build
-DBORINGSSL_PREFIX=MY_CUSTOM_PREFIX
-DBORINGSSL_PREFIX_SYMBOLS=/path/to/symbols.txt` will configure the build to add
the prefix `MY_CUSTOM_PREFIX` to all of the symbols listed in
Expand Down
Loading