use newly available must_be(chars, ...) for fast string tests
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Written May 2020 by Markus Triska (triska@metalevel.at)
|
Written 2020, 2021 by Markus Triska (triska@metalevel.at)
|
||||||
Part of Scryer Prolog.
|
Part of Scryer Prolog.
|
||||||
|
|
||||||
Predicates for cryptographic applications.
|
Predicates for cryptographic applications.
|
||||||
@@ -46,7 +46,6 @@
|
|||||||
:- use_module(library(format)).
|
:- use_module(library(format)).
|
||||||
:- use_module(library(charsio)).
|
:- use_module(library(charsio)).
|
||||||
:- use_module(library(si)).
|
:- use_module(library(si)).
|
||||||
:- use_module(library(iso_ext), [partial_string/1]).
|
|
||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
hex_bytes(?Hex, ?Bytes) is det.
|
hex_bytes(?Hex, ?Bytes) is det.
|
||||||
@@ -105,21 +104,12 @@ must_be_bytes(Bytes, Context) :-
|
|||||||
|
|
||||||
|
|
||||||
must_be_byte_chars(Chars, Context) :-
|
must_be_byte_chars(Chars, Context) :-
|
||||||
( partial_string(Chars) ->
|
must_be(chars, Chars),
|
||||||
( '$first_non_octet'(Chars, F) ->
|
( '$first_non_octet'(Chars, F) ->
|
||||||
domain_error(byte_char, F, Context)
|
domain_error(byte_char, F, Context)
|
||||||
; true
|
; true
|
||||||
)
|
|
||||||
; must_be(list, Chars),
|
|
||||||
( member(Char, Chars),
|
|
||||||
char_code(Char, Code),
|
|
||||||
\+ between(0, 255, Code) ->
|
|
||||||
domain_error(byte_char, Char, Context)
|
|
||||||
; true
|
|
||||||
)
|
|
||||||
).
|
).
|
||||||
|
|
||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Cryptographically secure random numbers
|
Cryptographically secure random numbers
|
||||||
=======================================
|
=======================================
|
||||||
@@ -620,11 +610,7 @@ encoding_chars(octet, Bs, Cs) :-
|
|||||||
),
|
),
|
||||||
must_be_byte_chars(Cs, crypto_encoding).
|
must_be_byte_chars(Cs, crypto_encoding).
|
||||||
encoding_chars(utf8, Cs, Cs) :-
|
encoding_chars(utf8, Cs, Cs) :-
|
||||||
( partial_string(Cs) ->
|
must_be(chars, Cs).
|
||||||
true
|
|
||||||
; must_be(list, Cs),
|
|
||||||
maplist(must_be(character), Cs)
|
|
||||||
).
|
|
||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Digital signatures with Ed25519
|
Digital signatures with Ed25519
|
||||||
|
|||||||
Reference in New Issue
Block a user