@@ -279,57 +279,39 @@ bool ExportJWKInner(Environment* env,
279279}
280280
281281int GetNidFromName (const char * name) {
282- int nid;
283- if (OPENSSL_strcasecmp (name, " Ed25519" ) == 0 ) {
284- nid = EVP_PKEY_ED25519;
285- } else if (OPENSSL_strcasecmp (name, " Ed448" ) == 0 ) {
286- nid = EVP_PKEY_ED448;
287- } else if (OPENSSL_strcasecmp (name, " X25519" ) == 0 ) {
288- nid = EVP_PKEY_X25519;
289- } else if (OPENSSL_strcasecmp (name, " X448" ) == 0 ) {
290- nid = EVP_PKEY_X448;
282+ static constexpr struct {
283+ const char * name;
284+ int nid;
285+ } kNameToNid [] = {
286+ {" Ed25519" , EVP_PKEY_ED25519},
287+ {" Ed448" , EVP_PKEY_ED448},
288+ {" X25519" , EVP_PKEY_X25519},
289+ {" X448" , EVP_PKEY_X448},
291290#if OPENSSL_WITH_PQC
292- } else if (OPENSSL_strcasecmp (name, " ML-DSA-44" ) == 0 ) {
293- nid = EVP_PKEY_ML_DSA_44;
294- } else if (OPENSSL_strcasecmp (name, " ML-DSA-65" ) == 0 ) {
295- nid = EVP_PKEY_ML_DSA_65;
296- } else if (OPENSSL_strcasecmp (name, " ML-DSA-87" ) == 0 ) {
297- nid = EVP_PKEY_ML_DSA_87;
298- } else if (OPENSSL_strcasecmp (name, " ML-KEM-512" ) == 0 ) {
299- nid = EVP_PKEY_ML_KEM_512;
300- } else if (OPENSSL_strcasecmp (name, " ML-KEM-768" ) == 0 ) {
301- nid = EVP_PKEY_ML_KEM_768;
302- } else if (OPENSSL_strcasecmp (name, " ML-KEM-1024" ) == 0 ) {
303- nid = EVP_PKEY_ML_KEM_1024;
304- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHA2-128f" ) == 0 ) {
305- nid = EVP_PKEY_SLH_DSA_SHA2_128F;
306- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHA2-128s" ) == 0 ) {
307- nid = EVP_PKEY_SLH_DSA_SHA2_128S;
308- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHA2-192f" ) == 0 ) {
309- nid = EVP_PKEY_SLH_DSA_SHA2_192F;
310- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHA2-192s" ) == 0 ) {
311- nid = EVP_PKEY_SLH_DSA_SHA2_192S;
312- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHA2-256f" ) == 0 ) {
313- nid = EVP_PKEY_SLH_DSA_SHA2_256F;
314- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHA2-256s" ) == 0 ) {
315- nid = EVP_PKEY_SLH_DSA_SHA2_256S;
316- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHAKE-128f" ) == 0 ) {
317- nid = EVP_PKEY_SLH_DSA_SHAKE_128F;
318- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHAKE-128s" ) == 0 ) {
319- nid = EVP_PKEY_SLH_DSA_SHAKE_128S;
320- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHAKE-192f" ) == 0 ) {
321- nid = EVP_PKEY_SLH_DSA_SHAKE_192F;
322- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHAKE-192s" ) == 0 ) {
323- nid = EVP_PKEY_SLH_DSA_SHAKE_192S;
324- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHAKE-256f" ) == 0 ) {
325- nid = EVP_PKEY_SLH_DSA_SHAKE_256F;
326- } else if (OPENSSL_strcasecmp (name, " SLH-DSA-SHAKE-256s" ) == 0 ) {
327- nid = EVP_PKEY_SLH_DSA_SHAKE_256S;
291+ {" ML-DSA-44" , EVP_PKEY_ML_DSA_44},
292+ {" ML-DSA-65" , EVP_PKEY_ML_DSA_65},
293+ {" ML-DSA-87" , EVP_PKEY_ML_DSA_87},
294+ {" ML-KEM-512" , EVP_PKEY_ML_KEM_512},
295+ {" ML-KEM-768" , EVP_PKEY_ML_KEM_768},
296+ {" ML-KEM-1024" , EVP_PKEY_ML_KEM_1024},
297+ {" SLH-DSA-SHA2-128f" , EVP_PKEY_SLH_DSA_SHA2_128F},
298+ {" SLH-DSA-SHA2-128s" , EVP_PKEY_SLH_DSA_SHA2_128S},
299+ {" SLH-DSA-SHA2-192f" , EVP_PKEY_SLH_DSA_SHA2_192F},
300+ {" SLH-DSA-SHA2-192s" , EVP_PKEY_SLH_DSA_SHA2_192S},
301+ {" SLH-DSA-SHA2-256f" , EVP_PKEY_SLH_DSA_SHA2_256F},
302+ {" SLH-DSA-SHA2-256s" , EVP_PKEY_SLH_DSA_SHA2_256S},
303+ {" SLH-DSA-SHAKE-128f" , EVP_PKEY_SLH_DSA_SHAKE_128F},
304+ {" SLH-DSA-SHAKE-128s" , EVP_PKEY_SLH_DSA_SHAKE_128S},
305+ {" SLH-DSA-SHAKE-192f" , EVP_PKEY_SLH_DSA_SHAKE_192F},
306+ {" SLH-DSA-SHAKE-192s" , EVP_PKEY_SLH_DSA_SHAKE_192S},
307+ {" SLH-DSA-SHAKE-256f" , EVP_PKEY_SLH_DSA_SHAKE_256F},
308+ {" SLH-DSA-SHAKE-256s" , EVP_PKEY_SLH_DSA_SHAKE_256S},
328309#endif
329- } else {
330- nid = NID_undef;
310+ };
311+ for (const auto & entry : kNameToNid ) {
312+ if (StringEqualNoCase (name, entry.name )) return entry.nid ;
331313 }
332- return nid ;
314+ return NID_undef ;
333315}
334316} // namespace
335317
@@ -885,7 +867,7 @@ void KeyObjectHandle::InitEDRaw(const FunctionCallbackInfo<Value>& args) {
885867 break ;
886868 }
887869 default :
888- UNREACHABLE ( );
870+ return args. GetReturnValue (). Set ( false );
889871 }
890872
891873 args.GetReturnValue ().Set (true );
@@ -936,7 +918,7 @@ void KeyObjectHandle::InitPqcRaw(const FunctionCallbackInfo<Value>& args) {
936918 : EVPKeyPointer::NewRawPublic;
937919 break ;
938920 default :
939- UNREACHABLE ( );
921+ return args. GetReturnValue (). Set ( false );
940922 }
941923
942924 auto pkey = fn (id,
0 commit comments