2006-08-21 14:27:56

by Herbert Xu

[permalink] [raw]
Subject: [PATCH 6/7] [CRYPTO] doc: Update documentation for hash and me

[CRYPTO] doc: Update documentation for hash and me

This patch updates the documentation to reflect the switch from digest
to hash. It also replaces notes about emailing James Morris to refer
to me instead.

Signed-off-by: Herbert Xu <[email protected]>

Documentation/crypto/api-intro.txt | 36 ++++++++++++++++++++++--------------
1 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/Documentation/crypto/api-intro.txt b/Documentation/crypto/api-intro.txt
--- a/Documentation/crypto/api-intro.txt
+++ b/Documentation/crypto/api-intro.txt
@@ -19,15 +19,14 @@ At the lowest level are algorithms, whic

'Transforms' are user-instantiated objects, which maintain state, handle all
-of the implementation logic (e.g. manipulating page vectors), provide an
-abstraction to the underlying algorithms, and handle common logical
-operations (e.g. cipher modes, HMAC for digests). However, at the user
+of the implementation logic (e.g. manipulating page vectors) and provide an
+abstraction to the underlying algorithms. However, at the user
level they are very simple.

Conceptually, the API layering looks like this:

[transform api] (user interface)
- [transform ops] (per-type logic glue e.g. cipher.c, digest.c)
+ [transform ops] (per-type logic glue e.g. cipher.c, compress.c)
[algorithm api] (for registering algorithms)

The idea is to make the user interface and algorithm registration API
@@ -44,22 +43,27 @@ under development.
Here's an example of how to use the API:

#include <linux/crypto.h>
+ #include <linux/err.h>
+ #include <linux/scatterlist.h>

struct scatterlist sg[2];
char result[128];
- struct crypto_tfm *tfm;
+ struct crypto_hash *tfm;
+ struct hash_desc desc;

- tfm = crypto_alloc_tfm("md5", 0);
- if (tfm == NULL)
+ tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC);
+ if (IS_ERR(tfm))

/* ... set up the scatterlists ... */
+ desc.tfm = tfm;
+ desc.flags = 0;

- crypto_digest_init(tfm);
- crypto_digest_update(tfm, &sg, 2);
- crypto_digest_final(tfm, result);
+ if (crypto_hash_digest(&desc, &sg, 2, result))
+ fail();

- crypto_free_tfm(tfm);
+ crypto_free_hash(tfm);

Many real examples are available in the regression test module (tcrypt.c).
@@ -126,7 +130,7 @@ might already be working on.

Send bug reports to:
-James Morris <[email protected]>
+Herbert Xu <[email protected]>
Cc: David S. Miller <[email protected]>

@@ -134,13 +138,14 @@ FURTHER INFORMATION

For further patches and various updates, including the current TODO
list, see:


James Morris
David S. Miller
+Herbert Xu

@@ -238,8 +243,11 @@ Anubis algorithm contributors:
Tiger algorithm contributors:
Aaron Grothe

+VIA PadLock contributors:
+ Michal Ludvig
Generic scatterwalk code by Adam J. Richter <[email protected]>

Please send any credits updates or corrections to:
-James Morris <[email protected]>
+Herbert Xu <[email protected]>