mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 10:15:07 +08:00
Delete test-crypto-ecb.js, which can no longer run anywhere: Blowfish is available only from OpenSSL's legacy provider and is absent from BoringSSL. The addon and cctest version guards become OPENSSL_IS_BORINGSSL checks. Remove legacy digest-alias coverage and unreachable OpenSSL 1.x branches. JavaScript test and benchmark gates, skip reasons, and TLS error expectations that distinguished OpenSSL 1.x from provider-backed OpenSSL now distinguish BoringSSL, including PKCS12 parsing, named DH groups, private-key serialization, RSA-PSS parameters, consolidated provider caches, FIPS availability, and empty KMAC output. Keep the CCM alternate finalization error only for BoringSSL. Provider-only test skips use version-neutral terminology or state the actual minimum OpenSSL version. Signed-off-by: Filip Skokan <panva.ip@gmail.com> Assisted-by: Codex PR-URL: https://github.com/nodejs/node/pull/64777 Fixes: https://github.com/nodejs/node/issues/56733 Refs: https://github.com/nodejs/node/pull/64211 Refs: https://github.com/nodejs/node/pull/63966 Refs: https://github.com/nodejs/node/pull/53329 Refs: https://github.com/nodejs/node/pull/48950 Refs: https://github.com/nodejs/node/issues/45465 Refs: https://github.com/nodejs/node/issues/42827 Refs: https://github.com/nodejs/node/issues/47076 Refs: https://github.com/nodejs/node/pull/62862 Refs: https://github.com/nodejs/node/pull/38512 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Richard Lau <richard.lau@ibm.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
#include <assert.h>
|
|
#include <node.h>
|
|
|
|
// BoringSSL declares OPENSSL_IS_BORINGSSL in crypto.h.
|
|
#include <openssl/crypto.h>
|
|
#ifndef OPENSSL_IS_BORINGSSL
|
|
#include <openssl/provider.h>
|
|
#endif
|
|
|
|
namespace {
|
|
|
|
using v8::Array;
|
|
using v8::Context;
|
|
using v8::FunctionCallbackInfo;
|
|
using v8::Isolate;
|
|
using v8::Local;
|
|
using v8::LocalVector;
|
|
using v8::Object;
|
|
using v8::String;
|
|
using v8::Value;
|
|
|
|
#ifndef OPENSSL_IS_BORINGSSL
|
|
int collectProviders(OSSL_PROVIDER* provider, void* cbdata) {
|
|
static_cast<std::vector<OSSL_PROVIDER*>*>(cbdata)->push_back(provider);
|
|
return 1;
|
|
}
|
|
#endif
|
|
|
|
inline void GetProviders(const FunctionCallbackInfo<Value>& args) {
|
|
Isolate* isolate = args.GetIsolate();
|
|
LocalVector<Value> arr(isolate, 0);
|
|
#ifndef OPENSSL_IS_BORINGSSL
|
|
std::vector<OSSL_PROVIDER*> providers;
|
|
OSSL_PROVIDER_do_all(nullptr, &collectProviders, &providers);
|
|
for (auto provider : providers) {
|
|
arr.push_back(
|
|
String::NewFromUtf8(isolate, OSSL_PROVIDER_get0_name(provider))
|
|
.ToLocalChecked());
|
|
}
|
|
#endif
|
|
args.GetReturnValue().Set(Array::New(isolate, arr.data(), arr.size()));
|
|
}
|
|
|
|
inline void Initialize(Local<Object> exports,
|
|
Local<Value> module,
|
|
Local<Context> context) {
|
|
NODE_SET_METHOD(exports, "getProviders", GetProviders);
|
|
}
|
|
|
|
} // anonymous namespace
|
|
|
|
NODE_MODULE_CONTEXT_AWARE(NODE_GYP_MODULE_NAME, Initialize)
|