summaryrefslogtreecommitdiffstats
path: root/utils/nwztools/upgtools/mg.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/nwztools/upgtools/mg.h')
-rw-r--r--utils/nwztools/upgtools/mg.h26
1 files changed, 21 insertions, 5 deletions
diff --git a/utils/nwztools/upgtools/mg.h b/utils/nwztools/upgtools/mg.h
index ef8dcd5ecb..fe6ec7c2f6 100644
--- a/utils/nwztools/upgtools/mg.h
+++ b/utils/nwztools/upgtools/mg.h
@@ -26,11 +26,27 @@
#ifdef __cplusplus
extern "C" {
#endif
-/* size must be a multiple of 8 */
-void mg_decrypt_fw(void *in, int size, void *out, uint8_t *key);
-void mg_encrypt_fw(void *in, int size, void *out, uint8_t *key);
-void mg_decrypt_pass(void *in, int size, void *out, uint8_t *key);
-void mg_encrypt_pass(void *in, int size, void *out, uint8_t *key);
+/* size must be a multiple of 8, this function is thread-safe */
+void mg_decrypt_fw(void *in, int size, void *out, uint8_t key[8]);
+
+/* for simplicity, these function use some global variables, this could be
+ * change if necessary in the future */
+
+/* DES: sizes must be a multiple of 8 */
+void des_ecb_dec_set_key(const uint8_t key[8]);
+void des_ecb_dec(void *in, int size, void *out);
+void des_ecb_enc_set_key(const uint8_t key[8]);
+void des_ecb_enc(void *in, int size, void *out);
+
+/* AES: size must be a multiple of 16 */
+void aes_ecb_dec_set_key(const uint8_t key[16]);
+void aes_ecb_dec(void *in, int size, void *out);
+void aes_ecb_enc_set_key(const uint8_t key[16]);
+void aes_ecb_enc(void *in, int size, void *out);
+void aes_cbc_dec_set_key_iv(const uint8_t key[16], const uint8_t iv[16]);
+void aes_cbc_dec(void *in, int size, void *out);
+void aes_cbc_enc_set_key_iv(const uint8_t key[16], const uint8_t iv[16]);
+void aes_cbc_enc(void *in, int size, void *out);
#ifdef __cplusplus
}
#endif