Lack of documentation is addressed by this patch.

2018-05-05  Bruno Haible  <br...@clisp.org>

        af_alg: Add documentation.
        * lib/af_alg.h: Add comments.

diff --git a/lib/af_alg.h b/lib/af_alg.h
index 978e21d..e9580d4 100644
--- a/lib/af_alg.h
+++ b/lib/af_alg.h
@@ -15,7 +15,16 @@
    You should have received a copy of the GNU General Public License
    along with this program; if not, see <https://www.gnu.org/licenses/>.  */
 
-/* Written by Matteo Croce <mcr...@redhat.com>, 2018. */
+/* Written by Matteo Croce <mcr...@redhat.com>, 2018.
+   Documentation by Bruno Haible <br...@clisp.org>, 2018.  */
+
+/* This file declares specific functions for computing message digests
+   using the Linux kernel crypto API, if available.  This kernel API gives
+   access to specialized crypto instructions (that would also be available
+   in user space) or to crypto devices (not directly available in user space).
+
+   For a more complete set of facilities that use the Linux kernel crypto API,
+   look at libkcapi.  */
 
 #ifndef AF_ALG_H
 # define AF_ALG_H 1
@@ -29,13 +38,32 @@ extern "C" {
 
 # ifdef HAVE_LINUX_IF_ALG_H
 
+/* Computes a message digest of the contents of a file.
+   STREAM is an open file stream.  Regular files are handled more efficiently
+   than other types of files.
+   ALG is the message digest algorithm.  The supported algorithms are listed in
+   the file /proc/crypto.
+   RESBLOCK points to a block of HASHLEN bytes, for the result. HASHLEN must be
+   the length of the message digest, in bytes, in particular:
+
+      alg    | hashlen
+      -------+--------
+      md5    | 16
+      sha1   | 20
+      sha224 | 28
+      sha256 | 32
+      sha384 | 48
+      sha512 | 64
+
+   If successful, this function fills RESBLOCK and returns 0.
+   Upon failure, it returns a negated error code.  */
 int
-afalg_stream (FILE * stream, void *resblock, const char *alg, ssize_t hashlen);
+afalg_stream (FILE *stream, void *resblock, const char *alg, ssize_t hashlen);
 
 # else
 
 static int
-afalg_stream (FILE * stream, void *resblock, const char *alg, ssize_t hashlen)
+afalg_stream (FILE *stream, void *resblock, const char *alg, ssize_t hashlen)
 {
   return -EAFNOSUPPORT;
 }
@@ -46,4 +74,4 @@ afalg_stream (FILE * stream, void *resblock, const char *alg, 
ssize_t hashlen)
 }
 # endif
 
-#endif
+#endif /* AF_ALG_H */


Reply via email to