ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/uboot/drivers/crypto/bcm/asr_cipher.h b/marvell/uboot/drivers/crypto/bcm/asr_cipher.h
new file mode 100644
index 0000000..9525aba
--- /dev/null
+++ b/marvell/uboot/drivers/crypto/bcm/asr_cipher.h
@@ -0,0 +1,66 @@
+#ifndef _ASR_CIPHER_H_
+#define _ASR_CIPHER_H_
+
+#include <common.h>
+
+#define BYTES_TO_BITS 8
+
+typedef struct {
+ uint32_t paddr;
+ uint32_t size;
+ uint32_t next_desc;
+ uint32_t reserved;
+} DMA_DESC_T;
+
+struct rijndael_key {
+ uint8_t K[(60 + 60 + 4) * sizeof(uint32_t)];
+ uint32_t *eK;
+ uint32_t *dK;
+ int Nr;
+};
+
+typedef union Symmetric_key {
+ struct rijndael_key rijndael;
+} symmetric_key;
+
+typedef enum {
+ EXT_KEY = 0,
+ RK_KEY,
+ SSK_KEY,
+} AES_KEY_SELECT_T;
+
+typedef enum {
+ AES_128 = 128/8,
+ AES_192 = 192/8,
+ AES_256 = 256/8,
+} AES_KEY_LEN_T;
+
+typedef enum {
+ AES_ECB_ALG = 0,
+ AES_CBC_ALG,
+ AES_CTR_ALG,
+ AES_XTS_ALG,
+ AES_KEYWRAP,
+} AES_MODE_T;
+
+typedef enum {
+ AES_DECRYPT_OP = 0,
+ AES_ENCRYPT_OP,
+} AES_OP_MODE_T;
+
+typedef enum {
+ ENG_AES = 0,
+ ENG_DES,
+ ENG_RC4,
+} CRYPTO_ENG_SEL_T;
+
+/* aes APIs*/
+int aes_ecb_encrypt_bcm(uint8_t *key, uint32_t key_len, bool use_rkek,
+ void *in, void *out, uint32_t size);
+int aes_ecb_decrypt_bcm(uint8_t *key, uint32_t key_len, bool use_rkek,
+ void *in, void *out, uint32_t size);
+int aes_cbc_encrypt_bcm(uint8_t *iv, uint8_t *key, uint32_t key_len,
+ bool use_rkek, void *in, void *out, uint32_t size);
+int aes_cbc_decrypt_bcm(uint8_t *iv, uint8_t *key, uint32_t key_len,
+ bool use_rkek, void *in, void *out, uint32_t size);
+#endif