crypt-sha1 man page on Inferno

Man page or keyword search:  
man Server   579 pages
apropos Keyword Search (all sections)
Output format
Inferno logo
[printable version]

CRYPT-SHA1(2)							 CRYPT-SHA1(2)

NAME
       crypt:  sha1,  sha224,  sha256,	sha384,	 sha512,  md4, md5, hmac_sha1,
       hmac_md5 - cryptographic digests

SYNOPSIS
       include "ipints.m";
       ipints := load IPints IPints->PATH;
       IPint: import ipints;

       include "crypt.m";
       crypt := load Crypt Crypt->PATH;

       DigestState: adt
       {
	   # hidden state
	   copy:   fn(d: self ref DigestState): ref DigestState;
       };

       sha1:   fn(buf: array of byte, n: int, digest: array of byte,
		     state: ref DigestState): ref DigestState;
       sha224: fn(buf: array of byte, n: int, digest: array of byte,
		     state: ref DigestState): ref DigestState;
       sha256: fn(buf: array of byte, n: int, digest: array of byte,
		     state: ref DigestState): ref DigestState;
       sha384: fn(buf: array of byte, n: int, digest: array of byte,
		     state: ref DigestState): ref DigestState;
       sha512: fn(buf: array of byte, n: int, digest: array of byte,
		     state: ref DigestState): ref DigestState;
       md4:    fn(buf: array of byte, n: int, digest: array of byte,
		     state: ref DigestState): ref DigestState;
       md5:    fn(buf: array of byte, n: int, digest: array of byte,
		     state: ref DigestState): ref DigestState;

       SHA1dlen, SHA224dlen, SHA256dlen, SHA384dlen, SHA512dlen, MD4dlen, MD5dlen: con ...;

       hmac_sha1: fn(buf: array of byte, n: int, key: array of byte,
			 digest: array of byte,
			 state: ref DigestState): ref DigestState;
       hmac_md5:  fn(buf: array of byte, n: int, key: array of byte,
			 digest: array of byte,
			 state: ref DigestState): ref DigestState;

DESCRIPTION
       Sha1, sha224, sha256, sha384, sha512, md4 and md5 are cryptographically
       secure  hash  functions	that  produce  output called a message digest.
       Each function computes a hash of n bytes of the data in buf, using  the
       named  algorithm,  and  updates	the current state.  They can be called
       iteratively to form a single digest for many data blocks.  The state is
       kept in the DigestState value referenced by state between calls.	 State
       should be nil on the first call, and a newly allocated DigestState will
       be  returned for use in subsequent calls.  On a call in which digest is
       not nil, the hash is completed and copied into the digest array.	  Sha1
       produces a 20-byte hash (SHA1dlen), sha224 a 28-byte hash (SHA224dlen),
       sha256 a 32-byte hash (SHA256dlen), sha384 a 48-byte hash (SHA384dlen),
       sha256  a  64-byte hash (SHA512dlen), md4 and md5 a 16-byte one (MD4len
       and MD5len).

       Hmac_sha1 and hmac_md5 are keyed versions  of  the  hashing  functions,
       following Internet RFC2104.  The key must be provided in each call, but
       otherwise the calling conventions are those of sha1.  The key must cur‐
       rently be no more than 64 bytes.

       DigestState  hides the state of partially completed hash functions dur‐
       ing processing.	Its copy operation returns a reference to a  new  copy
       of a given state.

EXAMPLES
       A  program  to read a file and hash it using SHA might contain the fol‐
       lowing inner loop:

	      state: ref DigestState = nil;
	      while((n := sys->read(fd, buf, len buf)) > 0)
		      state = kr->sha1(buf, n, nil, state);
	      digest := array[kr->SHA1dlen] of byte;
	      kr->sha1(buf, 0, digest, state);

SOURCE
       /libinterp/crypt.c
       /libsec/port/hmac.c
       /libsec/port/md4.c
       /libsec/port/md5.c
       /libsec/port/sha1.c

BUGS
       The MD4 algorithm is included only to allow communication with software
       that  might  still use it; it should not otherwise be used now, because
       it is easily broken.

								 CRYPT-SHA1(2)
[top]

List of man pages available for Inferno

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net