diff options
Diffstat (limited to 'utils/nwztools/upgtools/mg.h')
-rw-r--r-- | utils/nwztools/upgtools/mg.h | 26 |
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 |