summaryrefslogtreecommitdiff
path: root/t/wycheproof/ecdh_webcrypto_test.json
diff options
context:
space:
mode:
authorKarel Miko <karel.miko@gmail.com>2017-08-25 08:00:27 +0200
committerKarel Miko <karel.miko@gmail.com>2017-08-25 08:00:46 +0200
commitaf2d77cb55bb618ef85b0bb7a25a29f1734c883f (patch)
treef68948840030bbcdc088a0cef10856c88c773889 /t/wycheproof/ecdh_webcrypto_test.json
parenta242a15ddacc2876691685c1d9d61ec07bdb9a6c (diff)
add wycheproof test vectors
Diffstat (limited to 't/wycheproof/ecdh_webcrypto_test.json')
-rw-r--r--t/wycheproof/ecdh_webcrypto_test.json1300
1 files changed, 1300 insertions, 0 deletions
diff --git a/t/wycheproof/ecdh_webcrypto_test.json b/t/wycheproof/ecdh_webcrypto_test.json
new file mode 100644
index 00000000..87cebc91
--- /dev/null
+++ b/t/wycheproof/ecdh_webcrypto_test.json
@@ -0,0 +1,1300 @@
+{
+ "algorithm" : "ECDH",
+ "generatorVersion" : "0.0a11",
+ "numberOfTests" : 57,
+ "testGroups" : [
+ {
+ "type" : "ECDHComp",
+ "tests" : [
+ {
+ "comment" : "normal case",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "5af492c029f055e700150fdf074bbc3b376b3286a0e1a4feb267960bbb0a148e",
+ "tcId" : 1,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "TEKm94QkBRnu2W9CQgBCYrabdRQ436q7mBfeypPoHIc",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "WyqqM6oDsZdjGfMIvj6sGGkXhyB-6RPNgCNYBbHz7F4",
+ "y" : "h5IjGBoRRdQKxucb6rv-EVZwIqZv2XRLi3_rvK-dxSI"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "yISNawZIGrhSC2XREZbJe30drwGpT6gWmocmXgm12So",
+ "y" : "0dac4Rq3NgDALW02mtKKwd0hPoqR-H3kK7FohxSMzkc"
+ }
+ },
+ {
+ "comment" : "normal case",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "7ee811a7cc92be6c5d6879d6399c467675c34c1f9c2261e1df4ad7d4dc4de93d192a5020feeb61712e4401cf369700ff",
+ "tcId" : 2,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "XPNFF3sB7GKqQwJJE7JfjRq-9B92mXqz1v1fWh6-uQ3mnecJw5JwbbWAPsI7NhAt",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ymo32uc2KIgSIck9N6h11vy4zGzXuOnw0-jvC3h_IqlOvEJ9gUXeK8XUkn7xBGvh",
+ "y" : "D0e3Bgt0wn4KwyJJDKwHqV6FB7xe3afuTXKBEV7hpj_rqFQqZZsrdz8TJUqjtD5Z"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "y5F1hPIu6IHPMTVd_4jagQ4S6NqKEWrV4bF5Rr04FfqRRqWWoSBNBQVhQuK_OFur",
+ "y" : "0nxF1hhtRBy9qvLFZka-r4cSfZyb86ICsdIIIJqJ6My4vouAeLucCI5TTuJqTEQ-"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "0000000000000000000000000000000000000000000000000000000000000000",
+ "tcId" : 4,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "V3__4ATEMyhY8ARpZPC-Tl_iZS6vzyYWdDu8Y6sBg3k",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "I7gdSwHAhxe3tQ8izFrv0PsGLoIA2Mskr1QoWPE4Bi8",
+ "y" : "CNN26pJpxC4OZYPeFbigQYBnb4r1OrUsf1l2wz5uIuc"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Z_TxDYzhUV5lUiOTCuRbbYQwp1KNzMBZ7L9_8NSZzpQ",
+ "y" : "PVLyBeRI9xmjw-s9oUkWNH4Vurydaps86bzHPismQWg"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "00000000ffffffff00000000ffffffff00000000ffffffff0000000100000000",
+ "tcId" : 5,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "FY8M1ObgQ6QJpszBP4-649T22PFI17GyzzxJeMqUGng",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "SjM1g2j5_2Np3xDBYW_i7BsxFkFO2cl5OGRVGhfrHBg",
+ "y" : "AvVlj5C266JG6T5Ohhu2idHQcrIjuJsbvRApRAhXQvk"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "3wOehQMUhX2O2yc_8yPZ0mb5l0jvPn_PUsqRbOs2PwM",
+ "y" : "zZycmVJCIQlJaHWyUSEz7taOqXI4v_0UEJQz2sSp-Nk"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010001",
+ "tcId" : 6,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "GQkQmmjEUaDxUMYyhE-cMN5WPQXe4YHR-Sd4b_bkD_0",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "cTTJ44nkV_b62xyriRhErvgE0Ul0WY8594uT18wY2eI",
+ "y" : "lCFFPIrYYgK2qZCzIb8Mp6dT0-8UMEmc_HOU_R75coA"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "JdqrnBMBeqmPeE1x15Q8XnaPABJIH7yncU43kF2FTwY",
+ "y" : "WPiNVKFUExBWMeKqfay65gysGzyd4XOfJ6nCv9I0oOw"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "7fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff",
+ "tcId" : 7,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "00-WuNQUk2E8yO_NxDljiGGOdWRVGL1sGd7JOOkPnOM",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "2f8GYyCcsHFQo0hGPSu8FbTOIychG7d-b7d8iEch_-0",
+ "y" : "yCsGEV5BgWq-Y-7zt21qghpZVy9P3cMS09tC2DrO0QA"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "gGBkbTWiSK0C0KjZBpUn0G6pwplS9Y2mCQusShezSx4",
+ "y" : "vmXp2Bh6znrY0dNYS07MxpmpV-4yfzwy6rrC3UlZetM"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "8000000000000000000000000000000000000000000000000000000000000004",
+ "tcId" : 8,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "Wj2UZ9nw8WmL8VSGJ4L0NhUMjBA9iMqrImBT1zA_pcA",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "LXoHReBeihHt83forxIbehHNNH1VLhs1eYvKUGkKrY0",
+ "y" : "uTDrHtcNtyhy-Y_6_Mc-t5e2-iOvqNWgJw7sC7AozgU"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "q8GaAT7v2FB6SxuTPVFVM8y_rSoSnqiwpxZ_Hu8ObQI",
+ "y" : "nHZLhfynaWPPWAFvx1K9UdzX8z_UCU5d55A5SX550CY"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "ff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff",
+ "tcId" : 9,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "X3n2bE6P1Vjxqea9LDFYrzhmrpNC6ec_AsYE0efWmbw",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "g35sLwD15_TqXQUHszyc5c_N9hsfLqsFp9mtBjSmqSM",
+ "y" : "-UvQSiSIpJkLPEKy33MbvcJc9nENkv4QExgUBQB4HtE"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "nhtwFE914Csb_UApjwESl2tZvPbtRJHPqISi4x2-y5o",
+ "y" : "SQBYhqVRzPNiih8_eNfCqRRQGc-SxYmdMbJwoisd2Fs"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "ffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff",
+ "tcId" : 10,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "GYByC6k5US0eYVKwWavZdx7F-OpKAbWiO-ZpsDU4Qr0",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "lGtMphj7_zUNmVfFHAcS9z9OCSweJ04l6DkWSLBszHE",
+ "y" : "vGESfIjmiAXDa9zDhdHfBwBWWBxHmY86bc9TKCBSlng"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "cnH8JXOPBGBW9uU-OZgIAev9HXPPlGwxcmFUHywlTyc",
+ "y" : "0lOb82YIt-6rvGd7oXZs_1mIcCj7D8oKEUZX5k105qg"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "tcId" : 11,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "yUtG-GHczuzVFQuXWBtPedDrkt2tG4GeX_yy6V6Hm4005blcOLYd45gjX3N8zYKq",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "XvcwMIRsP7gKVAjdPBhULB3ylSxbQyD1fBLFgakWnEFluAosTL2QU95E2xpVN0MV",
+ "y" : "uraiwhV9ED1BvbZPq5UitbdZg33hohJRadF86SCyN7-GmNrlOhEFqnF-o7PB9rDp"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "gfuq69ezpardRLQ9VEmrstzpzpWxSRy4r1I_rOkKHg_kFSQzVn3vDNzEqQeKQHIA",
+ "y" : "1oBddqoXFUrLWBx0zVJ5JUGnt0OkcjJSNEKlM_BBq6XjO5-Ctpy9uS8lpk_49ih2"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002",
+ "tcId" : 12,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "0N7muMMenSJu_bYD1y3wN7FIIGFBp60fq9ZNr_DyTEDFaRab1c2PLWnxZwvU1xm8",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "M3DOkQjZ_j2pDm-PDGzdW88lBrWNfSolI7LyJJlsAFDO9cog1Lf_MWGm80oJDdgW",
+ "y" : "FfrGsxqv2nffIfMUy1GCEzLTPOeEr2m6_0PuMW9fm2UCAMsVUCxbzBtb1nyZXvFt"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "MFLwgeT22ujEUvcNdw2mxUYaJtF-oCheDNYr6qfIRhroSvz5R3lBSMeZj0rquHhJ",
+ "y" : "iJ6-sff5hF5m2LniNu0JWAGz5htREd0C9036d9S2oFubcjApcHXNohUPya1P1TM0"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff",
+ "tcId" : 13,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "D7CfwAS8fz2OvdO9t33e1bFAW0fEYFQV4taAGHJVAnDNf8TmZXVFPOCvr7gpClTM",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "175rvtMdoJASJSXZ4VsugjNMUIB9wpGSznSKUChjy-jq47szrk23ZpiC0yBXtk-v",
+ "y" : "_ZUyY4erc7k4B89v4n_kB6kTI1NBO2fxTxZabkubimochVwNvk0kbXQq41NLcZS5"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Gb-ku-UUrJjEFct4kO-FCIkUj67HU4j2VJBeGnrPC-bmXzJUwa39tChOIc4YrTrM",
+ "y" : "wZ6iWL9Z5S9L-9AbHReSxTNeSxqy56tfrGMP7cIOeP3GLip85xCl1HGyLc4gDCv_"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff",
+ "tcId" : 14,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "xgpoyacaA-DRj0mqSoDPW99cNakj57inqOZIC_aljU_-ja1QnveTu5VT-IErVFaJ",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "lj9GrksnYrR5iKn1mIHL1IAuMP5B5Elp0Xvv27YI_PTQccaq-Ou5ntPylMUzHe1y",
+ "y" : "PAwkFHgnQuMabaPPjsIvr4DdBXSR1dJ00Asz6ZyslCorTVKCbxGQDo7qTtHTWKtT"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "OCSThhnjCYVKqk07KFHarvYBy1-n5zHy71-nIFZ19yZn4wnaK3OzCDhHbvH-vfy_",
+ "y" : "oc9rkMnhsPjxuRxG4YIZ4SV67wSf1mMNeF8xefnXBw9_BIO857pbbHifq6k7K3K4"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0008000",
+ "tcId" : 15,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "I6ItVmh5RIJtO8XLTtOromnKohI1JTbDzNo0hb-Q_Ri1TJ1kkqcznWN4yBmp0zpf",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "wg18n8h9e5guY6l2vF7UdlWMeLKlk3X0-EBJctlkbSpOmBUKOUHLlPZ62zJcXH9c",
+ "y" : "38LiWgWKuv0NRjUc8rCFo2d6Q6T98KYC-DxXD9jepg11vtF5tNqn--ofXADnusHx"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "0-m3-Cpll7v4BfekNYHAln410f-wlPXfaG2msh7DNzKZesFccMNsdDiidzq2rVQ1",
+ "y" : "1qsGv2ekstg34nybDH-FzDrf0kRuKKpLVgOU9JQ81FdsH4Bb_Uh3WoK4_jXtzM_Z"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002",
+ "tcId" : 16,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "bWHZtZfa2RzHtC0YGCUb-KOwmJUhqZUjgaU9rL2abeOdxqkModI_b35D3_dlS9Nh",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "lctf7qgcgdK9ln0siFC1KkaKiDNgE51ulveCH65ZJ1xiy_6HFWvGljuDttMUkdq-",
+ "y" : "tXCGiAA0_9g8AET2oclM88neIGgDpmdHSHxslcAr0ds8Irl2sSAjraJ95NSu2gyn"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "3sfFArTfOdx4alKo4SVuMNhLAPyQM6eJFttq3Ql5rqu_i5M1lvHtYeZqIq2cH6m9",
+ "y" : "QvGllFc0mOVgaAqQF_GvoXQmoVJg0QTIIabHh3Wspy7qy0irVm8dpKxzbit8qJOf"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "fff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff",
+ "tcId" : 17,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "mKcUqEZN55w554M6uYXPc1Kfei2DkBygNyAoQV8DtwYqmOUiECDxlyNQYludwUnG",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "jOm7u_gNzMp5wd3aUrkybrTPSAGQ7mmuEkYqePSD_LM3TktieWl7dcgeQ73rNLFv",
+ "y" : "zCP24hQmQnEbi3iQC2VBn_1Ah-inR5ppHBgPzEvXWwFoz1lK_uzIKm69qoIgYZw9"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "zbs2N62pGygHN1n2u4O0akBKWnvmWD7qLJu4TTlhRVxXzdmh9_6AtOM4dKy2GyXX",
+ "y" : "RmNU8rZfvXZjWRVtcAKs6hGWqRYXMvA0Vp5dNWqZcUnwgFnFXxk4f-3wtCsRHg6Q"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "ffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff",
+ "tcId" : 18,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "wSOgjOGyS0THIPlyqZdqYTnSLi0UolDiO9gKInMIkThJi-77xLTiPpQdN124OyiR",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "U1vW-LFEqwLorzODSawOWSrZdUiiRSM_vrzMGzz1VqzGM2iIDWSW8pBYeecvvFAe",
+ "y" : "UqmVNd3fqF_zdBhGbfCLoH1A2NBnuXWbnRKLgkrQM4qUJSI4zI3oLJcUBKyTbPhV"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "FX2pFpSuM62j94lwjdrK-8ppETMSLJUZoSAGdhvDkZAlFgT--DrJXnZ18GldlQQC",
+ "y" : "Zajmf3FRa4jAEVbwLP3habKSJjF2jLhqUBNmh1nBnMJRjt07gEACpuwJhAxRdC_L"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe",
+ "tcId" : 19,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "xh8uHXNp6vfEyQcCNQy50MOnMVFVbRb5_mgEimS9pWMwtdYTTtFvYZfyxI1KCTB1",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "aIb04bpycj0d6zAvDMjTpM6T1FwDtnziNt8sQLqlAeuCKdQO619P9uwU4_tilLKq",
+ "y" : "Tq3rWf3EYkB1IxTDSoWhZNpC2h7kfpGtkbfyQqzviz6RWKp4Ue1ICfu9qVZa91eu"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "q39AYquQt0BdQ6VKuiNC30e55iTHfHqs9ogJK_kunUCWu0vDsnn2tWVbYDii57go",
+ "y" : "uqIRUwq6RUG3v49Sy4L-8H9Czx6RO_x0o2ZoZjVjEYcdpEv7I3rwFqO1yLcSbrRS"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "tcId" : 20,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AVKh0rHG7Pkd3_PuLDYXWSHmODNUmBjhPcYkoayV1g3HZnZRlu1fROV3rOIloeHvRYdrFx_NB5INebN1qaUMNRqB",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AKlNmCvHHVNVD7yVQZDT0ndwQrHFb-CUb1Q5hpcyIZBfm6ztMv2w23vx6l4-7rWaxEaCGFhFuKs4UFt8JBIs3g6Z",
+ "y" : "AM9y8f1YkPLcaCxYgDGJVlltBFJNpRu6tFaMueJmi_4TQPdHMfUACPTu3ZPiMOJfLAHjdj-40SuS1DE95PcxdVtE"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AS3urkDLLXtha3NhL90XI0u07sy8om0WO7EbHvsPeJgM0iufl35-RuReyDHZzV10rh-AoHn8y1zITpqxnu8oblJ_",
+ "y" : "AC3Pf4WBRCJec-AxWwruShMAKA3GE5e-XD4HhAxEVsJQ8VDNT4dlBhjpmUs91Vl-Yq-nhAVSbVRceiYm8-ripeex"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",
+ "tcId" : 21,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "ATmak4nm7hXp1MKCw8hx9rnwRfslPzg0E48tyiLkTJq0PiUlXPIop9zJLOp_zTJxol0otFSGDMQHN7UUuOWataAG",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AVjKsZhF9cafY1ZWqEl5rWLBHKUYICfLSotbTrFxs1Gzqsp5rPvXEiGTw3JoUXUanYAiTlDO4D35pYKrehMka8e6",
+ "y" : "AZpeA_ZGbMfb9gefRvzM66QJF4ywd7fX4i7bD6LxWN6X4YvP0TA-9IgEY9P8rmNtEVWNHOQ7lYMXyG3pSJXCiVmo"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Ab3YIomLurxIHOuHAhK8KzsSUsU-YK4Gr379y2CHaIo9kgP_rh18DiXCoUEvoIIx8gwGTZzzOeRuTPbZRQo5tA8d",
+ "y" : "ADD0l0D-8kB5R3GyXenua2pqLjvxMB7XKkYTVTvikv-dr7kj5-zdWAI0bvdYua9iDydcbvNBIfCqnIMrcCuN-tTv"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002",
+ "tcId" : 22,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "Ae0B8AuUv5AvAslCh-nNsc5Rp3aiJaOeDq2r5hDxZOtHXDFWPlYZLG4IVeRITPyvroD8ajdheE5fLTk9xkAwLAlN",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AMJZVTWNZBnvGzroqMvz7iQ_l7EdyH_wfH82VUN-yh5HRB8Zhixc1_ZrRAFIBTRXbG3OhpnkbBynsz93elFLmrS1",
+ "y" : "ADUZa4-xrZuR6TkvperZvyQpU9LA6anRWvtBpfErRRutoNOXNNqZd4iJM9UrOwgMuwD3EcjHi5LcFlU9fnhAX-4F"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AWImM20DIMkwVqKq5Oj8KGQB7lAiAamgp-MsdmgGpbGoRdHD7BC70po-yvLRKWx0j8wcvDtLBgSlN56X9IiV3_-8",
+ "y" : "ALjyFlEqqyfyfxY2USOCXRU1-NNCJgg95ZaX3AwhJK2osJI_5gl6ZGsR269YSc8lvzz-DMQSkSN6izsJewFYWE35"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "00003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff",
+ "tcId" : 23,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AHCj4dIfcZmOPuhsdHE1_QFbirc5UuwhQSVRGJvnNfMqbvkgwJdDwoh35_rOrvDobZkMCUo2gjywt-jeb1MoTXXL",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AckwlINJRsmZceEqzmdGd6OkBOpgGt7BuIL1_1qKj8KPd0IEVzJOnMIKtllYm6mcb5CjImhB9OTMf2TfbfikDx8z",
+ "y" : "AYop_NDJXvj0A2PHJ4oHLfNybIsJ_yuprFdBxil-CDxyYfOoxxKYwZJqv5dFvahgBq2pcxlUtY_edhyo3t87W5Vn"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AFRRtylPwcqFK3-rIUMWNocMLgrAOgcbHuBpzjmQe8H-F4PQb22UmMthmg5bV3HUTAUo8CN_fKYHG5Mp-vhlCDw0",
+ "y" : "APnnz_jAwOl6YVA6S-X3i32oAfBRIKgvAGP6-4a1rn3bUxbbX0E6DHxyvXDHBagiswvCTcpmbgf1K2DWl0lYAdvr"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "tcId" : 24,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AWkrrEpAH1ySoeLzWa29MPCf1d_1AGnmgl5ctM38yHn5HJnANExaKUqMBrOBv5uqqplBUFX7nNL3l4dd7WqaPFIa",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AC3_tgsEuNpiRbo91tSKWj56AQpSbGt1tXpheP-BY-x73ByOHUyH6yiBYeHcdXwi1iLr9utUubAOk0eXUANOYOfe",
+ "y" : "AZPGwdcwZSHbhKuduwfvNyo44kzrWP7Hao6soA6tRAB8bWu-ZqY9VfazCp4UviSfL5npVBVlyWHrbJzm6_rZZ6u5"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ACpQ9eN9V7C6ykS76ZP0u-UARYdeEbXT1ktF1049JBufZvm7AjNXgEIh5smS5edyPsQ2E3CpKCrRb9zBsZDfeUmm",
+ "y" : "ADRPkod4ORmJNXBkni6W6xjFgQWzJYWyineMsSJcIx5SgFJzFd0wKpJ4r4NoMEQYP7Hro6pwuPb8lzsh3kXq8k3o"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "01ff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff",
+ "tcId" : 25,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AVvfMqtnNDa9_sm8S7JMZH6FGX8Rtx3uHHwwqabohiviiTJISFwRwEdc3rrO5XcEbY0R4h2JFj2D_51KB0TsYnt6",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Afrx9MyHjAQXLzWtY8E3Npgc5RHmb_7NJZBnC8IScQExr1Mw6YLdSIApLgebYCItsxn8NI1ePq7Yel40vdYjDmHF",
+ "y" : "AQgpwUfPeLtojxZr3CZ7TRkfOW94MFH6Qd3-RKrNxCfWhDbFn08eizxx9MeDYTTBi7QP7YjgGsNwQHdYynaQCrJl"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AapJCiTqodo1UEqh71rQPTFdFWAingHpYzYEcQkoNlaN78YHsEh13mq3t4rfAySlSHISiAxhLCUoNE8A0qJH9-uo",
+ "y" : "AbGIwEWcIGbHLtJ8jZdQZlvsq5PPXrp9nv66HuRZIvv4zFjE6EFlmiy05SRbQVdNIxXTPRYzTc3zD2ap0AI6Sp8F"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "01ff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010000",
+ "tcId" : 26,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AQRGx7aakMJAtvNZjVcMNtuPiKmi0sR4HbQvx2SiPwIE8av5AQ4489sfWCLJEQT1LJmr7z7uCs_RkZnYQfA5nsRY",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AOzcaMvbri-f4B1RYhnAj0-ma1NDDxi4bTiA56rGUB1jToLVVmtUlf19ejkW7IXaEbIxdOvoPFDyEuQ25lEVviI2",
+ "y" : "AAALPmt-i6XKCpayvbbEsXVQgACrzwFm1hH2apTQZ9AuXHMCxqlRtuLWox49b3UWQQxguKUxC-Wp3N6Vc69L0258"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ARcwdNExeWI1KkBYFq3NrPwHLihiab5Om7EWUye1rUJQ_sqBLSAZ8aH5gunT3LS4govxtGeFJT3591GYZCCx_YR4",
+ "y" : "AL6RaKyYB3FkjvdvupBdCR-TMtMFZoTeiYdiOF17lbowRVEuU0ueOZtC3g-oeUVdR38PAb8qjyBuTUjTfy-PAwFg"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "01ffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff",
+ "tcId" : 27,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AEf0gpI9gWUpV2YOJXZbq-_NNs1-0gaz_cqsTCWJryIlZIFpjfAR7E7TYsVWJJOcQ06KThPTq_f465-pNYV6GM0e",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AbbjwscOPKDPxOhuY5Adis_BFWuAtvp6CACwigg7nQsVVMfmmz-2rabNDVM9xfO-IyJluN2iIXfWqfsso9ZfqwNa",
+ "y" : "AN0O-aSlTwMFZMh61_w6Dd6WFF4RSgvTUTKrgBbfwvJ51oEFS2N9wkAO6n9BF5LtGEs05Rk4c7YiHW7cduSTGaP7"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ALerrg1ExBfKvxgAcbHCrRng59VuQrYtenCecu0zFvM6qCfT-K25W10QlV0CUb2ghufXhEHoYcloPvqAs_9s4fbK",
+ "y" : "ADkJ75dRag1VYGkeFmYAoHo4srO0iLCnA-UkhCPnFnBeMgYymD1w2jgvQAgaklc0Hu-9UaD7p1_Nf-1TjpWJtUow"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "01ffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc000000080000002",
+ "tcId" : 28,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AVq5Tiol6wETE9p3S4QwJkOnBOLHsjacK2jJwqKNg29fcQYU2F1VfIXn_z_W2gCOA1pfV1nxjFHy71Zbvjt0On74",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAiC9FSE0AUJRyxhAyzUpiQ9jx6rK--jcvGKfjhV3wOQc8ESnfvM6Ht6a6q4et-ZpudHxtKYEVbg_Sj-DFPf3In-",
+ "y" : "AS4ou5BmSLHuNP15FUxCpaWYcVSAZbEpByTXeaAF4pGrjKAn-QJQTEoeCRzSpaRNOnNuQ4R_RmEYxhWBKGg0GMGV"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AIADDBIkyBDQ9Mdh5Q55qU38Z5MKqGaZMc6u-lYk_BxYqWpjzkBnNLFnfnEPNB5Pe1VB5rBZ2Bgnklo-E_DErnUV",
+ "y" : "ATMiYwjDaF7zYFgwtWB1j-yPSeB86uTsOl-jZn1xcuIrFJ5rt5SRZCD770ODhWqd0FZ6XimVkkN_C86DfLhRNFtV"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd",
+ "tcId" : 29,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AV9Wm2yFPuZTEtzoREML-T4ePjFF-qBX1fuKnACO_UXwGLXX63QY8BnW3yTKIRHsLbYZAYl-mcln98Lf031gFvE9",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AFRFfw2juwn-o9pRWj-iWoh6CJnQK-PQuGrRxgCv3-PY4MGCuEWkS9vm4uBoebJqLLrktoCQk9QajjOVO54eXX3Q",
+ "y" : "AWBlktVWdA9WSpA2tAU7qiJrt6wahs1APs0DpDra-co5-_qPVJ4MNRGccMm8NIalEpH-BKTzTa0ulEnkKO_WGkzH"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AcV8ffR7tx_RPXFPhG66Wy6v_YdvF_DPBRyC2MBdVnqkDA5qRbb13O7MPDOKIbZByBSPo0fYwWWuJJQyHy6ifvhB",
+ "y" : "AVEsOm9DnGCIOdriD6SoT3HpQV6AsJzKG51vehjIngB9QGWjwcMhTZc1vy4FqnOk135hOH18JdBMyp2RvezglWmQ"
+ }
+ },
+ {
+ "comment" : "edge cases for shared secret",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe",
+ "tcId" : 30,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AE4aqLfxx8CRwT3QCLZlGuNRCmYhcpKx1cQKa5yYRCJdoRoFfHBmXKEFpPcn02d56w84wAxo5IqLuiSF6iwBXSP7",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ASeR1fEZFj-lqdUm56zzdw9ye2XQ9rZuNGed20Y89cvpCC3k-qGhjERJWVCJEwvbGWHfG3dikPws3bd4BpNF8imw",
+ "y" : "AUTDJdEeJ3cOzU0w5QHaygcoV7heHoc6mIxLepOattgSh86q9gpuMlEToVuILBB-XLmDXDPcUAfcTugkSgMt0Cb3"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AGjidY0tiJL7AbgOV75-ZWrkGFHTKhuYfycXv1yUfBUcy97QljiYb9SOHs8g_tdMc-iclHf9jMP33Anyc6mLWIke",
+ "y" : "AEWBC6A7bwhGzO7Km2FkS2gAMDm36KRmlOJ4y_EHSwh3wtC-AwMkUesZLwA7bIlsvLGom3MC4Hi9E7Nczgurhg0H"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "64ebddd0211545e08fff948c3c252bafdb61245146915b8524f27cd6ec766d4f",
+ "tcId" : 31,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "9WHNIE2tXPb9P1qiTZSGfw8xzSIXbrwjDlu4IMNDGK4",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "G5TtS3gQhifa-fzyckvupwbKxmfGuveNC2CwLpchqH8",
+ "y" : "FBD5sLTkev2U75DG792XrwCybeK4X-rSkP7OeenV668"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ "y" : "ZkhceA4vg9ckM71dhKBrtlQcKvMdrocXKL-FahdPk_Q"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "11c2b3d789d5879ae2b6c5bf25e970d246ae19f27e96d2a53b85b844662bfeba",
+ "tcId" : 32,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "37nCPA2bNyQYlt2dwyPl499ok2n2P9GDC1PC6Kq3_ps",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "qPLjpu-qN03vykV-b3Zmsev1gum3iwur3ptEBN1jqO4",
+ "y" : "33Y3hU4lZy8u_ZKc1TJGIhY5TFyqHWH7NGVwikCbE2g"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAAAAP____8AAAAA_____wAAAAD_____AAAAAQAAAAA",
+ "y" : "RiwEZuQYAiONbJJey-_HR8_lBeoZavmi0RtihQ_OlG4"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "827b389dd5c08c79f1315302342539be601a7f755bdca98d6702846107a31870",
+ "tcId" : 33,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "fQCkXannaJDeh2kAnq5HI7wLxvzj6x5t-HoWWOhDLMY",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "_FJoFGfalGIOTH-b1D-ibY0CN8prxadt3__i8MY5nhw",
+ "y" : "DgvkRsg976wXQkGkRFNW8a8fN1Vr8bD3Ak3V03Q0wgQ"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAD__wAA__8AAP__AAD__wAA__8AAP__AAD__wABAAE",
+ "y" : "aEyKlYbtb5y-RHBYp9ohCLqx5eCmDR9z5OLnE_Cj3-A"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "bb25fc9cb64eb69e52f9d1d4c0d9dc7563d2342738b8545bd849c9616f7c35b8",
+ "tcId" : 34,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "7y30Hg3QXiSRil8iTHd33Y9yg3JzVR_PUJ2SaUeNfOQ",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "HwhwsMS0T9wPDfjxu0mxkLOfESsQUmIYa4V1KwHrlDc",
+ "y" : "H5yuPQ9-ah6D2MO84W-0MBzRBQzBP4Q11teY74VB7ZA"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "f_8AAf_8AAf_8AAf_8AAf_8AAf_8AAf_8AAf_8AAf_8",
+ "y" : "LiITyvAwM-D9D3lRFU9ubDqSRKcvrKZenOnutcjhzqk"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "01d6936718941de1c689a8d11cf98c0d50cd18b40589e5e4efc2ab7692e9a11d",
+ "tcId" : 35,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "ynQhnwWzXOkr-9Ne4QB_C_gSAjx2gdpSX_aFifK9S0Q",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "3v4g84h9rNVn81C14Uxr2QQWp1VZpW33GQ8qfm34ulI",
+ "y" : "SEPuncA58RBm9OslWclcvGWZOoNftu-1vu1Efc4sYiE"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ",
+ "y" : "K-h4nbgbtIcKnmDFwYyAyD3kZCdygfGvHmQIQ6GjFI4"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "b040da667e626da3ecba81774abe5c78b0913269c4a338e96169280cd960cb11",
+ "tcId" : 36,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "dbAXHkNIjNBS9ai8xc1rlIBwtq5u2HFxAHATVr7xORA",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ioFLm07OAbhKONV6TmTlamuJaIwHEzSeeGuNcosgoLk",
+ "y" : "jPuKN9axMkHxUMyjgbTTnE9Tq-QJq5u-gmnJ8Y2iFlQ"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "_wAAAAH____8AAAAB_____AAAAAf____wAAAAH____8",
+ "y" : "XfgPxsria2wZUvvQDtF07hIJ0GkzX1tIWI4p6AuRka0"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-256",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "4936cc116991029c526353880d1662c358030966cd55a9a8160fe2d159aeb4e7",
+ "tcId" : 37,
+ "private" : {
+ "crv" : "P-256",
+ "d" : "XOqmj1_5DbRu0cV4_bPB1JTKV2EImMcAmCiQxztru9Y",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "oXuqPe7_EUlvhfee5l1fOFn5X5Jb1wNjVcenVgTJyJg",
+ "y" : "29Xvv-xNR8wUyBM_47j4bGb-C3vDFXLKhv0iCc391vo"
+ },
+ "public" : {
+ "crv" : "P-256",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "__8AAAAD____8AAAAD____8AAAAD____8AAAAD____8",
+ "y" : "LGNlDmpdMy4ph90Jp5AI6PqrvTfknLAWv7ksjND12nc"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "4e895e34c332213a5df19fabddc6b902d692839babb725d3df788565dab301ce21297ac9bb22634d28f4591bdca4bbbb",
+ "tcId" : 38,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "T1tn2EWp3XrtJUF4-8hqnhI17p1Y3MLSIw4g_yMkj1ZeJVbJxfeCYc-Kh5O34xL5",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "SnFhQe1E4hE8LFnQIHsmKuPj1Hvfp7ghcjeQ6l1Abj1bdfwmQexehMePbqPkz7mx",
+ "y" : "FdjHSmVoLnYQaACnx952lcm_Le0dPco8Mf83dOx8nZ6JyWoDe1tk2eInNlmxyJD3"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ "y" : "PPme8E9RpepjC6P5-WDdWToUyb45_SvSFdO0sIqq-Gu_kn8sRuUqsG-3QriFDlIe"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "359842f1ba4c9be3d068c74399581ba6a322c6d3ab720d0224f71cf5ca550d1071a2b385adc8fb47fbfe74d25d4736a9",
+ "tcId" : 39,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "50d0UvWbIrGM0eMD2D1wZuZPg6OCsnGbhPgVynGjTaKmbAPI4aj78fDP4HjyZNoe",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "bIby6GKIm_c1VxP2_R3JJaD2a7WfrGIbGhKoFbDY6zWN4Lwzb8ujjRJhB0BlG4sK",
+ "y" : "dcKT0WCM0Sf9srQn-YUtmD--lpd9jZkD5AIWKzrDg10igwmh0lgQi_w1NgUguTXB"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC",
+ "y" : "cyFSRC-27lw-bOHZIMBZvGI1Y4FNeQQrkDzmDx1Eh_zNRQqG2gPz5u1SXQIBe_2z"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "71716edde561d5f3160f49150d65d2d7288d828de14ca915b835547687e3b9156bc2575e24687393ad6aae3544367355",
+ "tcId" : 40,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "rzWr72rzurTFbm6_jsnAgXH-H9VodWaGyETRKJC5n7ao06d5zoivfDUYh8iehcLH",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Ir2zHCrFMrmIUiUr4Zy6260S1oKzexrvWSUEu0e9BlXZZQqHf69RUmhxsbwPsf05",
+ "y" : "zRVH8sgQIsx9VOscHN-EAGyLiMQwny0x5faJVqFFE6uqtq05Jq7Peg0Jiwd-sEBk"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAAAAP____8AAAAA_____wAAAAD_____AAAAAP____8AAAAA_____wAAAAD_____",
+ "y" : "cDcDhUE9Pv9vo0B7ok9oLCsBtRRF299e97DdCXnxfnE-CQgVcfHpTftmvyggAvOf"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "54a2e9e30ff3dcdf15bb0630dff2af17ae2ddadc9a908a6e844762af8f43b7dc3bb59212e626be44adf94efd3c9bf748",
+ "tcId" : 41,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "lat_maoDiHjgtmOALbi0oV019jqEsoSKVEW8Hadq-sDPpexpBAH7c2TlUhfVKOfb",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "k7C1k5ErkiAP3jUFHdgT5sw2WF4oPXNIUuLiWazarSE1mNY6uPCnvPvzc19-ufIR",
+ "y" : "p3OImY5TpcRNr0cht6RZOo14saiFmxNNQKWKXVmGl7s-9dJ9ulpYqf_Sp3vWts5-"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAD__wAA__8AAP__AAD__wAA__8AAP__AAD__wAA__8AAP__AAD__wAA__8AAP__",
+ "y" : "ES4ZHx94u8VLbMTwseWa6Mb_Ggf1Eo5B36KCjhtlONT6LKI5TGqrNEncs_xOtEwJ"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "6125603f2419093887c94cdc24030a53774e68436d9db29e58199ff5043f38850c94a843ced979247f2ca1bd48e712f7",
+ "tcId" : 42,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "OriTivAVWkEw0xPlfSEL1XuyfRoo9WXwPFrlaxFY_jHpWXKku0EjnQis9js5i716",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "BnGd_rVJP9RPKD1nBm4EJHkAk6UuM3n1WH9-w2tUGC-HHM-ELlLY2imgCV205lLz",
+ "y" : "9DWhsjsMME952LVjIxeC8Gw-KTiK1jmnOTmWHbLj9lw0hiK8t9RPS4iQ4bCwxAB2"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAIAA",
+ "y" : "AopMjaWgURL-YCXvQZCJad4g0F2WaOXIUu8tSSFy3cKgpiL8SIFk_MGgdrhylCry"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "60d73748120e538409c65508f4fd2c4575ee333d1103be329fd95eda92fdb45665de27db2d3f3ba5c5ce0d448d33442d",
+ "tcId" : 43,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "LgLDmLopfrvWYzRGKWleU8ZSMaPiSMLLBKrJWGwXPvD-USKpohFKBUCxI-x6hDuZ",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "P0lK0BgW2hvIautb__wcM9wJxsgN0h_9jP6OEkt2uVQSlzOxnkWGjlQrnQthW8W2",
+ "y" : "h_lSVNmK7k9renQhp30NyVF_PTDhBNH7CDUQi2O9ttMZsu2LgMCzUmQYcdIRDcy8"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC",
+ "y" : "B5faTAdRztFt6A0Wq3xlSl3CfQkmJtCGWhkqHF6nwbiMn8qwV5RnQeQcwoyA7Aua"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "acafe3aa06c90ff391128a2ba4b569d3f76b65ff1ec1e9c98780722c336810768014be29db1c7b523c68f3246b2765c4",
+ "tcId" : 44,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "u5P9WvZZwf3krTQVlA_9dx6HLwp4CwBuEWupeU7xskBvkFQkLEsWgc6ODACeDJ34",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "aahIFrSc4nFAKY6U6YSFH8SbW5tLaXzgNUzMwFQB4mV9yshGl_J30i-pYrqgf-KT",
+ "y" : "kKd0wGLab0vwL9vcZXrF4f9Wwl_YpTtBgdTNBVAsfN7gnDO0_KgUjyiuC8V0YADC"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "__AAAAAf____wAAAAH____8AAAAB_____AAAAAf____wAAAAH____8AAAAB_____",
+ "y" : "bHCJiub7MfovCGViry0QSGukxv1eQd_kqmFZi0cHo7wnamL-sbmFV-OxfAJfet9O"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "2f6bdffd0381853dc2c493512138ee843d4f7f0d19fde184f1a438887c741acb066654e45ea79d230c3f3cb376c22665",
+ "tcId" : 45,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "t7k8StSVU9m_UnPXIr7cpsZHinyGKtb-ihWaapXGXvBb_Q_7DAkhlodltTuOjBNa",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "rZ7Tz-zApVpyC7uD66RRSVxnXAtg9qLorxkVbamhRqt52ztcCT6isv5C73FO_J9S",
+ "y" : "SeQr0j5HOA0cdzcPNj1tHq5RNO7DXT47l07tk41gIEPN2TI6h8CQ1teO7oliUXzl"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "____AAAAA_____AAAAA_____AAAAA_____AAAAA_____AAAAA_____AAAAA_____",
+ "y" : "SYerrkEoCcL6SP0jsb355iL1pgbEQRchX_phsY70blSn-78R-aa6WcmRtK5QH-3O"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-384",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "7ac7f7cf745457b1a58ea3cddc0337d47211b44403ab4ea47559be4350e8e87ef1aaf153e88eee72a3bdfa88aff1bad1",
+ "tcId" : 46,
+ "private" : {
+ "crv" : "P-384",
+ "d" : "G6nOPd7d4YRu2aiuR2rGsJhaHbgu-YD4KWcolBGqjhFF7r4vEut4Z7hJPHCmkYfo",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "OdLPzPwjOGKxUaUEWtPkWQcU-lZMiMY7ltEg-sv8cDexBg1YAehFcvNHTNd9Eoco",
+ "y" : "4cv-rRGl9hZpU7SdqV25z_tQxBHl3H9M8zYJ-rQ1gvjsvszDI9lWfc2Yda6GEauI"
+ },
+ "public" : {
+ "crv" : "P-384",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "__________________________________________7_____AAAAAAAAAAD____-",
+ "y" : "cyFSRC-27lw-bOHZIMBZvGI1Y4FNeQQrkDzmDx1Eh_zNRQqG2gPz5u1SXQIBe_2z"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "008a0e65c8611c570562e3eef2172e5fef175d211ca7613d3f301dd8babd9b47d400c31551ac4c06ef3850750a4cc6a012f31bcc556c41ba61054eb6af6829360842",
+ "tcId" : 47,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AKpIH05r5B-hJdYsfs2K1lPebZvuR-CKsJizim-_8jVMkK26amEEKxpylsbVT-aP0kR6-Rx_Jxl9IzyBSyPyWHCt",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AP9uLiYau8O5k7k5b5HVp4wr56kfwhAkJk7K5GoGBaQ79oEgzdbbZA4-Xk5kvHcCt6A9JjhR98ADxmEoAR-GtHN6",
+ "y" : "ACu39ZDjMkyQwIVvi1B4bwOPxZcAuitpWsXGXkh4vWzxvL9hKQ1exhkyu1gLyYipMAM8zZRQgcnGqQncxm8syuWK"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ "y" : "ANIOyf6mtXfBDSbKG7RG9AspnmSLGtUIqtBoiW_uP45hS8YwVNV3K_AaZdQS4LyqjpZdL10zLX85-EbUQK4AH0-H"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "012d650d8f3b211999aea626d97a2a359c98cf42ee4a7ce3353ddfea8e303102d60f1b82c207524bfe2c8f280d9d6c1345fe3f61ff889071310cbc5644a6d8683e66",
+ "tcId" : 48,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AR4Zxy_JL1yzPdR6rG0nq-06vo32mba1JskRrZPRiBAjcf6dNrGITYhWC_V3gtyeEODQbSDlmdvbI4BLN8vPGfxe",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ACZGXGdGsWYaZ0fOuHCpoJ-8D_caLh8TQQYbcZgB8nXUpBKqn0vKcW1f9_XZVzTVYFKiDjyDIDH34dkf6d3yJwec",
+ "y" : "AKv_XqoNtUyzdkKqU1ivxekOMmpKa7PKe9PjeCF5pzeVVg-1-6QBZcVOmAlXm2Y-QARvqtvTQbx0FValfOTeNgAj"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB",
+ "y" : "ABDlm-k8TyacAmnHnir9ZdauqptwHqzBlPs-4D30eEm_VQ7GNuvuDd1KFvHNlAZgWvOPWEVndw4_Jy1ojIMuhDVk"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "0090cd100d3a35ce5f9fc6c3dbefd3810d5096ed63e5ee046c26c28984f825a0ce6ff3d643e7ea1648b21dc8daad4286673aa84e28f256bbd978606a1fcca2942f7e",
+ "tcId" : 49,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AcfptciIDkTS-s55K0RvlPXZYl3MiXLWQIhQApWyG0rNBlExohWmt4I37TqsKPkuUetp6E5-LNjKfG72RFUZbfi2",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ADmHGMepW0phM-0eOFYStqNF3raQTXAi9FSxb0e8UJiElG4uB4qS_48UaRfqxOrmt-RUoB2lmqmVveoTdSdvtotC",
+ "y" : "AMxzlDgVrRolQOtp84UBNp9LX_n01wzS7y9RhaAQC_asgVt8IOymIuOAsdGo4JNeYUI7Zg30fS-elK8XVMa8DPzO"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC",
+ "y" : "ANklT9-ABJasszeQsQPF7p-sEoMv5UbGMiJbD3_OPaRXSxqHm2I9ci-o_DTV_CqHMarWkamou4tVTJWgUdaqUFrP"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "019c5a8fb31bfec0a892308140c2d4db952066bf0fb5b613c2674634723269da8fd19f1f93cbab0acd80a268f9d108b9a6103505e710b49ed6f3ec10a9a1aab0cb1d",
+ "tcId" : 50,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AEYv-AnJxUVNa43Cn7jWp0rMBxXHi-pd25Nfu2wd2vVNiw1OAP_KhduvhluBC6KWTZhpHwCNJhbyy5WiMbbfiKxL",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AYMOoz0H-qWHNgCRhOi5vBMJcnSwGP9TKaNfoNthhA0misgNSJuLwEAUct3lk61FnOLDp-wOXWyWfxtiV14LZKIb",
+ "y" : "AYLV9C9-sY5659HSeOojg7nt3Y_TZKiZR_XaavQZZZT9HwWOFVCA8s4OAbURON0bCi1DBqInrCxJ7WiiXp3HmzyZ"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AAA_____AAAAA_____AAAAA_____AAAAA_____AAAAA_____AAAAA_____AAAAA_____AAAAA_____AAAAA_____",
+ "y" : "AM0oOdhXtGmfXI6KAZR4biaoYvCGtLqAdGrlIl7Tqmj5a3quxVIlgwu5j1LXUiEUGJe6SdejHrvwttfTE1LlJmGQ"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "001e6f34d1c431b605ba5ad341a6d4b21b7c9691d79ae8070fd56705d5ee60c98e3956f12ce58bb831452541b43ffafd102dea31bb4e964da6a3023745554011ebbe",
+ "tcId" : 51,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AeONg5fKDfXtk9-RlPUuOZz26gPs_jHUcxlqe5XPrG3PBxAmMQESzT1ZbWy1aZx6Gtqcq-rZOO2WrosQZgs-MV53",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ALwl2eMdd-N5-DAfX84o2w-_iUTtYgq47BBS5uSGUWcYHug7BU3CTUBrKmYafhUQIqnIYxRPsflRVMqnncnxJglb",
+ "y" : "AOq4DoCisqFOiANEtfs0lwIipGH_vkuPHGWNgaWw4oZlzT424fTyWIC4sj_RZc1sTPWD4kT5ROCnZcemPrVRkzyn"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ "y" : "AAgT2YKRGfQv-pX-qLqegeTNamypf7B3jhLl9d_jUgHdTMqOyg0uOVVVmXBBOB5qwfGN30x04LbpBBz9yh0cEDCR"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "01367e24697254f96336f32098b6a35dd364c1dfc897c03404ccc8b7b9d207b1fdb9c66bc55d586002c561651842f7a11a7b8f4208ffa14f2b81c867ed6ac5b311d8",
+ "tcId" : 52,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AEsWMPirCvc1jgUh5gZJQumH5N4pnOSFfhhCOuXC-URm2HqR6JudLVfMJ_2mSTDEf8ZtYb0Kw4N7s-D_VL_wlzvt",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AWZCsAy5TErC8oCtxpdkWNdeBmsBC_blA3Z9OTcgnfqH6Z6YQvUtj3_XaVS2vShKMd_xkPc9CyEjNPIsUJ_5miOd",
+ "y" : "Acgw-GCBGqMPwDF4k9giSYYiEXXYJUhe848wvoZfqL3OqY6cBY9bZXMGRMzwNWVjJK8TpITJHqUq_PXSQpRTrDVP"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Af8AAAAA_____wAAAAD_____AAAAAP____8AAAAA_____wAAAAD_____AAAAAP____8AAAAA_____wAAAAD_____",
+ "y" : "AB_oAMUOVAErdaM-S-fQfI1g8paAo5XpUaajHFCWsOqSj8LL8yfdeE3Ap8pG6nOZK3WLVkE2S0q6Oek3mKTZJaAI"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "0028cde4500ebb4f53aa89d08b162020d53921d43035d585d5645172334c9b0df46e6b0bf66a5240239d51ef1017c14173313317fb544a889efa83effccece7eaea5",
+ "tcId" : 53,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AGSRnAUCVCS-_7fN2JLqlXl1gLNlaiyaC9C6UKFmcZN4yeeg79TzMqFPwCHCrhhe89p2BAs4U9Y5gycIOmTa7B96",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AQ8Us1RKPVn2xxhkRI0_7tqkE5acYGGaG9hnqgp7Nbvw1UprVgWUO8tp2rwfyfvlGc56FIcbmahQTFhNnKq4k6T_",
+ "y" : "AAd77iaKst0JYgHEOnz79w-ZseypWs56oKGXzM1CJ_DUj3zHw45O2GhZ_VfAVEHd1prLKYgqN6n6FQ6EuWhJ9Qih"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Af8AAP__AAD__wAA__8AAP__AAD__wAA__8AAP__AAD__wAA__8AAP__AAD__wAA__8AAP__AAD__wAA__8AAQAA",
+ "y" : "AI3Rih9eSCFAvnm7ZaIa1gyJh-UyyENF8BNa_9Ruxx7wKxyjrVbzAdlV-jBsEi1EHW_tz4uFXvJWNQv2nSOnIHrZ"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "01f11556b0c2544695555c2c142ebbf72572244e043b755dfca7adcd32d1ff68177a70af88fdbad573f22943522c5e40a99794e3e629518d471f302bdd5cf0be729b",
+ "tcId" : 54,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "ADl_dtWjNwzJxNPMypvvZQIh4hL8nLY-0GZQoinG9y5L9dh-erUW3nwCgLn1-mZI4F9qIxNxpdPL6WuapnyEJuPE",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AOVtRhkHpYEOdY37Ctitf8tdcazfFeYJpGDIND4IE5Zsurd8gqMeSyp89mOH84HYc1-sBF5JhQ-bF3Pqj2W4-vhi",
+ "y" : "ASX4TFfru6w_bk3u9k71gKNWFQgDENvSHSLRQhDSCi7w2PHTs9tdJM48O9C7WYw7EImq4oiK3D1jnHbkOyCwLfyd"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Af_AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__AAH__",
+ "y" : "ALEcZo-9VJ82iJ97Y0NAUdom8VcFg5E2sbFKCRUtehgup4BsNUeKMtOqPJwWJ6YVGevscbNvp3RJAluIKeJ_MHg0"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "00f8f1e1940e2a69e733f8a7a5c9a2d30cad0dd901e702a0687cc83913f0123bbf9ffe5ae4ff6c5630118268e8e67f4327482b9b7e69a93ef4da1d3abe00e3692482",
+ "tcId" : 55,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AGiax25EUHBf6o5rTio6wNt2Z1BZdO3Y2ht6Nwj-nUi2sP8oGnmRfx1Qo3k8tGyzTke1Bisrhb_NFo_oByKuRVxt",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ATu4_yZKbhiOikpAwZFrAw5TthD8lUyOjEfH3F8Pwx65KrWdzCTsUxlytYdvO2VGVGGLrfIBRKQeQA6DHxTeRIN1",
+ "y" : "AY6_5hJv8HywySeUmLI64-Tyjrwof-9xEGkcF13wZC5t780Nsn78-whvVaeMxfl--bKWCF-8cq-ylayu-LRueG_p"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Af___wAAAAH____8AAAAB_____AAAAAf____wAAAAH____8AAAAB_____AAAAAf____wAAAAH____8AAAACAAAAC",
+ "y" : "AKp178Co2qwdc_MsnFUkFLzPRK-OdDMbR0OefcxJoTWz7mHp9pcX2JtLujVnoZWu2hP77GNL8phLXsa2-A9ZeO1a"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "008567b96fddfb4acc4b0317e5a8144b879e762bd611a8d8d0825c7af7a464d27eee6b721f7bf4aa431b095743299f36c27b0b520432472b040a9807f21abdb78dcb",
+ "tcId" : 56,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AMRVHZr067NGsXtKirPSRFaj2KL9oSIC90jdOYlU4CJTLzssF1bZC0BqnOX9AzxAz3C7-ny0LK7Ik3VbgnDy6GQ8",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "ABLN5qTrWH6RKn_frzdnVX3XWnW-sQ63iWeknyzshq-U1Fw_tEFN0AN7sV-JzjQaDDkuHyegXmtxfNuJPBI2AzBe",
+ "y" : "AM6aaQYwMBmQKDRt1cvTDEdK6CMahJOePc7IYRix5VKgsbmBfCv7F9_xE5nexRTjDzGv309LnvVJQ0kk9Fv6f2u7"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Af_____________________________________________________________________________________9",
+ "y" : "ABDlm-k8TyacAmnHnir9ZdauqptwHqzBlPs-4D30eEm_VQ7GNuvuDd1KFvHNlAZgWvOPWEVndw4_Jy1ojIMuhDVk"
+ }
+ },
+ {
+ "comment" : "edge cases for ephemeral key",
+ "curve" : "P-521",
+ "name" : "EcdhTestVector",
+ "result" : "valid",
+ "shared" : "01c0ed430408acb310910db1933c22d021030c8b9c011b201325484911eec542605283f2a41c02f20ea6d96291293ce16794a759bbe1428bd6f4bc53a1db40e80b0e",
+ "tcId" : 57,
+ "private" : {
+ "crv" : "P-521",
+ "d" : "AWFrDPqiz_GzwVebeJ-MTnUZsc0Aw-nLZ8PkYl70WQdMhFe9aMQTp5ocQCC0h1_QQBEQxzTYioxfyLTVqA7W7xQ9",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "AfAnhZSidHsHhjPfcqc0MsllGBwegXg2tIcHQB3vOeRRvgjL_bLoaYHmp8fZ5ZVrBQcGQ7AMBfB86XiKe-27q_zS",
+ "y" : "AE16Vy45Ij40KlRqhAFe_SSI7u5tfr5GfAmAPyeHVlM7ryOAOoohrLymiwSLJEmHCukT97D3xbIPdX_1eQyPWrit"
+ },
+ "public" : {
+ "crv" : "P-521",
+ "ext" : "true",
+ "kty" : "EC",
+ "x" : "Af_____________________________________________________________________________________-",
+ "y" : "ANklT9-ABJasszeQsQPF7p-sEoMv5UbGMiJbD3_OPaRXSxqHm2I9ci-o_DTV_CqHMarWkamou4tVTJWgUdaqUFrP"
+ }
+ }
+ ]
+ }
+ ]
+}