From: Dmitry Volyntsev Date: Tue, 23 May 2023 05:48:58 +0000 (-0700) Subject: WebCrypto: sorted njs_webcrypto_alg accoding to njs_webcrypto_alg_t. X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/static/gitweb.js?a=commitdiff_plain;h=ffdd482ad8d6026763ef6fd7a1c4f3c2b7986109;p=njs.git WebCrypto: sorted njs_webcrypto_alg accoding to njs_webcrypto_alg_t. So njs_webcrypto_alg[alg->type] can be used to get the algorithm name. --- diff --git a/external/njs_webcrypto_module.c b/external/njs_webcrypto_module.c index 0397d4ef..7d9c61fe 100644 --- a/external/njs_webcrypto_module.c +++ b/external/njs_webcrypto_module.c @@ -45,6 +45,7 @@ typedef enum { NJS_ALGORITHM_ECDH, NJS_ALGORITHM_PBKDF2, NJS_ALGORITHM_HKDF, + NJS_ALGORITHM_MAX, } njs_webcrypto_alg_t; @@ -54,6 +55,7 @@ typedef enum { NJS_HASH_SHA256, NJS_HASH_SHA384, NJS_HASH_SHA512, + NJS_HASH_MAX, } njs_webcrypto_hash_t; @@ -152,6 +154,28 @@ static njs_webcrypto_entry_t njs_webcrypto_alg[] = { #define njs_webcrypto_algorithm(type, usage_mask, fmt_mask) \ (uintptr_t) & (njs_webcrypto_algorithm_t) { type, usage_mask, fmt_mask } + { + njs_str("RSASSA-PKCS1-v1_5"), + njs_webcrypto_algorithm(NJS_ALGORITHM_RSASSA_PKCS1_v1_5, + NJS_KEY_USAGE_SIGN | + NJS_KEY_USAGE_VERIFY | + NJS_KEY_USAGE_GENERATE_KEY, + NJS_KEY_FORMAT_PKCS8 | + NJS_KEY_FORMAT_SPKI | + NJS_KEY_FORMAT_JWK) + }, + + { + njs_str("RSA-PSS"), + njs_webcrypto_algorithm(NJS_ALGORITHM_RSA_PSS, + NJS_KEY_USAGE_SIGN | + NJS_KEY_USAGE_VERIFY | + NJS_KEY_USAGE_GENERATE_KEY, + NJS_KEY_FORMAT_PKCS8 | + NJS_KEY_FORMAT_SPKI | + NJS_KEY_FORMAT_JWK) + }, + { njs_str("RSA-OAEP"), njs_webcrypto_algorithm(NJS_ALGORITHM_RSA_OAEP, @@ -165,6 +189,16 @@ static njs_webcrypto_entry_t njs_webcrypto_alg[] = { NJS_KEY_FORMAT_JWK) }, + { + njs_str("HMAC"), + njs_webcrypto_algorithm(NJS_ALGORITHM_HMAC, + NJS_KEY_USAGE_GENERATE_KEY | + NJS_KEY_USAGE_SIGN | + NJS_KEY_USAGE_VERIFY, + NJS_KEY_FORMAT_RAW | + NJS_KEY_FORMAT_JWK) + }, + { njs_str("AES-GCM"), njs_webcrypto_algorithm(NJS_ALGORITHM_AES_GCM, @@ -201,28 +235,6 @@ static njs_webcrypto_entry_t njs_webcrypto_alg[] = { NJS_KEY_FORMAT_JWK) }, - { - njs_str("RSASSA-PKCS1-v1_5"), - njs_webcrypto_algorithm(NJS_ALGORITHM_RSASSA_PKCS1_v1_5, - NJS_KEY_USAGE_SIGN | - NJS_KEY_USAGE_VERIFY | - NJS_KEY_USAGE_GENERATE_KEY, - NJS_KEY_FORMAT_PKCS8 | - NJS_KEY_FORMAT_SPKI | - NJS_KEY_FORMAT_JWK) - }, - - { - njs_str("RSA-PSS"), - njs_webcrypto_algorithm(NJS_ALGORITHM_RSA_PSS, - NJS_KEY_USAGE_SIGN | - NJS_KEY_USAGE_VERIFY | - NJS_KEY_USAGE_GENERATE_KEY, - NJS_KEY_FORMAT_PKCS8 | - NJS_KEY_FORMAT_SPKI | - NJS_KEY_FORMAT_JWK) - }, - { njs_str("ECDSA"), njs_webcrypto_algorithm(NJS_ALGORITHM_ECDSA, @@ -261,16 +273,6 @@ static njs_webcrypto_entry_t njs_webcrypto_alg[] = { NJS_KEY_FORMAT_RAW) }, - { - njs_str("HMAC"), - njs_webcrypto_algorithm(NJS_ALGORITHM_HMAC, - NJS_KEY_USAGE_GENERATE_KEY | - NJS_KEY_USAGE_SIGN | - NJS_KEY_USAGE_VERIFY, - NJS_KEY_FORMAT_RAW | - NJS_KEY_FORMAT_JWK) - }, - { njs_null_str, 0 @@ -335,7 +337,7 @@ static njs_webcrypto_entry_t njs_webcrypto_alg_hash[] = { static njs_str_t - njs_webcrypto_alg_name[NJS_ALGORITHM_HMAC + 1][NJS_HASH_SHA512 + 1] = { + njs_webcrypto_alg_name[NJS_ALGORITHM_HMAC + 1][NJS_HASH_MAX] = { { njs_null_str, njs_str("RS1"),