[Sumover-dev] [svn commit] r4057 - common/trunk/src
sumover-dev at cs.ucl.ac.uk
sumover-dev at cs.ucl.ac.uk
Mon Jun 4 12:38:01 BST 2007
Author: piers
Date: Mon Jun 4 12:38:00 2007
New Revision: 4057
Modified:
common/trunk/src/mbus_config.c
Log:
Fixed problems from last change - now properly fails-over to non-encryption is key is garbled.
Modified: common/trunk/src/mbus_config.c
==============================================================================
--- common/trunk/src/mbus_config.c (original)
+++ common/trunk/src/mbus_config.c Mon Jun 4 12:38:00 2007
@@ -404,11 +404,12 @@
assert(key->key!=NULL);
key->key_len = strlen(key->key);
tmp = (char *) xmalloc(key->key_len);
- key->key = tmp;
if ((key->key_len = base64decode((unsigned char *)key->key, key->key_len, (unsigned char *)tmp, key->key_len))==-1) {
debug_msg("Error in base64decode of key from file - using NO encyption\n");
key->key = NULL;
key->key_len = 0;
+ } else {
+ key->key = tmp;
}
} else {
key->key = NULL;
@@ -455,8 +456,13 @@
key->key = (char *) strtok(NULL , ")");
key->key_len = strlen(key->key);
tmp = (char *) xmalloc(key->key_len);
- key->key_len = base64decode(key->key, key->key_len, tmp, key->key_len);
- key->key = tmp;
+ if ((key->key_len = base64decode((unsigned char *)key->key, key->key_len, (unsigned char *)tmp, key->key_len))==-1) {
+ debug_msg("Error in base64decode of key from file - using NO encyption\n");
+ key->key = NULL;
+ key->key_len = 0;
+ } else {
+ key->key = tmp;
+ }
} else {
key->key = NULL;
key->key_len = 0;
@@ -465,7 +471,7 @@
#else
mbus_get_key(m, key, "ENCRYPTIONKEY=(");
#endif
- if (strcmp(key->algorithm, "DES") == 0) {
+ if ((strcmp(key->algorithm, "DES") == 0) && (key->key_len!=0)) {
assert(key->key != NULL);
assert(key->key_len == 8);
@@ -513,8 +519,13 @@
/* Decode the key... */
tmp = (char *) xmalloc(key->key_len);
- key->key_len = base64decode(key->key, key->key_len, tmp, key->key_len);
- key->key = tmp;
+ if ((key->key_len = base64decode((unsigned char *)key->key, key->key_len, (unsigned char *)tmp, key->key_len))==-1) {
+ debug_msg("Error in base64decode of key from file - using NO encyption\n");
+ key->key = NULL;
+ key->key_len = 0;
+ } else {
+ key->key = tmp;
+ }
xfree(buffer);
#else
More information about the Sumover-dev
mailing list