aboutsummaryrefslogtreecommitdiff
path: root/man/man3/sechash.html
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-01-14 03:45:44 +0000
committerrsc <devnull@localhost>2005-01-14 03:45:44 +0000
commit78e51a8c6678b6e3dff3d619aa786669f531f4bc (patch)
tree015e00fde4fc837fd31b705e18d17dc913829388 /man/man3/sechash.html
parent2634795b5f0053bc0ff08e5d7bbc0eda8efea061 (diff)
downloadplan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.tar.gz
plan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.tar.bz2
plan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.zip
checkpoint
Diffstat (limited to 'man/man3/sechash.html')
-rw-r--r--man/man3/sechash.html195
1 files changed, 195 insertions, 0 deletions
diff --git a/man/man3/sechash.html b/man/man3/sechash.html
new file mode 100644
index 00000000..2e055465
--- /dev/null
+++ b/man/man3/sechash.html
@@ -0,0 +1,195 @@
+<head>
+<title>sechash(3) - Plan 9 from User Space</title>
+<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
+</head>
+<body bgcolor=#ffffff>
+<table border=0 cellpadding=0 cellspacing=0 width=100%>
+<tr height=10><td>
+<tr><td width=20><td>
+<tr><td width=20><td><b>SECHASH(3)</b><td align=right><b>SECHASH(3)</b>
+<tr><td width=20><td colspan=2>
+ <br>
+<p><font size=+1><b>NAME </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+ md4, md5, sha1, hmac_md5, hmac_sha1, md5pickle, md5unpickle, sha1pickle,
+ sha1unpickle &ndash; cryptographically secure hashes<br>
+
+</table>
+<p><font size=+1><b>SYNOPSIS </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+ <tt><font size=+1>#include &lt;u.h&gt;<br>
+ #include &lt;libc.h&gt;<br>
+ #include &lt;mp.h&gt;<br>
+ #include &lt;libsec.h&gt;
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+ </font></tt>
+ <tt><font size=+1>DigestState* &nbsp;&nbsp;&nbsp;&nbsp;md4(uchar *data, ulong dlen, uchar *digest, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DigestState
+ *state)
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+ </font></tt>
+ <tt><font size=+1>DigestState* &nbsp;&nbsp;&nbsp;&nbsp;md5(uchar *data, ulong dlen, uchar *digest, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DigestState
+ *state)
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+ </font></tt>
+ <tt><font size=+1>char* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;md5pickle(MD5state *state)
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+ </font></tt>
+ <tt><font size=+1>MD5state* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;md5unpickle(char *p);
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+ </font></tt>
+ <tt><font size=+1>DigestState* &nbsp;&nbsp;&nbsp;&nbsp;sha1(uchar *data, ulong dlen, uchar *digest, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DigestState
+ *state)
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+ </font></tt>
+ <tt><font size=+1>char* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sha1pickle(MD5state *state)
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+ </font></tt>
+ <tt><font size=+1>MD5state* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sha1unpickle(char *p);
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+ </font></tt>
+ <tt><font size=+1>DigestState* &nbsp;&nbsp;&nbsp;&nbsp;hmac_md5(uchar *data, ulong dlen,<br>
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+ uchar *key, ulong klen,<br>
+ uchar *digest, DigestState *state)
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+
+ </table>
+
+ </table>
+ </font></tt>
+ <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+
+
+ </table>
+
+ </table>
+ <tt><font size=+1>DigestState* &nbsp;&nbsp;&nbsp;&nbsp;hmac_sha1(uchar *data, ulong dlen,<br>
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+ uchar *key, ulong klen,<br>
+ uchar *digest, DigestState *state)<br>
+
+ </table>
+
+ </table>
+ </font></tt>
+</table>
+<p><font size=+1><b>DESCRIPTION </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+ These functions implement the cryptographic hash functions MD4,
+ MD5, and SHA1. The output of the hash is called a <i>digest</i>. A hash
+ is secure if, given the hashed data and the digest, it is difficult
+ to predict the change to the digest resulting from some change
+ to the data without rehashing the whole data. Therefore, if
+ a secret is part of the hashed data, the digest can be used as
+ an integrity check of the data by anyone possessing the secret.
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+
+ The routines <i>md4</i>, <i>md5</i>, <i>sha1</i>, <i>hmac_md5</i>, and <i>hmac_sha1</i> differ only
+ in the length of the resulting digest and in the security of the
+ hash. Usage for each is the same. The first call to the routine
+ should have <tt><font size=+1>nil</font></tt> as the <i>state</i> parameter. This call returns a state
+ which can be used to chain subsequent calls. The last call
+ should have digest non-nil. <i>Digest</i> must point to a buffer of at
+ least the size of the digest produced. This last call will free
+ the state and copy the result into <i>digest</i>. For example, to hash
+ a single buffer using <i>md5</i>:<br>
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+ <tt><font size=+1>uchar digest[MD5dlen];<br>
+ md5(data, len, digest, nil);<br>
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+ </font></tt>
+
+ </table>
+ To chain a number of buffers together, bounded on each end by
+ some secret:<br>
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+ <tt><font size=+1>char buf[256];<br>
+ uchar digest[MD5dlen];<br>
+ DigestState *s;<br>
+ s = md5(&quot;my password&quot;, 11, nil, nil);<br>
+ while((n = read(fd, buf, 256)) &gt; 0)<br>
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+ md5(buf, n, nil, s);<br>
+
+ </table>
+ md5(&quot;drowssap ym&quot;, 11, digest, s);<br>
+
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+ </font></tt>
+
+ </table>
+ The constants <i>MD4dlen</i>, <i>MD5dlen</i>, and <i>SHA1dlen</i> define the lengths
+ of the digests.
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+
+ <i>Hmac_md5</i> and <i>hmac_sha1</i> are used slightly differently. These hash
+ algorithms are keyed and require a key to be specified on every
+ call. The digest lengths for these hashes are <i>MD5dlen</i> and <i>SHA1dlen</i>
+ respectively.
+ <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+
+ The functions <i>md5pickle</i> and <i>sha1pickle</i> marshal the state of a
+ digest for transmission. <i>Md5unpickle</i> and <i>sha1unpickle</i> unmarshal
+ a pickled digest. All four routines return a pointer to a newly
+ <a href="../man3/malloc.html"><i>malloc</i>(3)</a>&#8217;d object.<br>
+
+</table>
+<p><font size=+1><b>SOURCE </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+ <tt><font size=+1>/usr/local/plan9/src/libsec<br>
+ </font></tt>
+</table>
+<p><font size=+1><b>SEE ALSO </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+ <a href="../man3/aes.html"><i>aes</i>(3)</a>, <a href="../man3/blowfish.html"><i>blowfish</i>(3)</a>, <a href="../man3/des.html"><i>des</i>(3)</a>, <a href="../man3/elgamal.html"><i>elgamal</i>(3)</a>, <a href="../man3/rc4.html"><i>rc4</i>(3)</a>, <a href="../man3/rsa.html"><i>rsa</i>(3)</a><br>
+
+</table>
+
+<td width=20>
+<tr height=20><td>
+</table>
+<!-- TRAILER -->
+<table border=0 cellpadding=0 cellspacing=0 width=100%>
+<tr height=15><td width=10><td><td width=10>
+<tr><td><td>
+<center>
+<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
+</center>
+</table>
+<!-- TRAILER -->
+</body></html>