/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/crypto/crypto_dsa.cc
111 строк
3 KB
Filip Skokan
src: remove unused DSAKeyExportJob
05 авг 2025, 16:25
Не верифицирован
05 авг 2025, 16:25
a4ce69e
Код
Авторство
О чём код?
#include "crypto/crypto_dsa.h" #include "crypto/crypto_keys.h" #include "crypto/crypto_util.h" #include "async_wrap-inl.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "threadpoolwork-inl.h" #include "v8.h" #include <openssl/bn.h> #include <openssl/dsa.h> #include <cstdio> namespace node { using ncrypto::Dsa; using ncrypto::EVPKeyCtxPointer; using v8::FunctionCallbackInfo; using v8::Int32; using v8::JustVoid; using v8::Local; using v8::Maybe; using v8::Number; using v8::Object; using v8::Uint32; using v8::Value; namespace crypto { EVPKeyCtxPointer DsaKeyGenTraits::Setup(DsaKeyPairGenConfig* params) { auto param_ctx = EVPKeyCtxPointer::NewFromID(EVP_PKEY_DSA); if (!param_ctx || !param_ctx.initForParamgen() || !param_ctx.setDsaParameters( params->params.modulus_bits, params->params.divisor_bits != -1 ? std::optional<int>(params->params.divisor_bits) : std::nullopt)) { return {}; } auto key_params = param_ctx.paramgen(); if (!key_params) return {}; EVPKeyCtxPointer key_ctx = key_params.newCtx(); if (!key_ctx.initForKeygen()) return {}; return key_ctx; } // Input arguments for DsaKeyPairGenJob // 1. CryptoJobMode // 2. Modulus Bits // 3. Divisor Bits // 4. Public Format // 5. Public Type // 6. Private Format // 7. Private Type // 8. Cipher // 9. Passphrase Maybe<void> DsaKeyGenTraits::AdditionalConfig( CryptoJobMode mode, const FunctionCallbackInfo<Value>& args, unsigned int* offset, DsaKeyPairGenConfig* params) { CHECK(args[*offset]->IsUint32()); // modulus bits CHECK(args[*offset + 1]->IsInt32()); // divisor bits params->params.modulus_bits = args[*offset].As<Uint32>()->Value(); params->params.divisor_bits = args[*offset + 1].As<Int32>()->Value(); CHECK_GE(params->params.divisor_bits, -1); *offset += 2; return JustVoid(); } bool GetDsaKeyDetail(Environment* env, const KeyObjectData& key, Local<Object> target) { if (!key) return false; Dsa dsa = key.GetAsymmetricKey(); if (!dsa) return false; size_t modulus_length = dsa.getModulusLength(); size_t divisor_length = dsa.getDivisorLength(); return target ->Set(env->context(), env->modulus_length_string(), Number::New(env->isolate(), static_cast<double>(modulus_length))) .IsJust() && target ->Set(env->context(), env->divisor_length_string(), Number::New(env->isolate(), static_cast<double>(divisor_length))) .IsJust(); } namespace DSAAlg { void Initialize(Environment* env, Local<Object> target) { DsaKeyPairGenJob::Initialize(env, target); } void RegisterExternalReferences(ExternalReferenceRegistry* registry) { DsaKeyPairGenJob::RegisterExternalReferences(registry); } } // namespace DSAAlg } // namespace crypto } // namespace node