/* sha.h for openssl */


#ifndef CYASSL_SHA_H_
#define CYASSL_SHA_H_

#include <cyassl/ctaocrypt/settings.h>

#ifdef YASSL_PREFIX
#include "prefix_sha.h"
#endif

#ifdef __cplusplus
    extern "C" {
#endif


typedef struct CYASSL_SHA_CTX {
    int holder[24];   /* big enough to hold ctaocrypt sha, but check on init */
} CYASSL_SHA_CTX;

CYASSL_API void CyaSSL_SHA_Init(CYASSL_SHA_CTX*);
CYASSL_API void CyaSSL_SHA_Update(CYASSL_SHA_CTX*, const void*, unsigned long);
CYASSL_API void CyaSSL_SHA_Final(unsigned char*, CYASSL_SHA_CTX*);

/* SHA1 points to above, shouldn't use SHA0 ever */
CYASSL_API void CyaSSL_SHA1_Init(CYASSL_SHA_CTX*);
CYASSL_API void CyaSSL_SHA1_Update(CYASSL_SHA_CTX*, const void*, unsigned long);
CYASSL_API void CyaSSL_SHA1_Final(unsigned char*, CYASSL_SHA_CTX*);

enum {
    SHA_DIGEST_LENGTH = 20
};


typedef CYASSL_SHA_CTX SHA_CTX;

#define SHA_Init CyaSSL_SHA_Init
#define SHA_Update CyaSSL_SHA_Update
#define SHA_Final CyaSSL_SHA_Final

#define SHA1_Init CyaSSL_SHA1_Init
#define SHA1_Update CyaSSL_SHA1_Update
#define SHA1_Final CyaSSL_SHA1_Final


typedef struct CYASSL_SHA256_CTX {
    int holder[28];   /* big enough to hold ctaocrypt sha, but check on init */
} CYASSL_SHA256_CTX;

CYASSL_API void CyaSSL_SHA256_Init(CYASSL_SHA256_CTX*);
CYASSL_API void CyaSSL_SHA256_Update(CYASSL_SHA256_CTX*, const void*,
	                                 unsigned long);
CYASSL_API void CyaSSL_SHA256_Final(unsigned char*, CYASSL_SHA256_CTX*);

enum {
    SHA256_DIGEST_LENGTH = 32 
};


typedef CYASSL_SHA256_CTX SHA256_CTX;

#define SHA256_Init   CyaSSL_SHA256_Init
#define SHA256_Update CyaSSL_SHA256_Update
#define SHA256_Final  CyaSSL_SHA256_Final


#ifdef CYASSL_SHA384

typedef struct CYASSL_SHA384_CTX {
    long long holder[32];   /* big enough, but check on init */
} CYASSL_SHA384_CTX;

CYASSL_API void CyaSSL_SHA384_Init(CYASSL_SHA384_CTX*);
CYASSL_API void CyaSSL_SHA384_Update(CYASSL_SHA384_CTX*, const void*,
	                                 unsigned long);
CYASSL_API void CyaSSL_SHA384_Final(unsigned char*, CYASSL_SHA384_CTX*);

enum {
    SHA384_DIGEST_LENGTH = 48 
};


typedef CYASSL_SHA384_CTX SHA384_CTX;

#define SHA384_Init   CyaSSL_SHA384_Init
#define SHA384_Update CyaSSL_SHA384_Update
#define SHA384_Final  CyaSSL_SHA384_Final

#endif /* CYASSL_SHA384 */

#ifdef CYASSL_SHA512

typedef struct CYASSL_SHA512_CTX {
    long long holder[36];   /* big enough, but check on init */
} CYASSL_SHA512_CTX;

CYASSL_API void CyaSSL_SHA512_Init(CYASSL_SHA512_CTX*);
CYASSL_API void CyaSSL_SHA512_Update(CYASSL_SHA512_CTX*, const void*,
	                                 unsigned long);
CYASSL_API void CyaSSL_SHA512_Final(unsigned char*, CYASSL_SHA512_CTX*);

enum {
    SHA512_DIGEST_LENGTH = 64 
};


typedef CYASSL_SHA512_CTX SHA512_CTX;

#define SHA512_Init   CyaSSL_SHA512_Init
#define SHA512_Update CyaSSL_SHA512_Update
#define SHA512_Final  CyaSSL_SHA512_Final

#endif /* CYASSL_SHA512 */




#ifdef __cplusplus
    }  /* extern "C" */ 
#endif


#endif /* CYASSL_SHA_H_ */

