summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/WebCryptoAPI/import_export/okp_importKey_failures_X25519.https.any.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/WebCryptoAPI/import_export/okp_importKey_failures_X25519.https.any.js')
-rw-r--r--testing/web-platform/tests/WebCryptoAPI/import_export/okp_importKey_failures_X25519.https.any.js110
1 files changed, 110 insertions, 0 deletions
diff --git a/testing/web-platform/tests/WebCryptoAPI/import_export/okp_importKey_failures_X25519.https.any.js b/testing/web-platform/tests/WebCryptoAPI/import_export/okp_importKey_failures_X25519.https.any.js
new file mode 100644
index 0000000000..d4d099f765
--- /dev/null
+++ b/testing/web-platform/tests/WebCryptoAPI/import_export/okp_importKey_failures_X25519.https.any.js
@@ -0,0 +1,110 @@
+// META: title=WebCryptoAPI: importKey() for Failures
+// META: timeout=long
+// META: script=../util/helpers.js
+// META: script=okp_importKey_failures.js
+
+// Setup: define the correct behaviors that should be sought, and create
+// helper functions that generate all possible test parameters for
+// different situations.
+var validKeyData = [
+ {
+ format: "spki",
+ data: new Uint8Array([48, 42, 48, 5, 6, 3, 43, 101, 110, 3, 33, 0, 28, 242, 177, 230, 2, 46, 197, 55, 55, 30, 215, 245, 62, 84, 250, 17, 84, 216, 62, 152, 235, 100, 234, 81, 250, 229, 179, 48, 124, 254, 151, 6]),
+ },
+ {
+ format: "pkcs8",
+ data: new Uint8Array([48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 110, 4, 34, 4, 32, 200, 131, 142, 118, 208, 87, 223, 183, 216, 201, 90, 105, 225, 56, 22, 10, 221, 99, 115, 253, 113, 164, 210, 118, 187, 86, 227, 168, 27, 100, 255, 97]),
+ },
+ {
+ format: "raw",
+ data: new Uint8Array([28, 242, 177, 230, 2, 46, 197, 55, 55, 30, 215, 245, 62, 84, 250, 17, 84, 216, 62, 152, 235, 100, 234, 81, 250, 229, 179, 48, 124, 254, 151, 6]),
+ },
+ {
+ format: "jwk",
+ data: {
+ crv: "X25519",
+ d: "yIOOdtBX37fYyVpp4TgWCt1jc_1xpNJ2u1bjqBtk_2E",
+ x: "HPKx5gIuxTc3Htf1PlT6EVTYPpjrZOpR-uWzMHz-lwY",
+ kty: "OKP"
+ },
+ },
+ {
+ format: "jwk",
+ data: {
+ crv: "X25519",
+ x: "HPKx5gIuxTc3Htf1PlT6EVTYPpjrZOpR-uWzMHz-lwY",
+ kty: "OKP"
+ },
+ },
+];
+
+// Removed just the last byte.
+var badKeyLengthData = [
+ {
+ format: "spki",
+ data: new Uint8Array([48, 42, 48, 5, 6, 3, 43, 101, 110, 3, 33, 0, 28, 242, 177, 230, 2, 46, 197, 55, 55, 30, 215, 245, 62, 84, 250, 17, 84, 216, 62, 152, 235, 100, 234, 81, 250, 229, 179, 48, 124, 254, 151]),
+ },
+ {
+ format: "pkcs8",
+ data: new Uint8Array([48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 110, 4, 34, 4, 32, 200, 131, 142, 118, 208, 87, 223, 183, 216, 201, 90, 105, 225, 56, 22, 10, 221, 99, 115, 253, 113, 164, 210, 118, 187, 86, 227, 168, 27, 100, 255]),
+ },
+ {
+ format: "raw",
+ data: new Uint8Array([28, 242, 177, 230, 2, 46, 197, 55, 55, 30, 215, 245, 62, 84, 250, 17, 84, 216, 62, 152, 235, 100, 234, 81, 250, 229, 179, 48, 124, 254, 151]),
+ },
+ {
+ format: "jwk",
+ data: {
+ crv: "X25519",
+ x: "HPKx5gIuxTc3Htf1PlT6EVTYPpjrZOpR-uWzMHz-lw",
+ kty: "OKP"
+ }
+ },
+ {
+ format: "jwk",
+ data: {
+ crv: "X25519",
+ d: "yIOOdtBX37fYyVpp4TgWCt1jc_1xpNJ2u1bjqBtk_2",
+ x: "HPKx5gIuxTc3Htf1PlT6EVTYPpjrZOpR-uWzMHz-lwY",
+ kty: "OKP"
+ },
+ },
+];
+
+var missingJWKFieldKeyData = [
+ {
+ param: "x",
+ data: {
+ crv: "X25519",
+ d: "yIOOdtBX37fYyVpp4TgWCt1jc_1xpNJ2u1bjqBtk_2E",
+ kty: "OKP"
+ },
+ },
+ {
+ param: "kty",
+ data: {
+ crv: "X25519",
+ d: "yIOOdtBX37fYyVpp4TgWCt1jc_1xpNJ2u1bjqBtk_2E",
+ x: "HPKx5gIuxTc3Htf1PlT6EVTYPpjrZOpR-uWzMHz-lwY",
+ },
+ },
+ {
+ param: "crv",
+ data: {
+ x: "HPKx5gIuxTc3Htf1PlT6EVTYPpjrZOpR-uWzMHz-lwY",
+ kty: "OKP"
+ },
+ }
+];
+
+// The public key doesn't match the private key.
+var invalidJWKKeyData = [
+ {
+ crv: "X25519",
+ d: "yIOOdtBX37fYyVpp4TgWCt1jc_1xpNJ2u1bjqBtk_2E",
+ x: "hSDwCYkwp1R0i33ctD73Wg2_Og0mOBr066SpjqqbTmo",
+ kty: "OKP"
+ },
+];
+
+run_test(["X25519"]);