Skip to content

Commit

Permalink
Merge pull request #2358 from triska/octet_documentation
Browse files Browse the repository at this point in the history
Documentation improvements for encoding(octet) option in several predicates
  • Loading branch information
mthom committed Mar 17, 2024
2 parents 6f7f979 + ee60c46 commit 7b33eaf
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions src/lib/crypto.pl
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@
Especially for cryptographic applications, it is an advantage that
using strings leaves little trace of what was processed in the system.
For predicates that accept an `encoding/1` option to specify the encoding
of the input data, if `encoding(octet)` is used, then the input can also
be specified as a list of _bytes_, i.e., integers between 0 and 255.
*/

:- module(crypto,
Expand Down Expand Up @@ -217,7 +213,8 @@
%
% - `encoding(+Encoding)`
% The default encoding is `utf8`. The alternative is `octet`, to
% treat the input as a list of raw bytes.
% use the character code of each character in Data as a byte
% value.
%
% - `hmac(+Key)`
% Compute a hash-based message authentication code (HMAC) using
Expand Down Expand Up @@ -334,7 +331,8 @@
% default is all zeroes.
% - `encoding(+Encoding)`
% The default encoding is `utf8`. The alternative is `octet`,
% to treat the input as a list of raw bytes.
% to use the character code of each character in Data as a byte
% value.
%
% The `info/1` option can be used to generate multiple keys from a
% single master key, using for example values such as "key" and
Expand Down Expand Up @@ -540,8 +538,9 @@
% Options:
%
% - `encoding(+Encoding)`
% Encoding to use for PlainText. Default is utf8. The alternative
% is octet to treat PlainText as raw bytes.
% Encoding to use for PlainText. The default is `utf8`. The
% alternative is `octet`, to use the character code of each
% character in PlainText as a byte value.
%
% - `tag(-List)`
% For authenticated encryption schemes, List is unified with a
Expand Down Expand Up @@ -627,8 +626,9 @@
% Options is a list of:
%
% - `encoding(+Encoding)`
% Encoding to use for PlainText. The default is utf8. The
% alternative is octet, which is used if the data are raw bytes.
% Encoding to use for PlainText. The default is `utf8`. The
% alternative is `octet`, to obtain a list of characters where each
% character code corresponds to a decrypted octet of CipherText.
%
% - `tag(+Tag)`
% For authenticated encryption schemes, the tag must be specified as
Expand Down Expand Up @@ -664,6 +664,8 @@
encoding_chars(octet, Bs, Cs) :-
must_be(list, Bs),
( maplist(integer, Bs) ->
% the ability to use integers is deprecated and a
% candidate for removal in the future!
maplist(char_code, Cs, Bs)
; Bs = Cs
),
Expand Down Expand Up @@ -911,7 +913,8 @@
%
% - `encoding(+Encoding)`
% The default encoding of Data is `utf8`. The alternative is `octet`,
% which treats Data as a list of raw bytes.
% to use the character code of each character in Data as a byte
% value.

ed25519_verify(Key, Data0, Signature0, Options) :-
must_be_octet_chars(Key, ed25519_verify/4),
Expand Down

0 comments on commit 7b33eaf

Please sign in to comment.