summaryrefslogtreecommitdiff
path: root/board/cr50/dcrypto/dcrypto.h
diff options
context:
space:
mode:
Diffstat (limited to 'board/cr50/dcrypto/dcrypto.h')
-rw-r--r--board/cr50/dcrypto/dcrypto.h27
1 files changed, 20 insertions, 7 deletions
diff --git a/board/cr50/dcrypto/dcrypto.h b/board/cr50/dcrypto/dcrypto.h
index bbb8e0b2ef..bd87c1efe9 100644
--- a/board/cr50/dcrypto/dcrypto.h
+++ b/board/cr50/dcrypto/dcrypto.h
@@ -610,18 +610,31 @@ static inline const struct sha512_digest *HMAC_SHA512_final(
*/
#define AES256_BLOCK_CIPHER_KEY_SIZE 32
-int DCRYPTO_aes_init(const uint8_t *key, size_t key_len, const uint8_t *iv,
- enum cipher_mode c_mode, enum encrypt_mode e_mode);
-int DCRYPTO_aes_block(const uint8_t *in, uint8_t *out);
+/**
+ * Initialize AES hardware into specified mode
+ *
+ * @param key AES key
+ * @param key_len key length in bits 128/192/256
+ * @param iv initialization vector for CTR/CBC mode
+ * @param c_mode cipher mode ECB/CTR/CBC
+ * @param e_mode encryption mode (encrypt/decrypt)
+ * @return DCRYPTO_OK if successful
+ */
+enum dcrypto_result DCRYPTO_aes_init(const uint8_t *key, size_t key_len,
+ const uint8_t *iv, enum cipher_mode c_mode,
+ enum encrypt_mode e_mode);
-void DCRYPTO_aes_write_iv(const uint8_t *iv);
-void DCRYPTO_aes_read_iv(uint8_t *iv);
+enum dcrypto_result DCRYPTO_aes_block(const uint8_t *in, uint8_t *out);
/* AES-CTR-128/192/256
* NIST Special Publication 800-38A
*/
-int DCRYPTO_aes_ctr(uint8_t *out, const uint8_t *key, uint32_t key_bits,
- const uint8_t *iv, const uint8_t *in, size_t in_len);
+enum dcrypto_result DCRYPTO_aes_ctr(uint8_t *out, const uint8_t *key,
+ uint32_t key_bits, const uint8_t *iv,
+ const uint8_t *in, size_t in_len);
+
+void DCRYPTO_aes_write_iv(const uint8_t *iv);
+void DCRYPTO_aes_read_iv(uint8_t *iv);
/* AES-GCM-128/192/256
* NIST Special Publication 800-38D, IV is provided externally