}
#ifdef USE_GOST
if (strcmp(argv[0], "-g") == 0) {
+ if(!ldns_key_EVP_load_gost_id()) {
+ fprintf(stderr, "error: libcrypto does not provide GOST\n");
+ exit(EXIT_FAILURE);
+ }
h = LDNS_HASH_GOST;
similar_hash = 0;
}
case LDNS_SIGN_HMACMD5:
case LDNS_SIGN_HMACSHA1:
case LDNS_SIGN_HMACSHA256:
+ case LDNS_SIGN_ECC_GOST:
+ if(!ldns_key_EVP_load_gost_id()) {
+ fprintf(stderr, "error: libcrypto does not provide GOST\n");
+ exit(EXIT_FAILURE);
+ }
+ break;
default:
break;
}
ldns_key_list_push_key(keys, key);
} else {
- fprintf(stderr, "Error reading key from %s at line %d\n", argv[argi], line_nr);
+ fprintf(stderr, "Error reading key from %s at line %d: %s\n", argv[argi], line_nr, ldns_get_errorstr_by_id(s));
}
}
/* and, if not unset by -p, find or create the corresponding DNSKEY record */
case LDNS_SIGN_ECC_GOST:
ldns_key_set_algorithm(k, alg);
#if defined(HAVE_SSL) && defined(USE_GOST)
+ if(!ldns_key_EVP_load_gost_id()) {
+ ldns_key_free(k);
+ return LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL;
+ }
ldns_key_set_evp_key(k,
ldns_key_new_frm_fp_gost_l(fp, line_nr));
if(!k->_key.key) {