Age | Commit message (Collapse) | Author |
|
* hans/crypto/chacha_poly_into_aead_fns/OTP-15300:
crypto: Fix bad return/exception for unsupported cipher
crypto: Use aead functions for CHACHA20_POLY1305
|
|
Accidently f11391139c4165e8541a52d45cd1525343a83927 merged by
0a218353e4360e36bac304b6a4e0effe78d95615 changed the
return exception 'notsup' to 'badarg' for unsupported chipher names.
This changes that back.
|
|
This previously implemented cipher is a block cipher despite using chacha.
It also uses the EVP_CIPHER_CTX api which now unifies AES_GCM and AES_CCM
into one pair of encrypt and decrypt functions.
By integrating the existing chacha20_poly1305 code into aead_encrypt and
aead_decrypt we could remove two C-functions and simplify both the C-code
and the corresponding Erlang code in the CRYPTO application.
|
|
* maint:
crypto: Disable problematic RSA options in LibreSSL
|
|
* hans/crypto/disable_rsa_sslv23_libressl/OTP-15303:
crypto: Disable problematic RSA options in LibreSSL
|
|
|
|
* maint:
crypto: Disable bad tests They do not test what was intended.
|
|
* hans/crypto/revert_bad_tests:
crypto: Disable bad tests They do not test what was intended.
|
|
They do not test what was intended.
|
|
|
|
|
|
|
|
* raimo/receive-TOS-TCLASS/ERIERL-187/OTP-15145:
Write testcases for recvtos and friends
Fix term buffer overflow bug
Fix documentation due to feedback
Implement socket option recvtos and friends
|
|
Use os:type() and os:version() to predict if the individual options
are supposed to be supported. We'll see if this holds.
|
|
A hanging node from this suite can fail later tests, so terminate all
nodes() after each test case.
|
|
|
|
|
|
|
|
OTP-15290
|
|
The snmp mib compiler printed an spurious version message
if the 'version' option was provided.
OTP-15290
|
|
Also fixed case clause.
OTP-15287 (ERIERL-206)
|
|
As a consequence of some refactoring (OTP-14983, option
'chars_limit'), the Format argument of io_lib:format() no longer
accepts binaries in lists in Erlang/OTP 21.0.
Note that if Format is not of type io:format(), control sequences in
Format are ignored. This can result in unpredictable behaviour if, for
example, the output of io_lib:format() is used as Format: if the
output happens to be a string(), then control sequences are
interpreted, otherwise not.
A check that Format is of type io:format() will likely be introduced
in Erlang/OTP 22.0. That will probably mean work for some users, but
considering how unpredictable io_lib:format() is, we should try to fix
that.
|
|
* maint:
kernel: Adjust disk_log tests
kernel: Adjust global testcase
|
|
* hasse/kernel/adjust_tests:
kernel: Adjust disk_log tests
kernel: Adjust global testcase
|
|
|
|
* siri/logger/post-21-continues/OTP-15132:
[logger] Read config before terminating handler process
[error_logger] Handle report_cb with arity 2
[proc_lib] Improve crash reports for single line logging
[logger] Include single_line option to report_cb
[logger] Check for deadlock when removing filters
[logger] Fix spec for handler callbacks to always return ok
[logger] Increase timetrap timer for handler_requests_under_load test
[logger] Improve code coverage in test
[logger] Refactor, and add error detection for configuration
[logger] Fix logger_disk_log_h_SUITE:sync and add som debug info
[logger] Update doc about file options in logger_std_h
[logger] Remove encoding option from logger_formatter
Remove outdated reference to error loggers
[logger] Refactor some logger internals
|
|
|
|
* maint:
Improve trapping in lists:reverse/2
Fix unsafe use of lists:reverse/1
|
|
* john/erts/improve-list-reverse-trapping/OTP-15199:
Improve trapping in lists:reverse/2
Fix unsafe use of lists:reverse/1
|
|
* maint:
Fix PGO configure test
|
|
* rickard/conf-pgo/OTP-15282:
Fix PGO configure test
|
|
* maint:
crypto: Fix no_aead test
crypto: Document AES_CCM and fix errors in User's Guide The sizes in the Algorithms chapter for aes_gcm was wrong or incomplete.
crypto: AES_CCM test case
crypto: All aes_ccm vectors (including unused) This directory contains all aes_ccm vectors. However, effort is needed to include them in the test suite so they are left for later.
crypto: Add AES_CCM crypto Will be increase interoperability of future SSL application versions.
crypto: Generalize aes_gcm_(de|en)crypt nifs
|
|
* hans/crypto/aes_ccm/OTP-15286:
crypto: Fix no_aead test
crypto: Document AES_CCM and fix errors in User's Guide The sizes in the Algorithms chapter for aes_gcm was wrong or incomplete.
crypto: AES_CCM test case
crypto: All aes_ccm vectors (including unused) This directory contains all aes_ccm vectors. However, effort is needed to include them in the test suite so they are left for later.
crypto: Add AES_CCM crypto Will be increase interoperability of future SSL application versions.
crypto: Generalize aes_gcm_(de|en)crypt nifs
|
|
* maint:
crypto: Add forgotten #ifdef MAY prevent compilation errors if the symbol is configured to not be defined in an OpenSSL version where it exists by default.
crypto: Change condition for RSA_PKCS1_PSS Trubble on a couple of cross-building machines
crypto: RSA options list disclaimer in documentation for crypto:supports/0 The final appearence of the rs_opts entry is still not completly decided.
crypto: Add 'rsa_opts' to crypto:supports/0 Needed in future versions of the SSL application.
|
|
* hans/crypto/rsassa_pss/OTP-15260:
crypto: Add forgotten #ifdef MAY prevent compilation errors if the symbol is configured to not be defined in an OpenSSL version where it exists by default.
crypto: Change condition for RSA_PKCS1_PSS Trubble on a couple of cross-building machines
crypto: RSA options list disclaimer in documentation for crypto:supports/0 The final appearence of the rs_opts entry is still not completly decided.
crypto: Add 'rsa_opts' to crypto:supports/0 Needed in future versions of the SSL application.
|
|
Most of the optimizations in beam_dead have been superseded
by the optimizations in beam_ssa_dead.
The forward/1 pass of beam_dead has been moved to beam_jump.
The beam_split pass splits blocks that contain instructions with
non-zero labels. Because there are no optimizations left that optimize
instructions within blocks, beam_block never needs to put such
instructions into blocks in the first place. beam_split also moved
'move' instructions out block to help beam_dead. That is no longer
necessary since beam_dead no longer exists.
|
|
Add beam_ssa_dead to perform the main optimizations done
by beam_dead:
* Shortcut branches that jump to another block with a branch.
If it can be seen that the second branch will always branch
to a specific block, replace the target of the first branch.
* Combined nested sequences of '=:=' tests and switch
instructions operating on the same variable to a single switch.
Diffing the compiler output, it seems that beam_ssa_dead finds
many more opportunities for optimizations than beam_dead,
although it does not find all opportunities that beam_dead does.
In total, beam_ssa_dead is such improvement over beam_dead that
there is no reason to keep beam_dead as well as beam_ssa_dead.
Note that beam_ssa_dead does not attempt to optimize away
redundant bs_context_binary instructions, because that instruction
will be superseded by new instructions in the near future.
|
|
Omitting `kill` instructions before BIFs that throw exceptions
will reduce the code size. This optimization supersedes the same
optimizations in beam_dead.
|
|
|
|
In beam_ssa_type, do substitutions similar to what ssa_opt_misc does
to get rid of variables that evaluate to constant values. That
somewhat simplifies the code of beam_ssa_type, and could improve
performance of the compiler since instructions and variables are
eliminated, reducing the amount of work for later passes.
|
|
|
|
Remove the following clause from the `fun` clauses in arith_op_types/2
because it cannot possibly match:
(_, any) -> number;
Here is why it cannot match:
The second argument is the accumulator for lists:foldl/3.
Its initial value is `unknown`.
None of the clauses will update the accumulator to `any`, including
the clause that matches `any` in the first argument -- it will set the
accumulator to `number`.
Thus, the accumulator (second argument) can never be `any` and
the clause can never match. QED.
|
|
The floating point optimization relies on heavily on the block
order in the lineararized representation. A new optimization
could easily break the optimization, for example so that no
`fcheckerror` instructions were emitted.
Rewrite the optimization to avoid dependencies on the linear
block order.
|
|
When a handler process is terminated due to overload, it reads its
configuration from the configuration database, so it can be restarted
with the same configuration after a small delay. This was earlier done
in a different process, which was spawned off from the terminate
function. This caused a race condition, where in some cases, the
configuration was already removed before it could be read.
The reason for spawning off a process, is to avoid a deadlock due to
the call to logger:remove_handler/1.
This commit moves the call to logger:get_handler_config/1 back to the
handler process - to ensure that the data is still there, but keeps
the call to logger:remove_handler/1 in the spawned off process - to
avoid deadlock.
|
|
|
|
The sizes in the Algorithms chapter for aes_gcm was wrong or incomplete.
|
|
|
|
This directory contains all aes_ccm vectors. However, effort is needed
to include them in the test suite so they are left for later.
The aes_ccm cipher is already covered by the vectors in crypt_SUITE_data
Source: https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program
|
|
Will be increase interoperability of future SSL application versions.
|
|
The EVP_CIPHER_CTX interface aims at enabling using the same code for many
ciphers. Since we are going to add aes_ccm which is similar to aes_gcm,
this commit is a preparation.
It creates the aead_(de|en)crypt nifs and removes the old ones.
|