diff options
author | Sebastian Leske <sebastian.leske@sleske.name> | 2017-11-02 08:04:10 +0100 |
---|---|---|
committer | Sebastian Leske <sebastian.leske@sleske.name> | 2017-11-03 00:04:24 +0100 |
commit | 0621e4d79f5d89518d451969cc6b4b280ff0ab79 (patch) | |
tree | 77880f61bee039d7be05f618002248346b5ad6a8 /navit/file.c | |
parent | 2b6c039494b54c4ef88f69e2b89388a1050912e3 (diff) | |
download | navit-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/file.c')
-rw-r--r-- | navit/file.c | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/navit/file.c b/navit/file.c index 6764eafe1..8363b6a8b 100644 --- a/navit/file.c +++ b/navit/file.c @@ -46,14 +46,6 @@ extern char *version; -#ifdef HAVE_LIBCRYPTO -#include <openssl/sha.h> -#include <openssl/hmac.h> -#include <openssl/aes.h> -#include <openssl/evp.h> -#include <openssl/rand.h> -#endif - #ifdef CACHE_SIZE static GHashTable *file_name_hash; #endif @@ -555,81 +547,6 @@ file_data_read_compressed(struct file *file, long long offset, int size, int siz return ret; } -unsigned char * -file_data_read_encrypted(struct file *file, long long offset, int size, int size_uncomp, int compressed, char *passwd) -{ -#ifdef HAVE_LIBCRYPTO - void *ret; - unsigned char *buffer = 0; - uLongf destLen=size_uncomp; - - if (file->cache) { - struct file_cache_id id={offset,size,file->name_id,1}; - ret=cache_lookup(file_cache,&id); - if (ret) - return ret; - ret=cache_insert_new(file_cache,&id,size_uncomp); - } else - ret=g_malloc(size_uncomp); - lseek(file->fd, offset, SEEK_SET); - - buffer = (unsigned char *)g_malloc(size); - if (read(file->fd, buffer, size) != size) { - g_free(ret); - ret=NULL; - } else { - unsigned char key[34], salt[8], verify[2], counter[16], xor[16], mac[10], *datap; - int overhead=sizeof(salt)+sizeof(verify)+sizeof(mac); - int esize=size-overhead; - PKCS5_PBKDF2_HMAC_SHA1(passwd, strlen(passwd), (unsigned char *)buffer, 8, 1000, 34, key); - if (key[32] == buffer[8] && key[33] == buffer[9] && esize >= 0) { - AES_KEY aeskey; - AES_set_encrypt_key(key, 128, &aeskey); - datap=buffer+sizeof(salt)+sizeof(verify); - memset(counter, 0, sizeof(counter)); - while (esize > 0) { - int i,curr_size,idx=0; - do { - counter[idx]++; - } while (!counter[idx++]); - AES_encrypt(counter, xor, &aeskey); - curr_size=esize; - if (curr_size > sizeof(xor)) - curr_size=sizeof(xor); - for (i = 0 ; i < curr_size ; i++) - *datap++^=xor[i]; - esize-=curr_size; - } - size-=overhead; - datap=buffer+sizeof(salt)+sizeof(verify); - if (compressed) { - if (uncompress_int(ret, &destLen, (Bytef *)datap, size) != Z_OK) { - dbg(lvl_error,"uncompress failed\n"); - g_free(ret); - ret=NULL; - } - } else { - if (size == destLen) - memcpy(ret, buffer, destLen); - else { - dbg(lvl_error,"memcpy failed\n"); - g_free(ret); - ret=NULL; - } - } - } else { - g_free(ret); - ret=NULL; - } - } - g_free(buffer); - - return ret; -#else - return NULL; -#endif -} - void file_data_free(struct file *file, unsigned char *data) { |