if(!get_config_string(lookup_config(config_tree, "Cipher"), &cipher))
cipher = xstrdup("blowfish");
- if(!(myself->incipher = cipher_open_by_name(cipher))) {
+ if(!strcasecmp(cipher, "none")) {
+ myself->incipher = NULL;
+ } else if(!(myself->incipher = cipher_open_by_name(cipher))) {
logger(DEBUG_ALWAYS, LOG_ERR, "Unrecognized cipher type!");
return false;
}
if(!get_config_string(lookup_config(config_tree, "Digest"), &digest))
digest = xstrdup("sha1");
- if(!(myself->indigest = digest_open_by_name(digest, maclength))) {
+ if(!strcasecmp(digest, "none")) {
+ myself->indigest = NULL;
+ } else if(!(myself->indigest = digest_open_by_name(digest, maclength))) {
logger(DEBUG_ALWAYS, LOG_ERR, "Unrecognized digest type!");
return false;
}
/* Check and lookup cipher and digest algorithms */
- if(!(from->outcipher = cipher_open_by_nid(cipher))) {
- logger(DEBUG_ALWAYS, LOG_ERR, "Node %s (%s) uses unknown cipher!", from->name, from->hostname);
- return false;
+ if(cipher) {
+ if(!(from->outcipher = cipher_open_by_nid(cipher))) {
+ logger(DEBUG_ALWAYS, LOG_ERR, "Node %s (%s) uses unknown cipher!", from->name, from->hostname);
+ return false;
+ }
+ } else {
+ from->outcipher = NULL;
}
- if(!(from->outdigest = digest_open_by_nid(digest, maclength))) {
- logger(DEBUG_ALWAYS, LOG_ERR, "Node %s (%s) uses unknown digest!", from->name, from->hostname);
- return false;
+ if(digest) {
+ if(!(from->outdigest = digest_open_by_nid(digest, maclength))) {
+ logger(DEBUG_ALWAYS, LOG_ERR, "Node %s (%s) uses unknown digest!", from->name, from->hostname);
+ return false;
+ }
+ } else {
+ from->outdigest = NULL;
}
if(maclength != digest_length(from->outdigest)) {