FreeCalypso > hg > freecalypso-tools
diff rvinterf/etmsync/pirimei.c @ 14:3d148edb87c2
eliminated the dependency on OpenSSL for Pirelli IMEI DES decryption
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 03 Oct 2016 07:00:55 +0000 |
parents | e7502631a0f9 |
children | 6d9b10633f10 |
line wrap: on
line diff
--- a/rvinterf/etmsync/pirimei.c Mon Oct 03 06:15:04 2016 +0000 +++ b/rvinterf/etmsync/pirimei.c Mon Oct 03 07:00:55 2016 +0000 @@ -3,19 +3,18 @@ */ #include <sys/types.h> -#include <openssl/des.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> +#include "cl_des.h" #include "exitcodes.h" u_char pirelli_imeisv[8]; get_pirelli_imei() { - DES_cblock ciphertext[2], dieid_key, decrypted[2]; - DES_key_schedule keysched; + u_char ciphertext[2][8], dieid_key[8], decrypted[2][8]; int rc; static char failmsg[] = "decryption failed: no valid IMEI record or incompatible firmware\n"; @@ -28,9 +27,8 @@ rc = do_memory_read(0x027F0504, ciphertext, 16); if (rc) return(rc); - DES_set_key_unchecked(&dieid_key, &keysched); - DES_ecb_encrypt(&ciphertext[0], &decrypted[0], &keysched, DES_DECRYPT); - DES_ecb_encrypt(&ciphertext[1], &decrypted[1], &keysched, DES_DECRYPT); + cl_des(ciphertext[0], dieid_key, decrypted[0], CL_DES_DECRYPTION); + cl_des(ciphertext[1], dieid_key, decrypted[1], CL_DES_DECRYPTION); if (bcmp(decrypted[1], dieid_key, 8)) { printf(failmsg); return(ERROR_TARGET);