diff options
Diffstat (limited to 'navit/maptool/zip.c')
-rw-r--r-- | navit/maptool/zip.c | 123 |
1 files changed, 2 insertions, 121 deletions
diff --git a/navit/maptool/zip.c b/navit/maptool/zip.c index f352e6353..a4e040974 100644 --- a/navit/maptool/zip.c +++ b/navit/maptool/zip.c @@ -25,15 +25,6 @@ #include "config.h" #include "zipfile.h" -#ifdef HAVE_LIBCRYPTO -#include <openssl/sha.h> -#include <openssl/hmac.h> -#include <openssl/aes.h> -#include <openssl/evp.h> -#include <openssl/rand.h> -#include <openssl/md5.h> -#endif - struct zip_info { int zipnum; int dir_size; @@ -43,14 +34,9 @@ struct zip_info { int zip64; short date; short time; - char *passwd; FILE *res2; FILE *index; FILE *dir; -#ifdef HAVE_LIBCRYPTO - MD5_CTX md5_ctx; -#endif - int md5; }; static int @@ -58,10 +44,6 @@ zip_write(struct zip_info *info, void *data, int len) { if (fwrite(data, len, 1, info->res2) != 1) return 0; -#ifdef HAVE_LIBCRYPTO - if (info->md5) - MD5_Update(&info->md5_ctx, data, len); -#endif return 1; } @@ -139,17 +121,6 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, 0x8, zip_info->offset, }; -#ifdef HAVE_LIBCRYPTO - struct zip_enc enc = { - 0x9901, - 0x7, - 0x2, - 'A','E', - 0x1, - 0x0, - }; - unsigned char salt[8], key[34], verify[2], mac[10]; -#endif char *filename; int crc=0,len,comp_size=data_size; uLongf destlen=data_size+data_size/500+12; @@ -160,19 +131,8 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, fprintf(stderr, "No more memory.\n"); exit (1); } -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - RAND_bytes(salt, sizeof(salt)); - PKCS5_PBKDF2_HMAC_SHA1(zip_info->passwd, strlen(zip_info->passwd), salt, sizeof(salt), 1000, sizeof(key), key); - verify[0]=key[32]; - verify[1]=key[33]; - } else { -#endif - crc=crc32(0, NULL, 0); - crc=crc32(crc, (unsigned char *)data, data_size); -#ifdef HAVE_LIBCRYPTO - } -#endif + crc=crc32(0, NULL, 0); + crc=crc32(crc, (unsigned char *)data, data_size); lfh.zipmthd=zip_info->compression_level ? 8:0; #ifdef HAVE_ZLIB if (zip_info->compression_level) { @@ -191,15 +151,6 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, lfh.zipcrc=crc; lfh.zipsize=comp_size; lfh.zipuncmp=data_size; -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - enc.compress_method=lfh.zipmthd; - lfh.zipmthd=99; - lfh.zipxtraln+=sizeof(enc); - lfh.zipgenfld|=1; - lfh.zipsize+=sizeof(salt)+sizeof(verify)+sizeof(mac); - } -#endif cd.zipccrc=crc; cd.zipcsiz=lfh.zipsize; cd.zipcunc=data_size; @@ -208,13 +159,6 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, cd.zipofst=0xffffffff; cd.zipcxtl+=sizeof(cd_ext); } -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - cd.zipcmthd=99; - cd.zipcxtl+=sizeof(enc); - cd.zipcflg|=1; - } -#endif filename=g_alloca(filelen+1); strcpy(filename, name); len=strlen(filename); @@ -225,43 +169,8 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, zip_write(zip_info, &lfh, sizeof(lfh)); zip_write(zip_info, filename, filelen); zip_info->offset+=sizeof(lfh)+filelen; -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - unsigned char counter[16], xor[16], *datap=(unsigned char *)data; - int size=comp_size; - AES_KEY aeskey; - zip_write(zip_info, &enc, sizeof(enc)); - zip_write(zip_info, salt, sizeof(salt)); - zip_write(zip_info, verify, sizeof(verify)); - zip_info->offset+=sizeof(enc)+sizeof(salt)+sizeof(verify); - AES_set_encrypt_key(key, 128, &aeskey); - memset(counter, 0, sizeof(counter)); - while (size > 0) { - int i,curr_size,idx=0; - do { - counter[idx]++; - } while (!counter[idx++]); - AES_encrypt(counter, xor, &aeskey); - curr_size=size; - if (curr_size > sizeof(xor)) - curr_size=sizeof(xor); - for (i = 0 ; i < curr_size ; i++) - *datap++^=xor[i]; - size-=curr_size; - } - } -#endif zip_write(zip_info, data, comp_size); zip_info->offset+=comp_size; -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - unsigned int maclen=sizeof(mac); - unsigned char mactmp[maclen*2]; - HMAC(EVP_sha1(), key+16, 16, (unsigned char *)data, comp_size, mactmp, &maclen); - zip_write(zip_info, mactmp, sizeof(mac)); - zip_info->offset+=sizeof(mac); - } -#endif dbg_assert(fwrite(&cd, sizeof(cd), 1, zip_info->dir)==1); dbg_assert(fwrite(filename, filelen, 1, zip_info->dir)==1); zip_info->dir_size+=sizeof(cd)+filelen; @@ -269,12 +178,6 @@ write_zipmember(struct zip_info *zip_info, char *name, int filelen, char *data, dbg_assert(fwrite(&cd_ext, sizeof(cd_ext), 1, zip_info->dir)==1); zip_info->dir_size+=sizeof(cd_ext); } -#ifdef HAVE_LIBCRYPTO - if (zip_info->passwd) { - dbg_assert(fwrite(&enc, sizeof(enc), 1, zip_info->dir)==1); - zip_info->dir_size+=sizeof(enc); - } -#endif free(compbuffer); } @@ -364,28 +267,6 @@ zip_new(void) } void -zip_set_md5(struct zip_info *info, int on) -{ -#ifdef HAVE_LIBCRYPTO - info->md5=on; - if (on) - MD5_Init(&info->md5_ctx); -#endif -} - -int -zip_get_md5(struct zip_info *info, unsigned char *out) -{ - if (!info->md5) - return 0; -#ifdef HAVE_LIBCRYPTO - MD5_Final(out, &info->md5_ctx); - return 1; -#endif - return 0; -} - -void zip_set_zip64(struct zip_info *info, int on) { info->zip64=on; |