NJS_ALGORITHM_ECDH,
NJS_ALGORITHM_PBKDF2,
NJS_ALGORITHM_HKDF,
+ NJS_ALGORITHM_MAX,
} njs_webcrypto_alg_t;
NJS_HASH_SHA256,
NJS_HASH_SHA384,
NJS_HASH_SHA512,
+ NJS_HASH_MAX,
} njs_webcrypto_hash_t;
#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,
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,
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,
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
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"),