Mark Thom
2eac902c33
correct fixnum overflow on negation ( #528 )
2020-05-19 10:45:54 -06:00
Mark Thom
e0e3b180e7
accomodate \0\ in partial strings, print null as \0\ ( #267 , #526 ), update prolog parser, version bump
2020-05-18 23:45:34 -06:00
Mark Thom
041dc039d4
add Addr::Lis as case in PartialStringTail ( #530 )
2020-05-18 12:27:26 -06:00
Mark Thom
ac755b0ada
Merge pull request #527 from triska/master
...
Add type checks to increase robustness of library(crypto)
2020-05-18 11:18:58 -03:00
Mark Thom
c14259060c
fix partial_string_tail panic ( #530 )
2020-05-18 11:14:27 -06:00
Markus Triska
a423eb5323
stronger validation of input lists for cryptographic routines
...
Example:
?- crypto_data_hkdf(Var, 32, Bs, []).
caught: error(instantiation_error,must_be/2)
Reported by @notoria in #527 . Many thanks!
2020-05-18 13:28:52 +02:00
Markus Triska
fd732550d8
crypto_data_hkdf/4: Fail if the length is too long.
...
Due to the way the counter is constructed in the HKDF specification,
the requested output length can be at most 255 times the size of the
digest algorithm's output.
Reported by @notoria in #527 . Many thanks!
2020-05-18 13:21:38 +02:00
Markus Triska
fac7ba70c8
crypto_password_hash/3: fail if the number of iterations is too high
...
Discussed in #527 .
2020-05-18 13:11:39 +02:00
Markus Triska
e9f8b35918
centralize reasoning about encoding
2020-05-18 11:29:35 +02:00
Markus Triska
23034dd4f5
raise instantiation errors for variable encoding
...
Reported by notoria in #527 .
Note that from a declarative perspective, it would indeed be valid to
give answers for both available encodings.
2020-05-18 11:21:38 +02:00
Markus Triska
70ad44adfd
type check for length argument in crypto_data_hkdf/4
...
Reported by @notoria in #527 .
2020-05-18 11:12:59 +02:00
Markus Triska
95ca8a2630
throw instantiation error if the list of options contains a variable ( #523 )
...
Many thanks to @notoria for the test case!
2020-05-18 09:58:09 +02:00
Mark Thom
eecd809d9a
fix atom_codes ( #521 )
2020-05-17 16:34:52 -06:00
Mark Thom
5720b7b94c
eliminate Addr::CharCode ( #519 ), fix atom_code panic ( #521 ), fix failure involving lists of character codes ( #520 ), bump version number
2020-05-17 15:19:27 -06:00
Markus Triska
3855d7ea02
type test for salt in crypto_password_hash/3
2020-05-17 22:01:22 +02:00
Mark Thom
9f3351469d
solve overflow of left arithmetic shift ( #518 )
2020-05-17 12:20:22 -06:00
Mark Thom
b3cff6555f
propagate syntax errors from read_term when they're not UnexpectedEOF ( #507 )
2020-05-16 23:10:38 -06:00
Mark Thom
69706ecab0
fix sign error in shl on fixnum with n >= 63 ( #499 )
2020-05-16 23:00:37 -06:00
Mark Thom
05d3b97eae
correct for second argument when (is)/2 is a tail call
2020-05-16 20:22:17 -06:00
Mark Thom
a38fb41e37
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-05-16 14:51:19 -06:00
Mark Thom
204ae377e3
restore old clpz.pl
2020-05-16 14:51:04 -06:00
Markus Triska
862ae26631
Authenticated encryption in library(crypto), new encoding/1 option for hashes ( #515 )
...
* shorten n_newlines//1
* remove unneeded variable
* ADDED: authenticated encryption and decryption with ChaCha20-Poly1305
* ADDED: encoding/1 option for crypto_data_hash/3 and crypto_data_hkdf/4
2020-05-16 11:51:41 -06:00
Mark Thom
9e0208ec71
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-05-15 22:51:24 -06:00
Mark Thom
510530973c
correct mishandled Addr::CharCode case in eq_test ( #505 )
2020-05-15 22:51:18 -06:00
Markus Triska
4e69301562
ADDED: Password-based key derivation (PBKDF2) ( #509 )
...
The new predicates crypto_password_hash/[2,3] let you store
passwords safely, and easily verify passwords later.
2020-05-15 10:49:23 -06:00
Matthieu Wipliez
df06d4b9a2
Work in progress: add char_utf8bytes ( #493 )
...
* Add char_utf8bytes to library
* Improved implementation
* Improve code + add chars predicate
* Update example
* Renamed string_utf8bytes to char_utf8bytes
2020-05-15 10:05:04 -06:00
Mark Thom
b60561c3bb
fix existence_error in atom_chars/2, atom_codes/2 ( #504 , #506 )
2020-05-14 22:33:28 -06:00
Mark Thom
fffa503968
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-05-14 22:25:50 -06:00
Mark Thom
8754157810
implement (div)/2 properly ( #435 )
2020-05-14 22:25:39 -06:00
Markus Triska
50776748a7
ADDED: HMAC-based key derivation (HKDF) via crypto_data_hkdf/4
...
This is useful to generate keys and initialization vectors
from suitable input keying material, so that future predicates
for symmetric encryption can be used with appropriate parameters.
2020-05-14 20:07:59 +02:00
Markus Triska
4084005ee7
ADDED: Reasoning about elliptic curves in library(crypto).
...
This is useful to establish shared secrets, using ECDH key exchange.
Note that CLP(ℤ) goal expansion is currently disabled due to #445 ,
and this slows down the computations considerably for the time being.
2020-05-13 22:44:27 +02:00
Markus Triska
fd761735d4
ADDED: ripemd160 digest algorithm
...
This is used for example for Bitcoin address generation.
2020-05-13 22:36:40 +02:00
Mark Thom
9cb98bdcdc
Merge pull request #496 from triska/master
...
ADDED: crypto_data_hash/3, computing cryptographically secure digests
2020-05-13 17:32:46 -03:00
notoria
a86019d53b
Enhanced between/3
2020-05-13 21:21:46 +02:00
Markus Triska
8cd7d08573
ADDED: crypto_data_hash/3, computing cryptographically secure digests
2020-05-13 19:23:09 +02:00
Mark Thom
6d6f6ed8fc
resolve warning messages ( #495 )
2020-05-12 20:36:21 -06:00
Mark Thom
c9aed1381f
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-05-12 20:28:42 -06:00
Mark Thom
49ba5f30c5
throw existence_error on failed put_byte write ( #492 )
2020-05-12 20:28:39 -06:00
Mark Thom
3c6149fd27
do not unwrap stream write, TcpStream::shutdown results ( #492 )
2020-05-12 18:51:42 -06:00
Mark Thom
23f804eda3
return true on unmatching partial strings in eq_test to indicate failure ( #491 )
2020-05-12 18:22:41 -06:00
Mark Thom
4e321db189
Merge pull request #494 from triska/master
...
ADDED: crypto_n_random_bytes/2, creating cryptographically secure random bytes
2020-05-12 19:44:07 -03:00
Markus Triska
716fde5784
ADDED: crypto_n_random_bytes/2, creating cryptographically secure random bytes
...
The ring crate is used since it will be needed also for future
predicates in library(crypto).
2020-05-13 00:36:27 +02:00
Mark Thom
c70b873397
reset current input in ReadQueryTerm
2020-05-11 15:29:28 -06:00
Mark Thom
4c0da691b8
record names of variables at root in write_term_to_heap ( #487 )
2020-05-10 21:48:38 -06:00
Mark Thom
d1d36f9af0
fix at_end_of_stream/1 ( #479 )
2020-05-10 16:06:15 -06:00
Mark Thom
56efb4ffba
change VarNames to VNNames ( #476 )
2020-05-10 15:54:53 -06:00
Mark Thom
540bc71873
use heap_pstr_iter in AtomChars ( #482 )
2020-05-10 15:46:51 -06:00
Mark Thom
c1df7ead1a
set past end of stream, set Byte to -1, Char and Code to end_of_file, at end of stream ( #479 )
2020-05-10 14:50:17 -06:00
Mark Thom
d170c807e3
deref addr's in list of atom_codes ( #484 )
2020-05-10 14:33:56 -06:00
Mark Thom
50c0abc786
correct failed partial string matching ( #483 )
2020-05-10 14:00:49 -06:00