EC_KEY_free(ec);
return NULL;
}
- EVP_PKEY_assign_EC_KEY(evp_key, ec);
+ if (!EVP_PKEY_assign_EC_KEY(evp_key, ec)) {
+ EVP_PKEY_free(evp_key);
+ EC_KEY_free(ec);
+ return NULL;
+ }
return evp_key;
}
ldns_status result;
evp_key = EVP_PKEY_new();
- EVP_PKEY_assign_DSA(evp_key, ldns_key_buf2dsa_raw(key, keylen));
- result = ldns_verify_rrsig_evp_raw(sig,
+ if (EVP_PKEY_assign_DSA(evp_key, ldns_key_buf2dsa_raw(key, keylen))) {
+ result = ldns_verify_rrsig_evp_raw(sig,
siglen,
rrset,
evp_key,
EVP_dss1());
+ } else {
+ result = LDNS_STATUS_SSL_ERR;
+ }
EVP_PKEY_free(evp_key);
return result;
ldns_status result;
evp_key = EVP_PKEY_new();
- EVP_PKEY_assign_RSA(evp_key, ldns_key_buf2rsa_raw(key, keylen));
- result = ldns_verify_rrsig_evp_raw(sig,
+ if (EVP_PKEY_assign_RSA(evp_key, ldns_key_buf2rsa_raw(key, keylen))) {
+ result = ldns_verify_rrsig_evp_raw(sig,
siglen,
rrset,
evp_key,
EVP_sha1());
+ } else {
+ result = LDNS_STATUS_SSL_ERR;
+ }
EVP_PKEY_free(evp_key);
return result;
ldns_status result;
evp_key = EVP_PKEY_new();
- EVP_PKEY_assign_RSA(evp_key, ldns_key_buf2rsa_raw(key, keylen));
- result = ldns_verify_rrsig_evp_raw(sig,
+ if (EVP_PKEY_assign_RSA(evp_key, ldns_key_buf2rsa_raw(key, keylen))) {
+ result = ldns_verify_rrsig_evp_raw(sig,
siglen,
rrset,
evp_key,
EVP_sha256());
+ } else {
+ result = LDNS_STATUS_SSL_ERR;
+ }
EVP_PKEY_free(evp_key);
return result;
ldns_status result;
evp_key = EVP_PKEY_new();
- EVP_PKEY_assign_RSA(evp_key, ldns_key_buf2rsa_raw(key, keylen));
- result = ldns_verify_rrsig_evp_raw(sig,
+ if (EVP_PKEY_assign_RSA(evp_key, ldns_key_buf2rsa_raw(key, keylen))) {
+ result = ldns_verify_rrsig_evp_raw(sig,
siglen,
rrset,
evp_key,
EVP_sha512());
+ } else {
+ result = LDNS_STATUS_SSL_ERR;
+ }
EVP_PKEY_free(evp_key);
return result;
ldns_status result;
evp_key = EVP_PKEY_new();
- EVP_PKEY_assign_RSA(evp_key, ldns_key_buf2rsa_raw(key, keylen));
- result = ldns_verify_rrsig_evp_raw(sig,
+ if (EVP_PKEY_assign_RSA(evp_key, ldns_key_buf2rsa_raw(key, keylen))) {
+ result = ldns_verify_rrsig_evp_raw(sig,
siglen,
rrset,
evp_key,
EVP_md5());
+ } else {
+ result = LDNS_STATUS_SSL_ERR;
+ }
EVP_PKEY_free(evp_key);
return result;
EC_KEY_free(ec);
return NULL;
}
- EVP_PKEY_assign_EC_KEY(evp_key, ec);
-
+ if (!EVP_PKEY_assign_EC_KEY(evp_key, ec)) {
+ EVP_PKEY_free(evp_key);
+ EC_KEY_free(ec);
+ return NULL;
+ }
return evp_key;
}
#endif
ldns_key_free(k);
return NULL;
}
-
ldns_key_set_rsa_key(k, r);
#endif /* HAVE_SSL */
break;
EC_KEY_free(ec);
return NULL;
}
- EVP_PKEY_assign_EC_KEY(k->_key.key, ec);
+ if (!EVP_PKEY_assign_EC_KEY(k->_key.key, ec)) {
+ ldns_key_free(k);
+ EC_KEY_free(ec);
+ return NULL;
+ }
#endif /* splint */
break;
#endif