CC_SHA(3cc) 3cc CC_SHA(3cc)

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

#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_SHA256_CTX *c);

extern int
CC_SHA224_Update(CC_SHA256_CTX *c, const void *data, CC_LONG len);

extern int
CC_SHA224_Final(unsigned char *md, CC_SHA256_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_SHA512_CTX *c);

extern int
CC_SHA384_Update(CC_SHA512_CTX *c, const void *data, CC_LONG len);

extern int
CC_SHA384_Final(unsigned char *md, CC_SHA512_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);

SHA-1 (Secure Hash Algorithm) is a cryptographic hash function with a 160 bit output.

() 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.

() initializes a CC_SHA1_CTX structure.

() can be called repeatedly with chunks of the message to be hashed (len bytes at data).

() 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:

(), (), (), ()

(), (), (), ()

(), (), (), ()

(), (), (), ()

All routines return 1 upon success and NULL upon failure, except for the one-shot routines ( CC_SHA1(), etc.), which return the pointer passed in via the md parameter.

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)

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.

CC_MD5(3cc), CCCryptor(3cc), CCHmac(3cc), CC_crypto(3cc)

April 5, 2007 macOS 15.0