]> git.kaiwu.me - njs.git/commitdiff
WebCrypto: sorted njs_webcrypto_alg accoding to njs_webcrypto_alg_t.
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 23 May 2023 05:48:58 +0000 (22:48 -0700)
committerDmitry Volyntsev <xeioex@nginx.com>
Tue, 23 May 2023 05:48:58 +0000 (22:48 -0700)
So njs_webcrypto_alg[alg->type] can be used to get the algorithm name.

external/njs_webcrypto_module.c

index 0397d4efdb09e91918be2b45e52052eb8b8f1f17..7d9c61fe8e68b41a31c7163173848480e9551321 100644 (file)
@@ -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"),