CC_SHA(3cc) LOCAL CC_SHA(3cc)
NAME
CC_SHA1_Init CC_SHA1_Update CC_SHA1_Final CC_SHA1
CC_SHA224_Init CC_SHA224_Update CC_SHA224_Final CC_SHA224
CC_SHA256_Init CC_SHA256_Update CC_SHA256_Final CC_SHA256
CC_SHA384_Init CC_SHA384_Update CC_SHA384_Final CC_SHA384
CC_SHA512_Init CC_SHA512_Update CC_SHA512_Final CC_SHA512
-- Secure Hash Algorithms
SYNOPSIS
#include <CommonCrypto/CommonDigest.h>
extern int
CC_SHA1_Init(CC_SHA1_CTX *c);
extern int
CC_SHA1_Update(CC_SHA1_CTX *c, const void *data, CC_LONG len);
extern int
CC_SHA1_Final(unsigned char *md, CC_SHA1_CTX *c);
extern unsigned char *
CC_SHA1(const void *data, CC_LONG len, unsigned char *md);
extern int
CC_SHA224_Init(CC_SHA224_CTX *c);
extern int
CC_SHA224_Update(CC_SHA224_CTX *c, const void *data, CC_LONG len);
extern int
CC_SHA224_Final(unsigned char *md, CC_SHA224_CTX *c);
extern unsigned char *
CC_SHA224(const void *data, CC_LONG len, unsigned char *md);
extern int
CC_SHA256_Init(CC_SHA256_CTX *c);
extern int
CC_SHA256_Update(CC_SHA256_CTX *c, const void *data, CC_LONG len);
extern int
CC_SHA256_Final(unsigned char *md, CC_SHA256_CTX *c);
extern unsigned char *
CC_SHA256(const void *data, CC_LONG len, unsigned char *md);
extern int
CC_SHA384_Init(CC_SHA384_CTX *c);
extern int
CC_SHA384_Update(CC_SHA384_CTX *c, const void *data, CC_LONG len);
extern int
CC_SHA384_Final(unsigned char *md, CC_SHA384_CTX *c);
extern unsigned char *
CC_SHA384(const void *data, CC_LONG len, unsigned char *md);
extern int
CC_SHA512_Init(CC_SHA512_CTX *c);
extern int
CC_SHA512_Update(CC_SHA512_CTX *c, const void *data, CC_LONG len);
extern int
CC_SHA512_Final(unsigned char *md, CC_SHA512_CTX *c);
extern unsigned char *
CC_SHA512(const void *data, CC_LONG len, unsigned char *md);
DESCRIPTION
SHA-1 (Secure Hash Algorithm) is a cryptographic hash function with a 160 bit output.
CC_SHA1() computes the SHA-1 message digest of the len bytes at data and places it in md (which must
have space for CC_SHA1_DIGEST_LENGTH == 20 bytes of output). It returns the md pointer.
CC_SHA1_Init() initializes a CC_SHA1_CTX structure.
CC_SHA1_Update() can be called repeatedly with chunks of the message to be hashed (len bytes at data).
CC_SHA1_Final() places the message digest in md, which must have space for CC_SHA1_DIGEST_LENGTH == 20
bytes of output, and erases the CC_SHA1_CTX.
The successor versions of SHA-1, SHA-2, are also implemented for hash bit lengths of 224, 256, 384, and
512. The functions to call to invoke the larger hash-size versions of the algorithms include the hash
size as part of the function names:
CC_SHA224_Init(), CC_SHA224_Update(), CC_SHA224_Final(), CC_SHA224()
CC_SHA256_Init(), CC_SHA256_Update(), CC_SHA256_Final(), CC_SHA256()
CC_SHA384_Init(), CC_SHA384_Update(), CC_SHA384_Final(), CC_SHA384()
CC_SHA512_Init(), CC_SHA512_Update(), CC_SHA512_Final(), CC_SHA512()
RETURN VALUES
All routines return 1 except for the one-shot routines ( CC_SHA1(), etc.), which return the pointer
passed in via the md parameter.
CONFORMING TO
SHA-1: US Federal Information Processing Standard FIPS PUB 180-1 (Secure Hash Standard), ANSI X9.30
SHA-2: US Federal Information Processing Standard FIPS PUB 180-2 (Secure Hash Standard)
HISTORY
These functions are available in OS X 10.4 and later.
These functions provide similar functionality to the routines found in OpenSSL 0.9.6 and may use the
same implementation.
SEE ALSO
CC_MD5(3cc), CCCryptor(3cc), CCHmac(3cc), CC_crypto(3cc)
BSD April 5, 2007 BSD
|