version 1.55.6.1, 2023/07/19 14:08:59 |
version 1.56, 2023/03/08 05:33:53 |
|
|
BIGNUM *r = NULL, *s = NULL; |
BIGNUM *r = NULL, *s = NULL; |
|
|
if ((k11 = EC_KEY_get_ex_data(ec, ec_key_idx)) == NULL) { |
if ((k11 = EC_KEY_get_ex_data(ec, ec_key_idx)) == NULL) { |
ossl_error("EC_KEY_get_key_method_data failed for ec"); |
ossl_error("EC_KEY_get_ex_data failed for ec"); |
return (NULL); |
return (NULL); |
} |
} |
|
|
|
|
goto done; |
goto done; |
} |
} |
if (siglen < 64 || siglen > 132 || siglen % 2) { |
if (siglen < 64 || siglen > 132 || siglen % 2) { |
ossl_error("d2i_ECDSA_SIG failed"); |
error_f("bad signature length: %lu", (u_long)siglen); |
goto done; |
goto done; |
} |
} |
bnlen = siglen/2; |
bnlen = siglen/2; |
|
|
} |
} |
if ((r = BN_bin2bn(sig, bnlen, NULL)) == NULL || |
if ((r = BN_bin2bn(sig, bnlen, NULL)) == NULL || |
(s = BN_bin2bn(sig+bnlen, bnlen, NULL)) == NULL) { |
(s = BN_bin2bn(sig+bnlen, bnlen, NULL)) == NULL) { |
ossl_error("d2i_ECDSA_SIG failed"); |
ossl_error("BN_bin2bn failed"); |
ECDSA_SIG_free(ret); |
ECDSA_SIG_free(ret); |
ret = NULL; |
ret = NULL; |
goto done; |
goto done; |
|
|
error("dlopen %s failed: %s", provider_id, dlerror()); |
error("dlopen %s failed: %s", provider_id, dlerror()); |
goto fail; |
goto fail; |
} |
} |
if ((getfunctionlist = dlsym(handle, "C_GetFunctionList")) == NULL) |
if ((getfunctionlist = dlsym(handle, "C_GetFunctionList")) == NULL) { |
fatal("dlsym(C_GetFunctionList) failed: %s", dlerror()); |
error("dlsym(C_GetFunctionList) failed: %s", dlerror()); |
|
goto fail; |
|
} |
p = xcalloc(1, sizeof(*p)); |
p = xcalloc(1, sizeof(*p)); |
p->name = xstrdup(provider_id); |
p->name = xstrdup(provider_id); |
p->handle = handle; |
p->handle = handle; |