Markus Triska
|
6b8a679a51
|
explain potential side-channel attacks due to compact string representation
This legitimate concern was already raised by @infogulch in:
https://github.com/mthom/scryer-prolog/issues/1309#issuecomment-1080028854
Thank you a lot!
|
2024-03-01 22:03:57 +01:00 |
|
Markus Triska
|
ec251b254c
|
ENHANCED: Safe HMAC verification, using constant time string comparison.
Without this provision, the expected HMAC can be gathered from timing
differences depending on the position where the strings first diverge,
and hence an attacker can forge an authenticated message by supplying
the gathered HMAC.
Test case, using exp(E) to succeed exactly 2^E times:
exp(E) :-
N is 2^E,
between(1, N, _).
yielding:
?- Options = [algorithm(sha512),hmac([1,2,3])],
Ds = "test",
crypto_data_hash(Ds, H, Options),
phrase((seq(As),seq(Bs)), H),
same_length(Bs, Cs),
maplist(=(a), Cs),
append(As, Cs, H1),
time((exp(10),crypto_data_hash(Ds, H1, Options),false)).
%@ % CPU time: 0.710s, 7_942_187 inferences
%@ % CPU time: 0.713s, 7_942_187 inferences
%@ % CPU time: 0.712s, 7_942_187 inferences
%@ % CPU time: 0.711s, 7_942_187 inferences
%@ % CPU time: 0.710s, 7_942_187 inferences
%@ % CPU time: 0.711s, 7_942_187 inferences
%@ % CPU time: 0.710s, 7_942_187 inferences
?- length(_, L), time((exp(10),crypto_data_hash("test", "3caebd1a0a2647930319a660b7d3642eb380fbd43202f9f6d08aabaa9ba50c39522a12ead10f0423f0af613cbc6fea74ad682ee11f563cc2e735722004fda2ba", [algorithm(sha512),hmac([0,L])]),false)).
%@ % CPU time: 0.733s, 7_878_699 inferences
%@ % CPU time: 0.734s, 7_878_699 inferences
%@ % CPU time: 0.732s, 7_878_699 inferences
%@ % CPU time: 0.733s, 7_878_699 inferences
%@ % CPU time: 0.733s, 7_878_699 inferences
%@ % CPU time: 0.733s, 7_878_699 inferences
%@ % CPU time: 0.733s, 7_878_699 inferences
%@ % CPU time: 0.733s, 7_878_699 inferences
%@ % CPU time: 0.733s, 7_878_699 inferences
%@ % CPU time: 0.733s, 7_878_699 inferences
%@ % CPU time: 0.733s, 7_878_699 inferences
%@ % CPU time: 0.515s, 5_525_404 inferences
%@ error('$interrupt_thrown',repl/0).
|
2024-03-01 18:59:48 +01:00 |
|
Mark
|
42f4827854
|
make indexer downcast Integers to Fixnums when possible, be slightly more judicious about allocating Integers instead of Fixnums (#2340)
|
2024-02-29 16:15:28 -07:00 |
|
Mark
|
f2d3779fa9
|
add #2341 test to lib_machine.rs
|
2024-02-29 15:12:58 -07:00 |
|
Mark
|
b70f121e46
|
use scryer-modular-bitfield on github, version bump
CI / build-test (ubuntu-22.04, true, stable, x86_64-unknown-linux-gnu) (push) Has been cancelled
CI / build-test (windows-latest, true, stable, x86_64-pc-windows-msvc) (push) Has been cancelled
CI / logtalk-test (push) Has been cancelled
CI / style (push) Has been cancelled
CI / build-test (--no-default-features, ubuntu-22.04, true, nightly, wasm32-unknown-unknown, --no-run --no-default-features) (push) Has been cancelled
CI / build-test (macos-11, true, stable, x86_64-apple-darwin) (push) Has been cancelled
CI / build-test (ubuntu-20.04, true, stable, x86_64-unknown-linux-gnu) (push) Has been cancelled
CI / build-test (ubuntu-22.04, 1.70, x86_64-unknown-linux-gnu) (push) Has been cancelled
CI / build-test (ubuntu-22.04, beta, x86_64-unknown-linux-gnu) (push) Has been cancelled
CI / build-test (ubuntu-22.04, nightly, x86_64-unknown-linux-gnu) (push) Has been cancelled
CI / build-test (ubuntu-22.04, true, stable, i686-unknown-linux-gnu) (push) Has been cancelled
CI / report (push) Has been cancelled
CI / release (push) Has been cancelled
Docker Publish / build (push) Has been cancelled
|
2024-02-29 10:08:14 -07:00 |
|
Mark
|
641765858f
|
fix misuse of TypeError trait while fixing #2345
|
2024-02-28 20:47:36 -07:00 |
|
Mark
|
ba362e2fe0
|
issue callable type error from dynamic_module_resolution if module is not an atom (#2345)
|
2024-02-28 20:35:38 -07:00 |
|
Mark Thom
|
84d5ce0d1e
|
Merge pull request #2309 from coasys/library-use-case
Iron-out edge cases for library use-case, adding extensive real-world test assertions
|
2024-02-28 14:34:54 -07:00 |
|
Markus Triska
|
1dd0c599c6
|
DOC: Add DocLog comments for reasoning about elliptic curves.
|
2024-02-24 20:43:57 +01:00 |
|
Markus Triska
|
27852eafd7
|
ADDED: Hash-based message authentication code (HMAC), using hmac(Key).
|
2024-02-22 20:53:27 +01:00 |
|
Bennet Bleßmann
|
e5ad70c093
|
fix compilation of wasm32 test and skip to run wasm32 tests
|
2024-02-16 23:18:21 +01:00 |
|
Markus Triska
|
8f2e9c6b94
|
FIXED: char_type/2 for unbound first argument.
Surrogate pairs form a gap in valid character codes, see:
https://github.com/mthom/scryer-prolog/issues/2326#issuecomment-1937864665
Many thanks to @Skgland for the pointer, and to @librarianmage for the
question that spawned this!
This addresses #2326.
|
2024-02-11 22:19:19 +01:00 |
|
Nicolas Luck
|
1d2961e047
|
Merge branch 'master' into library-use-case
|
2024-02-09 12:41:01 +01:00 |
|
Mark Thom
|
b43f0979d9
|
Update src/machine/parsed_results.rs
Co-authored-by: Bennet Bleßmann <bennet.blessmann+github@googlemail.com>
|
2024-02-08 19:10:29 -07:00 |
|
Mark
|
539a1aee2c
|
fix tests broken by singleton
|
2024-02-07 21:46:32 -07:00 |
|
Markus Triska
|
53b7d9eec9
|
ENHANCED: Bidirectional char_type/2, addressing #2321.
Suggested by @librarianmage, many thanks!
|
2024-02-07 20:57:28 +01:00 |
|
Markus Triska
|
aa98a7e7d6
|
ADDED: clpz_t/2, generalizing support for use with library(reif)
This was suggested and contributed by @librarianmage in:
https://github.com/mthom/scryer-prolog/issues/2225#issuecomment-1890801923
Many thanks!
If anyone can find a better predicate name, please let us know any time!
|
2024-02-06 19:05:29 +01:00 |
|
Mark
|
614850ab1d
|
fmt
|
2024-02-05 18:34:57 -07:00 |
|
Adrián Arroyo Calle
|
ec4a8745e7
|
Add all_mdoules test and fix library(csv)
|
2024-02-04 21:34:01 +01:00 |
|
Mark
|
673329ddb7
|
fix reverted tests, ensure files are loaded before goals (#2315)
|
2024-02-03 11:49:26 -07:00 |
|
Mark
|
de6c460a51
|
treat consultation of command line modules as regular goals (#2314)
|
2024-02-02 15:35:00 -07:00 |
|
Mark
|
75a94fd0b3
|
fmt
|
2024-02-02 11:49:02 -07:00 |
|
Mark
|
7573c64087
|
load .scryerrc before files and goals (#1775, #2313)
|
2024-02-02 10:54:28 -07:00 |
|
Mark
|
cbb422f69d
|
record stub choice point as block
|
2024-02-01 09:26:58 -07:00 |
|
Nicolas Luck
|
06f198bc57
|
Test show problem with nonexistent predicate
|
2024-02-01 14:14:50 +01:00 |
|
Nicolas Luck
|
6586657658
|
fmt
|
2024-02-01 13:53:21 +01:00 |
|
Nicolas Luck
|
a0e598b97e
|
clippy
|
2024-02-01 13:51:37 +01:00 |
|
Nicolas Luck
|
8a6ea29c45
|
Fix all orderings in integration assertions
|
2024-02-01 13:43:51 +01:00 |
|
Nicolas Luck
|
e1b0ba466b
|
Remove test with long program literals, not needed
|
2024-02-01 13:00:49 +01:00 |
|
Nicolas Luck
|
f35d6287ab
|
More ordering adjustments
|
2024-02-01 12:59:10 +01:00 |
|
Mark
|
53028a9c2a
|
fix style errors
|
2024-01-31 17:32:32 -07:00 |
|
Mark
|
33fc2ed10c
|
index stub choice point correctly
|
2024-01-31 17:30:13 -07:00 |
|
Nicolas Luck
|
bc02fb3754
|
Extract failing assertion as single test case
|
2024-01-31 15:03:28 +01:00 |
|
Nicolas Luck
|
48b2379fe5
|
Adjust some first result orderings in integration assertions
|
2024-01-30 12:54:12 +01:00 |
|
Mark
|
7de693eb23
|
check for True or False Query Resolution unconditionally
|
2024-01-29 15:06:56 -07:00 |
|
Nicolas Luck
|
7bb9c00356
|
fmt
|
2024-01-29 18:44:20 +01:00 |
|
Nicolas Luck
|
9aacfff35d
|
Add more test cases to differentiate usage of discontiguous
|
2024-01-29 16:49:03 +01:00 |
|
Nicolas Luck
|
2e728c7051
|
Minimal reproduction of faulty behaviour seen in integration tests
|
2024-01-29 15:26:06 +01:00 |
|
Nicolas Luck
|
7e973a6da6
|
Merge branch 'master' into library-use-case
|
2024-01-26 17:21:47 +01:00 |
|
Nicolas Luck
|
cb014095ad
|
Add expected results to integration test
Results are logs of what we get with old toplevel-based version of lib_machine. These are also congruent with what our tests logged out based on SWI.
|
2024-01-26 17:18:57 +01:00 |
|
Mark
|
6fe8f64835
|
scan registers of instructions leading to verify_attributes interrupt to find the number of registers to save (#2307)
|
2024-01-25 23:59:54 -07:00 |
|
Markus Triska
|
3505cc3ba0
|
update answers using latest toplevel output
|
2024-01-25 21:33:27 +01:00 |
|
Markus Triska
|
05ba5f4358
|
rely on recently improved argument indexing for determinism
This is possible as of 4fd37335f5.
|
2024-01-25 21:31:08 +01:00 |
|
Mark
|
bc616ca7d8
|
move call_residue_vars/2 from atts.pl to iso_ext.pl
|
2024-01-25 12:40:24 -07:00 |
|
Mark
|
99131131af
|
don't mark temp variables as safe through argument_to_value (#2307)
|
2024-01-25 12:34:21 -07:00 |
|
Markus Triska
|
a6ccf95076
|
improve error context
Source: https://github.com/mthom/scryer-prolog/issues/2304#issuecomment-1906434756
|
2024-01-23 21:43:34 +01:00 |
|
Markus Triska
|
665f319a0e
|
no longer use (->)//2, since it is implementation defined
This addresses #2304.
|
2024-01-23 21:42:36 +01:00 |
|
Markus Triska
|
81dba11ab1
|
use newly available false//0
|
2024-01-21 22:53:22 +01:00 |
|
Markus Triska
|
388fa5baa9
|
no longer use (->)//2, since it is implementation dependent
|
2024-01-21 22:50:36 +01:00 |
|
Markus Triska
|
fe3241c07c
|
remove checks that are now no longer needed due to representation errors
|
2024-01-21 10:28:19 +01:00 |
|