Crypt-MatrixSSL
view release on metacpan or search on metacpan
matrixssl-1-8-6-open/src/crypto/cryptoLayer.h view on Meta::CPAN
/*
Crypto may have some reliance on os layer (psMalloc in particular)
*/
#include "../os/osLayer.h"
/*
Return the length of padding bytes required for a record of 'LEN' bytes
The name Pwr2 indicates that calculations will work with 'BLOCKSIZE'
that are powers of 2.
Because of the trailing pad length byte, a length that is a multiple
of the pad bytes
*/
#define sslPadLenPwr2(LEN, BLOCKSIZE) \
BLOCKSIZE <= 1 ? (unsigned char)0 : \
(unsigned char)(BLOCKSIZE - ((LEN) & (BLOCKSIZE - 1)))
/*
Define the default crypto provider here
*/
#define USE_PEERSEC_CRYPTO
#ifdef __cplusplus
extern "C" {
#endif
#define SSL_MD5_HASH_SIZE 16
#define SSL_SHA1_HASH_SIZE 20
#define SSL_MAX_MAC_SIZE 20
#define SSL_MAX_IV_SIZE 16
#define SSL_MAX_BLOCK_SIZE 16
#define SSL_MAX_SYM_KEY_SIZE 32
#define USE_X509 /* Must define for certificate support */
/*
Enable the algorithms used for each cipher suite
*/
#ifdef USE_SSL_RSA_WITH_NULL_MD5
#define USE_RSA
#define USE_MD5_MAC
#endif
#ifdef USE_SSL_RSA_WITH_NULL_SHA
#define USE_RSA
#define USE_SHA1_MAC
#endif
#ifdef USE_SSL_RSA_WITH_RC4_128_SHA
#define USE_ARC4
#define USE_SHA1_MAC
#define USE_RSA
#endif
#ifdef USE_SSL_RSA_WITH_RC4_128_MD5
#define USE_ARC4
#define USE_MD5_MAC
#define USE_RSA
#endif
#ifdef USE_SSL_RSA_WITH_3DES_EDE_CBC_SHA
#define USE_3DES
#define USE_SHA1_MAC
#define USE_RSA
#endif
/*
Support for optionally encrypted private key files. These are
usually encrypted with 3DES.
*/
#ifdef USE_ENCRYPTED_PRIVATE_KEYS
#define USE_3DES
#endif
/*
Support for client side SSL
*/
#ifdef USE_CLIENT_SIDE_SSL
#define USE_RSA_PUBLIC_ENCRYPT
#endif
/*
Support for client authentication
*/
/*
Addtional crypt support
*/
/* #define USE_MD2 */
/*
Now that we've set up the required defines, include the crypto provider
*/
#ifdef USE_PEERSEC_CRYPTO
#include "peersec/pscrypto.h"
#endif
/******************************************************************************/
/*
Include the public prototypes now. This level of indirection is needed
to properly expose the public APIs to DLLs. The circular reference
between these two files is avoided with the top level defines and the
order in which they are included is the key to making this work so edit
with caution.
*/
#include "matrixCrypto.h"
#ifdef __cplusplus
}
#endif
#endif /* _h_CRYPTO_LAYER */
/******************************************************************************/
( run in 0.596 second using v1.01-cache-2.11-cpan-e1769b4cff6 )