aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2018-10-15ssl: Update default for option signature_algs_certPéter Dimitrov
The option 'signature_algs_cert' is not set by default. Change-Id: Ib87cedc5e48b3ac7a36a30bc7caa08d3193f12fa
2018-10-15eldap: Update default hash algorithm in FTPéter Dimitrov
Update default hash algorithm (md5 -> sha1) used for generating the server and CA certificates. Default support for md5 has been removed for TLS 1.2 and OTP-15248 introduced a check for the whole {hash, signature} algorithm pair as defined by RFC5246. Change-Id: I964914914f522c10ef11c8c7c72bb9e4a0c38010
2018-10-15ssl: Test hash/signature algorithm selectionPéter Dimitrov
Change-Id: Ie60b2a2651ea975cebd0ccf0c7e2953f89986463
2018-10-15ssl: Filter "signature_algs_cert" from socket optionsPéter Dimitrov
Change-Id: Ifb933d1bad647b941b7324c0712a7bc20ae74efa
2018-10-15ssl: Implement Signature Algorithms (TLS 1.3)Péter Dimitrov
Implement handling of the signature algorithms extension described by RFC 8446. This commit updates the behavior of legacy TLS versions to align them with RFC 8446 (TLS 1.3) and RFC 5246 (TLS 1.2). - TLS 1.0/1.1 clients validate the client certificate against the certificate_type field of the CertificateRequest message. - TLS 1.2 client verifies the hash/signature algorithm pair of the client certificate when processing a CertificateRequest. Old behavior only checked the signature algorithms. - TLS 1.2 server verifies that the server certificate is signed by a hash/signature algorithm pair that appears in the "singature_algorithms" or "signature_algorithms_cert" (RFC 8446) extensions of the ClientHello. Change-Id: I3e0a0d7408984f5e5b1233968934fe34d64eb2b7
2018-10-15ssl: Document ssl option "signature_algs_cert"Péter Dimitrov
Add documentation to the ssl option "signature_algs_cert" introduced by TLS 1.3. The client/server will send a "signature_algorithms_cert" extension, if TLS 1.3 or later is used. Change-Id: I17d612f311a1deef7e29473c3998e7f99fa56f02
2018-10-01Merge branch 'ingela/ssl/extensions-and-TLS-1.3-handshaking'Ingela Anderton Andin
* ingela/ssl/extensions-and-TLS-1.3-handshaking: ssl: Correct extension decoding and dialyzer spec ssl: Generalize extensions handling
2018-10-01ssl: Correct extension decoding and dialyzer specIngela Anderton Andin
2018-10-01Merge branch 'maint'Siri Hansen
2018-09-28Merge pull request #1958 from jhogberg/john/compiler/ssa-bsm-optJohn Högberg
Rewrite BSM optimizations in the new SSA-based intermediate format
2018-09-28hipe: Document new limitations and disable known failing testsJohn Högberg
2018-09-28Remove unused instruction bs_context_to_binary from the compilerJohn Högberg
This has been superseded by bs_get_tail/3. Note that it is NOT removed from the emulator or beam_disasm, as old modules are still legal.
2018-09-28beam_ssa_pre_codegen: Remove unused variable aliasing supportBjörn Gustavsson
Remove the variable aliasing support that was needed for the old beam_bsm pass.
2018-09-28Improve coverage of 21 compatibilityBjörn Gustavsson
2018-09-28beam_ssa_opt: Eliminate redundant match alignment testsJohn Högberg
The beam_ssa_bsm pass welds chained matches together, but the match expressions themselves are unchanged and if there's a tail alignment check it will be done each time. This subpass figures out the checks we've already done and deletes the redundant ones.
2018-09-28Rewrite BSM optimizations in the new SSA-based intermediate formatJohn Högberg
This commit improves the bit-syntax match optimization pass, leveraging the new SSA intermediate format to perform much more aggressive optimizations. Some highlights: * Watch contexts can be reused even after being passed to a function or being used in a try block. * Sub-binaries are no longer eagerly extracted, making it far easier to keep "happy paths" free from binary creation. * Trivial wrapper functions no longer disable context reuse.
2018-09-27ssl: Generalize extensions handlingIngela Anderton Andin
As TLS 1.3 introduces more extensions in other places than in hello messages we like to have generalize extension handling encode/decode with some hello wrappers. Also extend property tests of handshake encod/decode
2018-09-27Update kernel, stdlib and sasl appups for OTP-21.2Siri Hansen
2018-09-26Merge pull request #1960 from ↵John Högberg
jhogberg/john/compiler/validator-aliased-type-fixes/ERL-735 beam_validator: Use set_aliased_type in more operations
2018-09-25beam_validator: Use set_aliased_type in more operationsJohn Högberg
The following code broke because aliases weren't tracked for hd/1: bug(Bool) -> Bug = remote:call(), if Bool -> %% Branch of some kind. _ = hd(Bug), remote:call(), hd(Bug) end. Related to 1f221b27f1336e747f7409692f260055dd3ddf79
2018-09-25Merge pull request #1937 from grooverdan/travisHenrik Nord
fix for ppc64le / add travis test for ppc64le OTP-15313
2018-09-25Merge branch 'maint'Henrik Nord
2018-09-24beam_ssa_pre_codegen: Correct some commentsBjörn Gustavsson
2018-09-24Prepare releaseErlang/OTP
2018-09-24Merge branch 'maint'Ingela Anderton Andin
2018-09-24ftp, tftp: Version should not be hardcoded in <app>.app.srcIngela Anderton Andin
2018-09-24beam_ssa: Add helper functions and export more typesJohn Högberg
get_anno/3: as get_anno but with a default value definitions/1-2: returns a map of variable definitions (#b_set{}) uses/1-2: returns a map of all uses of a given variable mapfold_blocks_rpo/4: mapfolds over blocks
2018-09-24Remove match context reuse annotations from core/kernel passesJohn Högberg
The upcoming beam_ssa_bsm pass makes this redundant.
2018-09-24Merge pull request #1959 from jhogberg/john/compiler/ssa-var_name-to-b_varJohn Högberg
Clean up variable-related cruft in new SSA passes
2018-09-21Merge PR-1952 from kjellwinblad/ca_tree_pull_requestSverker Eriksson
Add a more scalable ETS ordered_set implementation
2018-09-21Merge branch 'maint'Hans Nilsson
* maint: crypto: Fix accidental merge
2018-09-21crypto: Fix accidental mergeHans Nilsson
Commit 8c47a7657d03777a03a6838c7ec937b6347d07f8 accidently reverted the changes in lib/crypto/src/crypto.erl correctly introduced in e8de0736005e91afd992e49f434e08c940eddfa0 This fix re-introduces the correct changes.
2018-09-21Merge branch 'maint'Henrik Nord
2018-09-21Update copyright yearHenrik Nord
2018-09-20Merge branch 'maint'Ingela Anderton Andin
2018-09-20ssl: Improve interop checksIngela Anderton Andin
2018-09-20beam_ssa_recv: Remove redundant {var, _} wrappingJohn Högberg
Now that variables are represented as #b_var{}, there's no longer any risk of colliding with anything else.
2018-09-20Consistently use #b_var{} instead of var_name()John Högberg
We chose to refer to variables through their var_name() because we anticipated the need to annotate them, but it turned out we didn't really need that, and many things become a lot cleaner if the entire #b_var{} is used to represent variables.
2018-09-20Merge branch 'maint'Ingela Anderton Andin
2018-09-20Merge branch 'ingela/ERL-622/fix' into maintIngela Anderton Andin
* ingela/ERL-622/fix: ssl: Move link to correct process
2018-09-20ssl: Move link to correct processIngela Anderton Andin
The link should be between the connection process and the tls_sender process. But the start of the tls_sender process needs to be done by the process that also starts the connection process in order to correctly create the opaque #ssl_socket{}.
2018-09-19Merge branch 'raimo/stdlib/gen_statem-cleanup'Raimo Niskanen
OTP-14737 * raimo/stdlib/gen_statem-cleanup: Improve user's guide on time-outs Clean up and optimize code and doc
2018-09-19Merge branch 'maint'Raimo Niskanen
2018-09-19Merge branch 'raimo/receive-TOS-TCLASS/ERIERL-187/OTP-15145' into maintRaimo Niskanen
* raimo/receive-TOS-TCLASS/ERIERL-187/OTP-15145: Elaborate the disclaimer for 'pktoptions' Improve platform filter Fix endianness bug for CMSG parsing
2018-09-19Elaborate the disclaimer for 'pktoptions'Raimo Niskanen
2018-09-19Improve platform filterRaimo Niskanen
2018-09-19Merge branch 'maint'Hans Nilsson
* maint: crypto: Re-work the 'Description' section crypto: Add warnings in RefMan and User's Guide for experimental RSA opts
2018-09-19crypto: Re-work the 'Description' sectionHans Nilsson
Links and contents needs update.
2018-09-19Merge pull request #1955 from bjorng/bjorn/compiler/beam_ssa_deadBjörn Gustavsson
Replace beam_dead with beam_ssa_dead
2018-09-18Merge pull request #1857 from RaimoNiskanen/raimo/rand-crypto-xoroshiro928Raimo Niskanen
OTP-14461 - New 'rand' algorithm: Xoroshiro928** also for 'crypto' Implement a new 'rand' algorithm named 'exro928ss' and a new 'crypto' plugin for 'rand' named 'crypto_aes'. Both are based on Xoroshiro928** which is derived from Xoroshiro1024** modified to use 58-bit words for performance reasons in the Erlang VM. Xoroshiro1024** has got the Xoroshiro1024 generator and the StarStar scrambler from the 2018 paper "Scrambled Linear Pseudorandom Number Generators" by David Blackman and Sebastiano Vigna. This generator and scrambler combination shows no systematic weaknesses in standard statistical tests as TestU01(BigCrush) and PractRand, unlike the previously used * and + scramblers in the 'rand' module that exhibit statistical weaknesses for the lowest bits. The 'crypto' plugin uses AES-256 as scrambler and the Xoroshiro928 as generator, which gives the same very long period and jump functions as for Xoroshiro928**, but a cryptographically secure scrambler gives absolutely no detectable statistical weaknesses regardless of how the generated numbers are used. The speed of 'exro928ss' is only about 30-50% slower than the default fast 'rand' algorithm, but the state is roughly the double and it produces about 8 times the garbage per iteration. The speed of 'crypto_aes' is about half (amortized) that of the default fast 'rand' algorithm which is fast and thanks to doing encryption in batches caching the result. Hence the state is much larger.