ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/obm/Common/SecureBoot/cryptlib/crypt_lib.h b/marvell/obm/Common/SecureBoot/cryptlib/crypt_lib.h
new file mode 100644
index 0000000..c6f45dd
--- /dev/null
+++ b/marvell/obm/Common/SecureBoot/cryptlib/crypt_lib.h
@@ -0,0 +1,59 @@
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+// //
+// Crypt Lib Interface //
+// //
+/////////////////////////////////////////////////////////////////////////////
+/****************************************************************************
+ History:
+ Date Author Changes
+ 2011/10/03 Deniz Karakoyunlu Created.
+*****************************************************************************/
+
+#ifndef _crypt_lib_H_
+#define _crypt_lib_H_
+
+#include "tim.h"
+#define RSA2K_BUFFER_0_SIZE 664 // bytes
+#define RSA2K_BUFFER_1_SIZE 820 // bytes
+#define RSA2K_BUFFER_2_SIZE 820 // bytes
+#define RSA2K_KEY_SIZE 720 // bytes
+#define RSA2K_BIGNUM_SIZE 600 // bytes
+
+#define MAX_BUFFER_0_SIZE (RSA2K_BUFFER_0_SIZE)
+#define MAX_BUFFER_1_SIZE (RSA2K_BUFFER_1_SIZE)
+#define MAX_BUFFER_2_SIZE (RSA2K_BUFFER_2_SIZE)
+#define MAX_KEY_SIZE (RSA2K_KEY_SIZE)
+#define MAX_BIGNUM_SIZE (RSA2K_BIGNUM_SIZE)
+
+
+#define BUFFER_0_OFFSET 0
+#define BUFFER_1_OFFSET (BUFFER_0_OFFSET + MAX_BUFFER_0_SIZE)
+#define BUFFER_2_OFFSET (BUFFER_1_OFFSET + MAX_BUFFER_1_SIZE)
+#define KEY_OFFSET (BUFFER_2_OFFSET + MAX_BUFFER_2_SIZE)
+#define X_OFFSET (KEY_OFFSET + MAX_KEY_SIZE)
+#define Y_OFFSET (X_OFFSET + MAX_BIGNUM_SIZE)
+
+#define SBUF_NUM 6
+#define MBUF_NUM 4
+#define LBUF_NUM 6
+
+#define SBUF_SIZE 16
+#define MBUF_SIZE 280
+#define LBUF_SIZE 560
+#define HASH_BUF_SIZE (32)
+#define DATABUFFERSIZE (SBUF_NUM*SBUF_SIZE + MBUF_NUM*MBUF_SIZE + LBUF_NUM*LBUF_SIZE + HASH_BUF_SIZE)
+
+UINT_T IPPCP_SecurityInitialization(UINT_T adv_ver);
+UINT_T IPPCP_SHAMessageDigest(const UINT8_T* pSrcMesgIn, UINT_T SrcMesgByteLen, UINT8_T* pMesgDigestOut, UINT_T DigestByteLen);
+UINT_T IPPCP_PKCS_DSA_Verify(const UINT8_T* pSrcMesgIn, UINT_T SrcMesgByteLen, const pPLAT_DS pDSA, UINT8_T* DataBuffer);
+UINT_T IPPCP_ECCP_DSA_Verify(const UINT8_T* pSrcMesgIn, UINT_T SrcMesgByteLen, const pPLAT_DS pDSA, UINT8_T* DataBuffer);
+UINT_T IPPCP_Get_Nonce(UINT_T* pNonceOut, UINT_T NonceBitLen);
+UINT_T IPPCP_Get_NonceBitLen(void);
+UINT_T IPPCP_HMAC_KEY_GEN(UINT8_T* RPMB_DerivedKey);
+UINT_T IPPCP_HMAC( const UINT8_T* pHMAC_Key, const UINT8_T* pSrcMesgIn, UINT_T SrcMesgByteLen, UINT8_T* pMesgDigestOut );
+
+#define IPPCP_NONCE_BIT_LEN 256
+
+#endif // _crypt_lib_H_
+