mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-17 17:12:39 -05:00
nwztools: cleanup crypto, switch MD5 to Crypto++
We already use Crypto++ for DES anyway, and using OpenSSL is not great because of its incompatible licence. Change-Id: I78771b84c1708795a0c0c30afa5bdfe4885dea4e
This commit is contained in:
parent
92ecbd5fb8
commit
dbeb6db1b5
9 changed files with 108 additions and 53 deletions
|
|
@ -28,43 +28,41 @@
|
|||
using namespace CryptoPP;
|
||||
namespace
|
||||
{
|
||||
inline int dec_des_ecb(void *in, int size, void *out, uint8_t *key)
|
||||
inline void dec_des_ecb(void *in, int size, void *out, uint8_t *key)
|
||||
{
|
||||
ECB_Mode< DES >::Decryption dec;
|
||||
if(size % 8)
|
||||
return 42;
|
||||
abort(); /* size must be a multiple of 8 */
|
||||
dec.SetKey(key, 8);
|
||||
dec.ProcessData((byte*)out, (byte*)in, size);
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline int enc_des_ecb(void *in, int size, void *out, uint8_t *key)
|
||||
inline void enc_des_ecb(void *in, int size, void *out, uint8_t *key)
|
||||
{
|
||||
ECB_Mode< DES >::Encryption enc;
|
||||
if(size % 8)
|
||||
return 42;
|
||||
abort(); /* size must be a multiple of 8 */
|
||||
enc.SetKey(key, 8);
|
||||
enc.ProcessData((byte*)out, (byte*)in, size);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int mg_decrypt_fw(void *in, int size, void *out, uint8_t *key)
|
||||
void mg_decrypt_fw(void *in, int size, void *out, uint8_t *key)
|
||||
{
|
||||
return dec_des_ecb(in, size, out, key);
|
||||
dec_des_ecb(in, size, out, key);
|
||||
}
|
||||
|
||||
int mg_encrypt_fw(void *in, int size, void *out, uint8_t *key)
|
||||
void mg_encrypt_fw(void *in, int size, void *out, uint8_t *key)
|
||||
{
|
||||
return enc_des_ecb(in, size, out, key);
|
||||
enc_des_ecb(in, size, out, key);
|
||||
}
|
||||
|
||||
int mg_decrypt_pass(void *in, int size, void *out, uint8_t *key)
|
||||
void mg_decrypt_pass(void *in, int size, void *out, uint8_t *key)
|
||||
{
|
||||
return dec_des_ecb(in, size, out, key);
|
||||
dec_des_ecb(in, size, out, key);
|
||||
}
|
||||
|
||||
int mg_encrypt_pass(void *in, int size, void *out, uint8_t *key)
|
||||
void mg_encrypt_pass(void *in, int size, void *out, uint8_t *key)
|
||||
{
|
||||
return enc_des_ecb(in, size, out, key);
|
||||
enc_des_ecb(in, size, out, key);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue