Commit 0a68c384 authored by Niels Möller's avatar Niels Möller
Browse files

Smaller updates to salsa20 documentation.

parent 4a69d892
2014-05-04 Niels Möller <nisse@lysator.liu.se> 2014-05-04 Niels Möller <nisse@lysator.liu.se>
* nettle.texinfo (DSA): Document new DSA interface. * nettle.texinfo (DSA): Document new DSA interface.
(Salsa20): Update salsa20 docs.
2014-05-03 Niels Möller <nisse@lysator.liu.se> 2014-05-03 Niels Möller <nisse@lysator.liu.se>
......
...@@ -1610,19 +1610,18 @@ the input and output is of fixed size. ...@@ -1610,19 +1610,18 @@ the input and output is of fixed size.
When using Salsa20 to process a message, one specifies both a key and a When using Salsa20 to process a message, one specifies both a key and a
@dfn{nonce}, the latter playing a similar rôle to the initialization @dfn{nonce}, the latter playing a similar rôle to the initialization
vector (@acronym{IV}) used with @acronym{CBC} or @acronym{CTR} mode. For vector (@acronym{IV}) used with @acronym{CBC} or @acronym{CTR} mode. One
this reason, Nettle uses the term @acronym{IV} to refer to the Salsa20 can use the same key for several messages, provided one uses a unique
nonce. One can use the same key for several messages, provided one uses random @acronym{iv} for each message. The @acronym{iv} is 64 bits (8
a unique random @acronym{iv} for each message. The @acronym{iv} is 64 octets). The block counter is initialized to zero for each message, and
bits (8 octets). The block counter is initialized to zero for each is also 64 bits (8 octets). Nettle defines Salsa20 in
message, and is also 64 bits (8 octets). Nettle defines Salsa20 in
@file{<nettle/salsa20.h>}. @file{<nettle/salsa20.h>}.
@deftp {Context struct} {struct salsa20_ctx} @deftp {Context struct} {struct salsa20_ctx}
@end deftp @end deftp
@defvr Constant SALSA20_MIN_KEY_SIZE @defvr Constant SALSA20_128_KEY_SIZE
@defvrx Constant SALSA20_MAX_KEY_SIZE @defvrx Constant SALSA20_256_KEY_SIZE
The two supported key sizes, 16 and 32 octets. The two supported key sizes, 16 and 32 octets.
@end defvr @end defvr
...@@ -1634,18 +1633,23 @@ Recommended key size, 32. ...@@ -1634,18 +1633,23 @@ Recommended key size, 32.
Salsa20 block size, 64. Salsa20 block size, 64.
@end defvr @end defvr
@defvr Constant SALSA20_IV_SIZE @defvr Constant SALSA20_NONCE_SIZE
Size of the @acronym{IV}, 8. Size of the nonce, 8.
@end defvr @end defvr
@deftypefun void salsa20_set_key (struct salsa20_ctx *@var{ctx}, size_t @var{length}, const uint8_t *@var{key}) @deftypefun void salsa20_128_set_key (struct salsa20_ctx *@var{ctx}, const uint8_t *@var{key})
@deftypefunx void salsa20_256_set_key (struct salsa20_ctx *@var{ctx}, const uint8_t *@var{key})
@deftypefunx void salsa20_set_key (struct salsa20_ctx *@var{ctx}, size_t @var{length}, const uint8_t *@var{key})
Initialize the cipher. The same function is used for both encryption and Initialize the cipher. The same function is used for both encryption and
decryption. Before using the cipher, you @emph{must} also call decryption. @code{salsa20_128_set_key} and @code{salsa20_128_set_key}
@code{salsa20_set_iv}, see below. use a fix key size each, 16 and 32 octets, respectively. The function
@code{salsa20_set_key} is provided for backwards compatibility, and the
@var{length} argument must be either 16 or 32. Before using the cipher,
you @emph{must} also call @code{salsa20_set_nonce}, see below.
@end deftypefun @end deftypefun
@deftypefun void salsa20_set_iv (struct salsa20_ctx *@var{ctx}, const uint8_t *@var{iv}) @deftypefun void salsa20_set_nonce (struct salsa20_ctx *@var{ctx}, const uint8_t *@var{nonce})
Sets the @acronym{IV}. It is always of size @code{SALSA20_IV_SIZE}, 8 Sets the nonce. It is always of size @code{SALSA20_NONCE_SIZE}, 8
octets. This function also initializes the block counter, setting it to octets. This function also initializes the block counter, setting it to
zero. zero.
@end deftypefun @end deftypefun
......
...@@ -92,7 +92,7 @@ salsa20_set_key(struct salsa20_ctx *ctx, ...@@ -92,7 +92,7 @@ salsa20_set_key(struct salsa20_ctx *ctx,
size_t length, const uint8_t *key); size_t length, const uint8_t *key);
void void
salsa20_set_nonce(struct salsa20_ctx *ctx, const uint8_t *iv); salsa20_set_nonce(struct salsa20_ctx *ctx, const uint8_t *nonce);
void void
salsa20_crypt(struct salsa20_ctx *ctx, salsa20_crypt(struct salsa20_ctx *ctx,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment