CC_crypto(3cc) LOCAL CC_crypto(3cc)NAME
Common Crypto -- libSystem digest library
DESCRIPTION
The libSystem Common Crypto library implements a wide range of cryptographic algorithms used in various Internet standards. The services pro-
vided by this library are used by the CDSA implementations of SSL, TLS and S/MIME.
OVERVIEW
libSystem contains the Common Crypto collection of algorithms. Digest and encryption algorithms contained in this library are optimized for
speed. The algorithms have been collected from various sources and chosen for their performance characteristics. Since libSystem is linked
into all executables it is preferable for applications to use these functions rather than implementing their own versions.
NOTES
To use the digest functions with existing code which uses the corresponding openssl functions, #define the symbol COMMON_DIGEST_FOR_OPENSSL
in your client code (BEFORE including <CommonCrypto/CommonDigest.h> ).
You can *NOT* mix and match functions operating on a given data type from the two implementations; i.e., if you do a CC_MD5_Init() on a
CC_MD5_CTX object, do not assume that you can do an openssl-style MD5_Update() on that same context.
The interfaces to the encryption and HMAC algorithms have a calling interface that is different from that provided by OpenSSL.
HISTORY
The Common Crypto collection of functions started to become available in OS X 10.4 and later.
SEE ALSO CC_MD5(3cc), CC_SHA(3cc), CCHmac(3cc), CCCryptor(3cc)BSD April 5, 2007 BSD
Check Out this Related Man Page
CCHMAC(3) BSD Library Functions Manual CCHMAC(3)NAME
CCHmacInit, CCHmacUpdate, CCHmacFinal, CCHmac -- Common HMAC Algorithm Interfaces
LIBRARY
These functions are found in libSystem.
SYNOPSIS
#include <CommonCrypto/CommonHMAC.h>
void
CCHmacInit(CCHmacContext *ctx, CCHmacAlgorithm algorithm, const void *key, size_t keyLength);
void
CCHmacUpdate(CCHmacContext *ctx, const void *data, size_t dataLength);
void
CCHmacFinal(CCHmacContext *ctx, void *macOut);
void
CCHmac(CCHmacAlgorithm algorithm, const void *key, size_t keyLength, const void *data, size_t dataLength, void *macOut);
DESCRIPTION
This interface provides access to a number of HMAC algorithms. The following algorithms are available:
kCCHmacAlgSHA1 - HMAC with SHA1 digest
kCCHmacAlgMD5 - HMAC with MD5 digest
kCCHmacAlgSHA256 - HMAC with SHA256 digest
kCCHmacAlgSHA384 - HMAC with SHA384 digest
kCCHmacAlgSHA224 - HMAC with SHA224 digest
kCCHmacAlgSHA512 - HMAC with SHA512 digest
The object declared in this interface, CCHmacContext, provides a handle for use with the CCHmacInit() CCHmacUpdate() and CCHmacFinal() calls
to complete the HMAC operation. In addition there is a one shot function, CCHmac() that performs a complete HMAC on a single piece of data.
HISTORY
These functions are available in OS X 10.5 and later.
SEE ALSO CC_MD5(3cc), CC_SHA(3cc), CC_crypto(3cc), CCCrypto(3cc)BSD March 22, 2007 BSD