summaryrefslogtreecommitdiff
path: root/navit/maptool
diff options
context:
space:
mode:
authorSebastian Leske <sebastian.leske@sleske.name>2017-11-02 08:04:10 +0100
committerSebastian Leske <sebastian.leske@sleske.name>2017-11-03 00:04:24 +0100
commit0621e4d79f5d89518d451969cc6b4b280ff0ab79 (patch)
tree77880f61bee039d7be05f618002248346b5ad6a8 /navit/maptool
parent2b6c039494b54c4ef88f69e2b89388a1050912e3 (diff)
downloadnavit-0621e4d79f5d89518d451969cc6b4b280ff0ab79.tar.gz
Fix:core:Remove binfile map encryption support
Remove support for decrypting an encrypted binfile map. The feature is not used, and removing it will let us remove the problematic dependency on OpenSSL (see trac 1350).
Diffstat (limited to 'navit/maptool')
-rw-r--r--navit/maptool/zip.c89
1 files changed, 2 insertions, 87 deletions
diff --git a/navit/maptool/zip.c b/navit/maptool/zip.c
index f352e6353..1a66e083a 100644
--- a/navit/maptool/zip.c
+++ b/navit/maptool/zip.c
@@ -26,11 +26,6 @@
#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
@@ -43,7 +38,6 @@ struct zip_info {
int zip64;
short date;
short time;
- char *passwd;
FILE *res2;
FILE *index;
FILE *dir;
@@ -139,17 +133,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 +143,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 +163,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 +171,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 +181,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 +190,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);
}