]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
Check if libcrypto provides GOST.
authorWouter Wijngaards <wouter@NLnetLabs.nl>
Wed, 23 Jun 2010 08:03:59 +0000 (08:03 +0000)
committerWouter Wijngaards <wouter@NLnetLabs.nl>
Wed, 23 Jun 2010 08:03:59 +0000 (08:03 +0000)
examples/ldns-key2ds.c
examples/ldns-keygen.c
examples/ldns-signzone.c
keys.c

index 1c04c328f2dcd07d204264efdbc094520c41119a..8c94a44d3345533284ca96d5ba641cfe50f68005 100644 (file)
@@ -92,6 +92,10 @@ main(int argc, char *argv[])
                }
 #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;
                }
index 9686eb46587aa8163dd12b2740fe6f069e00b94b..905c3eedf444f3473fad8833546c740d4a0e9d53 100644 (file)
@@ -157,6 +157,12 @@ main(int argc, char *argv[])
        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;
        }
index 258eb5a7b417f2789abebbfc777c7e90ae8b5de7..86584d37c54920c1e7447947750427d17cb56aac 100644 (file)
@@ -703,7 +703,7 @@ main(int argc, char *argv[])
                                
                                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 */
diff --git a/keys.c b/keys.c
index 90769c2b55ead447bce933f052642b59ad890e01..751686077f9537fdd96b6772a96461e7f79606c6 100644 (file)
--- a/keys.c
+++ b/keys.c
@@ -350,6 +350,10 @@ ldns_key_new_frm_fp_l(ldns_key **key, FILE *fp, int *line_nr)
                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) {