aboutsummaryrefslogtreecommitdiffstats
path: root/libsha2.h.0
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2019-02-09 20:02:16 +0100
committerMattias Andrée <maandree@kth.se>2019-02-09 20:02:16 +0100
commit9475c19921162986119ee69eba8bfa2a9832d551 (patch)
tree285c9cbd0a824d2bfb480431b33099e2a80e35bf /libsha2.h.0
parentAdd HMAC to TODO (diff)
downloadlibsha2-9475c19921162986119ee69eba8bfa2a9832d551.tar.gz
libsha2-9475c19921162986119ee69eba8bfa2a9832d551.tar.bz2
libsha2-9475c19921162986119ee69eba8bfa2a9832d551.tar.xz
Minor changes, add man pages, rename libsha2_state_initialise to libsha2_init
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'libsha2.h.0')
-rw-r--r--libsha2.h.0110
1 files changed, 110 insertions, 0 deletions
diff --git a/libsha2.h.0 b/libsha2.h.0
new file mode 100644
index 0000000..5e79f73
--- /dev/null
+++ b/libsha2.h.0
@@ -0,0 +1,110 @@
+.TH LIBSHA2.H 0 2019-02-09 libjson
+.SH NAME
+libsha2.h \- SHA 2 library header
+.SH SYNOPSIS
+.nf
+#include <libsha2.h>
+
+enum libsha2_algorithm {
+ LIBSHA2_224, /* SHA-224 */
+ LIBSHA2_256, /* SHA-256 */
+ LIBSHA2_384, /* SHA-384 */
+ LIBSHA2_512, /* SHA-512 */
+ LIBSHA2_512_224, /* SHA-512/224 */
+ LIBSHA2_512_256 /* SHA-512/256 */
+};
+
+struct libsha2_state {
+ /* members omitted */
+};
+
+int libsha2_init(struct libsha2_state *restrict \fIstate\fP, enum libsha2_algorithm \fIalgorithm\fP);
+size_t libsha2_state_output_size(const struct libsha2_state *restrict \fIstate\fP);
+size_t libsha2_algorithm_output_size(enum libsha2_algorithm \fIalgorithm\fP);
+void libsha2_update(struct libsha2_state *restrict \fIstate\fP, const char *restrict \fImessage\fP, size_t \fImsglen\fP);
+void libsha2_digest(struct libsha2_state *restrict \fIstate\fP, const char *restrict \fImessage\fP, size_t \fImsglen\fP, char *\fIoutput\fP);
+int libsha2_sum_fd(int \fIfd\fP, enum libsha2_algorithm \fIalgorithm\fP, char *restrict \fIhashsum\fP);
+void libsha2_behex_lower(char *restrict \fIoutput\fP, const char *restrict \fIhashsum\fP, size_t \fIn\fP);
+void libsha2_behex_upper(char *restrict \fIoutput\fP, const char *restrict \fIhashsum\fP, size_t \fIn\fP);
+void libsha2_unhex(char *restrict \fIoutput\fP, const char *restrict \fIhashsum\fP);
+.fi
+.PP
+Link with
+.IR \-lsha2 .
+.SH DESCRIPTION
+The
+.B libsha2.h
+header, the header for the libsha2 C library defines
+.B enum libsha2_algorithm
+which has one value per supported algorithm:
+.TP
+.B LIBSHA2_224
+SHA-224
+.TP
+.B LIBSHA2_256
+SHA-256
+.TP
+.B LIBSHA2_384
+SHA-384
+.TP
+.B LIBSHA2_512
+SHA-512
+.TP
+.B LIBSHA2_512_224
+SHA-512/224
+.TP
+.B LIBSHA2_512_256
+SHA-512/256
+.PP
+Further, the
+.B libsha2.h
+header defines the opaque, but complete,
+.B struct libsha2_state
+which stores the selected algorithm and
+the state of the hashing. The header also
+defines the functions:
+.TP
+.BR libsha2_init (3)
+Initialise hashing state.
+.TP
+.BR libsha2_state_output_size "(3), " libsha2_algorithm_output_size (3)
+Get the output size for an algorithm.
+.TP
+.BR libsha2_update (3)
+Feed data into the hashing state.
+.TP
+.BR libsha2_digest (3)
+Get the result of a hashing.
+.TP
+.BR libsha2_sum_fd (3)
+Hash an entire file.
+.TP
+.BR libsha2_behex_lower "(3), " libsha2_behex_upper (3)
+Convert binary output from
+.BR libsha2_digest (3)
+to hexadecimal.
+.TP
+.BR libsha2_unhex (3)
+Convert a hexadecimal hash to binary.
+.SH EXAMPLES
+None.
+.SH APPLICATION USAGE
+None.
+.SH RATIONALE
+None.
+.SH FUTURE DIRECTIONS
+None.
+.SH NOTES
+None.
+.SH BUGS
+None.
+.SH SEE ALSO
+.BR libsha2_algorithm_output_size (3),
+.BR libsha2_behex_lower (3),
+.BR libsha2_behex_upper (3),
+.BR libsha2_digest (3),
+.BR libsha2_init (3),
+.BR libsha2_state_output_size (3),
+.BR libsha2_sum_fd (3),
+.BR libsha2_unhex (3),
+.BR libsha2_update (3)