SHA(3) BSD Library Functions Manual SHA(3)
NAME
SHA_Init, SHA_Update, SHA_Final, SHA_End, SHA_File, SHA_FileChunk, SHA_Data, SHA1_Init, SHA1_Update, SHA1_Final, SHA1_End, SHA1_File,
SHA1_FileChunk, SHA1_Data -- calculate the FIPS 160 and 160-1 ``SHA'' message digests
LIBRARY
Message Digest (MD4, MD5, etc.) Support Library (libmd, -lmd)
SYNOPSIS
#include <sys/types.h>
#include <sha.h>
void
SHA_Init(SHA_CTX *context);
void
SHA_Update(SHA_CTX *context, const unsigned char *data, size_t len);
void
SHA_Final(unsigned char digest[20], SHA_CTX *context);
char *
SHA_End(SHA_CTX *context, char *buf);
char *
SHA_File(const char *filename, char *buf);
char *
SHA_FileChunk(const char *filename, char *buf, off_t offset, off_t length);
char *
SHA_Data(const unsigned char *data, unsigned int len, char *buf);
void
SHA1_Init(SHA_CTX *context);
void
SHA1_Update(SHA_CTX *context, const unsigned char *data, size_t len);
void
SHA1_Final(unsigned char digest[20], SHA_CTX *context);
char *
SHA1_End(SHA_CTX *context, char *buf);
char *
SHA1_File(const char *filename, char *buf);
char *
SHA1_FileChunk(const char *filename, char *buf, off_t offset, off_t length);
char *
SHA1_Data(const unsigned char *data, unsigned int len, char *buf);
DESCRIPTION
The SHA_ and SHA1_ functions calculate a 160-bit cryptographic checksum (digest) for any number of input bytes. A cryptographic checksum is
a one-way hash function; that is, it is computationally impractical to find the input corresponding to a particular output. This net result
is a ``fingerprint'' of the input-data, which does not disclose the actual input.
SHA (or SHA-0) is the original Secure Hash Algorithm specified in FIPS 160. It was quickly proven insecure, and has been superseded by
SHA-1. SHA-0 is included for compatibility purposes only.
The SHA1_Init(), SHA1_Update(), and SHA1_Final() functions are the core functions. Allocate an SHA_CTX, initialize it with SHA1_Init(), run
over the data with SHA1_Update(), and finally extract the result using SHA1_Final().
SHA1_End() is a wrapper for SHA1_Final() which converts the return value to a 41-character (including the terminating '