#ifndef SRC_CRYPTO_CRYPTO_DSA_H_ #define SRC_CRYPTO_CRYPTO_DSA_H_ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #include "crypto/crypto_keys.h" #include "crypto/crypto_keygen.h" #include "crypto/crypto_util.h" #include "env.h" #include "memory_tracker.h" #include "v8.h" namespace node::crypto { struct DsaKeyPairParams final : public MemoryRetainer { unsigned int modulus_bits; int divisor_bits; SET_NO_MEMORY_INFO() SET_MEMORY_INFO_NAME(DsaKeyPairParams) SET_SELF_SIZE(DsaKeyPairParams) }; using DsaKeyPairGenConfig = KeyPairGenConfig; struct DsaKeyGenTraits final { using AdditionalParameters = DsaKeyPairGenConfig; static constexpr const char* JobName = "DsaKeyPairGenJob"; static ncrypto::EVPKeyCtxPointer Setup(DsaKeyPairGenConfig* params); static v8::Maybe AdditionalConfig( CryptoJobMode mode, const v8::FunctionCallbackInfo& args, unsigned int* offset, DsaKeyPairGenConfig* params); }; using DsaKeyPairGenJob = KeyGenJob>; bool GetDsaKeyDetail(Environment* env, const KeyObjectData& key, v8::Local target); namespace DSAAlg { void Initialize(Environment* env, v8::Local target); void RegisterExternalReferences(ExternalReferenceRegistry* registry); } // namespace DSAAlg } // namespace node::crypto #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #endif // SRC_CRYPTO_CRYPTO_DSA_H_