- if(!get_config_string(lookup_config(myself->connection->config_tree, "Digest"), &digest))
- digest = xstrdup("sha1");
-
- if(!digest_open_by_name(&myself->digest, digest)) {
- logger(LOG_ERR, _("Unrecognized digest type!"));
- return false;
- }
-
- if(!get_config_int(lookup_config(myself->connection->config_tree, "MACLength"), &myself->maclength))
-
- if(digest_active(&myself->digest)) {
- if(myself->maclength > digest_length(&myself->digest)) {
- logger(LOG_ERR, _("MAC length exceeds size of digest!"));
- return false;
- } else if(myself->maclength < 0) {
- logger(LOG_ERR, _("Bogus MAC length!"));
- return false;
+ if(get_config_string
+ (lookup_config(myself->connection->config_tree, "Digest"), &digest)) {
+ if(!strcasecmp(digest, "none")) {
+ myself->digest = NULL;
+ } else {
+ myself->digest = EVP_get_digestbyname(digest);
+
+ if(!myself->digest) {
+ logger(LOG_ERR, _("Unrecognized digest type!"));
+ return false;
+ }