summaryrefslogtreecommitdiff
path: root/navit/file.c
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/file.c
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/file.c')
-rw-r--r--navit/file.c83
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)
{