Allow streaming unauthenticated data before its integrity has been checked. This would allow the application to
process large streams while limiting memory usage by releasing the decrypted chunks as soon as possible
and deferring checking their integrity until the decrypted stream has been read in full.
-NB: this setting does not apply to AEAD-encrypted data, where the AEAD data chunk is never released until integrity is confirmed.
@@ -967,119 +979,7 @@ and deferring checking their integrity until the decrypted stream has been read
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
@@ -3604,7 +3731,7 @@ Iteration Count Byte for S2K (String to Key)
Source:
@@ -3716,7 +3843,7 @@ Iteration Count Byte for S2K (String to Key)
Source:
@@ -3734,15 +3861,14 @@ Iteration Count Byte for S2K (String to Key)
-(static) useIndutnyElliptic
+(static) useEllipticFallback
-
Whether to use the indutny/elliptic library for curves (other than Curve25519) that are not supported by the available native crypto API.
-When false, certain standard curves will not be supported (depending on the platform).
-Note: the indutny/elliptic curve library is not designed to be constant time.
+
Whether to use the the noble-curves library for curves (other than Curve25519) that are not supported by the available native crypto API.
+When false, certain standard curves will not be supported (depending on the platform).
@@ -3777,7 +3903,7 @@ Note: the indutny/elliptic curve library is not designed to be constant time.
- useIndutnyElliptic
+ useEllipticFallback
@@ -3834,7 +3960,7 @@ Note: the indutny/elliptic curve library is not designed to be constant time.Source:
@@ -3852,13 +3978,13 @@ Note: the indutny/elliptic curve library is not designed to be constant time.(static) v5Keys
+(static) v6Keys
-
Use V5 keys.
+
Use v6 keys.
Note: not all OpenPGP implementations are compatible with this option.
FUTURE OPENPGP.JS VERSIONS MAY BREAK COMPATIBILITY WHEN USING THIS OPTION
@@ -3895,7 +4021,7 @@ Note: not all OpenPGP implementations are compatible with this option.
- v5Keys
+ v6Keys
@@ -3952,7 +4078,7 @@ Note: not all OpenPGP implementations are compatible with this option.
Source:
@@ -4064,7 +4190,7 @@ Note: not all OpenPGP implementations are compatible with this option.
Source:
@@ -4098,13 +4224,13 @@ Note: not all OpenPGP implementations are compatible with this option.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto.html b/docs/module-crypto.html
new file mode 100644
index 00000000..6360dce9
--- /dev/null
+++ b/docs/module-crypto.html
@@ -0,0 +1,184 @@
+
+
+
+
+ JSDoc: Module: crypto
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Provides access to all cryptographic primitives used in OpenPGP.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_aes_kw.html b/docs/module-crypto_aes_kw.html
new file mode 100644
index 00000000..2150278b
--- /dev/null
+++ b/docs/module-crypto_aes_kw.html
@@ -0,0 +1,553 @@
+
+
+
+
+ JSDoc: Module: crypto/aes_kw
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/aes_kw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Implementation of RFC 3394 AES Key Wrap & Key Unwrap funcions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (static) unwrap(key, data) → {Uint8Array}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ key
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ data
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Throws:
+
+
+
+
+
+
+Error
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) wrap(key, data) → {Uint8Array}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ key
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_cipher.html b/docs/module-crypto_cipher.html
new file mode 100644
index 00000000..089085be
--- /dev/null
+++ b/docs/module-crypto_cipher.html
@@ -0,0 +1,1430 @@
+
+
+
+
+ JSDoc: Module: crypto/cipher
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/cipher
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Symmetric cryptography functions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (static) aes128(key) → {Object}
+
+
+
+
+
+
+
+
AES-128 encryption and decryption (ID 7)
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ key
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+ 128-bit key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) aes192(key) → {Object}
+
+
+
+
+
+
+
+
AES-128 Block Cipher (ID 8)
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ key
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+ 192-bit key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) aes256(key) → {Object}
+
+
+
+
+
+
+
+
AES-128 Block Cipher (ID 9)
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ key
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+ 256-bit key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) blowfish(key) → {Object}
+
+
+
+
+
+
+
+
Blowfish Block Cipher (ID 4)
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ key
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+ 128-bit key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) cast5(key) → {Object}
+
+
+
+
+
+
+
+
CAST-128 Block Cipher (ID 3)
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ key
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+ 128-bit key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) idea()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Throws:
+
+
+
+
+
+
+Error
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) tripledes(key) → {Object}
+
+
+
+
+
+
+
+
Triple DES Block Cipher (ID 2)
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ key
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+ 192-bit key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) twofish(key) → {Object}
+
+
+
+
+
+
+
+
Twofish Block Cipher (ID 10)
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ key
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+ 256-bit key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_cmac.html b/docs/module-crypto_cmac.html
new file mode 100644
index 00000000..31aaadf1
--- /dev/null
+++ b/docs/module-crypto_cmac.html
@@ -0,0 +1,413 @@
+
+
+
+
+ JSDoc: Module: crypto/cmac
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/cmac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This module implements AES-CMAC on top of
+native AES-CBC using either the WebCrypto API or Node.js' crypto API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+(inner, constant) blockLength
+
+
+
+
+
+
This implementation of CMAC is based on the description of OMAC in
+http://web.cs.ucdavis.edu/~rogaway/papers/eax.pdf. As per that
+document:
+
We have made a small modification to the OMAC algorithm as it was
+originally presented, changing one of its two constants.
+Specifically, the constant 4 at line 85 was the constant 1/2 (the
+multiplicative inverse of 2) in the original definition of OMAC [14].
+The OMAC authors indicate that they will promulgate this modification
+[15], which slightly simplifies implementations.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (inner) rightXORMut(data, padding)
+
+
+
+
+
+
+
+
xor padding
into the end of data
. This function implements "the
+operation xor→ [which] xors the shorter string into the end of longer
+one". Since data is always as least as long as padding, we can
+simplify the implementation.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ padding
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_crypto.html b/docs/module-crypto_crypto.html
new file mode 100644
index 00000000..a0105d17
--- /dev/null
+++ b/docs/module-crypto_crypto.html
@@ -0,0 +1,3000 @@
+
+
+
+
+ JSDoc: Module: crypto/crypto
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/crypto
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Provides functions for asymmetric encryption and decryption as
+well as key generation and parameter handling for all public-key cryptosystems.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, static) generateParams(algo, bits, oid) → {Promise.<{publicParams: {Object}, privateParams: {Object}}>}
+
+
+
+
+
+
+
+
Generate algorithm-specific key parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ The public key algorithm
+
+
+
+
+
+
+ bits
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ Bit length for RSA keys
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Object identifier for ECC keys
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
The parameters referenced by name.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{publicParams: {Object}, privateParams: {Object}}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) generateSessionKey(algo) → {Uint8Array}
+
+
+
+
+
+
+
+
Generating a session key for the specified symmetric algorithm
+See RFC 4880 9.2 for algorithms.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.symmetric
+
+
+
+
+
+
+
+
+
+ Symmetric encryption algorithm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Random bytes as a string to be used as a key.
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) getAEADMode(algo) → {Object}
+
+
+
+
+
+
+
+
Get implementation of the given AEAD mode
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+enums.aead
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Throws:
+
+
+
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Error
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) getCurvePayloadSize(algo, oidopt )
+
+
+
+
+
+
+
+
Get encoded secret size for a given elliptic algo
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+ Attributes
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alrogithm identifier
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+ <optional>
+
+
+
+
+
+
+
+
+
+
+ curve OID if needed by algo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) getPreferredCurveHashAlgo(algo, oidopt )
+
+
+
+
+
+
+
+
Get preferred signing hash algo for a given elliptic algo
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+ Attributes
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ alrogithm identifier
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+ <optional>
+
+
+
+
+
+
+
+
+
+
+ curve OID if needed by algo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) getPrefixRandom(algo) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Generates a random byte prefix for the specified algorithm
+See RFC 4880 9.2 for algorithms.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.symmetric
+
+
+
+
+
+
+
+
+
+ Symmetric encryption algorithm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Random bytes with length equal to the block size of the cipher, plus the last two bytes repeated.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) parseEncSessionKeyParams(algo, bytes) → {Object}
+
+
+
+
+
+
+
+
Returns the types comprising the encrypted session key of an algorithm
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ The key algorithm
+
+
+
+
+
+
+ bytes
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The key material to parse
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
The session key parameters referenced by name.
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) parsePrivateKeyParams(algo, bytes, publicParams) → {Object}
+
+
+
+
+
+
+
+
Parse private key material in binary form to get the key parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ The key algorithm
+
+
+
+
+
+
+ bytes
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The key material to parse
+
+
+
+
+
+
+ publicParams
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ (ECC only) public params, needed to format some private params
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Number of read bytes plus the key parameters referenced by name.
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) parsePublicKeyParams(algo, bytes) → {Object}
+
+
+
+
+
+
+
+
Parse public key material in binary form to get the key parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ The key algorithm
+
+
+
+
+
+
+ bytes
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The key material to parse
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Number of read bytes plus key parameters referenced by name.
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) publicKeyDecrypt(algo, publicKeyParams, privateKeyParams, sessionKeyParams, fingerprint, randomPayloadopt ) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Decrypts data using specified algorithm and private key parameters.
+See RFC 4880 5.5.3
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+ Attributes
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Public key algorithm
+
+
+
+
+
+
+ publicKeyParams
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Algorithm-specific public key parameters
+
+
+
+
+
+
+ privateKeyParams
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Algorithm-specific private key parameters
+
+
+
+
+
+
+ sessionKeyParams
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encrypted session key parameters
+
+
+
+
+
+
+ fingerprint
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Recipient fingerprint
+
+
+
+
+
+
+ randomPayload
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+ <optional>
+
+
+
+
+
+
+
+
+
+
+ Data to return on decryption error, instead of throwing
+(needed for constant-time processing in RSA and ElGamal)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Throws:
+
+
+
+
+
+
+
on sensitive decryption error, unless randomPayload
is given
+
+
+
+
+
+
+ Type
+
+
+
+Error
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) publicKeyEncrypt(keyAlgo, symmetricAlgo, publicParams, data, fingerprint) → {Promise.<Object>}
+
+
+
+
+
+
+
+
Encrypts data using specified algorithm and public key parameters.
+See RFC 4880 9.1 for public key algorithms.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ keyAlgo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Public key algorithm
+
+
+
+
+
+
+ symmetricAlgo
+
+
+
+
+
+module:enums.symmetric
+
+
+
+
+
+
+
+
+
+ Cipher algorithm
+
+
+
+
+
+
+ publicParams
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ Algorithm-specific public key parameters
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Session key data to be encrypted
+
+
+
+
+
+
+ fingerprint
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient fingerprint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Encrypted session key parameters.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Object>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) serializeParams(algo, params) → {Uint8Array}
+
+
+
+
+
+
+
+
Convert params to MPI and serializes them in the proper order
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ The public key algorithm
+
+
+
+
+
+
+ params
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ The key parameters indexed by name
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
The array containing the MPIs.
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(algo, publicParams, privateParams) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate algorithm-specific key parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ The public key algorithm
+
+
+
+
+
+
+ publicParams
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ Algorithm-specific public key parameters
+
+
+
+
+
+
+ privateParams
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ Algorithm-specific private key parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether the parameters are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (inner) checkSupportedCurve(oid)
+
+
+
+
+
+
+
+
Check whether the given curve OID is supported
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ EC object identifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Throws:
+
+
+
+
+
+
+
if curve is not supported
+
+
+
+
+
+
+ Type
+
+
+
+UnsupportedError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_hash.html b/docs/module-crypto_hash.html
new file mode 100644
index 00000000..1e4de57d
--- /dev/null
+++ b/docs/module-crypto_hash.html
@@ -0,0 +1,596 @@
+
+
+
+
+ JSDoc: Module: crypto/hash
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Provides an interface to hashing functions available in Node.js or external libraries.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+(static) md5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (static) digest(algo, data) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Create a hash on the specified data using the specified algorithm
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm type (see RFC 4880 9.4 )
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Data to be hashed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) getHashByteLength(algo) → {Integer}
+
+
+
+
+
+
+
+
Returns the hash size in bytes of the specified hash algorithm type
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm type (See RFC 4880 9.4 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Size in bytes of the resulting hash.
+
+
+
+
+
+
+ Type
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_hkdf.html b/docs/module-crypto_hkdf.html
new file mode 100644
index 00000000..08e03208
--- /dev/null
+++ b/docs/module-crypto_hkdf.html
@@ -0,0 +1,167 @@
+
+
+
+
+ JSDoc: Module: crypto/hkdf
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/hkdf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This module implements HKDF using either the WebCrypto API or Node.js' crypto API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_mode.html b/docs/module-crypto_mode.html
new file mode 100644
index 00000000..766568b7
--- /dev/null
+++ b/docs/module-crypto_mode.html
@@ -0,0 +1,439 @@
+
+
+
+
+ JSDoc: Module: crypto/mode
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+(static) cfb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(static) eax
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(static) gcm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(static) ocb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_mode_cfb.html b/docs/module-crypto_mode_cfb.html
new file mode 100644
index 00000000..2aa1d209
--- /dev/null
+++ b/docs/module-crypto_mode_cfb.html
@@ -0,0 +1,548 @@
+
+
+
+
+ JSDoc: Module: crypto/mode/cfb
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/mode/cfb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (static) decrypt(algo, key, ciphertext, iv)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+enums.symmetric
+
+
+
+
+
+
+
+
+
+ block cipher algorithm
+
+
+
+
+
+
+ key
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ciphertext
+
+
+
+
+
+MaybeStream.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ iv
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) encrypt(algo, key, plaintext, iv, config)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+enums.symmetric
+
+
+
+
+
+
+
+
+
+ block cipher algorithm
+
+
+
+
+
+
+ key
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ plaintext
+
+
+
+
+
+MaybeStream.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ iv
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ config
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ full configuration, defaults to openpgp.config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_mode_eax.html b/docs/module-crypto_mode_eax.html
new file mode 100644
index 00000000..76aa3551
--- /dev/null
+++ b/docs/module-crypto_mode_eax.html
@@ -0,0 +1,748 @@
+
+
+
+
+ JSDoc: Module: crypto/mode/eax
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/mode/eax
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This module implements AES-EAX en/decryption on top of
+native AES-CTR using either the WebCrypto API or Node.js' crypto API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (inner) decrypt(ciphertext, nonce, adata) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Decrypt ciphertext input.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ ciphertext
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The ciphertext input to be decrypted
+
+
+
+
+
+
+ nonce
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The nonce (16 bytes)
+
+
+
+
+
+
+ adata
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Associated data to verify
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
The plaintext output.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) EAX(cipher, key)
+
+
+
+
+
+
+
+
Class to en/decrypt using EAX mode.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ cipher
+
+
+
+
+
+enums.symmetric
+
+
+
+
+
+
+
+
+
+ The symmetric cipher algorithm to use
+
+
+
+
+
+
+ key
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The encryption key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (inner) encrypt(plaintext, nonce, adata) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Encrypt plaintext input.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ plaintext
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The cleartext input to be encrypted
+
+
+
+
+
+
+ nonce
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The nonce (16 bytes)
+
+
+
+
+
+
+ adata
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Associated data to sign
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
The ciphertext output.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_mode_gcm.html b/docs/module-crypto_mode_gcm.html
new file mode 100644
index 00000000..c9911464
--- /dev/null
+++ b/docs/module-crypto_mode_gcm.html
@@ -0,0 +1,334 @@
+
+
+
+
+ JSDoc: Module: crypto/mode/gcm
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/mode/gcm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This module wraps native AES-GCM en/decryption for both
+the WebCrypto api as well as node.js' crypto api.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, inner) GCM(cipher, key)
+
+
+
+
+
+
+
+
Class to en/decrypt using GCM mode.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ cipher
+
+
+
+
+
+enums.symmetric
+
+
+
+
+
+
+
+
+
+ The symmetric cipher algorithm to use
+
+
+
+
+
+
+ key
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The encryption key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_mode_ocb.html b/docs/module-crypto_mode_ocb.html
new file mode 100644
index 00000000..19dceb00
--- /dev/null
+++ b/docs/module-crypto_mode_ocb.html
@@ -0,0 +1,747 @@
+
+
+
+
+ JSDoc: Module: crypto/mode/ocb
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/mode/ocb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This module implements AES-OCB en/decryption.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (inner) decrypt(ciphertext, nonce, adata) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Decrypt ciphertext input.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ ciphertext
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The ciphertext input to be decrypted
+
+
+
+
+
+
+ nonce
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The nonce (15 bytes)
+
+
+
+
+
+
+ adata
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Associated data to sign
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
The ciphertext output.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (inner) encrypt(plaintext, nonce, adata) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Encrypt plaintext input.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ plaintext
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The cleartext input to be encrypted
+
+
+
+
+
+
+ nonce
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The nonce (15 bytes)
+
+
+
+
+
+
+ adata
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Associated data to sign
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
The ciphertext output.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) OCB(cipher, key)
+
+
+
+
+
+
+
+
Class to en/decrypt using OCB mode.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ cipher
+
+
+
+
+
+enums.symmetric
+
+
+
+
+
+
+
+
+
+ The symmetric cipher algorithm to use
+
+
+
+
+
+
+ key
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The encryption key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_pkcs1.html b/docs/module-crypto_pkcs1.html
new file mode 100644
index 00000000..2a8616b5
--- /dev/null
+++ b/docs/module-crypto_pkcs1.html
@@ -0,0 +1,882 @@
+
+
+
+
+ JSDoc: Module: crypto/pkcs1
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/pkcs1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Provides EME-PKCS1-v1_5 encoding and decoding and EMSA-PKCS1-v1_5 encoding function
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+
+
+
+
+
+
+
ASN1 object identifiers for hashes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (static) emeDecode(encoded, randomPayload) → {Uint8Array}
+
+
+
+
+
+
+
+
Decode a EME-PKCS1-v1_5 padded message
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ encoded
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Encoded message bytes
+
+
+
+
+
+
+ randomPayload
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Data to return in case of decoding error (needed for constant-time processing)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Throws:
+
+
+
+
+
+
+
on decoding failure, unless randomPayload
is provided
+
+
+
+
+
+
+ Type
+
+
+
+Error
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
decoded data or randomPayload
(on error, if given)
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) emeEncode(message, keyLength) → {Uint8Array}
+
+
+
+
+
+
+
+
Create a EME-PKCS1-v1_5 padded message
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ message
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message to be encoded
+
+
+
+
+
+
+ keyLength
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ The length in octets of the key modulus
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
EME-PKCS1 padded message.
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) emsaEncode(algo, hashed, emLen) → {Uint8Array}
+
+
+
+
+
+
+
+
Create a EMSA-PKCS1-v1_5 padded message
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ Hash algorithm type used
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message to be encoded
+
+
+
+
+
+
+ emLen
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ Intended length in octets of the encoded message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key.html b/docs/module-crypto_public_key.html
new file mode 100644
index 00000000..c052971f
--- /dev/null
+++ b/docs/module-crypto_public_key.html
@@ -0,0 +1,439 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Asymmetric cryptography functions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+(static) dsa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(static) elgamal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(static) elliptic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(static) rsa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key_dsa.html b/docs/module-crypto_public_key_dsa.html
new file mode 100644
index 00000000..aa017bee
--- /dev/null
+++ b/docs/module-crypto_public_key_dsa.html
@@ -0,0 +1,1084 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key/dsa
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key/dsa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A Digital signature algorithm implementation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+(inner) x
+
+
+
+
+
+
Re-derive public key y' = g ** x mod p
+Expect y == y'
+
Blinded exponentiation computes g**{rq + x} to compare to y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, static) sign(hashAlgo, hashed, g, p, q, x) → {Promise.<{r: Uint8Array, s: Uint8Array}>}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ g
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ p
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ x
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{r: Uint8Array, s: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(p, q, g, y, x) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate DSA parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ p
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ DSA prime
+
+
+
+
+
+
+ q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ DSA group order
+
+
+
+
+
+
+ g
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ DSA sub-group generator
+
+
+
+
+
+
+ y
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ DSA public key
+
+
+
+
+
+
+ x
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ DSA private key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) verify(hashAlgo, r, s, hashed, g, p, q, y) → {boolean}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ r
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ s
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ g
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ p
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ y
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key_elgamal.html b/docs/module-crypto_public_key_elgamal.html
new file mode 100644
index 00000000..a4e8c423
--- /dev/null
+++ b/docs/module-crypto_public_key_elgamal.html
@@ -0,0 +1,981 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key/elgamal
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key/elgamal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+(inner) x
+
+
+
+
+
+
Re-derive public key y' = g ** x mod p
+Expect y == y'
+
Blinded exponentiation computes g**{r(p-1) + x} to compare to y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, static) decrypt(c1, c2, p, x, randomPayload) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
ElGamal Encryption function
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ c1
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ c2
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ p
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ x
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ randomPayload
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Data to return on unpadding error, instead of throwing
+(needed for constant-time processing)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Throws:
+
+
+
+
+
+
+
on decryption error, unless randomPayload
is given
+
+
+
+
+
+
+ Type
+
+
+
+Error
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) encrypt(data, p, g, y) → {Promise.<{c1: Uint8Array, c2: Uint8Array}>}
+
+
+
+
+
+
+
+
ElGamal Encryption function
+Note that in OpenPGP, the message needs to be padded with PKCS#1 (same as RSA)
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ To be padded and encrypted
+
+
+
+
+
+
+ p
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ g
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ y
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{c1: Uint8Array, c2: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(p, g, y, x) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate ElGamal parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ p
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ElGamal prime
+
+
+
+
+
+
+ g
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ElGamal group generator
+
+
+
+
+
+
+ y
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ElGamal public key
+
+
+
+
+
+
+ x
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ElGamal private exponent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key_elliptic.html b/docs/module-crypto_public_key_elliptic.html
new file mode 100644
index 00000000..f116206b
--- /dev/null
+++ b/docs/module-crypto_public_key_elliptic.html
@@ -0,0 +1,180 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key/elliptic
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key/elliptic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Functions to access Elliptic Curve Cryptography
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key_elliptic_curve.html b/docs/module-crypto_public_key_elliptic_curve.html
new file mode 100644
index 00000000..b925f144
--- /dev/null
+++ b/docs/module-crypto_public_key_elliptic_curve.html
@@ -0,0 +1,1149 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key/elliptic/curve
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key/elliptic/curve
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Wrapper of an instance of an Elliptic Curve
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (inner) getPreferredHashAlgo(oid) → {enums.hash}
+
+
+
+
+
+
+
+
Get preferred hash algo to use with the given curve
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ curve oid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+enums.hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (inner) jwkToRawPublic(jwk) → {Uint8Array}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ jwk
+
+
+
+
+
+JsonWebKey
+
+
+
+
+
+
+
+
+
+ key for conversion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (inner) privateToJWK(payloadSize, name, publicKey, privateKey) → {JsonWebKey}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ payloadSize
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ ec payload size
+
+
+
+
+
+
+ name
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+ curve name
+
+
+
+
+
+
+ publicKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ public key
+
+
+
+
+
+
+ privateKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ private key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Private key in jwk format.
+
+
+
+
+
+
+ Type
+
+
+
+JsonWebKey
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (inner) rawPublicToJWK(payloadSize, name, publicKey) → {JsonWebKey}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ payloadSize
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ ec payload size
+
+
+
+
+
+
+ name
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+ curve name
+
+
+
+
+
+
+ publicKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ public key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Public key in jwk format.
+
+
+
+
+
+
+ Type
+
+
+
+JsonWebKey
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) validateStandardParams(algo, oid, Q, d) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate ECDH and ECDSA parameters
+Not suitable for EdDSA (different secret key format)
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ EC algorithm, to filter supported curves
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ EC object identifier
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ EC public point
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ EC secret scalar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key_elliptic_ecdh.html b/docs/module-crypto_public_key_elliptic_ecdh.html
new file mode 100644
index 00000000..8c83d512
--- /dev/null
+++ b/docs/module-crypto_public_key_elliptic_ecdh.html
@@ -0,0 +1,6011 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key/elliptic/ecdh
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key/elliptic/ecdh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Key encryption and decryption for RFC 6637 ECDH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, static) decrypt(oid, kdfParams, V, C, Q, d, fingerprint) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Decrypt and unwrap the value derived from session key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ kdfParams
+
+
+
+
+
+module:type/kdf_params
+
+
+
+
+
+
+
+
+
+ KDF params including cipher and algorithm to use
+
+
+
+
+
+
+ V
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public part of ephemeral key
+
+
+
+
+
+
+ C
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Encrypted and wrapped value derived from session key
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient private key
+
+
+
+
+
+
+ fingerprint
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient fingerprint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Value derived from session key.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) decrypt(algo, ephemeralPublicKey, wrappedKey,, A, k) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Decrypt and unwrap the session key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+ ephemeralPublicKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ (K_A)
+
+
+
+
+
+
+ wrappedKey,
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key (K_b), needed for KDF
+
+
+
+
+
+
+ k
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient secret key (b)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
decrypted session key data
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) encrypt(oid, kdfParams, data, Q, fingerprint) → {Promise.<{publicKey: Uint8Array, wrappedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Encrypt and wrap a session key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ kdfParams
+
+
+
+
+
+module:type/kdf_params
+
+
+
+
+
+
+
+
+
+ KDF params including cipher and algorithm to use
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Unpadded session key data
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+ fingerprint
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient fingerprint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{publicKey: Uint8Array, wrappedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) encrypt(algo, data, recipientA) → {Promise.<{ephemeralPublicKey: Uint8Array, wrappedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Wrap and encrypt a session key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ session key data to be encrypted
+
+
+
+
+
+
+ recipientA
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key (K_B)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
ephemeral public key (K_A) and encrypted key
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{ephemeralPublicKey: Uint8Array, wrappedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) generate(algo) → {Promise.<{A: Uint8Array, k: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDH key for Montgomery curves
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{A: Uint8Array, k: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(oid, Q, d) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate ECDH parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ECDH public point
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ECDH secret scalar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(algo, A, k) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate ECDH parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+ A
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ECDH public point
+
+
+
+
+
+
+ k
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ECDH secret scalar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) genPrivateEphemeralKey(curve, V, Q, d) → {Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE secret from private key and public part of ephemeral key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ V
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public part of ephemeral key
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient private key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) genPublicEphemeralKey(curve, Q) → {Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE ephemeral key and secret from public key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) nodePrivateEphemeralKey(curve, V, d) → {Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE secret from private key and public part of ephemeral key using nodeCrypto
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ V
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public part of ephemeral key
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient private key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) nodePublicEphemeralKey(curve, Q) → {Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE ephemeral key and secret from public key using nodeCrypto
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) webPrivateEphemeralKey(curve, V, Q, d) → {Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE secret from private key and public part of ephemeral key using webCrypto
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ V
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public part of ephemeral key
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient private key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) webPublicEphemeralKey(curve, Q) → {Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE ephemeral key and secret from public key using webCrypto
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Key encryption and decryption for RFC 6637 ECDH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, static) decrypt(oid, kdfParams, V, C, Q, d, fingerprint) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Decrypt and unwrap the value derived from session key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ kdfParams
+
+
+
+
+
+module:type/kdf_params
+
+
+
+
+
+
+
+
+
+ KDF params including cipher and algorithm to use
+
+
+
+
+
+
+ V
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public part of ephemeral key
+
+
+
+
+
+
+ C
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Encrypted and wrapped value derived from session key
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient private key
+
+
+
+
+
+
+ fingerprint
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient fingerprint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Value derived from session key.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) decrypt(algo, ephemeralPublicKey, wrappedKey,, A, k) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
Decrypt and unwrap the session key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+ ephemeralPublicKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ (K_A)
+
+
+
+
+
+
+ wrappedKey,
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key (K_b), needed for KDF
+
+
+
+
+
+
+ k
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient secret key (b)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
decrypted session key data
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) encrypt(oid, kdfParams, data, Q, fingerprint) → {Promise.<{publicKey: Uint8Array, wrappedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Encrypt and wrap a session key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ kdfParams
+
+
+
+
+
+module:type/kdf_params
+
+
+
+
+
+
+
+
+
+ KDF params including cipher and algorithm to use
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Unpadded session key data
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+ fingerprint
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient fingerprint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{publicKey: Uint8Array, wrappedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) encrypt(algo, data, recipientA) → {Promise.<{ephemeralPublicKey: Uint8Array, wrappedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Wrap and encrypt a session key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ session key data to be encrypted
+
+
+
+
+
+
+ recipientA
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key (K_B)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
ephemeral public key (K_A) and encrypted key
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{ephemeralPublicKey: Uint8Array, wrappedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) generate(algo) → {Promise.<{A: Uint8Array, k: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDH key for Montgomery curves
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{A: Uint8Array, k: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(oid, Q, d) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate ECDH parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ECDH public point
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ECDH secret scalar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(algo, A, k) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate ECDH parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+ A
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ECDH public point
+
+
+
+
+
+
+ k
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ECDH secret scalar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) genPrivateEphemeralKey(curve, V, Q, d) → {Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE secret from private key and public part of ephemeral key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ V
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public part of ephemeral key
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient private key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) genPublicEphemeralKey(curve, Q) → {Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE ephemeral key and secret from public key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) nodePrivateEphemeralKey(curve, V, d) → {Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE secret from private key and public part of ephemeral key using nodeCrypto
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ V
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public part of ephemeral key
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient private key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) nodePublicEphemeralKey(curve, Q) → {Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE ephemeral key and secret from public key using nodeCrypto
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) webPrivateEphemeralKey(curve, V, Q, d) → {Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE secret from private key and public part of ephemeral key using webCrypto
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ V
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public part of ephemeral key
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient private key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{secretKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) webPublicEphemeralKey(curve, Q) → {Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate ECDHE ephemeral key and secret from public key using webCrypto
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ curve
+
+
+
+
+
+CurveWithOID
+
+
+
+
+
+
+
+
+
+ Elliptic curve object
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Recipient public key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{publicKey: Uint8Array, sharedKey: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key_elliptic_ecdsa.html b/docs/module-crypto_public_key_elliptic_ecdsa.html
new file mode 100644
index 00000000..ff155f0b
--- /dev/null
+++ b/docs/module-crypto_public_key_elliptic_ecdsa.html
@@ -0,0 +1,1017 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key/elliptic/ecdsa
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key/elliptic/ecdsa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Implementation of ECDSA following RFC6637 for Openpgpjs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, static) sign(oid, hashAlgo, message, publicKey, privateKey, hashed) → {Promise.<{r: Uint8Array, s: Uint8Array}>}
+
+
+
+
+
+
+
+
Sign a message using the provided key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm used to sign
+
+
+
+
+
+
+ message
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message to sign
+
+
+
+
+
+
+ publicKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public key
+
+
+
+
+
+
+ privateKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Private key used to sign the message
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The hashed message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Signature of the message
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{r: Uint8Array, s: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(oid, Q, d) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate ECDSA parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ECDSA public point
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ ECDSA secret scalar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) verify(oid, hashAlgo, signature, message, publicKey, hashed) → {Boolean}
+
+
+
+
+
+
+
+
Verifies if a signature is valid for a message
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm used in the signature
+
+
+
+
+
+
+ signature
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ Signature to verify
+
+
+
+
+
+
+ message
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message to verify
+
+
+
+
+
+
+ publicKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public key used to verify the message
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The hashed message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) jsVerify()
+
+
+
+
+
+
+
+
Fallback javascript implementation of ECDSA verification.
+To be used if no native implementation is available for the given curve/operation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key_elliptic_eddsa.html b/docs/module-crypto_public_key_elliptic_eddsa.html
new file mode 100644
index 00000000..21bb2eb8
--- /dev/null
+++ b/docs/module-crypto_public_key_elliptic_eddsa.html
@@ -0,0 +1,1106 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key/elliptic/eddsa
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key/elliptic/eddsa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Implementation of EdDSA following RFC4880bis-03 for OpenPGP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (static) generate(algo) → {Promise.<{A: Uint8Array, seed: Uint8Array}>}
+
+
+
+
+
+
+
+
Generate (non-legacy) EdDSA key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{A: Uint8Array, seed: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) sign(algo, hashAlgo, message, publicKey, privateKey, hashed) → {Promise.<{RS: Uint8Array}>}
+
+
+
+
+
+
+
+
Sign a message using the provided key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm used to sign (must be sha256 or stronger)
+
+
+
+
+
+
+ message
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message to sign
+
+
+
+
+
+
+ publicKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public key
+
+
+
+
+
+
+ privateKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Private key used to sign the message
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The hashed message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Signature of the message
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{RS: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(algo, A, seed, oid) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate (non-legacy) EdDSA parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+ A
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ EdDSA public point
+
+
+
+
+
+
+ seed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ EdDSA secret seed
+
+
+
+
+
+
+ oid
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ (legacy only) EdDSA OID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) verify(algo, hashAlgo, signature, m, publicKey, hashed) → {Boolean}
+
+
+
+
+
+
+
+
Verifies if a signature is valid for a message
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Algorithm identifier
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm used in the signature
+
+
+
+
+
+
+ signature
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ Signature to verify the message
+
+
+
+
+
+
+ m
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message to verify
+
+
+
+
+
+
+ publicKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public key used to verify the message
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The hashed message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key_elliptic_eddsa_legacy.html b/docs/module-crypto_public_key_elliptic_eddsa_legacy.html
new file mode 100644
index 00000000..b9a68f12
--- /dev/null
+++ b/docs/module-crypto_public_key_elliptic_eddsa_legacy.html
@@ -0,0 +1,927 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key/elliptic/eddsa_legacy
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key/elliptic/eddsa_legacy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Implementation of legacy EdDSA following RFC4880bis-03 for OpenPGP.
+This key type has been deprecated by the crypto-refresh RFC.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, static) sign(oid, hashAlgo, message, publicKey, privateKey, hashed) → {Promise.<{r: Uint8Array, s: Uint8Array}>}
+
+
+
+
+
+
+
+
Sign a message using the provided legacy EdDSA key
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm used to sign (must be sha256 or stronger)
+
+
+
+
+
+
+ message
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message to sign
+
+
+
+
+
+
+ publicKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public key
+
+
+
+
+
+
+ privateKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Private key used to sign the message
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The hashed message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Signature of the message
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<{r: Uint8Array, s: Uint8Array}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(oid, Q, k) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate legacy EdDSA parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ Q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ EdDSA public point
+
+
+
+
+
+
+ k
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ EdDSA secret seed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) verify(oid, hashAlgo, signature, m, publicKey, hashed) → {Boolean}
+
+
+
+
+
+
+
+
Verifies if a legacy EdDSA signature is valid for a message
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ oid
+
+
+
+
+
+module:type/oid
+
+
+
+
+
+
+
+
+
+ Elliptic curve object identifier
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm used in the signature
+
+
+
+
+
+
+ signature
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ Signature to verify the message
+
+
+
+
+
+
+ m
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message to verify
+
+
+
+
+
+
+ publicKey
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Public key used to verify the message
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The hashed message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key_prime.html b/docs/module-crypto_public_key_prime.html
new file mode 100644
index 00000000..f26a9c24
--- /dev/null
+++ b/docs/module-crypto_public_key_prime.html
@@ -0,0 +1,954 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key/prime
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key/prime
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Algorithms for probabilistic random prime generation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (static) fermat(n, b) → {boolean}
+
+
+
+
+
+
+
+
Tests whether n is probably prime or not using Fermat's test with b = 2.
+Fails if b^(n-1) mod n != 1.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ n
+
+
+
+
+
+BigInteger
+
+
+
+
+
+
+
+
+
+ Number to test
+
+
+
+
+
+
+ b
+
+
+
+
+
+BigInteger
+
+
+
+
+
+
+
+
+
+ Optional Fermat test base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) isProbablePrime(n, e, k) → {boolean}
+
+
+
+
+
+
+
+
Probabilistic primality testing
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ n
+
+
+
+
+
+BigInteger
+
+
+
+
+
+
+
+
+
+ Number to test
+
+
+
+
+
+
+ e
+
+
+
+
+
+BigInteger
+
+
+
+
+
+
+
+
+
+ Optional RSA exponent to check against the prime
+
+
+
+
+
+
+ k
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ Optional number of iterations of Miller-Rabin test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) millerRabin(n, k, rand) → {boolean}
+
+
+
+
+
+
+
+
Tests whether n is probably prime or not using the Miller-Rabin test.
+See HAC Remark 4.28.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ n
+
+
+
+
+
+BigInteger
+
+
+
+
+
+
+
+
+
+ Number to test
+
+
+
+
+
+
+ k
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ Optional number of iterations of Miller-Rabin test
+
+
+
+
+
+
+ rand
+
+
+
+
+
+function
+
+
+
+
+
+
+
+
+
+ Optional function to generate potential witnesses
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) randomProbablePrime(bits, e, k)
+
+
+
+
+
+
+
+
Generate a probably prime random number
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ bits
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ Bit length of the prime
+
+
+
+
+
+
+ e
+
+
+
+
+
+BigInteger
+
+
+
+
+
+
+
+
+
+ Optional RSA exponent to check against the prime
+
+
+
+
+
+
+ k
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ Optional number of iterations of Miller-Rabin test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_public_key_rsa.html b/docs/module-crypto_public_key_rsa.html
new file mode 100644
index 00000000..7cc1eccf
--- /dev/null
+++ b/docs/module-crypto_public_key_rsa.html
@@ -0,0 +1,2279 @@
+
+
+
+
+ JSDoc: Module: crypto/public_key/rsa
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/public_key/rsa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, static) decrypt(m, n, e, d, p, q, u, randomPayload) → {Promise.<String>}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ m
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message
+
+
+
+
+
+
+ n
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA public modulus
+
+
+
+
+
+
+ e
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA public exponent
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private exponent
+
+
+
+
+
+
+ p
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private prime p
+
+
+
+
+
+
+ q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private prime q
+
+
+
+
+
+
+ u
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private coefficient
+
+
+
+
+
+
+ randomPayload
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Data to return on decryption error, instead of throwing
+(needed for constant-time processing)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Throws:
+
+
+
+
+
+
+
on decryption error, unless randomPayload
is given
+
+
+
+
+
+
+ Type
+
+
+
+Error
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<String>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) encrypt(data, n, e) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message
+
+
+
+
+
+
+ n
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA public modulus
+
+
+
+
+
+
+ e
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA public exponent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) generate(bits, e) → {Object}
+
+
+
+
+
+
+
+
Generate a new random private key B bits long with public exponent E.
+
When possible, webCrypto or nodeCrypto is used. Otherwise, primes are generated using
+40 rounds of the Miller-Rabin probabilistic random prime generation algorithm.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ bits
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ RSA bit length
+
+
+
+
+
+
+ e
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ RSA public exponent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+ See:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
RSA public modulus, RSA public exponent, RSA private exponent,
+RSA private prime p, RSA private prime q, u = p ** -1 mod q
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) sign(hashAlgo, data, n, e, d, p, q, u, hashed) → {Promise.<Uint8Array>}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message
+
+
+
+
+
+
+ n
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA public modulus
+
+
+
+
+
+
+ e
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA public exponent
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private exponent
+
+
+
+
+
+
+ p
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private prime p
+
+
+
+
+
+
+ q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private prime q
+
+
+
+
+
+
+ u
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private coefficient
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Hashed message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) validateParams(n, e, d, p, q, u) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Validate RSA parameters
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ n
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA public modulus
+
+
+
+
+
+
+ e
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA public exponent
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private exponent
+
+
+
+
+
+
+ p
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private prime p
+
+
+
+
+
+
+ q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA private prime q
+
+
+
+
+
+
+ u
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA inverse of p w.r.t. q
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Whether params are valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) verify(hashAlgo, data, s, n, e, hashed) → {Boolean}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Message
+
+
+
+
+
+
+ s
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Signature
+
+
+
+
+
+
+ n
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA public modulus
+
+
+
+
+
+
+ e
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ RSA public exponent
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Hashed message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, inner) privateToJWK(hashAlgo, n, e, d, p, q, u)
+
+
+
+
+
+
+
+
Convert Openpgp private key params to jwk key according to
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ n
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ e
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ d
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ p
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ q
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ u
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (inner) publicToJWK(hashAlgo, n, e)
+
+
+
+
+
+
+
+
Convert Openpgp key public params to jwk key according to
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ n
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ e
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_random.html b/docs/module-crypto_random.html
new file mode 100644
index 00000000..fa8b2c6c
--- /dev/null
+++ b/docs/module-crypto_random.html
@@ -0,0 +1,516 @@
+
+
+
+
+ JSDoc: Module: crypto/random
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/random
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Provides tools for retrieving secure randomness from browsers or Node.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, static) getRandomBigInteger(min, max) → {Promise.<module:BigInteger>}
+
+
+
+
+
+
+
+
Create a secure random BigInteger that is greater than or equal to min and less than max.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ min
+
+
+
+
+
+module:BigInteger
+
+
+
+
+
+
+
+
+
+ Lower bound, included
+
+
+
+
+
+
+ max
+
+
+
+
+
+module:BigInteger
+
+
+
+
+
+
+
+
+
+ Upper bound, excluded
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<module:BigInteger>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) getRandomBytes(length) → {Uint8Array}
+
+
+
+
+
+
+
+
Retrieve secure random byte array of the specified length
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ length
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+ Length in bytes to generate
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-crypto_signature.html b/docs/module-crypto_signature.html
new file mode 100644
index 00000000..accef42e
--- /dev/null
+++ b/docs/module-crypto_signature.html
@@ -0,0 +1,917 @@
+
+
+
+
+ JSDoc: Module: crypto/signature
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: crypto/signature
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Provides functions for asymmetric signing and signature verification
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (async, static) parseSignatureParams(algo, signature) → {Promise.<Object>}
+
+
+
+
+
+
+
+
Parse signature in binary form to get the parameters.
+The returned values are only padded for EdDSA, since in the other cases their expected length
+depends on the key params, hence we delegate the padding to the signature verification function.
+See RFC 4880 9.1
+See RFC 4880 5.2.2.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Public key algorithm
+
+
+
+
+
+
+ signature
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Data for which the signature was created
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
True if signature is valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Object>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) sign(algo, hashAlgo, publicKeyParams, privateKeyParams, data, hashed) → {Promise.<Object>}
+
+
+
+
+
+
+
+
Creates a signature on data using specified algorithms and private key parameters.
+See RFC 4880 9.1
+and RFC 4880 9.4
+for public key and hash algorithms.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Public key algorithm
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm
+
+
+
+
+
+
+ publicKeyParams
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ Algorithm-specific public and private key parameters
+
+
+
+
+
+
+ privateKeyParams
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ Algorithm-specific public and private key parameters
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Data to be signed
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The hashed data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Signature Object containing named signature parameters.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Object>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (async, static) verify(algo, hashAlgo, signature, publicParams, data, hashed) → {Promise.<Boolean>}
+
+
+
+
+
+
+
+
Verifies the signature provided for data using specified algorithms and public key parameters.
+See RFC 4880 9.1
+and RFC 4880 9.4
+for public key and hash algorithms.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.publicKey
+
+
+
+
+
+
+
+
+
+ Public key algorithm
+
+
+
+
+
+
+ hashAlgo
+
+
+
+
+
+module:enums.hash
+
+
+
+
+
+
+
+
+
+ Hash algorithm
+
+
+
+
+
+
+ signature
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ Named algorithm-specific signature parameters
+
+
+
+
+
+
+ publicParams
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+ Algorithm-specific public key parameters
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ Data for which the signature was created
+
+
+
+
+
+
+ hashed
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ The hashed data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
True if signature is valid.
+
+
+
+
+
+
+ Type
+
+
+
+Promise.<Boolean>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-encoding_base64.html b/docs/module-encoding_base64.html
new file mode 100644
index 00000000..11035aa0
--- /dev/null
+++ b/docs/module-encoding_base64.html
@@ -0,0 +1,769 @@
+
+
+
+
+ JSDoc: Module: encoding/base64
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: encoding/base64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+ (static) b64ToUint8Array(base64) → {Uint8Array}
+
+
+
+
+
+
+
+
Convert a Base-64 encoded string an array of 8-bit integer
+
Note: accepts both Radix-64 and URL-safe strings
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ base64
+
+
+
+
+
+String
+
+
+
+
+
+
+
+
+
+ Base-64 encoded string to convert
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
An array of 8-bit integers.
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) decode(data) → {Uint8Array|ReadableStream.<Uint8Array>}
+
+
+
+
+
+
+
+
Convert radix-64 to binary array
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ data
+
+
+
+
+
+String
+|
+
+ReadableStream.<String>
+
+
+
+
+
+
+
+
+
+ Radix-64 string to convert
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Binary array version of input string.
+
+
+
+
+
+
+ Type
+
+
+
+Uint8Array
+|
+
+ReadableStream.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) encode(data) → {String|ReadableStream.<String>}
+
+
+
+
+
+
+
+
Convert binary array to radix-64
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ data
+
+
+
+
+
+Uint8Array
+|
+
+ReadableStream.<Uint8Array>
+
+
+
+
+
+
+
+
+
+ Uint8Array to convert
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Radix-64 version of input string.
+
+
+
+
+
+
+ Type
+
+
+
+String
+|
+
+ReadableStream.<String>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (static) uint8ArrayToB64(bytes, url) → {String}
+
+
+
+
+
+
+
+
Convert an array of 8-bit integer to a Base-64 encoded string
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ bytes
+
+
+
+
+
+Uint8Array
+
+
+
+
+
+
+
+
+
+ An array of 8-bit integers to convert
+
+
+
+
+
+
+ url
+
+
+
+
+
+bool
+
+
+
+
+
+
+
+
+
+ If true, output is URL-safe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
Base-64 encoded string.
+
+
+
+
+
+
+ Type
+
+
+
+String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Functions Modules Classes
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/module-enums.html b/docs/module-enums.html
index 848ff729..af3da952 100644
--- a/docs/module-enums.html
+++ b/docs/module-enums.html
@@ -148,6 +148,29 @@
+
+
+
+
+
+
+
+ gcm
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
@@ -212,7 +235,7 @@
Source:
@@ -476,7 +499,7 @@
Source:
@@ -671,7 +694,7 @@
Source:
@@ -1924,7 +1947,7 @@
Source:
@@ -2068,6 +2091,29 @@ fingerprint format
+
+
+
+ seipdv2
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2105,7 +2151,7 @@ fingerprint format
Source:
@@ -2328,6 +2374,52 @@ fingerprint format
+
+
+
+
+
+
+
+ sha3_256
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sha3_512
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
@@ -2369,7 +2461,7 @@ fingerprint format
Source:
@@ -2635,7 +2727,7 @@ possession of more than one person.
Source:
@@ -2830,7 +2922,7 @@ possession of more than one person.
Source:
@@ -3306,6 +3398,29 @@ possession of more than one person.
+
+
+
+
+
+
+
+ padding
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
@@ -3347,7 +3462,7 @@ possession of more than one person.
Source:
@@ -3599,52 +3714,6 @@ possession of more than one person.
-
-
- ed25519Legacy
-
-
-
-
-
-Integer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- eddsa
-
-
-
-
-
-Integer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
aedh
@@ -3819,7 +3888,7 @@ possession of more than one person.
Source:
@@ -4037,7 +4106,7 @@ possession of more than one person.
Source:
@@ -4168,6 +4237,29 @@ possession of more than one person.
+
+
+
+
+
+
+
+ argon2
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
@@ -4232,7 +4324,7 @@ possession of more than one person.
Source:
@@ -4749,7 +4841,7 @@ document) that cannot include a target subpacket.
Source:
@@ -5048,7 +5140,7 @@ document) that cannot include a target subpacket.
- issuer
+ issuerKeyID
@@ -5409,6 +5501,29 @@ document) that cannot include a target subpacket.
+
+
+
+
+
+
+
+ preferredCipherSuites
+
+
+
+
+
+Integer
+
+
+
+
+
+
+
+
+
@@ -5450,7 +5565,7 @@ document) that cannot include a target subpacket.
Source:
@@ -5517,29 +5632,6 @@ document) that cannot include a target subpacket.
-
-
- plaintext
-
-
-
-
-
-Integer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
idea
@@ -5760,7 +5852,7 @@ document) that cannot include a target subpacket.
Source:
@@ -5956,7 +6048,7 @@ document) that cannot include a target subpacket.
Source:
@@ -6110,7 +6202,7 @@ document) that cannot include a target subpacket.
Source:
@@ -6326,7 +6418,7 @@ document) that cannot include a target subpacket.
Source:
@@ -6423,13 +6515,13 @@ document) that cannot include a target subpacket.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-key_Subkey-Subkey.html b/docs/module-key_Subkey-Subkey.html
index 5f486957..87f2ab7f 100644
--- a/docs/module-key_Subkey-Subkey.html
+++ b/docs/module-key_Subkey-Subkey.html
@@ -28,7 +28,8 @@
@@ -5073,7 +4982,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -5423,7 +5332,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -5481,6 +5390,591 @@ default to main key options, except for sign
parameter that default
+ getCipherBlockSize(algo)
+
+
+
+
+
+
+
+
Get block size for given cipher algo
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.symmetric
+
+
+
+
+
+
+
+
+
+ alrogithm identifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getCipherKeySize(algo)
+
+
+
+
+
+
+
+
Get key size for given cipher algo
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.symmetric
+
+
+
+
+
+
+
+
+
+ alrogithm identifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getCipherParams(algo)
+
+
+
+
+
+
+
+
Get block and key size for given cipher algo
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ algo
+
+
+
+
+
+module:enums.symmetric
+
+
+
+
+
+
+
+
+
+ alrogithm identifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getCompressionStreamInstantiators(compressionFormat) → {Object}
+
+
+
+
+
+
+
+
Get Compression Stream API instatiators if the constructors are implemented.
+NB: the return instatiator functions will throw when called if the provided compressionFormat
is not supported
+(supported formats cannot be determined in advance).
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ compressionFormat
+
+
+
+
+
+'deflate-raw'
+|
+
+'deflate'
+|
+
+'gzip'
+|
+
+string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
+
+
+ Type
+
+
+
+Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
newPacketFromTag(tag, allowedPackets) → {Object}
@@ -5607,7 +6101,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -5751,7 +6245,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -5941,7 +6435,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -6028,7 +6522,7 @@ default to main key options, except for sign
parameter that default
- (async) produceEncryptionKey(keyVersion, s2k, passphrase, cipherAlgo, aeadModeopt , serializedPacketTag)
+ (async) produceEncryptionKey(keyVersion, s2k, passphrase, cipherAlgo, aeadModeopt , serializedPacketTagopt , isLegacyAEADopt )
@@ -6246,6 +6740,8 @@ default to main key options, except for sign
parameter that default
+ <optional>
+
@@ -6259,6 +6755,39 @@ default to main key options, except for sign
parameter that default
+
+
+
+ isLegacyAEAD
+
+
+
+
+
+Boolean
+
+
+
+
+
+
+
+
+ <optional>
+
+
+
+
+
+
+
+
+
+
+ for AEAD-encrypted keys from RFC4880bis (v4 and v5 only)
+
+
+
@@ -6298,7 +6827,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -6539,7 +7068,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -6827,7 +7356,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -7115,7 +7644,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -7409,7 +7938,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -7697,7 +8226,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -7985,7 +8514,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -8273,7 +8802,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -8735,7 +9264,7 @@ to set the same date as the key creation time to ensure that old message signatu
Source:
@@ -9264,7 +9793,7 @@ If a revocation certificate is passed, the reasonForRevocation parameter will be
Source:
@@ -9479,7 +10008,7 @@ If a revocation certificate is passed, the reasonForRevocation parameter will be
Source:
@@ -10028,7 +10557,7 @@ If a revocation certificate is passed, the reasonForRevocation parameter will be
Source:
@@ -10190,7 +10719,7 @@ the encoded bytes
Source:
@@ -10652,7 +11181,7 @@ an attribute "data" containing a stream of bytes and "type"
Source:
@@ -10897,7 +11426,7 @@ The new key includes a revocation certificate that must be removed before return
Source:
@@ -10946,6 +11475,190 @@ The new key includes a revocation certificate that must be removed before return
+
+
+
+
+
+ zlib(compressionStreamInstantiator, ZlibStreamedConstructor) → {ReadableStream.<Uint8Array>}
+
+
+
+
+
+
+
+
Zlib processor relying on Compression Stream API if available, or falling back to fflate otherwise.
+
+
+
+
+
+
+
+
+
+
+ Parameters:
+
+
+
+
+
+
+ Name
+
+
+ Type
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+ compressionStreamInstantiator
+
+
+
+
+
+function
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ZlibStreamedConstructor
+
+
+
+
+
+FunctionConstructor
+
+
+
+
+
+
+
+
+
+ fflate constructor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Returns:
+
+
+
+
compressed or decompressed data
+
+
+
+
+
+
+ Type
+
+
+
+ReadableStream.<Uint8Array>
+
+
+
+
+
+
+
+
+
+
+
+
@@ -10961,7 +11674,7 @@ The new key includes a revocation certificate that must be removed before return
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/index.html b/docs/index.html
index 275ca440..e20f21ed 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -139,7 +139,7 @@ library to convert back and forth between them.
Algorithmically**
-p256
+nistP256
ECDH
ECDSA
Yes*
@@ -147,7 +147,7 @@ library to convert back and forth between them.
If native***
-p384
+nistP384
ECDH
ECDSA
Yes*
@@ -155,7 +155,7 @@ library to convert back and forth between them.
If native***
-p521
+nistP521
ECDH
ECDSA
Yes*
@@ -501,7 +501,7 @@ can .pipe()
to a Writable
stream, for example.
Generate new key pair
ECC keys (smaller and faster to generate):
-Possible values for curve
are: curve25519
, ed25519
, p256
, p384
, p521
,
+
Possible values for curve
are: curve25519
, ed25519
, nistP256
, nistP384
, nistP521
,
brainpoolP256r1
, brainpoolP384r1
, brainpoolP512r1
, and secp256k1
.
Note that both the curve25519
and ed25519
options generate a primary key for signing using Ed25519
and a subkey for encryption using Curve25519.
@@ -706,7 +706,7 @@ and a subkey for encryption using Curve25519.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-config.html b/docs/module-config.html
index 315e5010..55a40273 100644
--- a/docs/module-config.html
+++ b/docs/module-config.html
@@ -89,7 +89,7 @@
Source:
@@ -247,7 +247,7 @@ as a global config setting, but can be used for specific function calls (e.g. de
Source:
@@ -365,7 +365,7 @@ Must be an integer value from 0 to 56.
Source:
@@ -489,7 +489,7 @@ Note: not all OpenPGP implementations are compatible with this option.
Source:
@@ -614,7 +614,7 @@ where key flags were ignored when selecting a key for encryption.
Source:
@@ -733,7 +733,7 @@ and have self-signature's creation date that does not match the primary key crea
Source:
@@ -854,7 +854,7 @@ This is an insecure setting:
Source:
@@ -979,7 +979,7 @@ and deferring checking their integrity until the decrypted stream has been read
Source:
@@ -1091,7 +1091,7 @@ and deferring checking their integrity until the decrypted stream has been read
Source:
@@ -1213,7 +1213,7 @@ See also constantTimePKCS1DecryptionSupportedSymmetricAlgorithms
.
Source:
@@ -1331,119 +1331,7 @@ However, the more algorithms are added, the slower the decryption procedure beco
Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-(static) deflateLevel
-
-
-
-
-
-
-
-
-
-
- Properties:
-
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- deflateLevel
-
-
-
-
-
-Integer
-
-
-
-
-
-
-
-
-
- Default zip/zlib compression level, between 1 and 9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
@@ -1555,7 +1443,7 @@ However, the more algorithms are added, the slower the decryption procedure beco
Source:
@@ -1667,7 +1555,7 @@ However, the more algorithms are added, the slower the decryption procedure beco
Source:
@@ -1784,7 +1672,7 @@ validation error when the notation is marked as critical.
Source:
@@ -1900,7 +1788,7 @@ validation error when the notation is marked as critical.
Source:
@@ -2017,7 +1905,7 @@ The default is 2047 since due to a bug, previous versions of OpenPGP.js could ge
Source:
@@ -2134,7 +2022,7 @@ The default is 2047 since due to a bug, previous versions of OpenPGP.js could ge
Source:
@@ -2251,7 +2139,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2363,7 +2251,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2475,7 +2363,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2587,7 +2475,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2703,7 +2591,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2819,7 +2707,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2935,7 +2823,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -3051,7 +2939,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -3163,7 +3051,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -3378,7 +3266,7 @@ For more details on the choice of parameters, see https://tools.ietf.org/html/rf
Source:
@@ -3497,7 +3385,7 @@ Note: this is the exponent value, not the final number of iterations (refer to s
Source:
@@ -3619,7 +3507,7 @@ Note: Argon2 is the strongest option but not all OpenPGP implementations are com
Source:
@@ -3731,7 +3619,7 @@ Note: Argon2 is the strongest option but not all OpenPGP implementations are com
Source:
@@ -3843,7 +3731,7 @@ Note: Argon2 is the strongest option but not all OpenPGP implementations are com
Source:
@@ -3960,7 +3848,7 @@ When false, certain standard curves will not be supported (depending on the plat
Source:
@@ -4078,7 +3966,7 @@ Note: not all OpenPGP implementations are compatible with this option.
Source:
@@ -4190,7 +4078,7 @@ Note: not all OpenPGP implementations are compatible with this option.
Source:
@@ -4224,7 +4112,7 @@ Note: not all OpenPGP implementations are compatible with this option.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto.html b/docs/module-crypto.html
index 6360dce9..b6f6f44f 100644
--- a/docs/module-crypto.html
+++ b/docs/module-crypto.html
@@ -89,7 +89,7 @@
Source:
@@ -105,7 +105,7 @@
module:crypto/public_key
- module:crypto/cipher
+ module:crypto/cipher
module:crypto/random
@@ -169,7 +169,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_aes_kw.html b/docs/module-crypto_aes_kw.html
index 2150278b..86b2ee47 100644
--- a/docs/module-crypto_aes_kw.html
+++ b/docs/module-crypto_aes_kw.html
@@ -89,7 +89,7 @@
Source:
@@ -153,7 +153,7 @@
- (static) unwrap(key, data) → {Uint8Array}
+ (static) unwrap(algo, key, wrappedData) → {Uint8Array}
@@ -197,13 +197,19 @@
- key
+ algo
-String
+enums.symmetric.aes128
+|
+
+enums.symmetric.aes256
+|
+
+enums.symmetric.aes192
@@ -213,20 +219,43 @@
-
+ AES algo
- data
+ key
-String
+Uint8Array
+
+
+
+
+
+
+
+
+
+ wrapping key
+
+
+
+
+
+
+ wrappedData
+
+
+
+
+
+Uint8Array
@@ -279,7 +308,7 @@
Source:
@@ -302,26 +331,15 @@
-Throws:
-
-
-
-
-
-
-Error
-
-
-
-
-
-
-
Returns:
+
+
@@ -348,7 +366,7 @@
- (static) wrap(key, data) → {Uint8Array}
+ (static) wrap(algo, key, dataToWrap) → {Uint8Array}
@@ -390,6 +408,35 @@
+
+
+ algo
+
+
+
+
+
+enums.symmetric.aes128
+|
+
+enums.symmetric.aes256
+|
+
+enums.symmetric.aes192
+
+
+
+
+
+
+
+
+
+ AES algo
+
+
+
+
key
@@ -408,14 +455,14 @@
-
+ wrapping key
- data
+ dataToWrap
@@ -474,7 +521,7 @@
Source:
@@ -502,6 +549,10 @@
Returns:
+
+
@@ -538,7 +589,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_cipher.html b/docs/module-crypto_cipher.html
deleted file mode 100644
index 089085be..00000000
--- a/docs/module-crypto_cipher.html
+++ /dev/null
@@ -1,1430 +0,0 @@
-
-
-
-
- JSDoc: Module: crypto/cipher
-
-
-
-
-
-
-
-
-
-
-
-
-
Module: crypto/cipher
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Symmetric cryptography functions
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Methods
-
-
-
-
-
-
-
- (static) aes128(key) → {Object}
-
-
-
-
-
-
-
-
AES-128 encryption and decryption (ID 7)
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- key
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
- 128-bit key
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
- See:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Returns:
-
-
-
-
-
-
- Type
-
-
-
-Object
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- (static) aes192(key) → {Object}
-
-
-
-
-
-
-
-
AES-128 Block Cipher (ID 8)
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- key
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
- 192-bit key
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
- See:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Returns:
-
-
-
-
-
-
- Type
-
-
-
-Object
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- (static) aes256(key) → {Object}
-
-
-
-
-
-
-
-
AES-128 Block Cipher (ID 9)
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- key
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
- 256-bit key
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
- See:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Returns:
-
-
-
-
-
-
- Type
-
-
-
-Object
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- (static) blowfish(key) → {Object}
-
-
-
-
-
-
-
-
Blowfish Block Cipher (ID 4)
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- key
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
- 128-bit key
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
- See:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Returns:
-
-
-
-
-
-
- Type
-
-
-
-Object
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- (static) cast5(key) → {Object}
-
-
-
-
-
-
-
-
CAST-128 Block Cipher (ID 3)
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- key
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
- 128-bit key
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
- See:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Returns:
-
-
-
-
-
-
- Type
-
-
-
-Object
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- (static) idea()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Throws:
-
-
-
-
-
-
-Error
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- (static) tripledes(key) → {Object}
-
-
-
-
-
-
-
-
Triple DES Block Cipher (ID 2)
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- key
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
- 192-bit key
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
- See:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Returns:
-
-
-
-
-
-
- Type
-
-
-
-Object
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- (static) twofish(key) → {Object}
-
-
-
-
-
-
-
-
Twofish Block Cipher (ID 10)
-
-
-
-
-
-
-
-
-
-
- Parameters:
-
-
-
-
-
-
- Name
-
-
- Type
-
-
-
-
-
- Description
-
-
-
-
-
-
-
-
- key
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
- 256-bit key
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Source:
-
-
-
-
-
-
- See:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Returns:
-
-
-
-
-
-
- Type
-
-
-
-Object
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Functions Modules Classes
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/module-crypto_cmac.html b/docs/module-crypto_cmac.html
index 31aaadf1..51430d3e 100644
--- a/docs/module-crypto_cmac.html
+++ b/docs/module-crypto_cmac.html
@@ -90,7 +90,7 @@ native AES-CBC using either the WebCrypto API or Node.js' crypto API.
Source:
@@ -195,7 +195,7 @@ The OMAC authors indicate that they will promulgate this modification
Source:
@@ -352,7 +352,7 @@ simplify the implementation.
Source:
@@ -398,7 +398,7 @@ simplify the implementation.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_crypto.html b/docs/module-crypto_crypto.html
index a0105d17..a79a85c7 100644
--- a/docs/module-crypto_crypto.html
+++ b/docs/module-crypto_crypto.html
@@ -90,7 +90,7 @@ well as key generation and parameter handling for all public-key cryptosystems.<
Source:
@@ -296,7 +296,7 @@ well as key generation and parameter handling for all public-key cryptosystems.<
Source:
@@ -458,7 +458,7 @@ See RFC 4880 9.2 f
Source:
@@ -619,7 +619,7 @@ See RFC 4880 9.2 f
Source:
@@ -848,7 +848,7 @@ See RFC 4880 9.2 f
Source:
@@ -1030,7 +1030,7 @@ See RFC 4880 9.2 f
Source:
@@ -1170,7 +1170,7 @@ See RFC 4880 9.2 f
Source:
@@ -1354,7 +1354,7 @@ See RFC 4880 9.2 f
Source:
@@ -1561,7 +1561,7 @@ See RFC 4880 9.2 f
Source:
@@ -1745,7 +1745,7 @@ See RFC 4880 9.2 f
Source:
@@ -2075,7 +2075,7 @@ See RFC 4880 5.5.3
Source:
@@ -2358,7 +2358,7 @@ See RFC 4880 9.1 f
Source:
@@ -2542,7 +2542,7 @@ See RFC 4880 9.1 f
Source:
@@ -2749,7 +2749,7 @@ See RFC 4880 9.1 f
Source:
@@ -2910,7 +2910,7 @@ See RFC 4880 9.1 f
Source:
@@ -2985,7 +2985,7 @@ See RFC 4880 9.1 f
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_hash.html b/docs/module-crypto_hash.html
index 1e4de57d..58d2f69e 100644
--- a/docs/module-crypto_hash.html
+++ b/docs/module-crypto_hash.html
@@ -89,7 +89,7 @@
Source:
@@ -191,7 +191,7 @@
Source:
@@ -352,7 +352,7 @@
Source:
@@ -513,7 +513,7 @@
Source:
@@ -581,7 +581,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_hkdf.html b/docs/module-crypto_hkdf.html
index 08e03208..1e3d190a 100644
--- a/docs/module-crypto_hkdf.html
+++ b/docs/module-crypto_hkdf.html
@@ -89,7 +89,7 @@
Source:
@@ -152,7 +152,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_mode.html b/docs/module-crypto_mode.html
index 766568b7..a5f99439 100644
--- a/docs/module-crypto_mode.html
+++ b/docs/module-crypto_mode.html
@@ -89,7 +89,7 @@
Source:
@@ -182,7 +182,7 @@
Source:
@@ -249,7 +249,7 @@
Source:
@@ -316,7 +316,7 @@
Source:
@@ -383,7 +383,7 @@
Source:
@@ -424,7 +424,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_mode_cfb.html b/docs/module-crypto_mode_cfb.html
index 2aa1d209..1b25c348 100644
--- a/docs/module-crypto_mode_cfb.html
+++ b/docs/module-crypto_mode_cfb.html
@@ -236,7 +236,7 @@
Source:
@@ -477,7 +477,7 @@
Source:
@@ -533,7 +533,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_mode_eax.html b/docs/module-crypto_mode_eax.html
index 76aa3551..50d97721 100644
--- a/docs/module-crypto_mode_eax.html
+++ b/docs/module-crypto_mode_eax.html
@@ -90,7 +90,7 @@ native AES-CTR using either the WebCrypto API or Node.js' crypto API.
Source:
@@ -296,7 +296,7 @@ native AES-CTR using either the WebCrypto API or Node.js' crypto API.
Source:
@@ -480,7 +480,7 @@ native AES-CTR using either the WebCrypto API or Node.js' crypto API.
Source:
@@ -665,7 +665,7 @@ native AES-CTR using either the WebCrypto API or Node.js' crypto API.
Source:
@@ -733,7 +733,7 @@ native AES-CTR using either the WebCrypto API or Node.js' crypto API.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_mode_gcm.html b/docs/module-crypto_mode_gcm.html
index c9911464..9264ae90 100644
--- a/docs/module-crypto_mode_gcm.html
+++ b/docs/module-crypto_mode_gcm.html
@@ -90,7 +90,7 @@ the WebCrypto api as well as node.js' crypto api.
Source:
@@ -273,7 +273,7 @@ the WebCrypto api as well as node.js' crypto api.
Source:
@@ -319,7 +319,7 @@ the WebCrypto api as well as node.js' crypto api.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_mode_ocb.html b/docs/module-crypto_mode_ocb.html
index 19dceb00..15b9f96e 100644
--- a/docs/module-crypto_mode_ocb.html
+++ b/docs/module-crypto_mode_ocb.html
@@ -89,7 +89,7 @@
Source:
@@ -295,7 +295,7 @@
Source:
@@ -502,7 +502,7 @@
Source:
@@ -686,7 +686,7 @@
Source:
@@ -732,7 +732,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_pkcs1.html b/docs/module-crypto_pkcs1.html
index 2a8616b5..77b6196d 100644
--- a/docs/module-crypto_pkcs1.html
+++ b/docs/module-crypto_pkcs1.html
@@ -89,7 +89,7 @@
Source:
@@ -197,7 +197,7 @@
Source:
@@ -358,7 +358,7 @@
Source:
@@ -578,7 +578,7 @@
Source:
@@ -792,7 +792,7 @@
Source:
@@ -867,7 +867,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key.html b/docs/module-crypto_public_key.html
index c052971f..44230499 100644
--- a/docs/module-crypto_public_key.html
+++ b/docs/module-crypto_public_key.html
@@ -89,7 +89,7 @@
Source:
@@ -182,7 +182,7 @@
Source:
@@ -249,7 +249,7 @@
Source:
@@ -316,7 +316,7 @@
Source:
@@ -383,7 +383,7 @@
Source:
@@ -424,7 +424,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key_dsa.html b/docs/module-crypto_public_key_dsa.html
index aa017bee..477c975d 100644
--- a/docs/module-crypto_public_key_dsa.html
+++ b/docs/module-crypto_public_key_dsa.html
@@ -89,7 +89,7 @@
Source:
@@ -188,7 +188,7 @@ Expect y == y'
Source:
@@ -434,7 +434,7 @@ Expect y == y'
Source:
@@ -683,7 +683,7 @@ Expect y == y'
Source:
@@ -1005,7 +1005,7 @@ Expect y == y'
Source:
@@ -1069,7 +1069,7 @@ Expect y == y'
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key_elgamal.html b/docs/module-crypto_public_key_elgamal.html
index a4e8c423..8bc4483c 100644
--- a/docs/module-crypto_public_key_elgamal.html
+++ b/docs/module-crypto_public_key_elgamal.html
@@ -89,7 +89,7 @@
Source:
@@ -188,7 +188,7 @@ Expect y == y'
Source:
@@ -412,7 +412,7 @@ Expect y == y'
Source:
@@ -672,7 +672,7 @@ Note that in OpenPGP, the message needs to be padded with PKCS#1 (same as RSA)
Source:
@@ -898,7 +898,7 @@ Note that in OpenPGP, the message needs to be padded with PKCS#1 (same as RSA)
Source:
@@ -966,7 +966,7 @@ Note that in OpenPGP, the message needs to be padded with PKCS#1 (same as RSA)
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key_elliptic.html b/docs/module-crypto_public_key_elliptic.html
index f116206b..bdbb779e 100644
--- a/docs/module-crypto_public_key_elliptic.html
+++ b/docs/module-crypto_public_key_elliptic.html
@@ -89,7 +89,7 @@
Source:
@@ -165,7 +165,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key_elliptic_curve.html b/docs/module-crypto_public_key_elliptic_curve.html
index b925f144..9bb3ccd5 100644
--- a/docs/module-crypto_public_key_elliptic_curve.html
+++ b/docs/module-crypto_public_key_elliptic_curve.html
@@ -89,7 +89,7 @@
Source:
@@ -249,7 +249,7 @@
Source:
@@ -406,7 +406,7 @@
Source:
@@ -632,7 +632,7 @@
Source:
@@ -835,7 +835,7 @@
Source:
@@ -1066,7 +1066,7 @@ Not suitable for EdDSA (different secret key format)
Source:
@@ -1134,7 +1134,7 @@ Not suitable for EdDSA (different secret key format)
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key_elliptic_ecdh.html b/docs/module-crypto_public_key_elliptic_ecdh.html
index 8c83d512..585f2f1f 100644
--- a/docs/module-crypto_public_key_elliptic_ecdh.html
+++ b/docs/module-crypto_public_key_elliptic_ecdh.html
@@ -91,7 +91,7 @@
Source:
@@ -169,7 +169,7 @@
Source:
@@ -467,7 +467,7 @@
Source:
@@ -720,7 +720,7 @@
Source:
@@ -973,7 +973,7 @@
Source:
@@ -1176,7 +1176,7 @@
Source:
@@ -1337,7 +1337,7 @@
Source:
@@ -1540,7 +1540,7 @@
Source:
@@ -1747,7 +1747,7 @@
Source:
@@ -1977,7 +1977,7 @@
Source:
@@ -2157,7 +2157,7 @@
Source:
@@ -2360,7 +2360,7 @@
Source:
@@ -2540,7 +2540,7 @@
Source:
@@ -2766,7 +2766,7 @@
Source:
@@ -2946,7 +2946,7 @@
Source:
@@ -3077,7 +3077,7 @@
Source:
@@ -3155,7 +3155,7 @@
Source:
@@ -3453,7 +3453,7 @@
Source:
@@ -3706,7 +3706,7 @@
Source:
@@ -3959,7 +3959,7 @@
Source:
@@ -4162,7 +4162,7 @@
Source:
@@ -4323,7 +4323,7 @@
Source:
@@ -4526,7 +4526,7 @@
Source:
@@ -4733,7 +4733,7 @@
Source:
@@ -4963,7 +4963,7 @@
Source:
@@ -5143,7 +5143,7 @@
Source:
@@ -5346,7 +5346,7 @@
Source:
@@ -5526,7 +5526,7 @@
Source:
@@ -5752,7 +5752,7 @@
Source:
@@ -5932,7 +5932,7 @@
Source:
@@ -5996,7 +5996,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key_elliptic_ecdsa.html b/docs/module-crypto_public_key_elliptic_ecdsa.html
index ff155f0b..ec2cb35c 100644
--- a/docs/module-crypto_public_key_elliptic_ecdsa.html
+++ b/docs/module-crypto_public_key_elliptic_ecdsa.html
@@ -89,7 +89,7 @@
Source:
@@ -364,7 +364,7 @@
Source:
@@ -571,7 +571,7 @@
Source:
@@ -847,7 +847,7 @@
Source:
@@ -956,7 +956,7 @@ To be used if no native implementation is available for the given curve/operatio
Source:
@@ -1002,7 +1002,7 @@ To be used if no native implementation is available for the given curve/operatio
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key_elliptic_eddsa.html b/docs/module-crypto_public_key_elliptic_eddsa.html
index 21bb2eb8..1f8c76be 100644
--- a/docs/module-crypto_public_key_elliptic_eddsa.html
+++ b/docs/module-crypto_public_key_elliptic_eddsa.html
@@ -89,7 +89,7 @@
Source:
@@ -249,7 +249,7 @@
Source:
@@ -521,7 +521,7 @@
Source:
@@ -751,7 +751,7 @@
Source:
@@ -1027,7 +1027,7 @@
Source:
@@ -1091,7 +1091,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key_elliptic_eddsa_legacy.html b/docs/module-crypto_public_key_elliptic_eddsa_legacy.html
index b9a68f12..efeafadb 100644
--- a/docs/module-crypto_public_key_elliptic_eddsa_legacy.html
+++ b/docs/module-crypto_public_key_elliptic_eddsa_legacy.html
@@ -90,7 +90,7 @@ This key type has been deprecated by the crypto-refresh RFC.
Source:
@@ -365,7 +365,7 @@ This key type has been deprecated by the crypto-refresh RFC.
Source:
@@ -572,7 +572,7 @@ This key type has been deprecated by the crypto-refresh RFC.
Source:
@@ -848,7 +848,7 @@ This key type has been deprecated by the crypto-refresh RFC.
Source:
@@ -912,7 +912,7 @@ This key type has been deprecated by the crypto-refresh RFC.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key_prime.html b/docs/module-crypto_public_key_prime.html
index f26a9c24..abbe4ce7 100644
--- a/docs/module-crypto_public_key_prime.html
+++ b/docs/module-crypto_public_key_prime.html
@@ -89,7 +89,7 @@
Source:
@@ -273,7 +273,7 @@ Fails if b^(n-1) mod n != 1.
Source:
@@ -476,7 +476,7 @@ Fails if b^(n-1) mod n != 1.
Source:
@@ -680,7 +680,7 @@ See HAC Remark 4.28.
Source:
@@ -883,7 +883,7 @@ See HAC Remark 4.28.
Source:
@@ -939,7 +939,7 @@ See HAC Remark 4.28.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_public_key_rsa.html b/docs/module-crypto_public_key_rsa.html
index 7cc1eccf..f2579994 100644
--- a/docs/module-crypto_public_key_rsa.html
+++ b/docs/module-crypto_public_key_rsa.html
@@ -89,7 +89,7 @@
Source:
@@ -411,7 +411,7 @@
Source:
@@ -647,7 +647,7 @@
Source:
@@ -833,7 +833,7 @@
Source:
@@ -1186,7 +1186,7 @@ RSA private prime p, RSA private prime q, u = p ** -1 mod q
Source:
@@ -1462,7 +1462,7 @@ RSA private prime p, RSA private prime q, u = p ** -1 mod q
Source:
@@ -1738,7 +1738,7 @@ RSA private prime p, RSA private prime q, u = p ** -1 mod q
Source:
@@ -1786,6 +1786,96 @@ RSA private prime p, RSA private prime q, u = p ** -1 mod q
+
+
+
+
+
+
+ (inner) jwkToPrivate()
+
+
+
+
+
+
+
+
Convert JWK private key to OpenPGP private key params
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Source:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2033,7 +2123,7 @@ RSA private prime p, RSA private prime q, u = p ** -1 mod q
Source:
@@ -2218,7 +2308,7 @@ RSA private prime p, RSA private prime q, u = p ** -1 mod q
Source:
@@ -2264,7 +2354,7 @@ RSA private prime p, RSA private prime q, u = p ** -1 mod q
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_random.html b/docs/module-crypto_random.html
index fa8b2c6c..bce5b5f0 100644
--- a/docs/module-crypto_random.html
+++ b/docs/module-crypto_random.html
@@ -89,7 +89,7 @@
Source:
@@ -272,7 +272,7 @@
Source:
@@ -433,7 +433,7 @@
Source:
@@ -501,7 +501,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-crypto_signature.html b/docs/module-crypto_signature.html
index accef42e..9871733f 100644
--- a/docs/module-crypto_signature.html
+++ b/docs/module-crypto_signature.html
@@ -89,7 +89,7 @@
Source:
@@ -276,7 +276,7 @@ See RFC 4880 5.2.2.<
Source:
@@ -555,7 +555,7 @@ for public key and hash algorithms.
Source:
@@ -834,7 +834,7 @@ for public key and hash algorithms.
Source:
@@ -902,7 +902,7 @@ for public key and hash algorithms.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-encoding_base64.html b/docs/module-encoding_base64.html
index 11035aa0..50e2f9c1 100644
--- a/docs/module-encoding_base64.html
+++ b/docs/module-encoding_base64.html
@@ -168,7 +168,7 @@
Source:
@@ -332,7 +332,7 @@
Source:
@@ -499,7 +499,7 @@
Source:
@@ -686,7 +686,7 @@
Source:
@@ -754,7 +754,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-enums.html b/docs/module-enums.html
index af3da952..00325c0f 100644
--- a/docs/module-enums.html
+++ b/docs/module-enums.html
@@ -235,7 +235,7 @@
Source:
@@ -499,7 +499,7 @@
Source:
@@ -694,7 +694,7 @@
Source:
@@ -763,7 +763,7 @@
- p256
+ nistP256
@@ -786,7 +786,7 @@
- "P-256"
+ p256
@@ -809,122 +809,7 @@
- secp256r1
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- prime256v1
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "1.2.840.10045.3.1.7"
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2a8648ce3d030107
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2A8648CE3D030107
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- p384
+ nistP384
@@ -947,7 +832,7 @@
- "P-384"
+ p384
@@ -970,99 +855,7 @@
- secp384r1
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "1.3.132.0.34"
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2b81040022
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2B81040022
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- p521
+ nistP521
@@ -1085,99 +878,7 @@
- "P-521"
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- secp521r1
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "1.3.132.0.35"
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2b81040023
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2B81040023
+ p521
@@ -1221,75 +922,6 @@
-
-
- "1.3.132.0.10"
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2b8104000a
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2B8104000A
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ed25519Legacy
@@ -1313,29 +945,6 @@
-
-
- ED25519
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ed25519
@@ -1354,98 +963,6 @@
-
-
-
-
-
-
-
- Ed25519
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "1.3.6.1.4.1.11591.15.1"
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2b06010401da470f01
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2B06010401DA470F01
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
@@ -1474,52 +991,6 @@
-
-
- X25519
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- cv25519
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
curve25519
@@ -1538,98 +1009,6 @@
-
-
-
-
-
-
-
- Curve25519
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "1.3.6.1.4.1.3029.1.5.1"
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2b060104019755010501
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2B060104019755010501
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
@@ -1658,75 +1037,6 @@
-
-
- "1.3.36.3.3.2.8.1.1.7"
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2b2403030208010107
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2B2403030208010107
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
brainpoolP384r1
@@ -1750,75 +1060,6 @@
-
-
- "1.3.36.3.3.2.8.1.1.11"
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2b240303020801010b
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2B240303020801010B
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
brainpoolP512r1
@@ -1841,75 +1082,6 @@
-
-
-
- "1.3.36.3.3.2.8.1.1.13"
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2b240303020801010d
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2B240303020801010D
-
-
-
-
-
-String
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1947,7 +1119,7 @@
Source:
@@ -2151,7 +1323,7 @@ fingerprint format
Source:
@@ -2461,7 +1633,7 @@ fingerprint format
Source:
@@ -2727,7 +1899,7 @@ possession of more than one person.
Source:
@@ -2922,7 +2094,7 @@ possession of more than one person.
Source:
@@ -3462,7 +2634,7 @@ possession of more than one person.
Source:
@@ -3888,7 +3060,7 @@ possession of more than one person.
Source:
@@ -4106,7 +3278,7 @@ possession of more than one person.
Source:
@@ -4324,7 +3496,7 @@ possession of more than one person.
Source:
@@ -4841,7 +4013,7 @@ document) that cannot include a target subpacket.
Source:
@@ -5565,7 +4737,7 @@ document) that cannot include a target subpacket.
Source:
@@ -5852,7 +5024,7 @@ document) that cannot include a target subpacket.
Source:
@@ -6048,7 +5220,7 @@ document) that cannot include a target subpacket.
Source:
@@ -6202,7 +5374,7 @@ document) that cannot include a target subpacket.
Source:
@@ -6418,7 +5590,7 @@ document) that cannot include a target subpacket.
Source:
@@ -6515,7 +5687,7 @@ document) that cannot include a target subpacket.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-key_Subkey-Subkey.html b/docs/module-key_Subkey-Subkey.html
index 87f2ab7f..d8ef91cc 100644
--- a/docs/module-key_Subkey-Subkey.html
+++ b/docs/module-key_Subkey-Subkey.html
@@ -171,7 +171,7 @@
Source:
@@ -281,7 +281,7 @@
Source:
@@ -394,7 +394,7 @@
Source:
@@ -511,7 +511,7 @@
Source:
@@ -628,7 +628,7 @@
Source:
@@ -741,7 +741,7 @@
Source:
@@ -942,7 +942,7 @@ Returns null if the subkey is invalid.
Source:
@@ -1055,7 +1055,7 @@ Returns null if the subkey is invalid.
Source:
@@ -1172,7 +1172,7 @@ Returns null if the subkey is invalid.
Source:
@@ -1289,7 +1289,7 @@ Returns null if the subkey is invalid.
Source:
@@ -1406,7 +1406,7 @@ Returns null if the subkey is invalid.
Source:
@@ -1523,7 +1523,7 @@ Returns null if the subkey is invalid.
Source:
@@ -1640,7 +1640,7 @@ Returns null if the subkey is invalid.
Source:
@@ -1757,7 +1757,7 @@ Returns null if the subkey is invalid.
Source:
@@ -1873,7 +1873,7 @@ Returns null if the subkey is invalid.
Source:
@@ -2149,7 +2149,7 @@ Returns null if the subkey is invalid.
Source:
@@ -2487,7 +2487,7 @@ Returns null if the subkey is invalid.
Source:
@@ -2599,7 +2599,7 @@ Returns null if the subkey is invalid.
Source:
@@ -2832,7 +2832,7 @@ Returns null if the subkey is invalid.
Source:
@@ -3044,7 +3044,7 @@ and valid binding signature.
Source:
@@ -3137,7 +3137,7 @@ and valid binding signature.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-key_Subkey.html b/docs/module-key_Subkey.html
index 681d225d..da7d59b7 100644
--- a/docs/module-key_Subkey.html
+++ b/docs/module-key_Subkey.html
@@ -77,7 +77,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-key_User-User.html b/docs/module-key_User-User.html
index 8ef2f320..8e8ef785 100644
--- a/docs/module-key_User-User.html
+++ b/docs/module-key_User-User.html
@@ -171,7 +171,7 @@
Source:
@@ -404,7 +404,7 @@
Source:
@@ -516,7 +516,7 @@
Source:
@@ -789,7 +789,7 @@
Source:
@@ -1127,7 +1127,7 @@
Source:
@@ -1239,7 +1239,7 @@
Source:
@@ -1442,7 +1442,7 @@
Source:
@@ -1623,7 +1623,7 @@ and validity of self signature.
Source:
@@ -1887,7 +1887,7 @@ and validity of self signature.
Source:
@@ -2154,7 +2154,7 @@ Signature validity is null if the verification keys do not correspond to the cer
Source:
@@ -2234,7 +2234,7 @@ Signature validity is null if the verification keys do not correspond to the cer
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-key_User.html b/docs/module-key_User.html
index 298131b9..8daa7956 100644
--- a/docs/module-key_User.html
+++ b/docs/module-key_User.html
@@ -77,7 +77,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-key_helper.html b/docs/module-key_helper.html
index 45f9f817..df586d3f 100644
--- a/docs/module-key_helper.html
+++ b/docs/module-key_helper.html
@@ -89,7 +89,7 @@
Source:
@@ -281,7 +281,7 @@
Source:
@@ -518,7 +518,7 @@
Source:
@@ -928,7 +928,7 @@
Source:
@@ -1116,7 +1116,7 @@ The expiration time of the signature is ignored.
Source:
@@ -1352,7 +1352,7 @@ The expiration time of the signature is ignored.
Source:
@@ -1624,7 +1624,7 @@ The expiration time of the signature is ignored.
Source:
@@ -1896,7 +1896,7 @@ The expiration time of the signature is ignored.
Source:
@@ -2200,7 +2200,7 @@ The expiration time of the signature is ignored.
Source:
@@ -2507,7 +2507,7 @@ The expiration time of the signature is ignored.
Source:
@@ -2806,7 +2806,7 @@ The expiration time of the signature is ignored.
Source:
@@ -2852,7 +2852,7 @@ The expiration time of the signature is ignored.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-packet_packet.html b/docs/module-packet_packet.html
index 9215d135..4ed6b6e4 100644
--- a/docs/module-packet_packet.html
+++ b/docs/module-packet_packet.html
@@ -89,7 +89,7 @@
Source:
@@ -275,7 +275,7 @@
Source:
@@ -436,7 +436,7 @@
Source:
@@ -621,7 +621,7 @@ string
Source:
@@ -783,7 +783,7 @@ string
Source:
@@ -851,7 +851,7 @@ string
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-type_ecdh_symkey.html b/docs/module-type_ecdh_symkey.html
index 1849b1da..b6fe97e6 100644
--- a/docs/module-type_ecdh_symkey.html
+++ b/docs/module-type_ecdh_symkey.html
@@ -89,7 +89,7 @@
Source:
@@ -152,7 +152,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-type_kdf_params-KDFParams.html b/docs/module-type_kdf_params-KDFParams.html
index efa1ab8f..87d5ca38 100644
--- a/docs/module-type_kdf_params-KDFParams.html
+++ b/docs/module-type_kdf_params-KDFParams.html
@@ -163,7 +163,7 @@
Source:
@@ -322,7 +322,7 @@
Source:
@@ -434,7 +434,7 @@
Source:
@@ -502,7 +502,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-type_keyid-KeyID.html b/docs/module-type_keyid-KeyID.html
index bb3e2898..9cdefc53 100644
--- a/docs/module-type_keyid-KeyID.html
+++ b/docs/module-type_keyid-KeyID.html
@@ -101,7 +101,7 @@ formed.
Source:
@@ -295,7 +295,7 @@ formed.
Source:
@@ -385,7 +385,7 @@ formed.
Source:
@@ -497,7 +497,7 @@ formed.
Source:
@@ -658,7 +658,7 @@ formed.
Source:
@@ -748,7 +748,7 @@ formed.
Source:
@@ -860,7 +860,7 @@ formed.
Source:
@@ -928,7 +928,7 @@ formed.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-type_keyid.html b/docs/module-type_keyid.html
index 35a85bf5..9a78068b 100644
--- a/docs/module-type_keyid.html
+++ b/docs/module-type_keyid.html
@@ -77,7 +77,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-type_oid.html b/docs/module-type_oid.html
index 27a5dcd4..8d23ee8a 100644
--- a/docs/module-type_oid.html
+++ b/docs/module-type_oid.html
@@ -100,7 +100,7 @@ sequence of octets is the valid representation of a curve OID.
Source:
@@ -163,7 +163,7 @@ sequence of octets is the valid representation of a curve OID.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-type_s2k-GenericS2K.html b/docs/module-type_s2k-GenericS2K.html
index 07287091..18af6ab1 100644
--- a/docs/module-type_s2k-GenericS2K.html
+++ b/docs/module-type_s2k-GenericS2K.html
@@ -153,7 +153,7 @@
Source:
@@ -262,7 +262,7 @@
Source:
@@ -332,7 +332,7 @@
Source:
@@ -406,7 +406,7 @@
Source:
@@ -480,7 +480,7 @@
Source:
@@ -612,7 +612,7 @@ hashAlgorithm
Source:
@@ -774,7 +774,7 @@ hashAlgorithm hash length
Source:
@@ -886,7 +886,7 @@ hashAlgorithm hash length
Source:
@@ -954,7 +954,7 @@ hashAlgorithm hash length
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-type_s2k.html b/docs/module-type_s2k.html
index 25caf336..afc40e6a 100644
--- a/docs/module-type_s2k.html
+++ b/docs/module-type_s2k.html
@@ -95,7 +95,7 @@ symmetrically encrypted messages.
Source:
@@ -165,7 +165,7 @@ symmetrically encrypted messages.
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-type_x25519x448_symkey.html b/docs/module-type_x25519x448_symkey.html
index 4e92f253..cd9071b4 100644
--- a/docs/module-type_x25519x448_symkey.html
+++ b/docs/module-type_x25519x448_symkey.html
@@ -91,7 +91,7 @@ the former includes an algorithm byte preceeding the encrypted session key.<
Source:
@@ -154,7 +154,7 @@ the former includes an algorithm byte preceeding the encrypted session key.<
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/docs/module-util.html b/docs/module-util.html
index 977a0736..fa68cd6a 100644
--- a/docs/module-util.html
+++ b/docs/module-util.html
@@ -89,7 +89,7 @@
Source:
@@ -152,7 +152,7 @@
- Functions Modules Classes
+ Functions Modules Classes
diff --git a/package-lock.json b/package-lock.json
index eca4d50a..73ddf44d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "openpgp",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "openpgp",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.1",
"license": "LGPL-3.0+",
"devDependencies": {
"@openpgp/asmcrypto.js": "^3.1.0",
diff --git a/package.json b/package.json
index b1744c4d..3a52dff3 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "openpgp",
"description": "OpenPGP.js is a Javascript implementation of the OpenPGP protocol. This is defined in RFC 4880.",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.1",
"license": "LGPL-3.0+",
"homepage": "https://openpgpjs.org/",
"engines": {
From aba61efa702eef0c6800bec5eccdea2c67d13035 Mon Sep 17 00:00:00 2001
From: larabr <7375870+larabr@users.noreply.github.com>
Date: Thu, 21 Mar 2024 14:09:23 +0100
Subject: [PATCH 113/201] CI: update interop test suite: fix sop-openpgpjs,
include crypto-refresh tests, and compare with gopenpgp v3
sop-openpgpjs did not correctly apply the `OPENPGPJS_PATH` env variable; as a result,
it did not actually test the code from either the PR and base branch, but always from
the hardcoded version bundled with it.
---
.github/test-suite/config.json.template | 3 ++-
.github/test-suite/prepare_config.sh | 2 +-
.github/workflows/sop-test-suite.yml | 4 ++--
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/.github/test-suite/config.json.template b/.github/test-suite/config.json.template
index 7dd7e3fb..7a3b33c5 100644
--- a/.github/test-suite/config.json.template
+++ b/.github/test-suite/config.json.template
@@ -21,7 +21,8 @@
"path": "__GPGME_SOP__"
},
{
- "path": "__GOSOP__"
+ "id": "gosop-v2",
+ "path": "__GOSOP_V2__"
},
{
"path": "__RNP_SOP__"
diff --git a/.github/test-suite/prepare_config.sh b/.github/test-suite/prepare_config.sh
index debe9add..0bf112c1 100755
--- a/.github/test-suite/prepare_config.sh
+++ b/.github/test-suite/prepare_config.sh
@@ -7,7 +7,7 @@ cat $CONFIG_TEMPLATE \
| sed "s@__OPENPGPJS_MAIN__@${OPENPGPJS_MAIN}@g" \
| sed "s@__SQOP__@${SQOP}@g" \
| sed "s@__GPGME_SOP__@${GPGME_SOP}@g" \
- | sed "s@__GOSOP__@${GOSOP}@g" \
+ | sed "s@__GOSOP_V2__@${GOSOP_DIR_V2}/gosop@g" \
| sed "s@__SOP_OPENPGPJS__@${SOP_OPENPGPJS}@g" \
| sed "s@__RNP_SOP__@${RNP_SOP}@g" \
> $CONFIG_OUTPUT
\ No newline at end of file
diff --git a/.github/workflows/sop-test-suite.yml b/.github/workflows/sop-test-suite.yml
index bd336dbf..458a7046 100644
--- a/.github/workflows/sop-test-suite.yml
+++ b/.github/workflows/sop-test-suite.yml
@@ -10,7 +10,7 @@ jobs:
name: Run interoperability test suite
runs-on: ubuntu-latest
container:
- image: ghcr.io/protonmail/openpgp-interop-test-docker:v1.1.1
+ image: ghcr.io/protonmail/openpgp-interop-test-docker:v1.1.6
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
@@ -79,7 +79,7 @@ jobs:
with:
name: test-suite-results.json
- name: Compare with baseline
- uses: ProtonMail/openpgp-interop-test-analyzer@v1
+ uses: ProtonMail/openpgp-interop-test-analyzer@v2
with:
results: ${{ steps.download-test-results.outputs.download-path }}/test-suite-results.json
output: baseline-comparison.json
From cb97c8fcb9152a04f350e26c6dfe9aeb40130415 Mon Sep 17 00:00:00 2001
From: larabr <7375870+larabr@users.noreply.github.com>
Date: Fri, 22 Mar 2024 11:44:51 +0100
Subject: [PATCH 114/201] CI: fix sop test result comparison
---
.github/workflows/sop-test-suite.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/sop-test-suite.yml b/.github/workflows/sop-test-suite.yml
index 458a7046..c390e4c8 100644
--- a/.github/workflows/sop-test-suite.yml
+++ b/.github/workflows/sop-test-suite.yml
@@ -84,4 +84,4 @@ jobs:
results: ${{ steps.download-test-results.outputs.download-path }}/test-suite-results.json
output: baseline-comparison.json
baseline: sop-openpgpjs-main
- target: sop-openpgpjs-main
+ target: sop-openpgpjs-branch
From b41298a3f6a3ebf91e3ce0ba0b5b653dc3144770 Mon Sep 17 00:00:00 2001
From: larabr <7375870+larabr@users.noreply.github.com>
Date: Fri, 22 Mar 2024 16:07:49 +0100
Subject: [PATCH 115/201] Add back armor checksum to detached signatures for
GPG compatibility
GPG v2 fails to parse detached signatures without the checksum
---
src/encoding/armor.js | 80 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 79 insertions(+), 1 deletion(-)
diff --git a/src/encoding/armor.js b/src/encoding/armor.js
index 8686d131..3820364d 100644
--- a/src/encoding/armor.js
+++ b/src/encoding/armor.js
@@ -107,6 +107,78 @@ function addheader(customComment, config) {
return result;
}
+/**
+ * Calculates a checksum over the given data and returns it base64 encoded
+ * @param {String | ReadableStream} data - Data to create a CRC-24 checksum for
+ * @returns {String | ReadableStream} Base64 encoded checksum.
+ * @private
+ */
+function getCheckSum(data) {
+ const crc = createcrc24(data);
+ return base64.encode(crc);
+}
+
+// https://create.stephan-brumme.com/crc32/#slicing-by-8-overview
+
+const crc_table = [
+ new Array(0xFF),
+ new Array(0xFF),
+ new Array(0xFF),
+ new Array(0xFF)
+];
+
+for (let i = 0; i <= 0xFF; i++) {
+ let crc = i << 16;
+ for (let j = 0; j < 8; j++) {
+ crc = (crc << 1) ^ ((crc & 0x800000) !== 0 ? 0x864CFB : 0);
+ }
+ crc_table[0][i] =
+ ((crc & 0xFF0000) >> 16) |
+ (crc & 0x00FF00) |
+ ((crc & 0x0000FF) << 16);
+}
+for (let i = 0; i <= 0xFF; i++) {
+ crc_table[1][i] = (crc_table[0][i] >> 8) ^ crc_table[0][crc_table[0][i] & 0xFF];
+}
+for (let i = 0; i <= 0xFF; i++) {
+ crc_table[2][i] = (crc_table[1][i] >> 8) ^ crc_table[0][crc_table[1][i] & 0xFF];
+}
+for (let i = 0; i <= 0xFF; i++) {
+ crc_table[3][i] = (crc_table[2][i] >> 8) ^ crc_table[0][crc_table[2][i] & 0xFF];
+}
+
+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView#Endianness
+const isLittleEndian = (function() {
+ const buffer = new ArrayBuffer(2);
+ new DataView(buffer).setInt16(0, 0xFF, true /* littleEndian */);
+ // Int16Array uses the platform's endianness.
+ return new Int16Array(buffer)[0] === 0xFF;
+}());
+
+/**
+ * Internal function to calculate a CRC-24 checksum over a given string (data)
+ * @param {String | ReadableStream} input - Data to create a CRC-24 checksum for
+ * @returns {Uint8Array | ReadableStream} The CRC-24 checksum.
+ * @private
+ */
+function createcrc24(input) {
+ let crc = 0xCE04B7;
+ return stream.transform(input, value => {
+ const len32 = isLittleEndian ? Math.floor(value.length / 4) : 0;
+ const arr32 = new Uint32Array(value.buffer, value.byteOffset, len32);
+ for (let i = 0; i < len32; i++) {
+ crc ^= arr32[i];
+ crc =
+ crc_table[0][(crc >> 24) & 0xFF] ^
+ crc_table[1][(crc >> 16) & 0xFF] ^
+ crc_table[2][(crc >> 8) & 0xFF] ^
+ crc_table[3][(crc >> 0) & 0xFF];
+ }
+ for (let i = len32 * 4; i < value.length; i++) {
+ crc = (crc >> 8) ^ crc_table[0][(crc & 0xFF) ^ value[i]];
+ }
+ }, () => new Uint8Array([crc, crc >> 8, crc >> 16]));
+}
/**
* Verify armored headers. crypto-refresh-06, section 6.2:
@@ -314,12 +386,18 @@ export function armor(messageType, body, partIndex, partTotal, customComment, co
result.push(base64.encode(body));
result.push('-----END PGP PRIVATE KEY BLOCK-----\n');
break;
- case enums.armor.signature:
+ case enums.armor.signature: {
+ const bodyClone = stream.passiveClone(body);
result.push('-----BEGIN PGP SIGNATURE-----\n');
result.push(addheader(customComment, config));
result.push(base64.encode(body));
+ // GPG v2 fails to parse signatures without checksums
+ result.push('=', getCheckSum(bodyClone));
result.push('-----END PGP SIGNATURE-----\n');
break;
+ }
+ default:
+ throw new Error('Unknown armor type');
}
return util.concat(result);
From 2574795d37a1745250bac43fa62aed91dd2c1f8d Mon Sep 17 00:00:00 2001
From: larabr
Date: Fri, 22 Mar 2024 17:10:27 +0100
Subject: [PATCH 116/201] Fix wrong serialization of PKESK v6 for x25519/x448
(#1734)
The cleartext session key symmetric algorithm was accidentally included in the packet.
As a result, the generated messages may fail to parse and/or decrypt in other implementations.
The messages would still decrypt successfully in OpenPGP.js, due to an overly permissive parsing procedure,
which simply discarded the unused additional byte.
We know also throw on unexpected cleartext symmetric algo in PKESK v6.
---
src/crypto/crypto.js | 4 +-
.../public_key_encrypted_session_key.js | 17 +++--
test/general/packet.js | 74 ++++++++++++++-----
3 files changed, 68 insertions(+), 27 deletions(-)
diff --git a/src/crypto/crypto.js b/src/crypto/crypto.js
index 04e2fe39..683f3e57 100644
--- a/src/crypto/crypto.js
+++ b/src/crypto/crypto.js
@@ -39,7 +39,7 @@ import ECDHXSymmetricKey from '../type/ecdh_x_symkey';
* Encrypts data using specified algorithm and public key parameters.
* See {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC 4880 9.1} for public key algorithms.
* @param {module:enums.publicKey} keyAlgo - Public key algorithm
- * @param {module:enums.symmetric} symmetricAlgo - Cipher algorithm
+ * @param {module:enums.symmetric|null} symmetricAlgo - Cipher algorithm (v3 only)
* @param {Object} publicParams - Algorithm-specific public key parameters
* @param {Uint8Array} data - Session key data to be encrypted
* @param {Uint8Array} fingerprint - Recipient fingerprint
@@ -66,7 +66,7 @@ export async function publicKeyEncrypt(keyAlgo, symmetricAlgo, publicParams, dat
}
case enums.publicKey.x25519:
case enums.publicKey.x448: {
- if (!util.isAES(symmetricAlgo)) {
+ if (symmetricAlgo && !util.isAES(symmetricAlgo)) {
// see https://gitlab.com/openpgp-wg/rfc4880bis/-/merge_requests/276
throw new Error('X25519 and X448 keys can only encrypt AES session keys');
}
diff --git a/src/packet/public_key_encrypted_session_key.js b/src/packet/public_key_encrypted_session_key.js
index 1f6c1d04..23a10563 100644
--- a/src/packet/public_key_encrypted_session_key.js
+++ b/src/packet/public_key_encrypted_session_key.js
@@ -128,9 +128,12 @@ class PublicKeyEncryptedSessionKeyPacket {
}
this.publicKeyAlgorithm = bytes[offset++];
this.encrypted = crypto.parseEncSessionKeyParams(this.publicKeyAlgorithm, bytes.subarray(offset));
- if (this.version === 3 && (
- this.publicKeyAlgorithm === enums.publicKey.x25519 || this.publicKeyAlgorithm === enums.publicKey.x448)) {
- this.sessionKeyAlgorithm = enums.write(enums.symmetric, this.encrypted.C.algorithm);
+ if (this.publicKeyAlgorithm === enums.publicKey.x25519 || this.publicKeyAlgorithm === enums.publicKey.x448) {
+ if (this.version === 3) {
+ this.sessionKeyAlgorithm = enums.write(enums.symmetric, this.encrypted.C.algorithm);
+ } else if (this.encrypted.C.algorithm !== null) {
+ throw new Error('Unexpected cleartext symmetric algorithm');
+ }
}
}
@@ -174,9 +177,12 @@ class PublicKeyEncryptedSessionKeyPacket {
*/
async encrypt(key) {
const algo = enums.write(enums.publicKey, this.publicKeyAlgorithm);
- const encoded = encodeSessionKey(this.version, algo, this.sessionKeyAlgorithm, this.sessionKey);
+ // No symmetric encryption algorithm identifier is passed to the public-key algorithm for a
+ // v6 PKESK packet, as it is included in the v2 SEIPD packet.
+ const sessionKeyAlgorithm = this.version === 3 ? this.sessionKeyAlgorithm : null;
+ const encoded = encodeSessionKey(this.version, algo, sessionKeyAlgorithm, this.sessionKey);
this.encrypted = await crypto.publicKeyEncrypt(
- algo, this.sessionKeyAlgorithm, key.publicParams, encoded, key.getFingerprintBytes());
+ algo, sessionKeyAlgorithm, key.publicParams, encoded, key.getFingerprintBytes());
}
/**
@@ -275,6 +281,7 @@ function decodeSessionKey(version, keyAlgo, decryptedData, randomSessionKey) {
case enums.publicKey.x25519:
case enums.publicKey.x448:
return {
+ sessionKeyAlgorithm: null,
sessionKey: decryptedData
};
default:
diff --git a/test/general/packet.js b/test/general/packet.js
index 0cf26d7b..b40e2ba5 100644
--- a/test/general/packet.js
+++ b/test/general/packet.js
@@ -8,6 +8,8 @@ chaiUse(chaiAsPromised);
import openpgp from '../initOpenpgp.js';
import crypto from '../../src/crypto';
import util from '../../src/util.js';
+import * as packet from '../../src/packet';
+
import * as input from './testInputs.js';
@@ -469,32 +471,64 @@ export default () => describe('Packet', function() {
});
});
- it('Public key encrypted symmetric key packet', function() {
- const rsa = openpgp.enums.publicKey.rsaEncryptSign;
- const keySize = 1024;
+ describe('Public key encrypted symmetric key packet - roundtrip', () => {
+ const testData = [{
+ algoLabel: 'RSA',
+ publicKeyAlgorithm: openpgp.enums.publicKey.rsaEncryptSign,
+ paramsPromise: crypto.generateParams(openpgp.enums.publicKey.rsaEncryptSign, 1024, 65537)
+ },
+ {
+ algoLabel: 'ECDH NIST P-256',
+ publicKeyAlgorithm: openpgp.enums.publicKey.ecdh,
+ paramsPromise: crypto.generateParams(openpgp.enums.publicKey.ecdh, null, openpgp.enums.curve.nistP256)
+ },
+ {
+ algoLabel: 'ECDH x25519Legacy',
+ publicKeyAlgorithm: openpgp.enums.publicKey.ecdh,
+ paramsPromise: crypto.generateParams(openpgp.enums.publicKey.ecdh, null, openpgp.enums.curve.curve25519Legacy)
+ },
+ {
+ algoLabel: 'x25519',
+ publicKeyAlgorithm: openpgp.enums.publicKey.x25519,
+ paramsPromise: crypto.generateParams(openpgp.enums.publicKey.x25519)
+ }];
- return crypto.generateParams(rsa, keySize, 65537).then(function({ publicParams, privateParams }) {
- const enc = new openpgp.PublicKeyEncryptedSessionKeyPacket();
- enc.version = 3;
- const msg = new openpgp.PacketList();
- const msg2 = new openpgp.PacketList();
+ function testRoundtrip({ v6 }) {
+ testData.forEach(({ algoLabel, publicKeyAlgorithm, paramsPromise }) => {
+ it(`${algoLabel} (PKESK ${v6 ? 'v6' : 'v3'})`, async () => {
+ const { publicParams, privateParams } = await paramsPromise;
+ // cannot use the `openpgp` exported values, since the different context gives issues when internally
+ // evaluating the `OID` instanceof of `publicParams.oid`, as part of `pkesk.encrypt` and `decrypt`
+ const pkesk = new packet.PublicKeyEncryptedSessionKeyPacket();
+ pkesk.version = v6 ? 6 : 3;
+ const msg = new packet.PacketList();
+ const msg2 = new packet.PacketList();
- enc.sessionKey = new Uint8Array([1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2]);
- enc.publicKeyAlgorithm = openpgp.enums.publicKey.rsaEncryptSign;
- enc.sessionKeyAlgorithm = openpgp.enums.symmetric.aes256;
- enc.publicKeyID.bytes = '12345678';
- return enc.encrypt({ publicParams, getFingerprintBytes() {} }).then(async () => {
+ const privateKey = {
+ algorithm: publicKeyAlgorithm,
+ publicParams,
+ privateParams,
+ getFingerprintBytes: () => new Uint8Array(64)
+ };
+ pkesk.sessionKey = new Uint8Array([1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2]);
+ pkesk.publicKeyAlgorithm = publicKeyAlgorithm;
+ pkesk.sessionKeyAlgorithm = openpgp.enums.symmetric.aes256;
+ pkesk.publicKeyID.bytes = '12345678';
+ await pkesk.encrypt({ publicParams: privateKey.publicParams, getFingerprintBytes: privateKey.getFingerprintBytes });
- msg.push(enc);
- await msg2.read(msg.write(), allAllowedPackets);
+ msg.push(pkesk);
+ const allAllowedPackets = util.constructAllowedPackets([...Object.values(packet).filter(packetClass => !!packetClass.tag)]);
+ await msg2.read(msg.write(), allAllowedPackets);
- const privateKey = { algorithm: openpgp.enums.publicKey.rsaEncryptSign, publicParams, privateParams, getFingerprintBytes() {} };
- return msg2[0].decrypt(privateKey).then(() => {
- expect(stringify(msg2[0].sessionKey)).to.equal(stringify(enc.sessionKey));
- expect(msg2[0].sessionKeyAlgorithm).to.equal(enc.sessionKeyAlgorithm);
+ await msg2[0].decrypt(privateKey);
+ expect(msg2[0].sessionKey).to.deep.equal(pkesk.sessionKey);
+ expect(msg2[0].sessionKeyAlgorithm).to.equal(v6 ? null : pkesk.sessionKeyAlgorithm);
});
});
- });
+ }
+
+ testRoundtrip({ v6: false });
+ testRoundtrip({ v6: true });
});
it('Secret key packet (reading, unencrypted)', async function() {
From 6ebd179ed58c698d94599af48836825f0f7c902e Mon Sep 17 00:00:00 2001
From: larabr <7375870+larabr@users.noreply.github.com>
Date: Fri, 22 Mar 2024 16:58:33 +0100
Subject: [PATCH 117/201] Fix encrypting to a key with no declared features
---
src/key/helper.js | 2 +-
test/general/openpgp.js | 63 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 64 insertions(+), 1 deletion(-)
diff --git a/src/key/helper.js b/src/key/helper.js
index d440cab2..9ca90bf4 100644
--- a/src/key/helper.js
+++ b/src/key/helper.js
@@ -171,7 +171,7 @@ export async function getPreferredCompressionAlgo(keys = [], date = new Date(),
export async function getPreferredCipherSuite(keys = [], date = new Date(), userIDs = [], config = defaultConfig) {
const selfSigs = await Promise.all(keys.map((key, i) => key.getPrimarySelfSignature(date, userIDs[i], config)));
const withAEAD = keys.length ?
- selfSigs.every(selfSig => selfSig.features[0] & enums.features.seipdv2) :
+ selfSigs.every(selfSig => selfSig.features && (selfSig.features[0] & enums.features.seipdv2)) :
config.aeadProtect;
if (withAEAD) {
diff --git a/test/general/openpgp.js b/test/general/openpgp.js
index 49cc76b1..ad5275b8 100644
--- a/test/general/openpgp.js
+++ b/test/general/openpgp.js
@@ -868,6 +868,56 @@ MbVkSnU2Z+vhSmYubDCldNOSVwE=
=bTUQ
-----END PGP PRIVATE KEY BLOCK-----`;
+const rsaKeyWithNoFeaturesFromRNP = `-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+xcLYBGX9lyEBCADMOR1JW9yPhMxeMmrUWf2MqKtX9WHvS+EFkPaVwWmYIM/bjcrngPgKEG5wTND9
+S1QJ/Op9mzN36kwAzX0bLx2R+HlyvNQOzOA05uY3uhbZePvkE2o76z9//w07DEYtMG8aLvLdpVLW
+U7YwMMdlI8zSwi2Q5/QAUOfCJCylxndj/U7AF+9sqrSoSJmwtzu+AS3pnHDgqcHpum7KTL7sOgwa
+8713qGb05YgXCtUkh2hT0t7Kz5OsQrM01yJJlVkgxw6BZXiRCLSCGCepZiUvtWO53cwZ2GgIZZKx
+piAEo8AjMHGUxyiMBR5DvzDLADVexLf/DB5BTz9KywRu2zTGUtYlABEBAAEAB/4ifoUlVmhHL4GL
+aY2kx3xtjTG/vhkoH5Nm6sjTm6MXyHcDWQxMFPsQTB0zR65HEjmkJD2BML09RGxI+GxosokWljcB
+O8a/pzg5h0ScZgik++vj5qmbbE1B89UKw7R4voUNkZ+A84Mt417S/fI38ZePg6/JmXwbr46tuol2
+CLMyxpFVNvGgqj7/U3co/BygukHMqfpC/K4QTVWUFCLkzgpAzk+LekSLWNrVD2soVQGmUn68OOLY
+Dnwxe7mP/4GAmmnAH4nfg9Uf+z1tHVoaL7sUHKFXXBIjopcimWBjLIzWm0ZvKzmvmOE49Fswuoyt
+Q2oLWYCXd/lrDr4u/VN+/uKhBADTpPm6+eNJ9CDOsIHTlNWrKD6/iubsLXWju5uyOW8rWDkE5m8+
+Ik+l4Eq8b0iAHGSS/6QayeRupeUCCkHnmA956qAFvHzkeE2S5YUg/mtnV+qPZrHG4UfD3KU0gv/Y
+3x3HcqOYU7Ph6kq4mcF7UO83+8E8gJWyJwWwqpKXrgDZtQQA9wX5T11+bOwWh37SDWd20mqxTwZM
+pSuClCUwVs8Z2p/Fo+Kq/+uoNRQW38O1J2QM37fMaKOePeYN15cIM3ilZQ0mU3UwvKC1B3zxd0f9
+28cZ4fxlGDE3qzZygbB/BxiXnlcPezO2r03X9PJnjCP2y5Wi+PMR5ciFY1w5qaI9ELEEAL6Wvdl4
+zSwkT4qxM7rWzrpVPisdHRiwFT6E+vTmNpA+qXvwlbLEXrYmFVY7CphWjyJQEvqxaa0MtdJniwef
+cZtSi2CirquB0R3RJtloMZkbobRJFV43URIc9qUhSgarZ+Pco80mG06hjY2pxFot49oJZp2FNm5d
+wPOB/kCvczK3QRHNGkJlcm5hZGV0dGUgPGJAZXhhbXBsZS5vcmc+wsCNBBMBCAA3FiEEKUdMEpbT
+txHSmeOgwAeWcPHMimkFAmX9lyEFCQPCZwACGwMECwkIBwUVCAkKCwUWAgMBAAAKCRDAB5Zw8cyK
+aUZHB/9j2vE9niEiQS9tNczxrXFde2Kg8U+PzoSU83QvkkWM2D4FBukCZDHj7cppIzYcDcH0Gaox
+Y2eUgJx/q/Nq8svsk2Z4X3dGsEut+EqQpsjWny4kUHKUBemSh3JGJoH5ongxXXNwNTe31zNa1CRA
+nmc5KXnOmD2FX17ax5Xu2SaJ11eiKcmKXMtZBVzzLL41LwUd2RPizIw1TT2zckHIstwaLdO4y5If
+ZEnTiiBqrex8HYf/Vta8GF8uvJVQvn+Du5m/FmdeSFxTBeDvf1Sj6k8XBS9QQHbjpH/K4ePz9Twh
+ayLuvrvWmyN5edo6Xf1LRh/R6dskKbUOreAfS8pTWWp0x8LYBGX9lyEBCAC43ooLMCLT0QYslVWZ
+suDNNrQ0LYY24i3vRfnHFM9rRUthWrcIKzpKFvq9jntETYWkNM7LIJ2YhHueVMuLyaF2Evrkn89q
+dCbA+ICS4uJ5RlhXv5ZfQT+H9fQL/JBTk9vQpBoZHr8foPc2YNonOuZjmeLSa1ZcR6BumUQqTjuk
+CEgWxebnRUz6aL6+Mdl/emU7+G6IINC15q3RWUIlkmx5gQwsmIaztxVF9LniRIkB+Fjwf7U7AqfL
+Y87/F1LHqeaIzc6oZNfIIXX57A4im3lqJQAQq1n/omyYHwWO+lWqbCwCj8ri4OXcgGZOdkbMOHff
+hGsxKy8YK7qyvBxYiINPABEBAAEAB/sFu2CsWCG8T47Rcw/kZBd0RW3w8DhpGzoxYQoNkiecO9nK
+evWR20VDZtL/bZuE0qKCJOEEi05XnEP49Mga3XWUI6KD1DCqLE/HS+0woLhE6lly3w3ahjtiC841
+UO9op/z4yx3ECaADawo/NWGONdVO4UaXH5zd35qp0za52RMgUtPqwJBZ9cKfXkFmfu9QDpiW1J4N
+8S76Hgol4ThESRTm80d82L2UMVbFgXZOgpMgq+A1NXSbloSJ3ZMI2hR21PbQt/uAdwCP/E+EQOe+
+s6HN/9+0XjzsE0wcu7DJa/3QTWGTnn5Jg/SufHnABWTqYymfDH74TTPlkkWNJB65Cz0BBADUMLdg
+jfDgmlw2CtKHuMYvMDe//a+KgrV2Q89QRnQk8agwXkiY/NxtRehOj35yzzUs/AdEfmVT6jaC/dQD
+tEqeY1B9LI4nL4ZiE+qLnSKVPeeWtOVNUsNJUFRX6oSvChTlWj90UWvYtQUUS0zAQrI+tcJsypTE
+fiSBG8DOzefi1wQA3wnGkyIidc7N8u/NdCvBO2jUOU4Q6A1E1k2eVfcjK05gHEtChUgf03v80iFG
+42VIGa00rxfv9RdWAJzWy+/qqjPAUGtlrbM0VljZsvLnsZLU4cTaC2A+3Lm00UgkHAGzw4IBe9vB
+4IAHYpRnZEwIveyDwVLpioEP5wShHYVXTEkEAILWuum7EgK70yYoC4HUvmUufpj7aTfpC4vYqi+4
+Xw0n8PLPPRZ3AjJE2O41kicip/Y30B3HVIxwbwYMBIjqRTpTyYer6jkRHc17xau8vzyWKLETC+7A
+WPrljucvjEJXpkrDYlV5fmpsMvqVHJiSQrJDMFX1SHF8UUnqelGg6Fv8QLvCwHwEGAEIACYWIQQp
+R0wSltO3EdKZ46DAB5Zw8cyKaQUCZf2XIgUJA8JnAAIbDAAKCRDAB5Zw8cyKaY7PB/9qOmlz84mu
+wNrHo00TdXefBykwoJxtDLjNzQE/8HGnzuFWJgHvRDD8FLaaevRwD1AGf6B3YySxBwICoRqbsYGr
+wg9ng3wIUBPeAeS61e/ATkFEqknQnj2rIscaztxz56b1Sy6YEjW6dD7QngoinDViAmNT/zY2diK8
+85iB+47tNXrUOHD1FKs8XKr05FwWWjFmmqGSxC+LSdNeuDtP1UKZaoYROyZ+R3zKdguNOhtDHX6o
+me8oJym/ILMHRGIc4JvY9+2wE5U1FBYTsze3WnVH5dP5mfA2Uk83TR5KewKANsb4kl/OEPlADWdR
+8wENR68u88WrKOGN359vq/DKwd3A
+=c2mQ
+-----END PGP PRIVATE KEY BLOCK-----`;
+
function withCompression(tests) {
const compressionTypes = Object.values(openpgp.enums.compression);
@@ -2204,6 +2254,19 @@ k0mXubZvyl4GBg==
expect(seipd.version).to.equal(2);
expect(seipd.aeadAlgorithm).to.equal(openpgp.enums.aead.ocb);
});
+
+ it('should support encrypting to a key without features (missing SEIPDv1 feature)', async function () {
+ const key = await openpgp.readKey({ armoredKey: rsaKeyWithNoFeaturesFromRNP });
+ const encrypted = await openpgp.encrypt({
+ message: await openpgp.createMessage({ text: 'test' }),
+ encryptionKeys: key
+ });
+ const decrypted = await openpgp.decrypt({
+ message: await openpgp.readMessage({ armoredMessage: encrypted }),
+ decryptionKeys: key
+ });
+ expect(decrypted.data).to.equal('test');
+ });
});
describe('encryptSessionKey - unit tests', function() {
From aa222fecb2433e36f9bcee3e236da8e6fa02114f Mon Sep 17 00:00:00 2001
From: larabr
Date: Thu, 28 Mar 2024 14:24:23 +0100
Subject: [PATCH 118/201] Drop `config.revocationsExpire`, always honour
revocation expiration instead (#1736)
Unclear motivation for adding the original config option; if an expiration is there, it should
be honoured.
Breaking change:
the option used to default to `false`, and ignore revocation expirations. We now honour
those expirations, namely match the behaviour resulting from setting the option to `true`.
---
openpgp.d.ts | 1 -
src/config/config.js | 5 -----
src/key/helper.js | 2 +-
test/general/key.js | 3 ++-
4 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/openpgp.d.ts b/openpgp.d.ts
index 871a707d..10c8d710 100644
--- a/openpgp.d.ts
+++ b/openpgp.d.ts
@@ -328,7 +328,6 @@ interface Config {
allowUnauthenticatedStream: boolean;
minRSABits: number;
passwordCollisionCheck: boolean;
- revocationsExpire: boolean;
ignoreUnsupportedPackets: boolean;
ignoreMalformedPackets: boolean;
versionString: string;
diff --git a/src/config/config.js b/src/config/config.js
index b006a3f4..d5c9c14c 100644
--- a/src/config/config.js
+++ b/src/config/config.js
@@ -155,11 +155,6 @@ export default {
* @property {Boolean} passwordCollisionCheck
*/
passwordCollisionCheck: false,
- /**
- * @memberof module:config
- * @property {Boolean} revocationsExpire If true, expired revocation signatures are ignored
- */
- revocationsExpire: false,
/**
* Allow decryption using RSA keys without `encrypt` flag.
* This setting is potentially insecure, but it is needed to get around an old openpgpjs bug
diff --git a/src/key/helper.js b/src/key/helper.js
index 9ca90bf4..d479b081 100644
--- a/src/key/helper.js
+++ b/src/key/helper.js
@@ -282,7 +282,7 @@ export async function isDataRevoked(primaryKey, signatureType, dataToVerify, rev
!signature || revocationSignature.issuerKeyID.equals(signature.issuerKeyID)
) {
await revocationSignature.verify(
- key, signatureType, dataToVerify, config.revocationsExpire ? date : null, false, config
+ key, signatureType, dataToVerify, date, false, config
);
// TODO get an identifier of the revoked object instead
diff --git a/test/general/key.js b/test/general/key.js
index 5e20a31e..1060ac87 100644
--- a/test/general/key.js
+++ b/test/general/key.js
@@ -4275,7 +4275,8 @@ VYGdb3eNlV8CfoEC
const key = await openpgp.readKey({ armoredKey: pub_revoked_subkeys });
key.revocationSignatures = [];
key.users[0].revocationSignatures = [];
- return openpgp.encrypt({ encryptionKeys: [key], message: await openpgp.createMessage({ text: 'random data' }), date: new Date(1386842743000) }).then(() => {
+ const subkeyRevocationTime = key.subkeys[0].revocationSignatures[0].created;
+ return openpgp.encrypt({ encryptionKeys: [key], message: await openpgp.createMessage({ text: 'random data' }), date: subkeyRevocationTime }).then(() => {
throw new Error('encryptSessionKey should not encrypt with revoked public key');
}).catch(error => {
expect(error.message).to.equal('Error encrypting message: Could not find valid encryption key packet in key ' + key.getKeyID().toHex() + ': Subkey is revoked');
From c68bd960cea7557907891578f7a1b44cdc5f1147 Mon Sep 17 00:00:00 2001
From: larabr
Date: Tue, 2 Apr 2024 17:37:57 +0200
Subject: [PATCH 119/201] Randomise v4 and v5 signatures via custom notation,
add `config.nonDeterministicSignaturesViaNotation` to disable feature (#1737)
EdDSA is known to be vulnerable to fault attacks which can lead to secret key
extraction if two signatures over the same data can be collected. Randomly
occurring bitflips in specific parts of the computation might in principle
result in vulnerable faulty signatures being generated.
To protect signatures generated using v4 and v5 keys from this possibility, we
randomise each signature by adding a custom notation with a random value,
functioning as a salt.
For simplicity, we add the salt to all algos, not just EdDSA, as it may also
serve as protection in case of weaknesses in the hash algo, potentially
hindering e.g. some chosen-prefix attacks.
v6 signatures do not need to rely on this, as they are non-deterministic by
design.
While this notation solution is interoperable, it will reveal that the
signature has been generated using OpenPGP.js, which may not be desirable in
some cases.
For this reason, the option `config.nonDeterministicSignaturesViaNotation`
(defaulting to true) has been added to turn off the feature.
---
src/config/config.js | 8 +++++
src/key/helper.js | 4 +--
src/packet/signature.js | 43 +++++++++++++++++-----
test/general/packet.js | 2 +-
test/general/signature.js | 67 ++++++++++++++++++++++++++++++++++-
test/security/subkey_trust.js | 2 +-
6 files changed, 112 insertions(+), 14 deletions(-)
diff --git a/src/config/config.js b/src/config/config.js
index d5c9c14c..866a0c34 100644
--- a/src/config/config.js
+++ b/src/config/config.js
@@ -250,6 +250,14 @@ export default {
* @property {Array} knownNotations
*/
knownNotations: [],
+ /**
+ * If true, a salt notation is used to randomize signatures generated by v4 and v5 keys (v6 signatures are always non-deterministic, by design).
+ * This protects EdDSA signatures from potentially leaking the secret key in case of faults (i.e. bitflips) which, in principle, could occur
+ * during the signing computation. It is added to signatures of any algo for simplicity, and as it may also serve as protection in case of
+ * weaknesses in the hash algo, potentially hindering e.g. some chosen-prefix attacks.
+ * NOTE: the notation is interoperable, but will reveal that the signature has been generated using OpenPGP.js, which may not be desirable in some cases.
+ */
+ nonDeterministicSignaturesViaNotation: true,
/**
* Whether to use the the noble-curves library for curves (other than Curve25519) that are not supported by the available native crypto API.
* When false, certain standard curves will not be supported (depending on the platform).
diff --git a/src/key/helper.js b/src/key/helper.js
index d479b081..9425ebf8 100644
--- a/src/key/helper.js
+++ b/src/key/helper.js
@@ -218,8 +218,8 @@ export async function createSignaturePacket(dataToSign, privateKey, signingKeyPa
Object.assign(signaturePacket, signatureProperties);
signaturePacket.publicKeyAlgorithm = signingKeyPacket.algorithm;
signaturePacket.hashAlgorithm = await getPreferredHashAlgo(privateKey, signingKeyPacket, date, userID, config);
- signaturePacket.rawNotations = notations;
- await signaturePacket.sign(signingKeyPacket, dataToSign, date, detached);
+ signaturePacket.rawNotations = [...notations];
+ await signaturePacket.sign(signingKeyPacket, dataToSign, date, detached, config);
return signaturePacket;
}
diff --git a/src/packet/signature.js b/src/packet/signature.js
index b650ca99..43fc2002 100644
--- a/src/packet/signature.js
+++ b/src/packet/signature.js
@@ -26,6 +26,14 @@ import defaultConfig from '../config';
// Symbol to store cryptographic validity of the signature, to avoid recomputing multiple times on verification.
const verified = Symbol('verified');
+// A salt notation is used to randomize signatures.
+// This is to protect EdDSA signatures in particular, which are known to be vulnerable to fault attacks
+// leading to secret key extraction if two signatures over the same data can be collected (see https://github.com/jedisct1/libsodium/issues/170).
+// For simplicity, we add the salt to all algos, as it may also serve as protection in case of weaknesses in the hash algo, potentially hindering e.g.
+// some chosen-prefix attacks.
+// v6 signatures do not need to rely on this notation, as they already include a separate, built-in salt.
+const SALT_NOTATION_NAME = 'salt@notations.openpgpjs.org';
+
// GPG puts the Issuer and Signature subpackets in the unhashed area.
// Tampering with those invalidates the signature, so we still trust them and parse them.
// All other unhashed subpackets are ignored.
@@ -195,7 +203,7 @@ class SignaturePacket {
* @throws {Error} if signing failed
* @async
*/
- async sign(key, data, date = new Date(), detached = false) {
+ async sign(key, data, date = new Date(), detached = false, config) {
this.version = key.version;
this.created = util.normalizeDate(date);
@@ -205,6 +213,31 @@ class SignaturePacket {
const arr = [new Uint8Array([this.version, this.signatureType, this.publicKeyAlgorithm, this.hashAlgorithm])];
+ // add randomness to the signature
+ if (this.version === 6) {
+ const saltLength = saltLengthForHash(this.hashAlgorithm);
+ if (this.salt === null) {
+ this.salt = crypto.random.getRandomBytes(saltLength);
+ } else if (saltLength !== this.salt.length) {
+ throw new Error('Provided salt does not have the required length');
+ }
+ } else if (config.nonDeterministicSignaturesViaNotation) {
+ const saltNotations = this.rawNotations.filter(({ name }) => (name === SALT_NOTATION_NAME));
+ // since re-signing the same object is not supported, it's not expected to have multiple salt notations,
+ // but we guard against it as a sanity check
+ if (saltNotations.length === 0) {
+ const saltValue = crypto.random.getRandomBytes(saltLengthForHash(this.hashAlgorithm));
+ this.rawNotations.push({
+ name: SALT_NOTATION_NAME,
+ value: saltValue,
+ humanReadable: false,
+ critical: false
+ });
+ } else {
+ throw new Error('Unexpected existing salt notation');
+ }
+ }
+
// Add hashed subpackets
arr.push(this.writeHashedSubPackets());
@@ -215,14 +248,6 @@ class SignaturePacket {
this.signatureData = util.concat(arr);
- if (this.version === 6) {
- const saltLength = saltLengthForHash(this.hashAlgorithm);
- if (this.salt === null) {
- this.salt = crypto.random.getRandomBytes(saltLength);
- } else if (saltLength !== this.salt.length) {
- throw new Error('Provided salt does not have the required length');
- }
- }
const toHash = this.toHash(this.signatureType, data, detached);
const hash = await this.hash(this.signatureType, data, toHash, detached);
diff --git a/test/general/packet.js b/test/general/packet.js
index b40e2ba5..ad34ca31 100644
--- a/test/general/packet.js
+++ b/test/general/packet.js
@@ -1432,7 +1432,7 @@ V+HOQJQxXJkVRYa3QrFUehiMzTeqqMdgC6ZqJy7+
signature.publicKeyAlgorithm = openpgp.enums.publicKey.rsaSign;
signature.signatureType = openpgp.enums.signature.text;
- return signature.sign(key, literal).then(async () => {
+ return signature.sign(key, literal, undefined, undefined, openpgp.config).then(async () => {
signed.push(literal);
signed.push(signature);
diff --git a/test/general/signature.js b/test/general/signature.js
index 86b01476..20bd0c30 100644
--- a/test/general/signature.js
+++ b/test/general/signature.js
@@ -1409,7 +1409,7 @@ DAAKCRDyMVUMT0fjjlnQAQDFHUs6TIcxrNTtEZFjUFm1M0PJ1Dng/cDW4xN80fsn
});
expect(await sig.verified).to.be.true;
const { packets: [{ rawNotations: notations }] } = await sig.signature;
- expect(notations).to.have.length(2);
+ expect(notations).to.have.length(3);
expect(notations[0].name).to.equal('test@example.com');
expect(notations[0].value).to.deep.equal(new Uint8Array([116, 101, 115, 116]));
expect(notations[0].humanReadable).to.be.true;
@@ -1418,6 +1418,71 @@ DAAKCRDyMVUMT0fjjlnQAQDFHUs6TIcxrNTtEZFjUFm1M0PJ1Dng/cDW4xN80fsn
expect(notations[1].value).to.deep.equal(new Uint8Array([0, 1, 2, 3]));
expect(notations[1].humanReadable).to.be.false;
expect(notations[1].critical).to.be.false;
+ expect(notations[2].name).to.equal('salt@notations.openpgpjs.org');
+ expect(notations[2].humanReadable).to.be.false;
+ expect(notations[2].critical).to.be.false;
+ });
+
+ it('v4 signatures are randomized via salt notation (`config.nonDeterministicSignaturesViaNotation`)', async function() {
+ const v4SigningKey = await openpgp.readKey({
+ armoredKey: `-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+xVgEX8+jfBYJKwYBBAHaRw8BAQdA9GbdDjprR0sWf0R5a5IpulUauc0FsmzJ
+mOYCfoowt8EAAP9UwaqC0LWWQ5RlX7mps3728vFa/If1KBVwAjk7Uqhi2BKL
+zQ90ZXN0MiA8YkBhLmNvbT7CjAQQFgoAHQUCX8+jfAQLCQcIAxUICgQWAgEA
+AhkBAhsDAh4BACEJEG464aV2od77FiEEIcg441MtKnyJnPDRbjrhpXah3vuR
+gQD+Il6Gw2oIok4/ANyDDLBYZtKqRrMv4NcfF9DHYuAFcP4BAPhFOffyP3qU
+AEZb7QPrWdLfhn8/FeSFZxJvnmupQ9sDx10EX8+jfBIKKwYBBAGXVQEFAQEH
+QOSzo9cX1U2esGFClprOt0QWXNJ97228R5tKFxo6/0NoAwEIBwAA/0n4sq2i
+N6/jE+6rVO4o/7LW0xahxpV1tTA6qv1Op9TwFIDCeAQYFggACQUCX8+jfAIb
+DAAhCRBuOuGldqHe+xYhBCHIOONTLSp8iZzw0W464aV2od773XcA/jlmX8/c
+1/zIotEkyMZB4mI+GAg3FQ6bIACFBH1sz0MzAP9Snri0P4FRZ8D5THRCJoUm
+GBgpBmrf6IVv484jBswGDA==
+=8rBO
+-----END PGP PRIVATE KEY BLOCK-----`
+ });
+
+ const date = new Date('Tue, 25 Dec 2023 00:00:00 GMT');
+ const text = 'test';
+ const armoredRandomSignature1 = await openpgp.sign({
+ message: await openpgp.createMessage({ text }),
+ signingKeys: v4SigningKey,
+ date,
+ detached: true
+ });
+ const armoredRandomSignature2 = await openpgp.sign({
+ message: await openpgp.createMessage({ text }),
+ signingKeys: v4SigningKey,
+ date,
+ detached: true
+ });
+ const randomSignature1 = await openpgp.readSignature({ armoredSignature: armoredRandomSignature1 });
+ const randomSignature2 = await openpgp.readSignature({ armoredSignature: armoredRandomSignature2 });
+ expect(randomSignature1.packets[0].signedHashValue).to.not.deep.equal(randomSignature2.packets[0].signedHashValue);
+
+ // ensure the signatures are verifiable, as a sanity check
+ const verification1 = await openpgp.verify({ message: await openpgp.createMessage({ text }), signature: randomSignature1, verificationKeys: v4SigningKey, expectSigned: true });
+ expect(verification1.data).to.equal(text);
+
+ const armoredDeterministicSignature1 = await openpgp.sign({
+ message: await openpgp.createMessage({ text }),
+ signingKeys: v4SigningKey,
+ date,
+ detached: true,
+ config: { nonDeterministicSignaturesViaNotation: false }
+ });
+ const armoredDeterministicSignature2 = await openpgp.sign({
+ message: await openpgp.createMessage({ text }),
+ signingKeys: v4SigningKey,
+ date,
+ detached: true,
+ config: { nonDeterministicSignaturesViaNotation: false }
+ });
+ const deterministicSignature1 = await openpgp.readSignature({ armoredSignature: armoredDeterministicSignature1 });
+ const deterministicSignature2 = await openpgp.readSignature({ armoredSignature: armoredDeterministicSignature2 });
+ expect(deterministicSignature1.packets[0].signedHashValue).to.deep.equal(deterministicSignature2.packets[0].signedHashValue);
+ const verification2 = await openpgp.verify({ message: await openpgp.createMessage({ text }), signature: deterministicSignature1, verificationKeys: v4SigningKey, expectSigned: true });
+ expect(verification2.data).to.equal(text);
});
it('Verify v6 cleartext signed message with openpgp.verify', async function() {
diff --git a/test/security/subkey_trust.js b/test/security/subkey_trust.js
index e8aee45b..5d7f5fbe 100644
--- a/test/security/subkey_trust.js
+++ b/test/security/subkey_trust.js
@@ -50,7 +50,7 @@ export default () => it('Does not trust subkeys without Primary Key Binding Sign
fakeBindingSignature.publicKeyAlgorithm = attackerPrivKey.keyPacket.algorithm;
fakeBindingSignature.hashAlgorithm = enums.hash.sha256;
fakeBindingSignature.keyFlags = [enums.keyFlags.signData];
- await fakeBindingSignature.sign(attackerPrivKey.keyPacket, dataToSign);
+ await fakeBindingSignature.sign(attackerPrivKey.keyPacket, dataToSign, undefined, undefined, openpgp.config);
const newList = new PacketList();
newList.push(
pktPubAttacker[0], // attacker private key
From e9e843280b6d3b9a6b9d1e9909f829dfdfea5853 Mon Sep 17 00:00:00 2001
From: larabr <7375870+larabr@users.noreply.github.com>
Date: Fri, 5 Apr 2024 17:11:33 +0200
Subject: [PATCH 120/201] CI: update to sop-openpgp-v2 to test different v6
profiles
The implemented profiles do not work on v5, hence for now they need to be manually
disabled in the config of 'sop-openpgpjs-main'.
---
.github/test-suite/config.json.template | 3 ++-
.github/test-suite/prepare_config.sh | 2 +-
.github/workflows/sop-test-suite.yml | 6 +++---
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/.github/test-suite/config.json.template b/.github/test-suite/config.json.template
index 7a3b33c5..168cccf1 100644
--- a/.github/test-suite/config.json.template
+++ b/.github/test-suite/config.json.template
@@ -11,7 +11,8 @@
"id": "sop-openpgpjs-main",
"path": "__SOP_OPENPGPJS__",
"env": {
- "OPENPGPJS_PATH": "__OPENPGPJS_MAIN__"
+ "OPENPGPJS_PATH": "__OPENPGPJS_MAIN__",
+ "DISABLE_PROFILES": "true"
}
},
{
diff --git a/.github/test-suite/prepare_config.sh b/.github/test-suite/prepare_config.sh
index 0bf112c1..f7ff0b51 100755
--- a/.github/test-suite/prepare_config.sh
+++ b/.github/test-suite/prepare_config.sh
@@ -8,6 +8,6 @@ cat $CONFIG_TEMPLATE \
| sed "s@__SQOP__@${SQOP}@g" \
| sed "s@__GPGME_SOP__@${GPGME_SOP}@g" \
| sed "s@__GOSOP_V2__@${GOSOP_DIR_V2}/gosop@g" \
- | sed "s@__SOP_OPENPGPJS__@${SOP_OPENPGPJS}@g" \
+ | sed "s@__SOP_OPENPGPJS__@${SOP_OPENPGPJS_V2}@g" \
| sed "s@__RNP_SOP__@${RNP_SOP}@g" \
> $CONFIG_OUTPUT
\ No newline at end of file
diff --git a/.github/workflows/sop-test-suite.yml b/.github/workflows/sop-test-suite.yml
index c390e4c8..5d8b1bcb 100644
--- a/.github/workflows/sop-test-suite.yml
+++ b/.github/workflows/sop-test-suite.yml
@@ -10,7 +10,7 @@ jobs:
name: Run interoperability test suite
runs-on: ubuntu-latest
container:
- image: ghcr.io/protonmail/openpgp-interop-test-docker:v1.1.6
+ image: ghcr.io/protonmail/openpgp-interop-test-docker:v1.1.7
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
@@ -25,7 +25,7 @@ jobs:
- name: Install openpgpjs-branch
run: cd openpgpjs-branch && npm install
- name: Print openpgpjs-branch version
- run: $SOP_OPENPGPJS version --extended
+ run: $SOP_OPENPGPJS_V2 version --extended
env:
OPENPGPJS_PATH: ${{ github.workspace }}/openpgpjs-branch
# check out main branch
@@ -37,7 +37,7 @@ jobs:
- name: Install openpgpjs-main
run: cd openpgpjs-main && npm install
- name: Print openpgpjs-main version
- run: $SOP_OPENPGPJS version --extended
+ run: $SOP_OPENPGPJS_V2 version --extended
env:
OPENPGPJS_PATH: ${{ github.workspace }}/openpgpjs-main
# Run test suite
From 90c8fbbf002bae206f66f2b47984b0907395f835 Mon Sep 17 00:00:00 2001
From: larabr
Date: Tue, 9 Apr 2024 17:12:44 +0200
Subject: [PATCH 121/201] Add back armor checksum for non-v6 artifacts (#1741)
We need to include the checksum to work around a GnuPG bug where data fails to
be decoded if the base64 ends with no padding chars (=) (see https://dev.gnupg.org/T7071).
Pure v6 artifacts are unaffected and won't include the checksum, as mandated by
the spec.
Breaking change:
`openpgp.armor` takes an additional `emitChecksum` argument (defaults to
false).
NB: some types of data must not include the checksum, but compliance is left as
responsibility of the caller: this function does not carry out any checks.
Refer to the crypto-refresh RFC for more details.
---------
Co-authored-by: Daniel Huigens
---
openpgp.d.ts | 2 +-
src/cleartext.js | 10 ++++++----
src/encoding/armor.js | 24 ++++++++++++++++--------
src/key/key.js | 4 +++-
src/key/private_key.js | 4 +++-
src/key/public_key.js | 4 +++-
src/message.js | 8 +++++++-
src/signature.js | 4 +++-
test/general/armor.js | 34 ++++++++++++++++++++++++++++++++++
test/general/key.js | 2 +-
10 files changed, 77 insertions(+), 19 deletions(-)
diff --git a/openpgp.d.ts b/openpgp.d.ts
index 10c8d710..8801d0e3 100644
--- a/openpgp.d.ts
+++ b/openpgp.d.ts
@@ -735,7 +735,7 @@ export interface VerifyMessageResult = MaybeStream} ASCII armor.
*/
armor(config = defaultConfig) {
- // emit header if one of the signatures has a version not 6
- const emitHeader = this.signature.packets.some(packet => packet.version !== 6);
- const hash = emitHeader ?
+ // emit header and checksum if one of the signatures has a version not 6
+ const emitHeaderAndChecksum = this.signature.packets.some(packet => packet.version !== 6);
+ const hash = emitHeaderAndChecksum ?
Array.from(new Set(this.signature.packets.map(
packet => enums.read(enums.hash, packet.hashAlgorithm).toUpperCase()
))).join() :
@@ -124,7 +124,9 @@ export class CleartextMessage {
text: this.text,
data: this.signature.packets.write()
};
- return armor(enums.armor.signed, body, undefined, undefined, undefined, config);
+
+ // An ASCII-armored sequence of Signature packets that only includes v6 Signature packets MUST NOT contain a CRC24 footer.
+ return armor(enums.armor.signed, body, undefined, undefined, undefined, emitHeaderAndChecksum, config);
}
}
diff --git a/src/encoding/armor.js b/src/encoding/armor.js
index 3820364d..5404d8f6 100644
--- a/src/encoding/armor.js
+++ b/src/encoding/armor.js
@@ -334,10 +334,13 @@ export function unarmor(input) {
* @param {Integer} [partIndex]
* @param {Integer} [partTotal]
* @param {String} [customComment] - Additional comment to add to the armored string
+ * @param {Boolean} [emitChecksum] - Whether to compute and include the CRC checksum
+ * (NB: some types of data must not include it, but compliance is left as responsibility of the caller: this function does not carry out any checks)
+ * @param {Object} [config] - Full configuration, defaults to openpgp.config
* @returns {String | ReadableStream} Armored text.
* @static
*/
-export function armor(messageType, body, partIndex, partTotal, customComment, config = defaultConfig) {
+export function armor(messageType, body, partIndex, partTotal, customComment, emitChecksum = false, config = defaultConfig) {
let text;
let hash;
if (messageType === enums.armor.signed) {
@@ -345,18 +348,24 @@ export function armor(messageType, body, partIndex, partTotal, customComment, co
hash = body.hash;
body = body.data;
}
+ // unless explicitly forbidden by the spec, we need to include the checksum to work around a GnuPG bug
+ // where data fails to be decoded if the base64 ends with no padding chars (=) (see https://dev.gnupg.org/T7071)
+ const maybeBodyClone = emitChecksum && stream.passiveClone(body);
+
const result = [];
switch (messageType) {
case enums.armor.multipartSection:
result.push('-----BEGIN PGP MESSAGE, PART ' + partIndex + '/' + partTotal + '-----\n');
result.push(addheader(customComment, config));
result.push(base64.encode(body));
+ maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));
result.push('-----END PGP MESSAGE, PART ' + partIndex + '/' + partTotal + '-----\n');
break;
case enums.armor.multipartLast:
result.push('-----BEGIN PGP MESSAGE, PART ' + partIndex + '-----\n');
result.push(addheader(customComment, config));
result.push(base64.encode(body));
+ maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));
result.push('-----END PGP MESSAGE, PART ' + partIndex + '-----\n');
break;
case enums.armor.signed:
@@ -366,38 +375,37 @@ export function armor(messageType, body, partIndex, partTotal, customComment, co
result.push('\n-----BEGIN PGP SIGNATURE-----\n');
result.push(addheader(customComment, config));
result.push(base64.encode(body));
+ maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));
result.push('-----END PGP SIGNATURE-----\n');
break;
case enums.armor.message:
result.push('-----BEGIN PGP MESSAGE-----\n');
result.push(addheader(customComment, config));
result.push(base64.encode(body));
+ maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));
result.push('-----END PGP MESSAGE-----\n');
break;
case enums.armor.publicKey:
result.push('-----BEGIN PGP PUBLIC KEY BLOCK-----\n');
result.push(addheader(customComment, config));
result.push(base64.encode(body));
+ maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));
result.push('-----END PGP PUBLIC KEY BLOCK-----\n');
break;
case enums.armor.privateKey:
result.push('-----BEGIN PGP PRIVATE KEY BLOCK-----\n');
result.push(addheader(customComment, config));
result.push(base64.encode(body));
+ maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));
result.push('-----END PGP PRIVATE KEY BLOCK-----\n');
break;
- case enums.armor.signature: {
- const bodyClone = stream.passiveClone(body);
+ case enums.armor.signature:
result.push('-----BEGIN PGP SIGNATURE-----\n');
result.push(addheader(customComment, config));
result.push(base64.encode(body));
- // GPG v2 fails to parse signatures without checksums
- result.push('=', getCheckSum(bodyClone));
+ maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));
result.push('-----END PGP SIGNATURE-----\n');
break;
- }
- default:
- throw new Error('Unknown armor type');
}
return util.concat(result);
diff --git a/src/key/key.js b/src/key/key.js
index 3c7475ad..3964c5eb 100644
--- a/src/key/key.js
+++ b/src/key/key.js
@@ -612,7 +612,9 @@ class Key {
const revocationSignature = await helper.getLatestValidSignature(this.revocationSignatures, this.keyPacket, enums.signature.keyRevocation, dataToVerify, date, config);
const packetlist = new PacketList();
packetlist.push(revocationSignature);
- return armor(enums.armor.publicKey, packetlist.write(), null, null, 'This is a revocation certificate');
+ // An ASCII-armored Transferable Public Key packet sequence of a v6 key MUST NOT contain a CRC24 footer.
+ const emitChecksum = this.keyPacket.version !== 6;
+ return armor(enums.armor.publicKey, packetlist.write(), null, null, 'This is a revocation certificate', emitChecksum);
}
/**
diff --git a/src/key/private_key.js b/src/key/private_key.js
index 3c6fe474..904c09a0 100644
--- a/src/key/private_key.js
+++ b/src/key/private_key.js
@@ -64,7 +64,9 @@ class PrivateKey extends PublicKey {
* @returns {ReadableStream} ASCII armor.
*/
armor(config = defaultConfig) {
- return armor(enums.armor.privateKey, this.toPacketList().write(), undefined, undefined, undefined, config);
+ // An ASCII-armored Transferable Public Key packet sequence of a v6 key MUST NOT contain a CRC24 footer.
+ const emitChecksum = this.keyPacket.version !== 6;
+ return armor(enums.armor.privateKey, this.toPacketList().write(), undefined, undefined, undefined, emitChecksum, config);
}
/**
diff --git a/src/key/public_key.js b/src/key/public_key.js
index 66eac924..7996a32c 100644
--- a/src/key/public_key.js
+++ b/src/key/public_key.js
@@ -61,7 +61,9 @@ class PublicKey extends Key {
* @returns {ReadableStream} ASCII armor.
*/
armor(config = defaultConfig) {
- return armor(enums.armor.publicKey, this.toPacketList().write(), undefined, undefined, undefined, config);
+ // An ASCII-armored Transferable Public Key packet sequence of a v6 key MUST NOT contain a CRC24 footer.
+ const emitChecksum = this.keyPacket.version !== 6;
+ return armor(enums.armor.publicKey, this.toPacketList().write(), undefined, undefined, undefined, emitChecksum, config);
}
}
diff --git a/src/message.js b/src/message.js
index 159c003e..113d5623 100644
--- a/src/message.js
+++ b/src/message.js
@@ -680,7 +680,13 @@ export class Message {
* @returns {ReadableStream} ASCII armor.
*/
armor(config = defaultConfig) {
- return armor(enums.armor.message, this.write(), null, null, null, config);
+ const trailingPacket = this.packets[this.packets.length - 1];
+ // An ASCII-armored Encrypted Message packet sequence that ends in an v2 SEIPD packet MUST NOT contain a CRC24 footer.
+ // An ASCII-armored sequence of Signature packets that only includes v6 Signature packets MUST NOT contain a CRC24 footer.
+ const emitChecksum = trailingPacket.constructor.tag === SymEncryptedIntegrityProtectedDataPacket.tag ?
+ trailingPacket.version !== 2 :
+ this.packets.some(packet => packet.constructor.tag === SignaturePacket.tag && packet.version !== 6);
+ return armor(enums.armor.message, this.write(), null, null, null, emitChecksum, config);
}
}
diff --git a/src/signature.js b/src/signature.js
index ae9e5623..f3e14e85 100644
--- a/src/signature.js
+++ b/src/signature.js
@@ -49,7 +49,9 @@ export class Signature {
* @returns {ReadableStream} ASCII armor.
*/
armor(config = defaultConfig) {
- return armor(enums.armor.signature, this.write(), undefined, undefined, undefined, config);
+ // An ASCII-armored sequence of Signature packets that only includes v6 Signature packets MUST NOT contain a CRC24 footer.
+ const emitChecksum = this.packets.some(packet => packet.constructor.tag === SignaturePacket.tag && packet.version !== 6);
+ return armor(enums.armor.signature, this.write(), undefined, undefined, undefined, emitChecksum, config);
}
/**
diff --git a/test/general/armor.js b/test/general/armor.js
index 62773792..01df7c05 100644
--- a/test/general/armor.js
+++ b/test/general/armor.js
@@ -255,6 +255,40 @@ export default () => describe('ASCII armor', function() {
expect(msg.text).to.equal('\r\nsign this');
});
+ it('Selectively output CRC checksum', async function () {
+ const includesArmorChecksum = armoredData => {
+ const lines = armoredData.split('\n');
+ const lastDataLine = lines[lines.length - 3];
+ return (lastDataLine[0] === '=' && lastDataLine.length === 5);
+ };
+
+ // unless explicitly forbidden by the spec, we include the checksum to work around a GnuPG bug (https://dev.gnupg.org/T7071)
+ const { privateKey: v4Key } = await openpgp.generateKey({ userIDs: { email: 'v4@armor.test' }, format: 'object' });
+ expect(includesArmorChecksum(v4Key.armor())).to.be.true;
+ const { privateKey: v6Key } = await openpgp.generateKey({ userIDs: { email: 'v6@armor.test' }, config: { v6Keys: true, aeadProtect: true }, format: 'object' });
+ expect(includesArmorChecksum(v6Key.armor())).to.be.false;
+
+ const messageWithSEIPDv1 = await openpgp.encrypt({ message: await openpgp.createMessage({ text: 'test' }), encryptionKeys: v4Key });
+ expect(includesArmorChecksum(messageWithSEIPDv1)).to.be.true;
+ const messageWithSEIPDv2 = await openpgp.encrypt({ message: await openpgp.createMessage({ text: 'test' }), encryptionKeys: v6Key });
+ expect(includesArmorChecksum(messageWithSEIPDv2)).to.be.false;
+
+ const signatureV4V6 = await openpgp.sign({ message: await openpgp.createMessage({ text: 'test' }), signingKeys: [v4Key, v6Key] });
+ expect(includesArmorChecksum(signatureV4V6)).to.be.true;
+ const signatureV6 = await openpgp.sign({ message: await openpgp.createMessage({ text: 'test' }), signingKeys: v6Key });
+ expect(includesArmorChecksum(signatureV6)).to.be.false;
+
+ const detachedSignatureV4V6 = await openpgp.sign({ message: await openpgp.createMessage({ text: 'test' }), signingKeys: [v4Key, v6Key], detached: true });
+ expect(includesArmorChecksum(detachedSignatureV4V6)).to.be.true;
+ const detachedSignatureV6 = await openpgp.sign({ message: await openpgp.createMessage({ text: 'test' }), signingKeys: v6Key, detached: true });
+ expect(includesArmorChecksum(detachedSignatureV6)).to.be.false;
+
+ const cleartextSignatureV4V6 = await openpgp.sign({ message: await openpgp.createCleartextMessage({ text: 'test' }), signingKeys: [v4Key, v6Key] });
+ expect(includesArmorChecksum(cleartextSignatureV4V6)).to.be.true;
+ const cleartextSignatureV6 = await openpgp.sign({ message: await openpgp.createCleartextMessage({ text: 'test' }), signingKeys: v6Key });
+ expect(includesArmorChecksum(cleartextSignatureV6)).to.be.false;
+ });
+
it('Do not add extraneous blank line when base64 ends on line break', async function () {
const pubKey = `-----BEGIN PGP PUBLIC KEY BLOCK-----
diff --git a/test/general/key.js b/test/general/key.js
index 1060ac87..570671fd 100644
--- a/test/general/key.js
+++ b/test/general/key.js
@@ -4024,7 +4024,7 @@ CNa5yq6lyexhsn2Vs8DsX+SOSUyNJiy5FyIJ
const input = await openpgp.unarmor(revocation_certificate_arm4);
const packetlist = await openpgp.PacketList.fromBinary(input.data, util.constructAllowedPackets([openpgp.SignaturePacket]), openpgp.config);
- const armored = openpgp.armor(openpgp.enums.armor.publicKey, packetlist.write());
+ const armored = openpgp.armor(openpgp.enums.armor.publicKey, packetlist.write(), undefined, undefined, undefined, true);
expect(revocationCertificate.replace(/^Comment: .*$\n/mg, '')).to.equal(armored.replace(/^Comment: .*$\n/mg, ''));
});
From a05c23b507463866153cbd39a93f978453eea932 Mon Sep 17 00:00:00 2001
From: larabr <7375870+larabr@users.noreply.github.com>
Date: Tue, 9 Apr 2024 18:40:51 +0200
Subject: [PATCH 122/201] `Key.getRevocationCertificate()`: apply `config`
settings when armoring
The `config` input was not passed down to the armor function due to an oversight.
---
src/key/key.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/key/key.js b/src/key/key.js
index 3964c5eb..d0aaa6b9 100644
--- a/src/key/key.js
+++ b/src/key/key.js
@@ -614,7 +614,7 @@ class Key {
packetlist.push(revocationSignature);
// An ASCII-armored Transferable Public Key packet sequence of a v6 key MUST NOT contain a CRC24 footer.
const emitChecksum = this.keyPacket.version !== 6;
- return armor(enums.armor.publicKey, packetlist.write(), null, null, 'This is a revocation certificate', emitChecksum);
+ return armor(enums.armor.publicKey, packetlist.write(), null, null, 'This is a revocation certificate', emitChecksum, config);
}
/**
From 9a53ac15df2244619fb2360a14d04270f49a3fa1 Mon Sep 17 00:00:00 2001
From: larabr <7375870+larabr@users.noreply.github.com>
Date: Tue, 9 Apr 2024 18:57:53 +0200
Subject: [PATCH 123/201] Tests: bump Sinon to v17
---
package-lock.json | 55 +++++++++++++++--------------------------------
package.json | 2 +-
2 files changed, 18 insertions(+), 39 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 73ddf44d..534e2a6f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -47,7 +47,7 @@
"mocha": "^10.3.0",
"playwright": "^1.42.0",
"rollup": "^4.12.0",
- "sinon": "^15.2.0",
+ "sinon": "^17.0.1",
"ts-node": "^10.9.2",
"tsx": "^4.7.1",
"typescript": "^5.3.3",
@@ -1398,9 +1398,9 @@
}
},
"node_modules/@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
+ "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
"dev": true,
"dependencies": {
"@sinonjs/commons": "^3.0.0"
@@ -5793,15 +5793,6 @@
"path-to-regexp": "^6.2.1"
}
},
- "node_modules/nise/node_modules/@sinonjs/fake-timers": {
- "version": "11.2.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
- "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^3.0.0"
- }
- },
"node_modules/normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@@ -6924,17 +6915,16 @@
"dev": true
},
"node_modules/sinon": {
- "version": "15.2.0",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz",
- "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==",
- "deprecated": "16.1.1",
+ "version": "17.0.1",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz",
+ "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==",
"dev": true,
"dependencies": {
"@sinonjs/commons": "^3.0.0",
- "@sinonjs/fake-timers": "^10.3.0",
+ "@sinonjs/fake-timers": "^11.2.2",
"@sinonjs/samsam": "^8.0.0",
"diff": "^5.1.0",
- "nise": "^5.1.4",
+ "nise": "^5.1.5",
"supports-color": "^7.2.0"
},
"funding": {
@@ -9021,9 +9011,9 @@
}
},
"@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
+ "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
"dev": true,
"requires": {
"@sinonjs/commons": "^3.0.0"
@@ -12434,17 +12424,6 @@
"@sinonjs/text-encoding": "^0.7.2",
"just-extend": "^6.2.0",
"path-to-regexp": "^6.2.1"
- },
- "dependencies": {
- "@sinonjs/fake-timers": {
- "version": "11.2.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
- "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^3.0.0"
- }
- }
}
},
"normalize-package-data": {
@@ -13264,16 +13243,16 @@
"dev": true
},
"sinon": {
- "version": "15.2.0",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz",
- "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==",
+ "version": "17.0.1",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz",
+ "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==",
"dev": true,
"requires": {
"@sinonjs/commons": "^3.0.0",
- "@sinonjs/fake-timers": "^10.3.0",
+ "@sinonjs/fake-timers": "^11.2.2",
"@sinonjs/samsam": "^8.0.0",
"diff": "^5.1.0",
- "nise": "^5.1.4",
+ "nise": "^5.1.5",
"supports-color": "^7.2.0"
},
"dependencies": {
diff --git a/package.json b/package.json
index 3a52dff3..669dc61e 100644
--- a/package.json
+++ b/package.json
@@ -100,7 +100,7 @@
"mocha": "^10.3.0",
"playwright": "^1.42.0",
"rollup": "^4.12.0",
- "sinon": "^15.2.0",
+ "sinon": "^17.0.1",
"ts-node": "^10.9.2",
"tsx": "^4.7.1",
"typescript": "^5.3.3",
From 231fbbe8cadfca6e9fc54b9842320f671e0d5d3a Mon Sep 17 00:00:00 2001
From: larabr <7375870+larabr@users.noreply.github.com>
Date: Tue, 9 Apr 2024 19:07:58 +0200
Subject: [PATCH 124/201] Run npm update
---
package-lock.json | 2269 +++++++++++++++++++--------------------------
package.json | 14 +-
2 files changed, 955 insertions(+), 1328 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 534e2a6f..cea84044 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -22,7 +22,7 @@
"@rollup/plugin-replace": "^5.0.5",
"@rollup/plugin-terser": "^0.4.4",
"@rollup/plugin-wasm": "^6.2.2",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"argon2id": "^1.0.1",
"benchmark": "^2.1.4",
"c8": "^8.0.1",
@@ -40,17 +40,17 @@
"karma": "^6.4.3",
"karma-browserstack-launcher": "^1.6.0",
"karma-chrome-launcher": "^3.2.0",
- "karma-firefox-launcher": "^2.1.2",
+ "karma-firefox-launcher": "^2.1.3",
"karma-mocha": "^2.0.1",
"karma-mocha-reporter": "^2.2.5",
"karma-webkit-launcher": "^2.4.0",
- "mocha": "^10.3.0",
- "playwright": "^1.42.0",
- "rollup": "^4.12.0",
+ "mocha": "^10.4.0",
+ "playwright": "^1.43.0",
+ "rollup": "^4.14.1",
"sinon": "^17.0.1",
"ts-node": "^10.9.2",
- "tsx": "^4.7.1",
- "typescript": "^5.3.3",
+ "tsx": "^4.7.2",
+ "typescript": "^5.4.4",
"web-streams-polyfill": "^3.3.3"
},
"engines": {
@@ -67,89 +67,18 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.23.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
- "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+ "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.23.4",
- "chalk": "^2.4.2"
+ "@babel/highlight": "^7.24.2",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/code-frame/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/code-frame/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@babel/helper-validator-identifier": {
"version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
@@ -160,14 +89,15 @@
}
},
"node_modules/@babel/highlight": {
- "version": "7.23.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
- "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+ "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
@@ -245,9 +175,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
- "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz",
+ "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -257,9 +187,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
- "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz",
+ "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==",
"dev": true,
"peer": true,
"dependencies": {
@@ -758,101 +688,11 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"dev": true
},
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dev": true,
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
"node_modules/@istanbuljs/schema": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
@@ -863,14 +703,14 @@
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz",
- "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"dev": true,
"dependencies": {
- "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
@@ -886,22 +726,22 @@
}
},
"node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true,
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/source-map": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
- "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"dev": true,
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
@@ -911,9 +751,9 @@
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.23",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz",
- "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==",
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
@@ -1054,16 +894,6 @@
}
}
},
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/@rollup/plugin-alias": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz",
@@ -1220,9 +1050,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz",
- "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.1.tgz",
+ "integrity": "sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==",
"cpu": [
"arm"
],
@@ -1233,9 +1063,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz",
- "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.1.tgz",
+ "integrity": "sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==",
"cpu": [
"arm64"
],
@@ -1246,9 +1076,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz",
- "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.1.tgz",
+ "integrity": "sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==",
"cpu": [
"arm64"
],
@@ -1259,9 +1089,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz",
- "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.1.tgz",
+ "integrity": "sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==",
"cpu": [
"x64"
],
@@ -1272,9 +1102,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz",
- "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.1.tgz",
+ "integrity": "sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==",
"cpu": [
"arm"
],
@@ -1285,9 +1115,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz",
- "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.1.tgz",
+ "integrity": "sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==",
"cpu": [
"arm64"
],
@@ -1298,9 +1128,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz",
- "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.1.tgz",
+ "integrity": "sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==",
"cpu": [
"arm64"
],
@@ -1310,10 +1140,23 @@
"linux"
]
},
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.1.tgz",
+ "integrity": "sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==",
+ "cpu": [
+ "ppc64le"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz",
- "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.1.tgz",
+ "integrity": "sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==",
"cpu": [
"riscv64"
],
@@ -1323,10 +1166,23 @@
"linux"
]
},
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.1.tgz",
+ "integrity": "sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz",
- "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.1.tgz",
+ "integrity": "sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==",
"cpu": [
"x64"
],
@@ -1337,9 +1193,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz",
- "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.1.tgz",
+ "integrity": "sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==",
"cpu": [
"x64"
],
@@ -1350,9 +1206,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz",
- "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.1.tgz",
+ "integrity": "sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==",
"cpu": [
"arm64"
],
@@ -1363,9 +1219,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz",
- "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.1.tgz",
+ "integrity": "sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==",
"cpu": [
"ia32"
],
@@ -1376,9 +1232,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz",
- "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.1.tgz",
+ "integrity": "sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==",
"cpu": [
"x64"
],
@@ -1439,9 +1295,9 @@
"dev": true
},
"node_modules/@tsconfig/node10": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
+ "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
"dev": true
},
"node_modules/@tsconfig/node12": {
@@ -1472,9 +1328,9 @@
}
},
"node_modules/@types/chai": {
- "version": "4.3.12",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz",
- "integrity": "sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==",
+ "version": "4.3.14",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.14.tgz",
+ "integrity": "sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==",
"dev": true
},
"node_modules/@types/cookie": {
@@ -1533,9 +1389,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "20.11.21",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.21.tgz",
- "integrity": "sha512-/ySDLGscFPNasfqStUuWWPfL78jompfIoVzLJPVVAHBh6rpG68+pI2Gk+fNLeI8/f1yPYL4s46EleVIc20F1Ow==",
+ "version": "20.12.6",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.6.tgz",
+ "integrity": "sha512-3KurE8taB8GCvZBPngVbp0lk5CKi8M9f9k1rsADh0Evdz5SzJ+Q+Hx9uHoFGsLnLnd1xmkDQr2hVhlA0Mn0lKQ==",
"dev": true,
"dependencies": {
"undici-types": "~5.26.4"
@@ -1721,15 +1577,16 @@
}
},
"node_modules/array-includes": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
- "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
"is-string": "^1.0.7"
},
"engines": {
@@ -1739,17 +1596,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/array.prototype.filter": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz",
- "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==",
+ "node_modules/array.prototype.findlast": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dev": true,
+ "peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-array-method-boxes-properly": "^1.0.0",
- "is-string": "^1.0.7"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -1759,15 +1618,16 @@
}
},
"node_modules/array.prototype.findlastindex": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz",
- "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
+ "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
+ "es-abstract": "^1.23.2",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"es-shim-unscopables": "^1.0.2"
},
"engines": {
@@ -1813,6 +1673,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array.prototype.toreversed": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz",
+ "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
"node_modules/array.prototype.tosorted": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz",
@@ -1874,16 +1747,6 @@
"lodash": "^4.17.14"
}
},
- "node_modules/asynciterator.prototype": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
- "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "has-symbols": "^1.0.3"
- }
- },
"node_modules/available-typed-arrays": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
@@ -1957,12 +1820,15 @@
}
},
"node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true,
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/bluebird": {
@@ -2485,6 +2351,57 @@
"dev": true,
"peer": true
},
+ "node_modules/data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/date-format": {
"version": "4.0.14",
"resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz",
@@ -2658,12 +2575,6 @@
"integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
"dev": true
},
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
"node_modules/eckey-utils": {
"version": "0.7.14",
"resolved": "https://registry.npmjs.org/eckey-utils/-/eckey-utils-0.7.14.tgz",
@@ -2680,7 +2591,8 @@
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
+ "dev": true,
+ "peer": true
},
"node_modules/encodeurl": {
"version": "1.0.2",
@@ -2746,18 +2658,22 @@
}
},
"node_modules/es-abstract": {
- "version": "1.22.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz",
- "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==",
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
"dev": true,
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
"arraybuffer.prototype.slice": "^1.0.3",
- "available-typed-arrays": "^1.0.6",
+ "available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.2",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
"es-to-primitive": "^1.2.1",
"function.prototype.name": "^1.1.6",
"get-intrinsic": "^1.2.4",
@@ -2765,15 +2681,16 @@
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.1",
+ "has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
- "hasown": "^2.0.1",
+ "hasown": "^2.0.2",
"internal-slot": "^1.0.7",
"is-array-buffer": "^3.0.4",
"is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
+ "is-shared-array-buffer": "^1.0.3",
"is-string": "^1.0.7",
"is-typed-array": "^1.1.13",
"is-weakref": "^1.0.2",
@@ -2781,17 +2698,17 @@
"object-keys": "^1.1.1",
"object.assign": "^4.1.5",
"regexp.prototype.flags": "^1.5.2",
- "safe-array-concat": "^1.1.0",
+ "safe-array-concat": "^1.1.2",
"safe-regex-test": "^1.0.3",
- "string.prototype.trim": "^1.2.8",
- "string.prototype.trimend": "^1.0.7",
- "string.prototype.trimstart": "^1.0.7",
- "typed-array-buffer": "^1.0.1",
- "typed-array-byte-length": "^1.0.0",
- "typed-array-byte-offset": "^1.0.0",
- "typed-array-length": "^1.0.4",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.6",
"unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.14"
+ "which-typed-array": "^1.1.15"
},
"engines": {
"node": ">= 0.4"
@@ -2800,12 +2717,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/es-array-method-boxes-properly": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
- "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
- "dev": true
- },
"node_modules/es-define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
@@ -2828,27 +2739,38 @@
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.0.17",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz",
- "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==",
+ "version": "1.0.18",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz",
+ "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==",
"dev": true,
"peer": true,
"dependencies": {
- "asynciterator.prototype": "^1.0.0",
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.4",
+ "es-abstract": "^1.23.0",
"es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.2",
+ "es-set-tostringtag": "^2.0.3",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"globalthis": "^1.0.3",
"has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.1",
+ "has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
"internal-slot": "^1.0.7",
"iterator.prototype": "^1.1.2",
- "safe-array-concat": "^1.1.0"
+ "safe-array-concat": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
@@ -3208,28 +3130,30 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.33.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
- "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
+ "version": "7.34.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz",
+ "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==",
"dev": true,
"peer": true,
"dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "array.prototype.tosorted": "^1.1.1",
+ "array-includes": "^3.1.7",
+ "array.prototype.findlast": "^1.2.4",
+ "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.toreversed": "^1.1.2",
+ "array.prototype.tosorted": "^1.1.3",
"doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.0.12",
+ "es-iterator-helpers": "^1.0.17",
"estraverse": "^5.3.0",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "object.hasown": "^1.1.2",
- "object.values": "^1.1.6",
+ "object.entries": "^1.1.7",
+ "object.fromentries": "^2.0.7",
+ "object.hasown": "^1.1.3",
+ "object.values": "^1.1.7",
"prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.4",
+ "resolve": "^2.0.0-next.5",
"semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.8"
+ "string.prototype.matchall": "^4.0.10"
},
"engines": {
"node": ">=4"
@@ -3609,9 +3533,9 @@
"dev": true
},
"node_modules/follow-redirects": {
- "version": "1.15.5",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
- "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"dev": true,
"funding": [
{
@@ -3781,9 +3705,9 @@
}
},
"node_modules/get-tsconfig": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz",
- "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
+ "version": "4.7.3",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz",
+ "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==",
"dev": true,
"dependencies": {
"resolve-pkg-maps": "^1.0.0"
@@ -3974,9 +3898,9 @@
}
},
"node_modules/hasown": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
- "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dev": true,
"dependencies": {
"function-bind": "^1.1.2"
@@ -4332,6 +4256,21 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dev": true,
+ "dependencies": {
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-date-object": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
@@ -4422,11 +4361,14 @@
}
},
"node_modules/is-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
"dev": true,
"peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -4523,11 +4465,14 @@
"dev": true
},
"node_modules/is-set": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
"dev": true,
"peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -4605,11 +4550,14 @@
}
},
"node_modules/is-weakmap": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
- "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
"dev": true,
"peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -4627,14 +4575,17 @@
}
},
"node_modules/is-weakset": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
- "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
"dev": true,
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -4726,24 +4677,6 @@
"set-function-name": "^2.0.1"
}
},
- "node_modules/jackspeak": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
- "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "dev": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -4924,13 +4857,28 @@
}
},
"node_modules/karma-firefox-launcher": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz",
- "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz",
+ "integrity": "sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==",
"dev": true,
"dependencies": {
"is-wsl": "^2.2.0",
- "which": "^2.0.1"
+ "which": "^3.0.0"
+ }
+ },
+ "node_modules/karma-firefox-launcher/node_modules/which": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz",
+ "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/karma-mocha": {
@@ -5378,9 +5326,9 @@
}
},
"node_modules/magic-string": {
- "version": "0.30.7",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz",
- "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==",
+ "version": "0.30.9",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz",
+ "integrity": "sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==",
"dev": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15"
@@ -5547,15 +5495,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/minipass": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
- "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
- "dev": true,
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
"node_modules/mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@@ -5569,9 +5508,9 @@
}
},
"node_modules/mocha": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz",
- "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==",
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz",
+ "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==",
"dev": true,
"dependencies": {
"ansi-colors": "4.1.1",
@@ -5869,28 +5808,29 @@
}
},
"node_modules/object.entries": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
- "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/object.fromentries": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
- "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -5900,41 +5840,46 @@
}
},
"node_modules/object.groupby": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz",
- "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
"dependencies": {
- "array.prototype.filter": "^1.0.3",
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.0.0"
+ "es-abstract": "^1.23.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/object.hasown": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
- "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz",
+ "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==",
"dev": true,
"peer": true,
"dependencies": {
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/object.values": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
- "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -6101,35 +6046,10 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
- "node_modules/path-scurry": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
- "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^9.1.1 || ^10.0.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
- "dev": true,
- "engines": {
- "node": "14 || >=16.14"
- }
- },
"node_modules/path-to-regexp": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
- "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
+ "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==",
"dev": true
},
"node_modules/pathval": {
@@ -6150,6 +6070,12 @@
"through": "~2.3"
}
},
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
@@ -6169,12 +6095,12 @@
"dev": true
},
"node_modules/playwright": {
- "version": "1.42.0",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.0.tgz",
- "integrity": "sha512-Ko7YRUgj5xBHbntrgt4EIw/nE//XBHOKVKnBjO1KuZkmkhlbgyggTe5s9hjqQ1LpN+Xg+kHsQyt5Pa0Bw5XpvQ==",
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.43.0.tgz",
+ "integrity": "sha512-SiOKHbVjTSf6wHuGCbqrEyzlm6qvXcv7mENP+OZon1I07brfZLGdfWV0l/efAzVx7TF3Z45ov1gPEkku9q25YQ==",
"dev": true,
"dependencies": {
- "playwright-core": "1.42.0"
+ "playwright-core": "1.43.0"
},
"bin": {
"playwright": "cli.js"
@@ -6187,9 +6113,9 @@
}
},
"node_modules/playwright-core": {
- "version": "1.42.0",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.0.tgz",
- "integrity": "sha512-0HD9y8qEVlcbsAjdpBaFjmaTHf+1FeIddy8VJLeiqwhcNqGCBe4Wp2e8knpqiYbzxtxarxiXyNDw2cG8sCaNMQ==",
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.0.tgz",
+ "integrity": "sha512-iWFjyBUH97+pUFiyTqSLd8cDMMOS0r2ZYz2qEsPjH8/bX++sbIJT35MSwKnp1r/OQBAqC5XO99xFbJ9XClhf4w==",
"dev": true,
"bin": {
"playwright-core": "cli.js"
@@ -6519,17 +6445,17 @@
}
},
"node_modules/reflect.getprototypeof": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz",
- "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
"dev": true,
"peer": true,
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.0.0",
- "get-intrinsic": "^1.2.3",
+ "es-abstract": "^1.23.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
"globalthis": "^1.0.3",
"which-builtin-type": "^1.1.3"
},
@@ -6706,9 +6632,9 @@
}
},
"node_modules/rollup": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz",
- "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.1.tgz",
+ "integrity": "sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==",
"dev": true,
"dependencies": {
"@types/estree": "1.0.5"
@@ -6721,19 +6647,21 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.12.0",
- "@rollup/rollup-android-arm64": "4.12.0",
- "@rollup/rollup-darwin-arm64": "4.12.0",
- "@rollup/rollup-darwin-x64": "4.12.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.12.0",
- "@rollup/rollup-linux-arm64-gnu": "4.12.0",
- "@rollup/rollup-linux-arm64-musl": "4.12.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.12.0",
- "@rollup/rollup-linux-x64-gnu": "4.12.0",
- "@rollup/rollup-linux-x64-musl": "4.12.0",
- "@rollup/rollup-win32-arm64-msvc": "4.12.0",
- "@rollup/rollup-win32-ia32-msvc": "4.12.0",
- "@rollup/rollup-win32-x64-msvc": "4.12.0",
+ "@rollup/rollup-android-arm-eabi": "4.14.1",
+ "@rollup/rollup-android-arm64": "4.14.1",
+ "@rollup/rollup-darwin-arm64": "4.14.1",
+ "@rollup/rollup-darwin-x64": "4.14.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.14.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.14.1",
+ "@rollup/rollup-linux-arm64-musl": "4.14.1",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.14.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.14.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.14.1",
+ "@rollup/rollup-linux-x64-gnu": "4.14.1",
+ "@rollup/rollup-linux-x64-musl": "4.14.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.14.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.14.1",
+ "@rollup/rollup-win32-x64-msvc": "4.14.1",
"fsevents": "~2.3.2"
}
},
@@ -6761,13 +6689,13 @@
}
},
"node_modules/safe-array-concat": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
- "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.5",
- "get-intrinsic": "^1.2.2",
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
"has-symbols": "^1.0.3",
"isarray": "^2.0.5"
},
@@ -6832,17 +6760,17 @@
}
},
"node_modules/set-function-length": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
- "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dev": true,
"dependencies": {
- "define-data-property": "^1.1.2",
+ "define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.3",
+ "get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.1"
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -6891,12 +6819,12 @@
}
},
"node_modules/side-channel": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
- "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
"object-inspect": "^1.13.1"
@@ -6954,15 +6882,15 @@
}
},
"node_modules/smob": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz",
- "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz",
+ "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==",
"dev": true
},
"node_modules/socket.io": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz",
- "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==",
+ "version": "4.7.5",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz",
+ "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==",
"dev": true,
"dependencies": {
"accepts": "~1.3.4",
@@ -7109,27 +7037,6 @@
"node": ">=8"
}
},
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
"node_modules/string-width/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -7137,35 +7044,42 @@
"dev": true
},
"node_modules/string.prototype.matchall": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
- "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
"dev": true,
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
- "regexp.prototype.flags": "^1.5.0",
- "set-function-name": "^2.0.0",
- "side-channel": "^1.0.4"
+ "internal-slot": "^1.0.7",
+ "regexp.prototype.flags": "^1.5.2",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trim": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
- "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -7175,28 +7089,31 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
- "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
- "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -7214,19 +7131,6 @@
"node": ">=8"
}
},
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -7335,9 +7239,9 @@
}
},
"node_modules/terser": {
- "version": "5.28.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz",
- "integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==",
+ "version": "5.30.3",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz",
+ "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==",
"dev": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
@@ -7405,107 +7309,12 @@
"dev": true
},
"node_modules/tmp": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.2.tgz",
- "integrity": "sha512-ETcvHhaIc9J2MDEAH6N67j9bvBvu/3Gb764qaGhwtFvjtvhegqoqSpofgeyq1Sc24mW5pdyUDs9HP5j3ehkxRw==",
- "dev": true,
- "dependencies": {
- "rimraf": "^5.0.5"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/tmp/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/tmp/node_modules/foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/tmp/node_modules/glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
- "minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/tmp/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/tmp/node_modules/rimraf": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
- "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
- "dev": true,
- "dependencies": {
- "glob": "^10.3.7"
- },
- "bin": {
- "rimraf": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/tmp/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
+ "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
"dev": true,
"engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">=14.14"
}
},
"node_modules/to-regex-range": {
@@ -7594,9 +7403,9 @@
}
},
"node_modules/tsx": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.1.tgz",
- "integrity": "sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==",
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.2.tgz",
+ "integrity": "sha512-BCNd4kz6fz12fyrgCTEdZHGJ9fWTGeUzXmQysh0RVocDY3h4frk05ZNCXSy4kIenF7y/QnrdiVpTsyNRn6vlAw==",
"dev": true,
"dependencies": {
"esbuild": "~0.19.10",
@@ -7712,9 +7521,9 @@
}
},
"node_modules/typed-array-length": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
- "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.7",
@@ -7732,9 +7541,9 @@
}
},
"node_modules/typescript": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
- "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "version": "5.4.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz",
+ "integrity": "sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -8007,32 +7816,35 @@
}
},
"node_modules/which-collection": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
- "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
"dev": true,
"peer": true,
"dependencies": {
- "is-map": "^2.0.1",
- "is-set": "^2.0.1",
- "is-weakmap": "^2.0.1",
- "is-weakset": "^2.0.1"
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/which-typed-array": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
- "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
"dev": true,
"dependencies": {
- "available-typed-arrays": "^1.0.6",
- "call-bind": "^1.0.5",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-tostringtag": "^1.0.1"
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -8064,24 +7876,6 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -8202,71 +7996,13 @@
"dev": true
},
"@babel/code-frame": {
- "version": "7.23.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
- "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+ "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.23.4",
- "chalk": "^2.4.2"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
+ "@babel/highlight": "^7.24.2",
+ "picocolors": "^1.0.0"
}
},
"@babel/helper-validator-identifier": {
@@ -8276,14 +8012,15 @@
"dev": true
},
"@babel/highlight": {
- "version": "7.23.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
- "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+ "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"dependencies": {
"ansi-styles": {
@@ -8345,15 +8082,15 @@
}
},
"@babel/parser": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
- "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz",
+ "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==",
"dev": true
},
"@babel/runtime": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
- "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz",
+ "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==",
"dev": true,
"peer": true,
"requires": {
@@ -8610,70 +8347,11 @@
"dev": true
},
"@humanwhocodes/object-schema": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"dev": true
},
- "@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dev": true,
- "requires": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true
- },
- "ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true
- },
- "string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "requires": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- }
- },
- "strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "requires": {
- "ansi-regex": "^6.0.1"
- }
- },
- "wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- }
- }
- }
- },
"@istanbuljs/schema": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
@@ -8681,14 +8359,14 @@
"dev": true
},
"@jridgewell/gen-mapping": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz",
- "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"dev": true,
"requires": {
- "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@jridgewell/trace-mapping": "^0.3.24"
}
},
"@jridgewell/resolve-uri": {
@@ -8698,19 +8376,19 @@
"dev": true
},
"@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true
},
"@jridgewell/source-map": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
- "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"dev": true,
"requires": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
}
},
"@jridgewell/sourcemap-codec": {
@@ -8720,9 +8398,9 @@
"dev": true
},
"@jridgewell/trace-mapping": {
- "version": "0.3.23",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz",
- "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==",
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.1.0",
@@ -8825,13 +8503,6 @@
"dev": true,
"requires": {}
},
- "@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "optional": true
- },
"@rollup/plugin-alias": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz",
@@ -8911,93 +8582,107 @@
}
},
"@rollup/rollup-android-arm-eabi": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz",
- "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.1.tgz",
+ "integrity": "sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==",
"dev": true,
"optional": true
},
"@rollup/rollup-android-arm64": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz",
- "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.1.tgz",
+ "integrity": "sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==",
"dev": true,
"optional": true
},
"@rollup/rollup-darwin-arm64": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz",
- "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.1.tgz",
+ "integrity": "sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==",
"dev": true,
"optional": true
},
"@rollup/rollup-darwin-x64": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz",
- "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.1.tgz",
+ "integrity": "sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz",
- "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.1.tgz",
+ "integrity": "sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-arm64-gnu": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz",
- "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.1.tgz",
+ "integrity": "sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-arm64-musl": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz",
- "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.1.tgz",
+ "integrity": "sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.1.tgz",
+ "integrity": "sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz",
- "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.1.tgz",
+ "integrity": "sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.1.tgz",
+ "integrity": "sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-x64-gnu": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz",
- "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.1.tgz",
+ "integrity": "sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==",
"dev": true,
"optional": true
},
"@rollup/rollup-linux-x64-musl": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz",
- "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.1.tgz",
+ "integrity": "sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==",
"dev": true,
"optional": true
},
"@rollup/rollup-win32-arm64-msvc": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz",
- "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.1.tgz",
+ "integrity": "sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==",
"dev": true,
"optional": true
},
"@rollup/rollup-win32-ia32-msvc": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz",
- "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.1.tgz",
+ "integrity": "sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==",
"dev": true,
"optional": true
},
"@rollup/rollup-win32-x64-msvc": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz",
- "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.1.tgz",
+ "integrity": "sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==",
"dev": true,
"optional": true
},
@@ -9054,9 +8739,9 @@
"dev": true
},
"@tsconfig/node10": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
+ "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
"dev": true
},
"@tsconfig/node12": {
@@ -9087,9 +8772,9 @@
}
},
"@types/chai": {
- "version": "4.3.12",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz",
- "integrity": "sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==",
+ "version": "4.3.14",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.14.tgz",
+ "integrity": "sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==",
"dev": true
},
"@types/cookie": {
@@ -9148,9 +8833,9 @@
"dev": true
},
"@types/node": {
- "version": "20.11.21",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.21.tgz",
- "integrity": "sha512-/ySDLGscFPNasfqStUuWWPfL78jompfIoVzLJPVVAHBh6rpG68+pI2Gk+fNLeI8/f1yPYL4s46EleVIc20F1Ow==",
+ "version": "20.12.6",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.6.tgz",
+ "integrity": "sha512-3KurE8taB8GCvZBPngVbp0lk5CKi8M9f9k1rsADh0Evdz5SzJ+Q+Hx9uHoFGsLnLnd1xmkDQr2hVhlA0Mn0lKQ==",
"dev": true,
"requires": {
"undici-types": "~5.26.4"
@@ -9294,41 +8979,45 @@
}
},
"array-includes": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
- "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
"is-string": "^1.0.7"
}
},
- "array.prototype.filter": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz",
- "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==",
+ "array.prototype.findlast": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dev": true,
+ "peer": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-array-method-boxes-properly": "^1.0.0",
- "is-string": "^1.0.7"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
}
},
"array.prototype.findlastindex": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz",
- "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
+ "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
+ "es-abstract": "^1.23.2",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"es-shim-unscopables": "^1.0.2"
}
},
@@ -9356,6 +9045,19 @@
"es-shim-unscopables": "^1.0.0"
}
},
+ "array.prototype.toreversed": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz",
+ "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
"array.prototype.tosorted": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz",
@@ -9408,16 +9110,6 @@
"lodash": "^4.17.14"
}
},
- "asynciterator.prototype": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
- "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
- "dev": true,
- "peer": true,
- "requires": {
- "has-symbols": "^1.0.3"
- }
- },
"available-typed-arrays": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
@@ -9476,9 +9168,9 @@
}
},
"binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true
},
"bluebird": {
@@ -9900,6 +9592,39 @@
"dev": true,
"peer": true
},
+ "data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ }
+ },
+ "data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ }
+ },
+ "data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ }
+ },
"date-format": {
"version": "4.0.14",
"resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz",
@@ -10022,12 +9747,6 @@
"integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
"dev": true
},
- "eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
"eckey-utils": {
"version": "0.7.14",
"resolved": "https://registry.npmjs.org/eckey-utils/-/eckey-utils-0.7.14.tgz",
@@ -10044,7 +9763,8 @@
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
+ "dev": true,
+ "peer": true
},
"encodeurl": {
"version": "1.0.2",
@@ -10098,18 +9818,22 @@
}
},
"es-abstract": {
- "version": "1.22.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz",
- "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==",
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
"dev": true,
"requires": {
"array-buffer-byte-length": "^1.0.1",
"arraybuffer.prototype.slice": "^1.0.3",
- "available-typed-arrays": "^1.0.6",
+ "available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.2",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
"es-to-primitive": "^1.2.1",
"function.prototype.name": "^1.1.6",
"get-intrinsic": "^1.2.4",
@@ -10117,15 +9841,16 @@
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.1",
+ "has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
- "hasown": "^2.0.1",
+ "hasown": "^2.0.2",
"internal-slot": "^1.0.7",
"is-array-buffer": "^3.0.4",
"is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
+ "is-shared-array-buffer": "^1.0.3",
"is-string": "^1.0.7",
"is-typed-array": "^1.1.13",
"is-weakref": "^1.0.2",
@@ -10133,25 +9858,19 @@
"object-keys": "^1.1.1",
"object.assign": "^4.1.5",
"regexp.prototype.flags": "^1.5.2",
- "safe-array-concat": "^1.1.0",
+ "safe-array-concat": "^1.1.2",
"safe-regex-test": "^1.0.3",
- "string.prototype.trim": "^1.2.8",
- "string.prototype.trimend": "^1.0.7",
- "string.prototype.trimstart": "^1.0.7",
- "typed-array-buffer": "^1.0.1",
- "typed-array-byte-length": "^1.0.0",
- "typed-array-byte-offset": "^1.0.0",
- "typed-array-length": "^1.0.4",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.6",
"unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.14"
+ "which-typed-array": "^1.1.15"
}
},
- "es-array-method-boxes-properly": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
- "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
- "dev": true
- },
"es-define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
@@ -10168,27 +9887,35 @@
"dev": true
},
"es-iterator-helpers": {
- "version": "1.0.17",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz",
- "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==",
+ "version": "1.0.18",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz",
+ "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==",
"dev": true,
"peer": true,
"requires": {
- "asynciterator.prototype": "^1.0.0",
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.4",
+ "es-abstract": "^1.23.0",
"es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.2",
+ "es-set-tostringtag": "^2.0.3",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"globalthis": "^1.0.3",
"has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.1",
+ "has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
"internal-slot": "^1.0.7",
"iterator.prototype": "^1.1.2",
- "safe-array-concat": "^1.1.0"
+ "safe-array-concat": "^1.1.2"
+ }
+ },
+ "es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "requires": {
+ "es-errors": "^1.3.0"
}
},
"es-set-tostringtag": {
@@ -10483,28 +10210,30 @@
}
},
"eslint-plugin-react": {
- "version": "7.33.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
- "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
+ "version": "7.34.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz",
+ "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==",
"dev": true,
"peer": true,
"requires": {
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "array.prototype.tosorted": "^1.1.1",
+ "array-includes": "^3.1.7",
+ "array.prototype.findlast": "^1.2.4",
+ "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.toreversed": "^1.1.2",
+ "array.prototype.tosorted": "^1.1.3",
"doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.0.12",
+ "es-iterator-helpers": "^1.0.17",
"estraverse": "^5.3.0",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "object.hasown": "^1.1.2",
- "object.values": "^1.1.6",
+ "object.entries": "^1.1.7",
+ "object.fromentries": "^2.0.7",
+ "object.hasown": "^1.1.3",
+ "object.values": "^1.1.7",
"prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.4",
+ "resolve": "^2.0.0-next.5",
"semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.8"
+ "string.prototype.matchall": "^4.0.10"
},
"dependencies": {
"doctrine": {
@@ -10789,9 +10518,9 @@
"dev": true
},
"follow-redirects": {
- "version": "1.15.5",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
- "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"dev": true
},
"for-each": {
@@ -10904,9 +10633,9 @@
}
},
"get-tsconfig": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz",
- "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
+ "version": "4.7.3",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz",
+ "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==",
"dev": true,
"requires": {
"resolve-pkg-maps": "^1.0.0"
@@ -11042,9 +10771,9 @@
}
},
"hasown": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
- "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dev": true,
"requires": {
"function-bind": "^1.1.2"
@@ -11311,6 +11040,15 @@
"hasown": "^2.0.0"
}
},
+ "is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dev": true,
+ "requires": {
+ "is-typed-array": "^1.1.13"
+ }
+ },
"is-date-object": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
@@ -11368,9 +11106,9 @@
}
},
"is-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
"dev": true,
"peer": true
},
@@ -11439,9 +11177,9 @@
"dev": true
},
"is-set": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
"dev": true,
"peer": true
},
@@ -11488,9 +11226,9 @@
"dev": true
},
"is-weakmap": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
- "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
"dev": true,
"peer": true
},
@@ -11504,14 +11242,14 @@
}
},
"is-weakset": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
- "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4"
}
},
"is-wsl": {
@@ -11582,16 +11320,6 @@
"set-function-name": "^2.0.1"
}
},
- "jackspeak": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
- "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "dev": true,
- "requires": {
- "@isaacs/cliui": "^8.0.2",
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -11810,13 +11538,24 @@
}
},
"karma-firefox-launcher": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz",
- "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz",
+ "integrity": "sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==",
"dev": true,
"requires": {
"is-wsl": "^2.2.0",
- "which": "^2.0.1"
+ "which": "^3.0.0"
+ },
+ "dependencies": {
+ "which": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz",
+ "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
}
},
"karma-mocha": {
@@ -12118,9 +11857,9 @@
}
},
"magic-string": {
- "version": "0.30.7",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz",
- "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==",
+ "version": "0.30.9",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz",
+ "integrity": "sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==",
"dev": true,
"requires": {
"@jridgewell/sourcemap-codec": "^1.4.15"
@@ -12238,12 +11977,6 @@
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true
},
- "minipass": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
- "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
- "dev": true
- },
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@@ -12251,9 +11984,9 @@
"dev": true
},
"mocha": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz",
- "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==",
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz",
+ "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==",
"dev": true,
"requires": {
"ansi-colors": "4.1.1",
@@ -12483,60 +12216,60 @@
}
},
"object.entries": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
- "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
"object.fromentries": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
- "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
}
},
"object.groupby": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz",
- "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
"requires": {
- "array.prototype.filter": "^1.0.3",
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.0.0"
+ "es-abstract": "^1.23.2"
}
},
"object.hasown": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
- "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz",
+ "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==",
"dev": true,
"peer": true,
"requires": {
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
}
},
"object.values": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
- "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
"on-finished": {
@@ -12652,28 +12385,10 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
- "path-scurry": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
- "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
- "dev": true,
- "requires": {
- "lru-cache": "^9.1.1 || ^10.0.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "dependencies": {
- "lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
- "dev": true
- }
- }
- },
"path-to-regexp": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
- "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
+ "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==",
"dev": true
},
"pathval": {
@@ -12691,6 +12406,12 @@
"through": "~2.3"
}
},
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
"picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
@@ -12704,13 +12425,13 @@
"dev": true
},
"playwright": {
- "version": "1.42.0",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.0.tgz",
- "integrity": "sha512-Ko7YRUgj5xBHbntrgt4EIw/nE//XBHOKVKnBjO1KuZkmkhlbgyggTe5s9hjqQ1LpN+Xg+kHsQyt5Pa0Bw5XpvQ==",
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.43.0.tgz",
+ "integrity": "sha512-SiOKHbVjTSf6wHuGCbqrEyzlm6qvXcv7mENP+OZon1I07brfZLGdfWV0l/efAzVx7TF3Z45ov1gPEkku9q25YQ==",
"dev": true,
"requires": {
"fsevents": "2.3.2",
- "playwright-core": "1.42.0"
+ "playwright-core": "1.43.0"
},
"dependencies": {
"fsevents": {
@@ -12723,9 +12444,9 @@
}
},
"playwright-core": {
- "version": "1.42.0",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.0.tgz",
- "integrity": "sha512-0HD9y8qEVlcbsAjdpBaFjmaTHf+1FeIddy8VJLeiqwhcNqGCBe4Wp2e8knpqiYbzxtxarxiXyNDw2cG8sCaNMQ==",
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.0.tgz",
+ "integrity": "sha512-iWFjyBUH97+pUFiyTqSLd8cDMMOS0r2ZYz2qEsPjH8/bX++sbIJT35MSwKnp1r/OQBAqC5XO99xFbJ9XClhf4w==",
"dev": true
},
"pluralize": {
@@ -12951,17 +12672,17 @@
}
},
"reflect.getprototypeof": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz",
- "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.0.0",
- "get-intrinsic": "^1.2.3",
+ "es-abstract": "^1.23.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
"globalthis": "^1.0.3",
"which-builtin-type": "^1.1.3"
}
@@ -13090,24 +12811,26 @@
}
},
"rollup": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz",
- "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.1.tgz",
+ "integrity": "sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==",
"dev": true,
"requires": {
- "@rollup/rollup-android-arm-eabi": "4.12.0",
- "@rollup/rollup-android-arm64": "4.12.0",
- "@rollup/rollup-darwin-arm64": "4.12.0",
- "@rollup/rollup-darwin-x64": "4.12.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.12.0",
- "@rollup/rollup-linux-arm64-gnu": "4.12.0",
- "@rollup/rollup-linux-arm64-musl": "4.12.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.12.0",
- "@rollup/rollup-linux-x64-gnu": "4.12.0",
- "@rollup/rollup-linux-x64-musl": "4.12.0",
- "@rollup/rollup-win32-arm64-msvc": "4.12.0",
- "@rollup/rollup-win32-ia32-msvc": "4.12.0",
- "@rollup/rollup-win32-x64-msvc": "4.12.0",
+ "@rollup/rollup-android-arm-eabi": "4.14.1",
+ "@rollup/rollup-android-arm64": "4.14.1",
+ "@rollup/rollup-darwin-arm64": "4.14.1",
+ "@rollup/rollup-darwin-x64": "4.14.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.14.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.14.1",
+ "@rollup/rollup-linux-arm64-musl": "4.14.1",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.14.1",
+ "@rollup/rollup-linux-riscv64-gnu": "4.14.1",
+ "@rollup/rollup-linux-s390x-gnu": "4.14.1",
+ "@rollup/rollup-linux-x64-gnu": "4.14.1",
+ "@rollup/rollup-linux-x64-musl": "4.14.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.14.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.14.1",
+ "@rollup/rollup-win32-x64-msvc": "4.14.1",
"@types/estree": "1.0.5",
"fsevents": "~2.3.2"
}
@@ -13122,13 +12845,13 @@
}
},
"safe-array-concat": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
- "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
"dev": true,
"requires": {
- "call-bind": "^1.0.5",
- "get-intrinsic": "^1.2.2",
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
"has-symbols": "^1.0.3",
"isarray": "^2.0.5"
}
@@ -13178,17 +12901,17 @@
}
},
"set-function-length": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
- "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dev": true,
"requires": {
- "define-data-property": "^1.1.2",
+ "define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.3",
+ "get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.1"
+ "has-property-descriptors": "^1.0.2"
}
},
"set-function-name": {
@@ -13225,12 +12948,12 @@
"dev": true
},
"side-channel": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
- "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dev": true,
"requires": {
- "call-bind": "^1.0.6",
+ "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
"object-inspect": "^1.13.1"
@@ -13271,15 +12994,15 @@
"dev": true
},
"smob": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz",
- "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz",
+ "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==",
"dev": true
},
"socket.io": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz",
- "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==",
+ "version": "4.7.5",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz",
+ "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==",
"dev": true,
"requires": {
"accepts": "~1.3.4",
@@ -13413,74 +13136,59 @@
}
}
},
- "string-width-cjs": {
- "version": "npm:string-width@4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- }
- }
- },
"string.prototype.matchall": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
- "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
"dev": true,
"peer": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
- "regexp.prototype.flags": "^1.5.0",
- "set-function-name": "^2.0.0",
- "side-channel": "^1.0.4"
+ "internal-slot": "^1.0.7",
+ "regexp.prototype.flags": "^1.5.2",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.0.6"
}
},
"string.prototype.trim": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
- "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
}
},
"string.prototype.trimend": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
- "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
"string.prototype.trimstart": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
- "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
"strip-ansi": {
@@ -13492,15 +13200,6 @@
"ansi-regex": "^5.0.1"
}
},
- "strip-ansi-cjs": {
- "version": "npm:strip-ansi@6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -13578,9 +13277,9 @@
}
},
"terser": {
- "version": "5.28.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz",
- "integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==",
+ "version": "5.30.3",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz",
+ "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==",
"dev": true,
"requires": {
"@jridgewell/source-map": "^0.3.3",
@@ -13637,71 +13336,10 @@
"dev": true
},
"tmp": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.2.tgz",
- "integrity": "sha512-ETcvHhaIc9J2MDEAH6N67j9bvBvu/3Gb764qaGhwtFvjtvhegqoqSpofgeyq1Sc24mW5pdyUDs9HP5j3ehkxRw==",
- "dev": true,
- "requires": {
- "rimraf": "^5.0.5"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "dev": true,
- "requires": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- }
- },
- "glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
- "dev": true,
- "requires": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
- "minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
- }
- },
- "minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "rimraf": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
- "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
- "dev": true,
- "requires": {
- "glob": "^10.3.7"
- }
- },
- "signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true
- }
- }
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
+ "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
+ "dev": true
},
"to-regex-range": {
"version": "5.0.1",
@@ -13760,9 +13398,9 @@
}
},
"tsx": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.1.tgz",
- "integrity": "sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==",
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.2.tgz",
+ "integrity": "sha512-BCNd4kz6fz12fyrgCTEdZHGJ9fWTGeUzXmQysh0RVocDY3h4frk05ZNCXSy4kIenF7y/QnrdiVpTsyNRn6vlAw==",
"dev": true,
"requires": {
"esbuild": "~0.19.10",
@@ -13840,9 +13478,9 @@
}
},
"typed-array-length": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
- "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
"dev": true,
"requires": {
"call-bind": "^1.0.7",
@@ -13854,9 +13492,9 @@
}
},
"typescript": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
- "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "version": "5.4.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz",
+ "integrity": "sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==",
"dev": true
},
"ua-parser-js": {
@@ -14052,29 +13690,29 @@
}
},
"which-collection": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
- "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
"dev": true,
"peer": true,
"requires": {
- "is-map": "^2.0.1",
- "is-set": "^2.0.1",
- "is-weakmap": "^2.0.1",
- "is-weakset": "^2.0.1"
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
}
},
"which-typed-array": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
- "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
"dev": true,
"requires": {
- "available-typed-arrays": "^1.0.6",
- "call-bind": "^1.0.5",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-tostringtag": "^1.0.1"
+ "has-tostringtag": "^1.0.2"
}
},
"workerpool": {
@@ -14094,17 +13732,6 @@
"strip-ansi": "^6.0.0"
}
},
- "wrap-ansi-cjs": {
- "version": "npm:wrap-ansi@7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
diff --git a/package.json b/package.json
index 669dc61e..206d6639 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,7 @@
"@rollup/plugin-replace": "^5.0.5",
"@rollup/plugin-terser": "^0.4.4",
"@rollup/plugin-wasm": "^6.2.2",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"argon2id": "^1.0.1",
"benchmark": "^2.1.4",
"c8": "^8.0.1",
@@ -93,17 +93,17 @@
"karma": "^6.4.3",
"karma-browserstack-launcher": "^1.6.0",
"karma-chrome-launcher": "^3.2.0",
- "karma-firefox-launcher": "^2.1.2",
+ "karma-firefox-launcher": "^2.1.3",
"karma-mocha": "^2.0.1",
"karma-mocha-reporter": "^2.2.5",
"karma-webkit-launcher": "^2.4.0",
- "mocha": "^10.3.0",
- "playwright": "^1.42.0",
- "rollup": "^4.12.0",
+ "mocha": "^10.4.0",
+ "playwright": "^1.43.0",
+ "rollup": "^4.14.1",
"sinon": "^17.0.1",
"ts-node": "^10.9.2",
- "tsx": "^4.7.1",
- "typescript": "^5.3.3",
+ "tsx": "^4.7.2",
+ "typescript": "^5.4.4",
"web-streams-polyfill": "^3.3.3"
},
"repository": {
From 5464caa6f7f8ce7144cf45855f8f5637c2ec4e26 Mon Sep 17 00:00:00 2001
From: larabr
Date: Fri, 12 Apr 2024 13:47:52 +0200
Subject: [PATCH 125/201] Fix email address validity check to still allow
unicode values, and further relax constraints (#1739)
We relaxed constraints in a previous commit, but excluded unicode chars, which are however allowed in v5.
We now drop almost all email address constraints, by primarily rejecting
control and spaces char classes.
Library users are strongly encouraged to implement additional checks as needed,
based on their supported email address format.
NB: the validity checks in question affect the userID inputs accepted by e.g.
`generateKey` and `reformatKey`, not the values parsed from existing entities,
e.g. using `readKey` (where almost no validation is performed).
---
src/util.js | 13 ++++++++-----
test/general/util.js | 16 ++++++++++++++++
2 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/src/util.js b/src/util.js
index 47363c97..45db97e8 100644
--- a/src/util.js
+++ b/src/util.js
@@ -465,16 +465,19 @@ const util = {
},
/**
- * Test email format based on W3C HTML5 specification.
- * This check is not exaustive, and does not match RFC 5322 exactly
- * (see https://html.spec.whatwg.org/multipage/input.html#email-state-(type=email)),
- * but is commonly used for email address validation.
+ * Test email format to ensure basic compliance:
+ * - must include a single @
+ * - no control or space unicode chars allowed
+ * - no backslash and square brackets (as the latter can mess with the userID parsing)
+ * - cannot end with a punctuation char
+ * These checks are not meant to be exhaustive; applications are strongly encouraged to implement stricter validation,
+ * e.g. based on the W3C HTML spec (https://html.spec.whatwg.org/multipage/input.html#email-state-(type=email)).
*/
isEmailAddress: function(data) {
if (!util.isString(data)) {
return false;
}
- const re = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
+ const re = /^[^\p{C}\p{Z}@<>\\]+@[^\p{C}\p{Z}@<>\\]+[^\p{C}\p{Z}\p{P}]$/u;
return re.test(data);
},
diff --git a/test/general/util.js b/test/general/util.js
index c17b88c8..5ba9b290 100644
--- a/test/general/util.js
+++ b/test/general/util.js
@@ -120,6 +120,10 @@ export default () => describe('Util unit tests', function() {
const data = 'test@localhost';
expect(util.isEmailAddress(data)).to.be.true;
});
+ it('should return true for valid email address (unicode chars)', function() {
+ const data = '🙂@localhost';
+ expect(util.isEmailAddress(data)).to.be.true;
+ });
it('should return false for invalid email address (full userID)', function() {
const data = 'Test User ';
expect(util.isEmailAddress(data)).to.be.false;
@@ -128,6 +132,18 @@ export default () => describe('Util unit tests', function() {
const data = 'testexamplecom';
expect(util.isEmailAddress(data)).to.be.false;
});
+ it('should return false for invalid email address (invisible unicode control char)', function() {
+ const data = 'test\u{feff}ctrl@email.it';
+ expect(util.isEmailAddress(data)).to.be.false;
+ });
+ it('should return false for invalid email address (trailing punctuation)', function() {
+ const data = 'test@localhost.';
+ expect(util.isEmailAddress(data)).to.be.false;
+ });
+ it('should return false for invalid email address (including whitespace)', function() {
+ const data = 'test space@email.it';
+ expect(util.isEmailAddress(data)).to.be.false;
+ });
it('should return false for empty string', function() {
const data = '';
expect(util.isEmailAddress(data)).to.be.false;
From 2bf7c92469e4ed405a6b64af8d7072ca8019a187 Mon Sep 17 00:00:00 2001
From: larabr <7375870+larabr@users.noreply.github.com>
Date: Fri, 12 Apr 2024 14:28:06 +0200
Subject: [PATCH 126/201] 6.0.0-beta.0
---
docs/AEADEncryptedDataPacket.html | 14 +-
docs/Argon2S2K.html | 16 +-
docs/CleartextMessage.html | 12 +-
docs/CompressedDataPacket.html | 16 +-
docs/Key.html | 56 +++---
docs/LiteralDataPacket.html | 20 +-
docs/MarkerPacket.html | 4 +-
docs/Message.html | 40 ++--
docs/OnePassSignaturePacket.html | 22 +--
docs/PacketList.html | 14 +-
docs/PaddingPacket.html | 8 +-
docs/PrivateKey.html | 20 +-
docs/PublicKey.html | 8 +-
docs/PublicKeyEncryptedSessionKeyPacket.html | 14 +-
docs/PublicKeyPacket.html | 46 ++---
docs/PublicSubkeyPacket.html | 46 ++---
docs/SecretKeyPacket.html | 72 +++----
docs/SecretSubkeyPacket.html | 72 +++----
docs/Signature.html | 8 +-
docs/SignaturePacket.html | 24 +--
...EncryptedIntegrityProtectedDataPacket.html | 10 +-
docs/SymEncryptedSessionKeyPacket.html | 16 +-
docs/SymmetricallyEncryptedDataPacket.html | 10 +-
docs/TrustPacket.html | 4 +-
docs/UserAttributePacket.html | 8 +-
docs/UserIDPacket.html | 10 +-
docs/global.html | 143 ++++++++++----
docs/index.html | 4 +-
docs/module-config.html | 178 ++++--------------
docs/module-crypto.html | 2 +-
docs/module-crypto_aes_kw.html | 6 +-
docs/module-crypto_cmac.html | 6 +-
docs/module-crypto_crypto.html | 35 ++--
docs/module-crypto_hash.html | 8 +-
docs/module-crypto_hkdf.html | 2 +-
docs/module-crypto_mode.html | 10 +-
docs/module-crypto_mode_cfb.html | 4 +-
docs/module-crypto_mode_eax.html | 8 +-
docs/module-crypto_mode_gcm.html | 4 +-
docs/module-crypto_mode_ocb.html | 8 +-
docs/module-crypto_pkcs1.html | 10 +-
docs/module-crypto_public_key.html | 10 +-
docs/module-crypto_public_key_dsa.html | 10 +-
docs/module-crypto_public_key_elgamal.html | 10 +-
docs/module-crypto_public_key_elliptic.html | 2 +-
...dule-crypto_public_key_elliptic_curve.html | 12 +-
...odule-crypto_public_key_elliptic_ecdh.html | 60 +++---
...dule-crypto_public_key_elliptic_ecdsa.html | 10 +-
...dule-crypto_public_key_elliptic_eddsa.html | 10 +-
...ypto_public_key_elliptic_eddsa_legacy.html | 8 +-
docs/module-crypto_public_key_prime.html | 10 +-
docs/module-crypto_public_key_rsa.html | 20 +-
docs/module-crypto_random.html | 6 +-
docs/module-crypto_signature.html | 8 +-
docs/module-encoding_base64.html | 8 +-
docs/module-enums.html | 36 ++--
docs/module-key_Subkey-Subkey.html | 40 ++--
docs/module-key_User-User.html | 20 +-
docs/module-key_helper.html | 22 +--
docs/module-packet_packet.html | 10 +-
docs/module-type_ecdh_symkey.html | 2 +-
docs/module-type_kdf_params-KDFParams.html | 6 +-
docs/module-type_keyid-KeyID.html | 14 +-
docs/module-type_oid.html | 2 +-
docs/module-type_s2k-GenericS2K.html | 16 +-
docs/module-type_s2k.html | 2 +-
docs/module-type_x25519x448_symkey.html | 2 +-
docs/module-util.html | 2 +-
package-lock.json | 4 +-
package.json | 2 +-
70 files changed, 670 insertions(+), 712 deletions(-)
diff --git a/docs/AEADEncryptedDataPacket.html b/docs/AEADEncryptedDataPacket.html
index 1ebb55a7..f692a3c7 100644
--- a/docs/AEADEncryptedDataPacket.html
+++ b/docs/AEADEncryptedDataPacket.html
@@ -98,7 +98,7 @@ AEAD Protected Data Packet
Source:
@@ -200,7 +200,7 @@ AEAD Protected Data Packet
Source:
@@ -270,7 +270,7 @@ AEAD Protected Data Packet
Source:
@@ -475,7 +475,7 @@ AEAD Protected Data Packet
Source:
@@ -717,7 +717,7 @@ AEAD Protected Data Packet
Source:
@@ -888,7 +888,7 @@ AEAD Protected Data Packet
Source:
@@ -1007,7 +1007,7 @@ AEAD Protected Data Packet
Source:
diff --git a/docs/Argon2S2K.html b/docs/Argon2S2K.html
index 2f363b7e..1b5abb82 100644
--- a/docs/Argon2S2K.html
+++ b/docs/Argon2S2K.html
@@ -152,7 +152,7 @@
Source:
@@ -258,7 +258,7 @@
Source:
@@ -332,7 +332,7 @@
Source:
@@ -406,7 +406,7 @@
Source:
@@ -480,7 +480,7 @@
Source:
@@ -612,7 +612,7 @@ hashAlgorithm
Source:
@@ -791,7 +791,7 @@ hashAlgorithm
Source:
@@ -903,7 +903,7 @@ hashAlgorithm
Source:
diff --git a/docs/CleartextMessage.html b/docs/CleartextMessage.html
index a7598850..f97d89f9 100644
--- a/docs/CleartextMessage.html
+++ b/docs/CleartextMessage.html
@@ -168,7 +168,7 @@ See https://tools.ietf.o
Source:
@@ -346,7 +346,7 @@ See https://tools.ietf.o
Source:
@@ -461,7 +461,7 @@ See https://tools.ietf.o
Source:
@@ -573,7 +573,7 @@ See https://tools.ietf.o
Source:
@@ -974,7 +974,7 @@ See https://tools.ietf.o
Source:
@@ -1211,7 +1211,7 @@ See https://tools.ietf.o
Source:
diff --git a/docs/CompressedDataPacket.html b/docs/CompressedDataPacket.html
index 45d85ebb..2fdb293d 100644
--- a/docs/CompressedDataPacket.html
+++ b/docs/CompressedDataPacket.html
@@ -160,7 +160,7 @@ a Signature or One-Pass Signature packet, and contains a literal data packet.Source:
@@ -266,7 +266,7 @@ a Signature or One-Pass Signature packet, and contains a literal data packet.Source:
@@ -343,7 +343,7 @@ a Signature or One-Pass Signature packet, and contains a literal data packet.Source:
@@ -417,7 +417,7 @@ a Signature or One-Pass Signature packet, and contains a literal data packet.Source:
@@ -499,7 +499,7 @@ a Signature or One-Pass Signature packet, and contains a literal data packet.Source:
@@ -651,7 +651,7 @@ read by read_packet
Source:
@@ -836,7 +836,7 @@ read by read_packet
Source:
@@ -926,7 +926,7 @@ read by read_packet
Source:
diff --git a/docs/Key.html b/docs/Key.html
index e306f07c..317b2770 100644
--- a/docs/Key.html
+++ b/docs/Key.html
@@ -96,7 +96,7 @@ Can contain additional subkeys, signatures, user ids, user attributes.
Source:
@@ -333,7 +333,7 @@ if it is a valid revocation signature.
Source:
@@ -514,7 +514,7 @@ if it is a valid revocation signature.
Source:
@@ -626,7 +626,7 @@ if it is a valid revocation signature.
Source:
@@ -738,7 +738,7 @@ if it is a valid revocation signature.
Source:
@@ -1006,7 +1006,7 @@ if it is a valid revocation signature.
Source:
@@ -1225,7 +1225,7 @@ Returns Infinity
if the key doesn't expire, or null
if
Source:
@@ -1333,7 +1333,7 @@ Returns Infinity
if the key doesn't expire, or null
if
Source:
@@ -1445,7 +1445,7 @@ Returns Infinity
if the key doesn't expire, or null
if
Source:
@@ -1557,7 +1557,7 @@ Returns Infinity
if the key doesn't expire, or null
if
Source:
@@ -1735,7 +1735,7 @@ If no keyID is given, returns all keys, starting with the primary key.
Source:
@@ -1977,7 +1977,7 @@ algorithm preferences, and so on.
Source:
@@ -2220,7 +2220,7 @@ algorithm preferences, and so on.
Source:
@@ -2425,7 +2425,7 @@ algorithm preferences, and so on.
Source:
@@ -2717,7 +2717,7 @@ algorithm preferences, and so on.
Source:
@@ -2911,7 +2911,7 @@ If no keyID is given, returns all subkeys.
Source:
@@ -3023,7 +3023,7 @@ If no keyID is given, returns all subkeys.
Source:
@@ -3135,7 +3135,7 @@ If no keyID is given, returns all subkeys.
Source:
@@ -3412,7 +3412,7 @@ If no keyID is given, returns all subkeys.
Source:
@@ -3596,7 +3596,7 @@ If no keyID is given, returns all subkeys.
Source:
@@ -3811,7 +3811,7 @@ If no keyID is given, returns all subkeys.
Source:
@@ -4081,7 +4081,7 @@ If no keyID is given, returns all subkeys.
Source:
@@ -4193,7 +4193,7 @@ If no keyID is given, returns all subkeys.
Source:
@@ -4434,7 +4434,7 @@ a private key is returned.
Source:
@@ -4677,7 +4677,7 @@ a private key is returned.
Source:
@@ -4918,7 +4918,7 @@ and valid self signature. Throws if the primary key is invalid.
Source:
@@ -5201,7 +5201,7 @@ and valid self signature. Throws if the primary key is invalid.
Source:
@@ -5314,7 +5314,7 @@ Signature validity is null if the verification keys do not correspond to the cer
Source:
diff --git a/docs/LiteralDataPacket.html b/docs/LiteralDataPacket.html
index 1b5ec55a..479deced 100644
--- a/docs/LiteralDataPacket.html
+++ b/docs/LiteralDataPacket.html
@@ -147,7 +147,7 @@ further interpreted.
Source:
@@ -326,7 +326,7 @@ further interpreted.
Source:
@@ -441,7 +441,7 @@ further interpreted.
Source:
@@ -623,7 +623,7 @@ with normalized end of line to \n
Source:
@@ -790,7 +790,7 @@ with normalized end of line to \n
Source:
@@ -977,7 +977,7 @@ with normalized end of line to \n
Source:
@@ -1116,7 +1116,7 @@ with normalized end of line to \n
Source:
@@ -1302,7 +1302,7 @@ will be normalized to \r\n and by default text is converted to UTF8
Source:
@@ -1392,7 +1392,7 @@ will be normalized to \r\n and by default text is converted to UTF8
Source:
@@ -1507,7 +1507,7 @@ will be normalized to \r\n and by default text is converted to UTF8
Source:
diff --git a/docs/MarkerPacket.html b/docs/MarkerPacket.html
index bf14fa5d..0a691c46 100644
--- a/docs/MarkerPacket.html
+++ b/docs/MarkerPacket.html
@@ -106,7 +106,7 @@ software is necessary to process the message.
Source:
@@ -265,7 +265,7 @@ software is necessary to process the message.
Source:
diff --git a/docs/Message.html b/docs/Message.html
index 146ae170..8fed6b4b 100644
--- a/docs/Message.html
+++ b/docs/Message.html
@@ -146,7 +146,7 @@ See https://tools.iet
Source:
@@ -661,7 +661,7 @@ See https://tools.iet
Source:
@@ -933,7 +933,7 @@ See https://tools.iet
Source:
@@ -1140,7 +1140,7 @@ See https://tools.iet
Source:
@@ -1291,7 +1291,7 @@ See https://tools.iet
Source:
@@ -1495,7 +1495,7 @@ See https://tools.iet
Source:
@@ -1800,7 +1800,7 @@ See https://tools.iet
Source:
@@ -2105,7 +2105,7 @@ See https://tools.iet
Source:
@@ -2545,7 +2545,7 @@ See https://tools.iet
Source:
@@ -2657,7 +2657,7 @@ See https://tools.iet
Source:
@@ -2769,7 +2769,7 @@ See https://tools.iet
Source:
@@ -2884,7 +2884,7 @@ See https://tools.iet
Source:
@@ -2999,7 +2999,7 @@ See https://tools.iet
Source:
@@ -3111,7 +3111,7 @@ See https://tools.iet
Source:
@@ -3515,7 +3515,7 @@ See https://tools.iet
Source:
@@ -3916,7 +3916,7 @@ See https://tools.iet
Source:
@@ -4028,7 +4028,7 @@ See https://tools.iet
Source:
@@ -4265,7 +4265,7 @@ See https://tools.iet
Source:
@@ -4531,7 +4531,7 @@ See https://tools.iet
Source:
@@ -4643,7 +4643,7 @@ See https://tools.iet
Source:
diff --git a/docs/OnePassSignaturePacket.html b/docs/OnePassSignaturePacket.html
index 0f2bdf57..dca8a390 100644
--- a/docs/OnePassSignaturePacket.html
+++ b/docs/OnePassSignaturePacket.html
@@ -101,7 +101,7 @@ can compute the entire signed message in one pass.
Source:
@@ -199,7 +199,7 @@ that describes another signature to be applied to the same message data.
Source:
@@ -273,7 +273,7 @@ that describes another signature to be applied to the same message data.
Source:
@@ -344,7 +344,7 @@ that describes another signature to be applied to the same message data.
Source:
@@ -408,7 +408,7 @@ that describes another signature to be applied to the same message data.
Source:
@@ -482,7 +482,7 @@ that describes another signature to be applied to the same message data.
Source:
@@ -553,7 +553,7 @@ that describes another signature to be applied to the same message data.
Source:
@@ -629,7 +629,7 @@ Signature types are described in
Source:
@@ -693,7 +693,7 @@ Signature types are described in
Source:
@@ -824,7 +824,7 @@ Signature types are described in
Source:
@@ -936,7 +936,7 @@ Signature types are described in
Source:
diff --git a/docs/PacketList.html b/docs/PacketList.html
index dc87bd44..517d93ce 100644
--- a/docs/PacketList.html
+++ b/docs/PacketList.html
@@ -97,7 +97,7 @@ are stored as numerical indices.
Source:
@@ -345,7 +345,7 @@ Equivalent to calling read
on an empty PacketList instance.
Source:
@@ -530,7 +530,7 @@ Equivalent to calling read
on an empty PacketList instance.
Source:
@@ -687,7 +687,7 @@ Equivalent to calling read
on an empty PacketList instance.
Source:
@@ -859,7 +859,7 @@ Equivalent to calling read
on an empty PacketList instance.
Source:
@@ -1097,7 +1097,7 @@ Equivalent to calling read
on an empty PacketList instance.
Source:
@@ -1200,7 +1200,7 @@ class instance.
Source:
diff --git a/docs/PaddingPacket.html b/docs/PaddingPacket.html
index 6f9faa6a..7fc377e0 100644
--- a/docs/PaddingPacket.html
+++ b/docs/PaddingPacket.html
@@ -97,7 +97,7 @@ Padding Packet
Source:
@@ -256,7 +256,7 @@ Padding Packet
Source:
@@ -427,7 +427,7 @@ Padding Packet
Source:
@@ -517,7 +517,7 @@ Padding Packet
Source:
diff --git a/docs/PrivateKey.html b/docs/PrivateKey.html
index 8cf63e1c..b9009da2 100644
--- a/docs/PrivateKey.html
+++ b/docs/PrivateKey.html
@@ -144,7 +144,7 @@
Source:
@@ -453,7 +453,7 @@ Note: Curve448 and Curve25519 are not widely supported yet.
Source:
@@ -622,7 +622,7 @@ Note: Curve448 and Curve25519 are not widely supported yet.
Source:
@@ -734,7 +734,7 @@ Note: Curve448 and Curve25519 are not widely supported yet.
Source:
@@ -979,7 +979,7 @@ This is useful to retrieve keys for session key decryption
Source:
@@ -1092,7 +1092,7 @@ A dummy key is considered encrypted.
Source:
@@ -1182,7 +1182,7 @@ A dummy key is considered encrypted.
Source:
@@ -1485,7 +1485,7 @@ A dummy key is considered encrypted.
Source:
@@ -1597,7 +1597,7 @@ A dummy key is considered encrypted.
Source:
@@ -1774,7 +1774,7 @@ If only gnu-dummy keys are found, we cannot properly validate so we throw an err
Source:
diff --git a/docs/PublicKey.html b/docs/PublicKey.html
index 99a3d8d4..2fcd3fa4 100644
--- a/docs/PublicKey.html
+++ b/docs/PublicKey.html
@@ -144,7 +144,7 @@
Source:
@@ -315,7 +315,7 @@
Source:
@@ -427,7 +427,7 @@
Source:
@@ -535,7 +535,7 @@
Source:
diff --git a/docs/PublicKeyEncryptedSessionKeyPacket.html b/docs/PublicKeyEncryptedSessionKeyPacket.html
index db373e3b..68277ee5 100644
--- a/docs/PublicKeyEncryptedSessionKeyPacket.html
+++ b/docs/PublicKeyEncryptedSessionKeyPacket.html
@@ -107,7 +107,7 @@ decrypt the message.
Source:
@@ -209,7 +209,7 @@ decrypt the message.
Source:
@@ -283,7 +283,7 @@ decrypt the message.
Source:
@@ -458,7 +458,7 @@ This is needed for constant-time processing. Expected object of the form: { sess
Source:
@@ -626,7 +626,7 @@ This is needed for constant-time processing. Expected object of the form: { sess
Source:
@@ -794,7 +794,7 @@ This is needed for constant-time processing. Expected object of the form: { sess
Source:
@@ -884,7 +884,7 @@ This is needed for constant-time processing. Expected object of the form: { sess
Source:
diff --git a/docs/PublicKeyPacket.html b/docs/PublicKeyPacket.html
index c0d1ed6f..8911f59c 100644
--- a/docs/PublicKeyPacket.html
+++ b/docs/PublicKeyPacket.html
@@ -195,7 +195,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -301,7 +301,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -375,7 +375,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -449,7 +449,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -523,7 +523,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -597,7 +597,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -671,7 +671,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -735,7 +735,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -816,7 +816,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -880,7 +880,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -1018,7 +1018,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -1130,7 +1130,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -1220,7 +1220,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -1310,7 +1310,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -1422,7 +1422,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -1530,7 +1530,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -1642,7 +1642,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -1754,7 +1754,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -1866,7 +1866,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -1978,7 +1978,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -2138,7 +2138,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -2250,7 +2250,7 @@ key (sometimes called an OpenPGP certificate).
Source:
@@ -2411,7 +2411,7 @@ key (sometimes called an OpenPGP certificate).
Source:
diff --git a/docs/PublicSubkeyPacket.html b/docs/PublicSubkeyPacket.html
index 1a11c8a2..bae6870f 100644
--- a/docs/PublicSubkeyPacket.html
+++ b/docs/PublicSubkeyPacket.html
@@ -193,7 +193,7 @@ services.
Source:
@@ -315,7 +315,7 @@ services.
Source:
@@ -394,7 +394,7 @@ services.
Source:
@@ -473,7 +473,7 @@ services.
Source:
@@ -552,7 +552,7 @@ services.
Source:
@@ -631,7 +631,7 @@ services.
Source:
@@ -710,7 +710,7 @@ services.
Source:
@@ -779,7 +779,7 @@ services.
Source:
@@ -865,7 +865,7 @@ services.
Source:
@@ -934,7 +934,7 @@ services.
Source:
@@ -1072,7 +1072,7 @@ services.
Source:
@@ -1189,7 +1189,7 @@ services.
Source:
@@ -1284,7 +1284,7 @@ services.
Source:
@@ -1379,7 +1379,7 @@ services.
Source:
@@ -1496,7 +1496,7 @@ services.
Source:
@@ -1609,7 +1609,7 @@ services.
Source:
@@ -1726,7 +1726,7 @@ services.
Source:
@@ -1843,7 +1843,7 @@ services.
Source:
@@ -1960,7 +1960,7 @@ services.
Source:
@@ -2077,7 +2077,7 @@ services.
Source:
@@ -2242,7 +2242,7 @@ services.
Source:
@@ -2359,7 +2359,7 @@ services.
Source:
@@ -2525,7 +2525,7 @@ services.
Source:
diff --git a/docs/SecretKeyPacket.html b/docs/SecretKeyPacket.html
index d51ed4de..c656a40a 100644
--- a/docs/SecretKeyPacket.html
+++ b/docs/SecretKeyPacket.html
@@ -191,7 +191,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -308,7 +308,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -387,7 +387,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -466,7 +466,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -545,7 +545,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -624,7 +624,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -688,7 +688,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -767,7 +767,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -831,7 +831,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -905,7 +905,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -984,7 +984,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -1053,7 +1053,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -1134,7 +1134,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -1208,7 +1208,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -1282,7 +1282,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -1361,7 +1361,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -1430,7 +1430,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -1519,7 +1519,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -1614,7 +1614,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -1709,7 +1709,7 @@ includes the secret-key material after all the public-key fields.
Source:
@@ -1851,7 +1851,7 @@ otherwise calls to this function will throw an error.
Source:
@@ -2065,7 +2065,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2189,7 +2189,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2306,7 +2306,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2419,7 +2419,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2536,7 +2536,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2653,7 +2653,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2770,7 +2770,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2888,7 +2888,7 @@ Returns false for gnu-dummy keys and null for public keys.
Source:
@@ -2999,7 +2999,7 @@ Returns false for gnu-dummy keys and null for public keys.
Source:
@@ -3114,7 +3114,7 @@ Such keys are:
Source:
@@ -3266,7 +3266,7 @@ The resulting key cannot be used for signing/decrypting but can still verify sig
Source:
@@ -3411,7 +3411,7 @@ The resulting key cannot be used for signing/decrypting but can still verify sig
Source:
@@ -3501,7 +3501,7 @@ The resulting key cannot be used for signing/decrypting but can still verify sig
Source:
@@ -3625,7 +3625,7 @@ The resulting key cannot be used for signing/decrypting but can still verify sig
Source:
@@ -3791,7 +3791,7 @@ The resulting key cannot be used for signing/decrypting but can still verify sig
Source:
diff --git a/docs/SecretSubkeyPacket.html b/docs/SecretSubkeyPacket.html
index a3a608b0..dcd51ea2 100644
--- a/docs/SecretSubkeyPacket.html
+++ b/docs/SecretSubkeyPacket.html
@@ -190,7 +190,7 @@ Key packet and has exactly the same format.
Source:
@@ -312,7 +312,7 @@ Key packet and has exactly the same format.
Source:
@@ -391,7 +391,7 @@ Key packet and has exactly the same format.
Source:
@@ -470,7 +470,7 @@ Key packet and has exactly the same format.
Source:
@@ -549,7 +549,7 @@ Key packet and has exactly the same format.
Source:
@@ -628,7 +628,7 @@ Key packet and has exactly the same format.
Source:
@@ -697,7 +697,7 @@ Key packet and has exactly the same format.
Source:
@@ -776,7 +776,7 @@ Key packet and has exactly the same format.
Source:
@@ -845,7 +845,7 @@ Key packet and has exactly the same format.
Source:
@@ -924,7 +924,7 @@ Key packet and has exactly the same format.
Source:
@@ -1003,7 +1003,7 @@ Key packet and has exactly the same format.
Source:
@@ -1072,7 +1072,7 @@ Key packet and has exactly the same format.
Source:
@@ -1158,7 +1158,7 @@ Key packet and has exactly the same format.
Source:
@@ -1237,7 +1237,7 @@ Key packet and has exactly the same format.
Source:
@@ -1316,7 +1316,7 @@ Key packet and has exactly the same format.
Source:
@@ -1395,7 +1395,7 @@ Key packet and has exactly the same format.
Source:
@@ -1464,7 +1464,7 @@ Key packet and has exactly the same format.
Source:
@@ -1558,7 +1558,7 @@ Key packet and has exactly the same format.
Source:
@@ -1653,7 +1653,7 @@ Key packet and has exactly the same format.
Source:
@@ -1748,7 +1748,7 @@ Key packet and has exactly the same format.
Source:
@@ -1895,7 +1895,7 @@ otherwise calls to this function will throw an error.
Source:
@@ -2114,7 +2114,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2238,7 +2238,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2355,7 +2355,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2468,7 +2468,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2585,7 +2585,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2702,7 +2702,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2819,7 +2819,7 @@ This can be used to remove passphrase protection after calling decrypt().
Source:
@@ -2937,7 +2937,7 @@ Returns false for gnu-dummy keys and null for public keys.
Source:
@@ -3053,7 +3053,7 @@ Returns false for gnu-dummy keys and null for public keys.
Source:
@@ -3173,7 +3173,7 @@ Such keys are:
Source:
@@ -3330,7 +3330,7 @@ The resulting key cannot be used for signing/decrypting but can still verify sig
Source:
@@ -3475,7 +3475,7 @@ The resulting key cannot be used for signing/decrypting but can still verify sig
Source:
@@ -3570,7 +3570,7 @@ The resulting key cannot be used for signing/decrypting but can still verify sig
Source:
@@ -3694,7 +3694,7 @@ The resulting key cannot be used for signing/decrypting but can still verify sig
Source:
@@ -3860,7 +3860,7 @@ The resulting key cannot be used for signing/decrypting but can still verify sig
Source:
diff --git a/docs/Signature.html b/docs/Signature.html
index 7431d944..4cda6dc7 100644
--- a/docs/Signature.html
+++ b/docs/Signature.html
@@ -144,7 +144,7 @@
Source:
@@ -322,7 +322,7 @@
Source:
@@ -434,7 +434,7 @@
Source:
@@ -546,7 +546,7 @@
Source:
diff --git a/docs/SignaturePacket.html b/docs/SignaturePacket.html
index a8e1c2b2..1fb31bff 100644
--- a/docs/SignaturePacket.html
+++ b/docs/SignaturePacket.html
@@ -99,7 +99,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -201,7 +201,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -271,7 +271,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -341,7 +341,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -423,7 +423,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -599,7 +599,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -760,7 +760,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -1048,7 +1048,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -1427,7 +1427,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -1546,7 +1546,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -1654,7 +1654,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
@@ -1765,7 +1765,7 @@ block of text, and a signature that is a certification of a User ID.
Source:
diff --git a/docs/SymEncryptedIntegrityProtectedDataPacket.html b/docs/SymEncryptedIntegrityProtectedDataPacket.html
index 1824c4af..ba8e6fec 100644
--- a/docs/SymEncryptedIntegrityProtectedDataPacket.html
+++ b/docs/SymEncryptedIntegrityProtectedDataPacket.html
@@ -101,7 +101,7 @@ packet.
Source:
@@ -203,7 +203,7 @@ packet.
Source:
@@ -273,7 +273,7 @@ packet.
Source:
@@ -478,7 +478,7 @@ packet.
Source:
@@ -738,7 +738,7 @@ packet.
Source:
diff --git a/docs/SymEncryptedSessionKeyPacket.html b/docs/SymEncryptedSessionKeyPacket.html
index 64f22f5a..3c43dac9 100644
--- a/docs/SymEncryptedSessionKeyPacket.html
+++ b/docs/SymEncryptedSessionKeyPacket.html
@@ -165,7 +165,7 @@ the Symmetric-Key Encrypted Session Key packet.
Source:
@@ -271,7 +271,7 @@ the Symmetric-Key Encrypted Session Key packet.
Source:
@@ -345,7 +345,7 @@ the Symmetric-Key Encrypted Session Key packet.
Source:
@@ -419,7 +419,7 @@ the Symmetric-Key Encrypted Session Key packet.
Source:
@@ -550,7 +550,7 @@ the Symmetric-Key Encrypted Session Key packet.
Source:
@@ -761,7 +761,7 @@ the Symmetric-Key Encrypted Session Key packet.
Source:
@@ -929,7 +929,7 @@ the Symmetric-Key Encrypted Session Key packet.
Source:
@@ -1019,7 +1019,7 @@ the Symmetric-Key Encrypted Session Key packet.
Source:
diff --git a/docs/SymmetricallyEncryptedDataPacket.html b/docs/SymmetricallyEncryptedDataPacket.html
index dc4f9d2c..fac92832 100644
--- a/docs/SymmetricallyEncryptedDataPacket.html
+++ b/docs/SymmetricallyEncryptedDataPacket.html
@@ -101,7 +101,7 @@ that form whole OpenPGP messages).
Source:
@@ -197,7 +197,7 @@ that form whole OpenPGP messages).
Source:
@@ -271,7 +271,7 @@ that form whole OpenPGP messages).
Source:
@@ -477,7 +477,7 @@ See RFC 4880 9.2 f
Source:
@@ -720,7 +720,7 @@ See RFC 4880 9.2 f
Source:
diff --git a/docs/TrustPacket.html b/docs/TrustPacket.html
index 07ec3afd..593d3545 100644
--- a/docs/TrustPacket.html
+++ b/docs/TrustPacket.html
@@ -105,7 +105,7 @@ other than local keyring files.
Source:
@@ -216,7 +216,7 @@ Currently not implemented as we ignore trust packets
Source:
diff --git a/docs/UserAttributePacket.html b/docs/UserAttributePacket.html
index f5e8797f..3c70f4d8 100644
--- a/docs/UserAttributePacket.html
+++ b/docs/UserAttributePacket.html
@@ -107,7 +107,7 @@ an implementation may use any method desired.
Source:
@@ -266,7 +266,7 @@ an implementation may use any method desired.
Source:
@@ -427,7 +427,7 @@ an implementation may use any method desired.
Source:
@@ -517,7 +517,7 @@ an implementation may use any method desired.
Source:
diff --git a/docs/UserIDPacket.html b/docs/UserIDPacket.html
index 8bdb8988..52303c5d 100644
--- a/docs/UserIDPacket.html
+++ b/docs/UserIDPacket.html
@@ -100,7 +100,7 @@ specifies the length of the User ID.
Source:
@@ -207,7 +207,7 @@ John Doe john@example.com
Source:
@@ -338,7 +338,7 @@ John Doe john@example.com
Source:
@@ -495,7 +495,7 @@ John Doe john@example.com
Source:
@@ -585,7 +585,7 @@ John Doe john@example.com
Source:
diff --git a/docs/global.html b/docs/global.html
index 6514b8a2..8412e089 100644
--- a/docs/global.html
+++ b/docs/global.html
@@ -106,7 +106,7 @@
- armor(messageType, body, partIndexopt , partTotalopt , customCommentopt ) → {String|ReadableStream.<String>}
+ armor(messageType, body, partIndexopt , partTotalopt , customCommentopt , emitChecksumopt , configopt ) → {String|ReadableStream.<String>}
@@ -313,6 +313,73 @@
+
+
+
+ emitChecksum
+
+
+
+
+
+Boolean
+
+
+
+
+
+
+
+
+ <optional>
+
+
+
+
+
+
+
+
+
+
+ Whether to compute and include the CRC checksum
+(NB: some types of data must not include it, but compliance is left as responsibility of the caller: this function does not carry out any checks)
+
+
+
+
+
+
+ config
+
+
+
+
+
+Object
+
+
+
+
+
+
+
+
+ <optional>
+
+
+
+
+
+
+
+
+
+
+ Full configuration, defaults to openpgp.config
+
+
+
@@ -352,7 +419,7 @@
Source:
@@ -565,7 +632,7 @@
Source:
@@ -704,7 +771,7 @@
Source:
@@ -1113,7 +1180,7 @@
Source:
@@ -1694,7 +1761,7 @@ One of decryptionKeys
, sessionkeys
or passwords<
Source:
@@ -1997,7 +2064,7 @@ This method does not change the original key.
Source:
@@ -2356,7 +2423,7 @@ One of decryptionKeys
or passwords
must be specified.<
Source:
@@ -2488,7 +2555,7 @@ Ultimately, the interface provides no advantages and it's only needed because of
Source:
@@ -3257,7 +3324,7 @@ must be specified. If signing keys are specified, those will be used to sign the
Source:
@@ -3545,7 +3612,7 @@ This method does not change the original key.
Source:
@@ -4165,7 +4232,7 @@ At least one of encryptionKeys
or passwords
must be sp
Source:
@@ -4381,7 +4448,7 @@ At least one of encryptionKeys
or passwords
must be sp
Source:
@@ -4982,7 +5049,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -5332,7 +5399,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -5493,7 +5560,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -5632,7 +5699,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -5771,7 +5838,7 @@ default to main key options, except for sign
parameter that default
Source:
@@ -5921,7 +5988,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -6101,7 +6168,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -6245,7 +6312,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -6435,7 +6502,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -6827,7 +6894,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -7068,7 +7135,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -7356,7 +7423,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -7644,7 +7711,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -7938,7 +8005,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -8226,7 +8293,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -8514,7 +8581,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -8802,7 +8869,7 @@ NB: the return instatiator functions will throw when called if the provided Source:
@@ -9264,7 +9331,7 @@ to set the same date as the key creation time to ensure that old message signatu
Source:
@@ -9793,7 +9860,7 @@ If a revocation certificate is passed, the reasonForRevocation parameter will be
Source:
@@ -10008,7 +10075,7 @@ If a revocation certificate is passed, the reasonForRevocation parameter will be
Source:
@@ -10557,7 +10624,7 @@ If a revocation certificate is passed, the reasonForRevocation parameter will be
Source:
@@ -10719,7 +10786,7 @@ the encoded bytes
Source:
@@ -11181,7 +11248,7 @@ an attribute "data" containing a stream of bytes and "type"
Source:
@@ -11426,7 +11493,7 @@ The new key includes a revocation certificate that must be removed before return
Source:
@@ -11606,7 +11673,7 @@ The new key includes a revocation certificate that must be removed before return
Source:
diff --git a/docs/index.html b/docs/index.html
index e20f21ed..81ce2ee0 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -205,7 +205,7 @@ library to convert back and forth between them.
The library implements authenticated encryption (AEAD) as per the "crypto refresh" draft standard using AES-OCB, EAX, or GCM. This makes symmetric encryption faster on platforms with native implementations. However, since the specification is very recent and other OpenPGP implementations are in the process of adopting it, the feature is currently behind a flag. Note: activating this setting can break compatibility with other OpenPGP implementations which have yet to implement the feature. You can enable it by setting openpgp.config.aeadProtect = true
.
-Note that this setting has a different effect from the one in OpenPGP.js v5, which implemented support for a provisional version of AEAD from RFC4880bis , which was modified in a later draft of the crypto refresh.
+Note that this setting has a different effect from the one in OpenPGP.js v6, which implemented support for a provisional version of AEAD from RFC4880bis , which was modified in a later draft of the crypto refresh.
You can change the AEAD mode by setting one of the following options:
openpgp.config.preferredAEADAlgorithm = openpgp.enums.aead.ocb; // Default (widest ecosystem support), non-native
openpgp.config.preferredAEADAlgorithm = openpgp.enums.aead.gcm; // Native in WebCrypto and Node.js
@@ -265,7 +265,7 @@ import * as openpgp from './openpgp.min.mjs';
If you notice missing or incorrect type definitions, feel free to open a PR.
Examples
-Here are some examples of how to use OpenPGP.js v5. For more elaborate examples and working code, please check out the public API unit tests . If you're upgrading from v4 it might help to check out the changelog and documentation .
+Here are some examples of how to use OpenPGP.js v6. For more elaborate examples and working code, please check out the public API unit tests . If you're upgrading from v4 it might help to check out the changelog and documentation .
Encrypt and decrypt Uint8Array data with a password
Encryption will use the algorithm specified in config.preferredSymmetricAlgorithm (defaults to aes256), and decryption will use the algorithm used for encryption.
(async () => {
diff --git a/docs/module-config.html b/docs/module-config.html
index 55a40273..cd13962b 100644
--- a/docs/module-config.html
+++ b/docs/module-config.html
@@ -89,7 +89,7 @@
Source:
@@ -247,7 +247,7 @@ as a global config setting, but can be used for specific function calls (e.g. de
Source:
@@ -365,7 +365,7 @@ Must be an integer value from 0 to 56.
Source:
@@ -489,7 +489,7 @@ Note: not all OpenPGP implementations are compatible with this option.
Source:
@@ -614,7 +614,7 @@ where key flags were ignored when selecting a key for encryption.
Source:
@@ -733,7 +733,7 @@ and have self-signature's creation date that does not match the primary key crea
Source:
@@ -854,7 +854,7 @@ This is an insecure setting:
Source:
@@ -979,7 +979,7 @@ and deferring checking their integrity until the decrypted stream has been read
Source:
@@ -1091,7 +1091,7 @@ and deferring checking their integrity until the decrypted stream has been read
Source:
@@ -1213,7 +1213,7 @@ See also constantTimePKCS1DecryptionSupportedSymmetricAlgorithms
.
Source:
@@ -1331,7 +1331,7 @@ However, the more algorithms are added, the slower the decryption procedure beco
Source:
@@ -1443,7 +1443,7 @@ However, the more algorithms are added, the slower the decryption procedure beco
Source:
@@ -1555,7 +1555,7 @@ However, the more algorithms are added, the slower the decryption procedure beco
Source:
@@ -1672,7 +1672,7 @@ validation error when the notation is marked as critical.
Source:
@@ -1788,7 +1788,7 @@ validation error when the notation is marked as critical.
Source:
@@ -1905,7 +1905,7 @@ The default is 2047 since due to a bug, previous versions of OpenPGP.js could ge
Source:
@@ -2022,7 +2022,7 @@ The default is 2047 since due to a bug, previous versions of OpenPGP.js could ge
Source:
@@ -2139,7 +2139,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2251,7 +2251,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2363,7 +2363,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2475,7 +2475,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2591,7 +2591,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2707,7 +2707,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2823,7 +2823,7 @@ Only has an effect when aeadProtect is set to true.
Source:
@@ -2939,119 +2939,7 @@ Only has an effect when aeadProtect is set to true.
Source:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-