1d4afb5ceSopenharmony_ci/*
2d4afb5ceSopenharmony_ci * lws-api-test-jose - RFC7517 jwk tests
3d4afb5ceSopenharmony_ci *
4d4afb5ceSopenharmony_ci * Written in 2010-2019 by Andy Green <andy@warmcat.com>
5d4afb5ceSopenharmony_ci *
6d4afb5ceSopenharmony_ci * This file is made available under the Creative Commons CC0 1.0
7d4afb5ceSopenharmony_ci * Universal Public Domain Dedication.
8d4afb5ceSopenharmony_ci */
9d4afb5ceSopenharmony_ci
10d4afb5ceSopenharmony_ci#include <libwebsockets.h>
11d4afb5ceSopenharmony_ci
12d4afb5ceSopenharmony_cistatic
13d4afb5ceSopenharmony_ciuint8_t *lws_jwe_ex_a1_jwk_json = (uint8_t *) /* EC + RSA public keys */
14d4afb5ceSopenharmony_ci	"{\"keys\":"
15d4afb5ceSopenharmony_ci	  "["
16d4afb5ceSopenharmony_ci	    "{\"kty\":\"EC\","
17d4afb5ceSopenharmony_ci	     "\"crv\":\"P-256\","
18d4afb5ceSopenharmony_ci	     "\"x\":\"MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4\","
19d4afb5ceSopenharmony_ci	     "\"y\":\"4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM\","
20d4afb5ceSopenharmony_ci	     "\"use\":\"enc\","
21d4afb5ceSopenharmony_ci	     "\"kid\":\"1\"},"
22d4afb5ceSopenharmony_ci
23d4afb5ceSopenharmony_ci	    "{\"kty\":\"RSA\","
24d4afb5ceSopenharmony_ci	     "\"n\": \"0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx"
25d4afb5ceSopenharmony_ci	"4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMs"
26d4afb5ceSopenharmony_ci	"tn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2"
27d4afb5ceSopenharmony_ci	"QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbI"
28d4afb5ceSopenharmony_ci	"SD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqb"
29d4afb5ceSopenharmony_ci	"w0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw\","
30d4afb5ceSopenharmony_ci	     "\"e\":\"AQAB\","
31d4afb5ceSopenharmony_ci	     "\"alg\":\"RS256\","
32d4afb5ceSopenharmony_ci	     "\"kid\":\"2011-04-29\"}"
33d4afb5ceSopenharmony_ci	  "]"
34d4afb5ceSopenharmony_ci	"}",
35d4afb5ceSopenharmony_ci
36d4afb5ceSopenharmony_ci*lws_jwe_ex_a2_jwk_json = (uint8_t *) /* EC + RSA private keys */
37d4afb5ceSopenharmony_ci	"{\"keys\":"
38d4afb5ceSopenharmony_ci	     "["
39d4afb5ceSopenharmony_ci		"{\"kty\":\"EC\","
40d4afb5ceSopenharmony_ci		"\"crv\":\"P-256\","
41d4afb5ceSopenharmony_ci		"\"x\":\"MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4\","
42d4afb5ceSopenharmony_ci		"\"y\":\"4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM\","
43d4afb5ceSopenharmony_ci		"\"d\":\"870MB6gfuTJ4HtUnUvYMyJpr5eUZNP4Bk43bVdj3eAE\","
44d4afb5ceSopenharmony_ci		"\"use\":\"enc\","
45d4afb5ceSopenharmony_ci		"\"kid\":\"1\"},"
46d4afb5ceSopenharmony_ci
47d4afb5ceSopenharmony_ci		"{\"kty\":\"RSA\","
48d4afb5ceSopenharmony_ci		 "\"n\":\"0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4"
49d4afb5ceSopenharmony_ci	     "cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMst"
50d4afb5ceSopenharmony_ci	     "n64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2Q"
51d4afb5ceSopenharmony_ci	     "vzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbIS"
52d4afb5ceSopenharmony_ci	     "D08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw"
53d4afb5ceSopenharmony_ci	     "0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw\","
54d4afb5ceSopenharmony_ci		 "\"e\":\"AQAB\","
55d4afb5ceSopenharmony_ci		 "\"d\":\"X4cTteJY_gn4FYPsXB8rdXix5vwsg1FLN5E3EaG6RJoVH-HLLKD9"
56d4afb5ceSopenharmony_ci	     "M7dx5oo7GURknchnrRweUkC7hT5fJLM0WbFAKNLWY2vv7B6NqXSzUvxT0_YSfqij"
57d4afb5ceSopenharmony_ci	     "wp3RTzlBaCxWp4doFk5N2o8Gy_nHNKroADIkJ46pRUohsXywbReAdYaMwFs9tv8d"
58d4afb5ceSopenharmony_ci	     "_cPVY3i07a3t8MN6TNwm0dSawm9v47UiCl3Sk5ZiG7xojPLu4sbg1U2jx4IBTNBz"
59d4afb5ceSopenharmony_ci	     "nbJSzFHK66jT8bgkuqsk0GjskDJk19Z4qwjwbsnn4j2WBii3RL-Us2lGVkY8fkFz"
60d4afb5ceSopenharmony_ci	     "me1z0HbIkfz0Y6mqnOYtqc0X4jfcKoAC8Q\","
61d4afb5ceSopenharmony_ci		"\"p\":\"83i-7IvMGXoMXCskv73TKr8637FiO7Z27zv8oj6pbWUQyLPQBQxtPV"
62d4afb5ceSopenharmony_ci	     "nwD20R-60eTDmD2ujnMt5PoqMrm8RfmNhVWDtjjMmCMjOpSXicFHj7XOuVIYQyqV"
63d4afb5ceSopenharmony_ci	     "WlWEh6dN36GVZYk93N8Bc9vY41xy8B9RzzOGVQzXvNEvn7O0nVbfs\","
64d4afb5ceSopenharmony_ci		"\"q\":\"3dfOR9cuYq-0S-mkFLzgItgMEfFzB2q3hWehMuG0oCuqnb3vobLyum"
65d4afb5ceSopenharmony_ci	     "qjVZQO1dIrdwgTnCdpYzBcOfW5r370AFXjiWft_NGEiovonizhKpo9VVS78TzFgx"
66d4afb5ceSopenharmony_ci	     "kIdrecRezsZ-1kYd_s1qDbxtkDEgfAITAG9LUnADun4vIcb6yelxk\","
67d4afb5ceSopenharmony_ci		"\"dp\":\"G4sPXkc6Ya9y8oJW9_ILj4xuppu0lzi_H7VTkS8xj5SdX3coE0oim"
68d4afb5ceSopenharmony_ci	     "YwxIi2emTAue0UOa5dpgFGyBJ4c8tQ2VF402XRugKDTP8akYhFo5tAA77Qe_Nmtu"
69d4afb5ceSopenharmony_ci	     "YZc3C3m3I24G2GvR5sSDxUyAN2zq8Lfn9EUms6rY3Ob8YeiKkTiBj0\","
70d4afb5ceSopenharmony_ci		"\"dq\":\"s9lAH9fggBsoFR8Oac2R_E2gw282rT2kGOAhvIllETE1efrA6huUU"
71d4afb5ceSopenharmony_ci	     "vMfBcMpn8lqeW6vzznYY5SSQF7pMdC_agI3nG8Ibp1BUb0JUiraRNqUfLhcQb_d9"
72d4afb5ceSopenharmony_ci	     "GF4Dh7e74WbRsobRonujTYN1xCaP6TO61jvWrX-L18txXw494Q_cgk\","
73d4afb5ceSopenharmony_ci		"\"qi\":\"GyM_p6JrXySiz1toFgKbWV-JdI3jQ4ypu9rbMWx3rQJBfmt0FoYzg"
74d4afb5ceSopenharmony_ci	     "UIZEVFEcOqwemRN81zoDAaa-Bk0KWNGDjJHZDdDmFhW3AN7lI-puxk_mHZGJ11rx"
75d4afb5ceSopenharmony_ci	     "yR8O55XLSe3SPmRfKwZI6yU24ZxvQKFYItdldUKGzO6Ia6zTKhAVRU\","
76d4afb5ceSopenharmony_ci		"\"alg\":\"RS256\","
77d4afb5ceSopenharmony_ci		"\"kid\":\"2011-04-29\"}"
78d4afb5ceSopenharmony_ci	   "]"
79d4afb5ceSopenharmony_ci	 "}",
80d4afb5ceSopenharmony_ci*lws_jwe_ex_a3_jwk_json = (uint8_t *) /* oct symmetric keys */
81d4afb5ceSopenharmony_ci	  "{\"keys\":"
82d4afb5ceSopenharmony_ci	    "["
83d4afb5ceSopenharmony_ci	      "{\"kty\":\"oct\","
84d4afb5ceSopenharmony_ci	       "\"alg\":\"A128KW\","
85d4afb5ceSopenharmony_ci	       "\"k\":\"GawgguFyGrWKav7AX4VKUg\"},"
86d4afb5ceSopenharmony_ci
87d4afb5ceSopenharmony_ci	      "{\"kty\":\"oct\","
88d4afb5ceSopenharmony_ci	       "\"k\":\"AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75"
89d4afb5ceSopenharmony_ci			"aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow\","
90d4afb5ceSopenharmony_ci	          "\"kid\":\"HMAC key used in JWS spec Appendix A.1 example\"}"
91d4afb5ceSopenharmony_ci	       "]"
92d4afb5ceSopenharmony_ci	     "}",
93d4afb5ceSopenharmony_ci
94d4afb5ceSopenharmony_ci*lws_jwe_ex_b_jwk_json = (uint8_t *) /* x5c example (no parent JSON) */
95d4afb5ceSopenharmony_ci	     "{\"kty\":\"RSA\","
96d4afb5ceSopenharmony_ci	      "\"use\":\"sig\","
97d4afb5ceSopenharmony_ci	      "\"kid\":\"1b94c\","
98d4afb5ceSopenharmony_ci	      "\"n\":\"vrjOfz9Ccdgx5nQudyhdoR17V-IubWMeOZCwX_jj0hgAsz2J_pqYW08"
99d4afb5ceSopenharmony_ci	         "PLbK_PdiVGKPrqzmDIsLI7sA25VEnHU1uCLNwBuUiCO11_-7dYbsr4iJmG0Q"
100d4afb5ceSopenharmony_ci	         "u2j8DsVyT1azpJC_NG84Ty5KKthuCaPod7iI7w0LK9orSMhBEwwZDCxTWq4a"
101d4afb5ceSopenharmony_ci	         "YWAchc8t-emd9qOvWtVMDC2BXksRngh6X5bUYLy6AyHKvj-nUy1wgzjYQDwH"
102d4afb5ceSopenharmony_ci	         "MTplCoLtU-o-8SNnZ1tmRoGE9uJkBLdh5gFENabWnU5m1ZqZPdwS-qo-meMv"
103d4afb5ceSopenharmony_ci	         "VfJb6jJVWRpl2SUtCnYG2C32qvbWbjZ_jBPD5eunqsIo1vQ\","
104d4afb5ceSopenharmony_ci	         "\"e\":\"AQAB\","
105d4afb5ceSopenharmony_ci	      "\"x5c\":"
106d4afb5ceSopenharmony_ci	         "[\"MIIDQjCCAiqgAwIBAgIGATz/FuLiMA0GCSqGSIb3DQEBBQUAMGIxCzAJB"
107d4afb5ceSopenharmony_ci	         "gNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGRGVudmVyMRwwGgYD"
108d4afb5ceSopenharmony_ci	         "VQQKExNQaW5nIElkZW50aXR5IENvcnAuMRcwFQYDVQQDEw5CcmlhbiBDYW1"
109d4afb5ceSopenharmony_ci	         "wYmVsbDAeFw0xMzAyMjEyMzI5MTVaFw0xODA4MTQyMjI5MTVaMGIxCzAJBg"
110d4afb5ceSopenharmony_ci	         "NVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGRGVudmVyMRwwGgYDV"
111d4afb5ceSopenharmony_ci	         "QQKExNQaW5nIElkZW50aXR5IENvcnAuMRcwFQYDVQQDEw5CcmlhbiBDYW1w"
112d4afb5ceSopenharmony_ci	         "YmVsbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL64zn8/QnH"
113d4afb5ceSopenharmony_ci	         "YMeZ0LncoXaEde1fiLm1jHjmQsF/449IYALM9if6amFtPDy2yvz3YlRij66"
114d4afb5ceSopenharmony_ci	         "s5gyLCyO7ANuVRJx1NbgizcAblIgjtdf/u3WG7K+IiZhtELto/A7Fck9Ws6"
115d4afb5ceSopenharmony_ci	         "SQvzRvOE8uSirYbgmj6He4iO8NCyvaK0jIQRMMGQwsU1quGmFgHIXPLfnpn"
116d4afb5ceSopenharmony_ci	         "fajr1rVTAwtgV5LEZ4Iel+W1GC8ugMhyr4/p1MtcIM42EA8BzE6ZQqC7VPq"
117d4afb5ceSopenharmony_ci	         "PvEjZ2dbZkaBhPbiZAS3YeYBRDWm1p1OZtWamT3cEvqqPpnjL1XyW+oyVVk"
118d4afb5ceSopenharmony_ci	         "aZdklLQp2Btgt9qr21m42f4wTw+Xrp6rCKNb0CAwEAATANBgkqhkiG9w0BA"
119d4afb5ceSopenharmony_ci	         "QUFAAOCAQEAh8zGlfSlcI0o3rYDPBB07aXNswb4ECNIKG0CETTUxmXl9KUL"
120d4afb5ceSopenharmony_ci	         "+9gGlqCz5iWLOgWsnrcKcY0vXPG9J1r9AqBNTqNgHq2G03X09266X5CpOe1"
121d4afb5ceSopenharmony_ci	         "zFo+Owb1zxtp3PehFdfQJ610CDLEaS9V9Rqp17hCyybEpOGVwe8fnk+fbEL"
122d4afb5ceSopenharmony_ci	         "2Bo3UPGrpsHzUoaGpDftmWssZkhpBJKVMJyf/RuP2SmmaIzmnw9JiSlYhzo"
123d4afb5ceSopenharmony_ci	         "4tpzd5rFXhjRbg4zW9C+2qok+2+qDM1iJ684gPHMIY8aLWrdgQTxkumGmTq"
124d4afb5ceSopenharmony_ci	       "gawR+N5MDtdPTEQ0XfIBc2cJEUyMTY5MPvACWpkA6SdS4xSvdXK3IVfOWA==\"]"
125d4afb5ceSopenharmony_ci	     "}",
126d4afb5ceSopenharmony_ci*lws_jwe_ex_c1_jwk_json = (uint8_t *) /* RSA enc private key (no parent JSON) */
127d4afb5ceSopenharmony_ci	 "{"
128d4afb5ceSopenharmony_ci	  "\"kty\":\"RSA\","
129d4afb5ceSopenharmony_ci	  "\"kid\":\"juliet@capulet.lit\","
130d4afb5ceSopenharmony_ci	  "\"use\":\"enc\","
131d4afb5ceSopenharmony_ci	  "\"n\":\"t6Q8PWSi1dkJj9hTP8hNYFlvadM7DflW9mWepOJhJ66w7nyoK1gPNqFMSQRy"
132d4afb5ceSopenharmony_ci	          "O125Gp-TEkodhWr0iujjHVx7BcV0llS4w5ACGgPrcAd6ZcSR0-Iqom-QFcNP"
133d4afb5ceSopenharmony_ci	          "8Sjg086MwoqQU_LYywlAGZ21WSdS_PERyGFiNnj3QQlO8Yns5jCtLCRwLHL0"
134d4afb5ceSopenharmony_ci	          "Pb1fEv45AuRIuUfVcPySBWYnDyGxvjYGDSM-AqWS9zIQ2ZilgT-GqUmipg0X"
135d4afb5ceSopenharmony_ci	          "OC0Cc20rgLe2ymLHjpHciCKVAbY5-L32-lSeZO-Os6U15_aXrk9Gw8cPUaX1"
136d4afb5ceSopenharmony_ci	          "_I8sLGuSiVdt3C_Fn2PZ3Z8i744FPFGGcG1qs2Wz-Q\","
137d4afb5ceSopenharmony_ci	  "\"e\":\"AQAB\","
138d4afb5ceSopenharmony_ci	  "\"d\":\"GRtbIQmhOZtyszfgKdg4u_N-R_mZGU_9k7JQ_jn1DnfTuMdSNprTeaSTyWfS"
139d4afb5ceSopenharmony_ci	          "NkuaAwnOEbIQVy1IQbWVV25NY3ybc_IhUJtfri7bAXYEReWaCl3hdlPKXy9U"
140d4afb5ceSopenharmony_ci	          "vqPYGR0kIXTQRqns-dVJ7jahlI7LyckrpTmrM8dWBo4_PMaenNnPiQgO0xnu"
141d4afb5ceSopenharmony_ci	          "ToxutRZJfJvG4Ox4ka3GORQd9CsCZ2vsUDmsXOfUENOyMqADC6p1M3h33tsu"
142d4afb5ceSopenharmony_ci	          "rY15k9qMSpG9OX_IJAXmxzAh_tWiZOwk2K4yxH9tS3Lq1yX8C1EWmeRDkK2a"
143d4afb5ceSopenharmony_ci	          "hecG85-oLKQt5VEpWHKmjOi_gJSdSgqcN96X52esAQ\","
144d4afb5ceSopenharmony_ci	  "\"p\":\"2rnSOV4hKSN8sS4CgcQHFbs08XboFDqKum3sc4h3GRxrTmQdl1ZK9uw-PIHf"
145d4afb5ceSopenharmony_ci	          "QP0FkxXVrx-WE-ZEbrqivH_2iCLUS7wAl6XvARt1KkIaUxPPSYB9yk31s0Q8"
146d4afb5ceSopenharmony_ci	          "UK96E3_OrADAYtAJs-M3JxCLfNgqh56HDnETTQhH3rCT5T3yJws\","
147d4afb5ceSopenharmony_ci	  "\"q\":\"1u_RiFDP7LBYh3N4GXLT9OpSKYP0uQZyiaZwBtOCBNJgQxaj10RWjsZu0c6I"
148d4afb5ceSopenharmony_ci	          "edis4S7B_coSKB0Kj9PaPaBzg-IySRvvcQuPamQu66riMhjVtG6TlV8CLCYK"
149d4afb5ceSopenharmony_ci	          "rYl52ziqK0E_ym2QnkwsUX7eYTB7LbAHRK9GqocDE5B0f808I4s\","
150d4afb5ceSopenharmony_ci	  "\"dp\":\"KkMTWqBUefVwZ2_Dbj1pPQqyHSHjj90L5x_MOzqYAJMcLMZtbUtwKqvVDq3"
151d4afb5ceSopenharmony_ci	          "tbEo3ZIcohbDtt6SbfmWzggabpQxNxuBpoOOf_a_HgMXK_lhqigI4y_kqS1w"
152d4afb5ceSopenharmony_ci	          "Y52IwjUn5rgRrJ-yYo1h41KR-vz2pYhEAeYrhttWtxVqLCRViD6c\","
153d4afb5ceSopenharmony_ci	  "\"dq\":\"AvfS0-gRxvn0bwJoMSnFxYcK1WnuEjQFluMGfwGitQBWtfZ1Er7t1xDkbN9"
154d4afb5ceSopenharmony_ci	          "GQTB9yqpDoYaN06H7CFtrkxhJIBQaj6nkF5KKS3TQtQ5qCzkOkmxIe3KRbBy"
155d4afb5ceSopenharmony_ci	          "mXxkb5qwUpX5ELD5xFc6FeiafWYY63TmmEAu_lRFCOJ3xDea-ots\","
156d4afb5ceSopenharmony_ci	  "\"qi\":\"lSQi-w9CpyUReMErP1RsBLk7wNtOvs5EQpPqmuMvqW57NBUczScEoPwmUqq"
157d4afb5ceSopenharmony_ci	          "abu9V0-Py4dQ57_bapoKRu1R90bvuFnU63SHWEFglZQvJDMeAvmj4sm-Fp0o"
158d4afb5ceSopenharmony_ci	          "Yu_neotgQ0hzbI5gry7ajdYy9-2lNx_76aBZoOUu9HCJ-UsfSOI8\""
159d4afb5ceSopenharmony_ci	 "}" /*,
160d4afb5ceSopenharmony_cilws_jwe_ex_c1_plaintext[] = {
161d4afb5ceSopenharmony_ci	123, 34, 107, 116, 121, 34, 58, 34, 82, 83, 65, 34, 44, 34, 107,
162d4afb5ceSopenharmony_ci	105, 100, 34, 58, 34, 106, 117, 108, 105, 101, 116, 64, 99, 97, 112,
163d4afb5ceSopenharmony_ci	117, 108, 101, 116, 46, 108, 105, 116, 34, 44, 34, 117, 115, 101, 34,
164d4afb5ceSopenharmony_ci	58, 34, 101, 110, 99, 34, 44, 34, 110, 34, 58, 34, 116, 54, 81, 56,
165d4afb5ceSopenharmony_ci	80, 87, 83, 105, 49, 100, 107, 74, 106, 57, 104, 84, 80, 56, 104, 78,
166d4afb5ceSopenharmony_ci	89, 70, 108, 118, 97, 100, 77, 55, 68, 102, 108, 87, 57, 109, 87,
167d4afb5ceSopenharmony_ci	101, 112, 79, 74, 104, 74, 54, 54, 119, 55, 110, 121, 111, 75, 49,
168d4afb5ceSopenharmony_ci	103, 80, 78, 113, 70, 77, 83, 81, 82, 121, 79, 49, 50, 53, 71, 112,
169d4afb5ceSopenharmony_ci	45, 84, 69, 107, 111, 100, 104, 87, 114, 48, 105, 117, 106, 106, 72,
170d4afb5ceSopenharmony_ci	86, 120, 55, 66, 99, 86, 48, 108, 108, 83, 52, 119, 53, 65, 67, 71,
171d4afb5ceSopenharmony_ci	103, 80, 114, 99, 65, 100, 54, 90, 99, 83, 82, 48, 45, 73, 113, 111,
172d4afb5ceSopenharmony_ci	109, 45, 81, 70, 99, 78, 80, 56, 83, 106, 103, 48, 56, 54, 77, 119,
173d4afb5ceSopenharmony_ci	111, 113, 81, 85, 95, 76, 89, 121, 119, 108, 65, 71, 90, 50, 49, 87,
174d4afb5ceSopenharmony_ci	83, 100, 83, 95, 80, 69, 82, 121, 71, 70, 105, 78, 110, 106, 51, 81,
175d4afb5ceSopenharmony_ci	81, 108, 79, 56, 89, 110, 115, 53, 106, 67, 116, 76, 67, 82, 119, 76,
176d4afb5ceSopenharmony_ci	72, 76, 48, 80, 98, 49, 102, 69, 118, 52, 53, 65, 117, 82, 73, 117,
177d4afb5ceSopenharmony_ci	85, 102, 86, 99, 80, 121, 83, 66, 87, 89, 110, 68, 121, 71, 120, 118,
178d4afb5ceSopenharmony_ci	106, 89, 71, 68, 83, 77, 45, 65, 113, 87, 83, 57, 122, 73, 81, 50,
179d4afb5ceSopenharmony_ci	90, 105, 108, 103, 84, 45, 71, 113, 85, 109, 105, 112, 103, 48, 88,
180d4afb5ceSopenharmony_ci	79, 67, 48, 67, 99, 50, 48, 114, 103, 76, 101, 50, 121, 109, 76, 72,
181d4afb5ceSopenharmony_ci	106, 112, 72, 99, 105, 67, 75, 86, 65, 98, 89, 53, 45, 76, 51, 50,
182d4afb5ceSopenharmony_ci	45, 108, 83, 101, 90, 79, 45, 79, 115, 54, 85, 49, 53, 95, 97, 88,
183d4afb5ceSopenharmony_ci	114, 107, 57, 71, 119, 56, 99, 80, 85, 97, 88, 49, 95, 73, 56, 115,
184d4afb5ceSopenharmony_ci	76, 71, 117, 83, 105, 86, 100, 116, 51, 67, 95, 70, 110, 50, 80, 90,
185d4afb5ceSopenharmony_ci	51, 90, 56, 105, 55, 52, 52, 70, 80, 70, 71, 71, 99, 71, 49, 113,
186d4afb5ceSopenharmony_ci	115, 50, 87, 122, 45, 81, 34, 44, 34, 101, 34, 58, 34, 65, 81, 65,
187d4afb5ceSopenharmony_ci	66, 34, 44, 34, 100, 34, 58, 34, 71, 82, 116, 98, 73, 81, 109, 104,
188d4afb5ceSopenharmony_ci	79, 90, 116, 121, 115, 122, 102, 103, 75, 100, 103, 52, 117, 95, 78,
189d4afb5ceSopenharmony_ci	45, 82, 95, 109, 90, 71, 85, 95, 57, 107, 55, 74, 81, 95, 106, 110,
190d4afb5ceSopenharmony_ci	49, 68, 110, 102, 84, 117, 77, 100, 83, 78, 112, 114, 84, 101, 97,
191d4afb5ceSopenharmony_ci	83, 84, 121, 87, 102, 83, 78, 107, 117, 97, 65, 119, 110, 79, 69, 98,
192d4afb5ceSopenharmony_ci	73, 81, 86, 121, 49, 73, 81, 98, 87, 86, 86, 50, 53, 78, 89, 51, 121,
193d4afb5ceSopenharmony_ci	98, 99, 95, 73, 104, 85, 74, 116, 102, 114, 105, 55, 98, 65, 88, 89,
194d4afb5ceSopenharmony_ci	69, 82, 101, 87, 97, 67, 108, 51, 104, 100, 108, 80, 75, 88, 121, 57,
195d4afb5ceSopenharmony_ci	85, 118, 113, 80, 89, 71, 82, 48, 107, 73, 88, 84, 81, 82, 113, 110,
196d4afb5ceSopenharmony_ci	115, 45, 100, 86, 74, 55, 106, 97, 104, 108, 73, 55, 76, 121, 99,
197d4afb5ceSopenharmony_ci	107, 114, 112, 84, 109, 114, 77, 56, 100, 87, 66, 111, 52, 95, 80,
198d4afb5ceSopenharmony_ci	77, 97, 101, 110, 78, 110, 80, 105, 81, 103, 79, 48, 120, 110, 117,
199d4afb5ceSopenharmony_ci	84, 111, 120, 117, 116, 82, 90, 74, 102, 74, 118, 71, 52, 79, 120,
200d4afb5ceSopenharmony_ci	52, 107, 97, 51, 71, 79, 82, 81, 100, 57, 67, 115, 67, 90, 50, 118,
201d4afb5ceSopenharmony_ci	115, 85, 68, 109, 115, 88, 79, 102, 85, 69, 78, 79, 121, 77, 113, 65,
202d4afb5ceSopenharmony_ci	68, 67, 54, 112, 49, 77, 51, 104, 51, 51, 116, 115, 117, 114, 89, 49,
203d4afb5ceSopenharmony_ci	53, 107, 57, 113, 77, 83, 112, 71, 57, 79, 88, 95, 73, 74, 65, 88,
204d4afb5ceSopenharmony_ci	109, 120, 122, 65, 104, 95, 116, 87, 105, 90, 79, 119, 107, 50, 75,
205d4afb5ceSopenharmony_ci	52, 121, 120, 72, 57, 116, 83, 51, 76, 113, 49, 121, 88, 56, 67, 49,
206d4afb5ceSopenharmony_ci	69, 87, 109, 101, 82, 68, 107, 75, 50, 97, 104, 101, 99, 71, 56, 53,
207d4afb5ceSopenharmony_ci	45, 111, 76, 75, 81, 116, 53, 86, 69, 112, 87, 72, 75, 109, 106, 79,
208d4afb5ceSopenharmony_ci	105, 95, 103, 74, 83, 100, 83, 103, 113, 99, 78, 57, 54, 88, 53, 50,
209d4afb5ceSopenharmony_ci	101, 115, 65, 81, 34, 44, 34, 112, 34, 58, 34, 50, 114, 110, 83, 79,
210d4afb5ceSopenharmony_ci	86, 52, 104, 75, 83, 78, 56, 115, 83, 52, 67, 103, 99, 81, 72, 70,
211d4afb5ceSopenharmony_ci	98, 115, 48, 56, 88, 98, 111, 70, 68, 113, 75, 117, 109, 51, 115, 99,
212d4afb5ceSopenharmony_ci	52, 104, 51, 71, 82, 120, 114, 84, 109, 81, 100, 108, 49, 90, 75, 57,
213d4afb5ceSopenharmony_ci	117, 119, 45, 80, 73, 72, 102, 81, 80, 48, 70, 107, 120, 88, 86, 114,
214d4afb5ceSopenharmony_ci	120, 45, 87, 69, 45, 90, 69, 98, 114, 113, 105, 118, 72, 95, 50, 105,
215d4afb5ceSopenharmony_ci	67, 76, 85, 83, 55, 119, 65, 108, 54, 88, 118, 65, 82, 116, 49, 75,
216d4afb5ceSopenharmony_ci	107, 73, 97, 85, 120, 80, 80, 83, 89, 66, 57, 121, 107, 51, 49, 115,
217d4afb5ceSopenharmony_ci	48, 81, 56, 85, 75, 57, 54, 69, 51, 95, 79, 114, 65, 68, 65, 89, 116,
218d4afb5ceSopenharmony_ci	65, 74, 115, 45, 77, 51, 74, 120, 67, 76, 102, 78, 103, 113, 104, 53,
219d4afb5ceSopenharmony_ci	54, 72, 68, 110, 69, 84, 84, 81, 104, 72, 51, 114, 67, 84, 53, 84,
220d4afb5ceSopenharmony_ci	51, 121, 74, 119, 115, 34, 44, 34, 113, 34, 58, 34, 49, 117, 95, 82,
221d4afb5ceSopenharmony_ci	105, 70, 68, 80, 55, 76, 66, 89, 104, 51, 78, 52, 71, 88, 76, 84, 57,
222d4afb5ceSopenharmony_ci	79, 112, 83, 75, 89, 80, 48, 117, 81, 90, 121, 105, 97, 90, 119, 66,
223d4afb5ceSopenharmony_ci	116, 79, 67, 66, 78, 74, 103, 81, 120, 97, 106, 49, 48, 82, 87, 106,
224d4afb5ceSopenharmony_ci	115, 90, 117, 48, 99, 54, 73, 101, 100, 105, 115, 52, 83, 55, 66, 95,
225d4afb5ceSopenharmony_ci	99, 111, 83, 75, 66, 48, 75, 106, 57, 80, 97, 80, 97, 66, 122, 103,
226d4afb5ceSopenharmony_ci	45, 73, 121, 83, 82, 118, 118, 99, 81, 117, 80, 97, 109, 81, 117, 54,
227d4afb5ceSopenharmony_ci	54, 114, 105, 77, 104, 106, 86, 116, 71, 54, 84, 108, 86, 56, 67, 76,
228d4afb5ceSopenharmony_ci	67, 89, 75, 114, 89, 108, 53, 50, 122, 105, 113, 75, 48, 69, 95, 121,
229d4afb5ceSopenharmony_ci	109, 50, 81, 110, 107, 119, 115, 85, 88, 55, 101, 89, 84, 66, 55, 76,
230d4afb5ceSopenharmony_ci	98, 65, 72, 82, 75, 57, 71, 113, 111, 99, 68, 69, 53, 66, 48, 102,
231d4afb5ceSopenharmony_ci	56, 48, 56, 73, 52, 115, 34, 44, 34, 100, 112, 34, 58, 34, 75, 107,
232d4afb5ceSopenharmony_ci	77, 84, 87, 113, 66, 85, 101, 102, 86, 119, 90, 50, 95, 68, 98, 106,
233d4afb5ceSopenharmony_ci	49, 112, 80, 81, 113, 121, 72, 83, 72, 106, 106, 57, 48, 76, 53, 120,
234d4afb5ceSopenharmony_ci	95, 77, 79, 122, 113, 89, 65, 74, 77, 99, 76, 77, 90, 116, 98, 85,
235d4afb5ceSopenharmony_ci	116, 119, 75, 113, 118, 86, 68, 113, 51, 116, 98, 69, 111, 51, 90,
236d4afb5ceSopenharmony_ci	73, 99, 111, 104, 98, 68, 116, 116, 54, 83, 98, 102, 109, 87, 122,
237d4afb5ceSopenharmony_ci	103, 103, 97, 98, 112, 81, 120, 78, 120, 117, 66, 112, 111, 79, 79,
238d4afb5ceSopenharmony_ci	102, 95, 97, 95, 72, 103, 77, 88, 75, 95, 108, 104, 113, 105, 103,
239d4afb5ceSopenharmony_ci	73, 52, 121, 95, 107, 113, 83, 49, 119, 89, 53, 50, 73, 119, 106, 85,
240d4afb5ceSopenharmony_ci	110, 53, 114, 103, 82, 114, 74, 45, 121, 89, 111, 49, 104, 52, 49,
241d4afb5ceSopenharmony_ci	75, 82, 45, 118, 122, 50, 112, 89, 104, 69, 65, 101, 89, 114, 104,
242d4afb5ceSopenharmony_ci	116, 116, 87, 116, 120, 86, 113, 76, 67, 82, 86, 105, 68, 54, 99, 34,
243d4afb5ceSopenharmony_ci	44, 34, 100, 113, 34, 58, 34, 65, 118, 102, 83, 48, 45, 103, 82, 120,
244d4afb5ceSopenharmony_ci	118, 110, 48, 98, 119, 74, 111, 77, 83, 110, 70, 120, 89, 99, 75, 49,
245d4afb5ceSopenharmony_ci	87, 110, 117, 69, 106, 81, 70, 108, 117, 77, 71, 102, 119, 71, 105,
246d4afb5ceSopenharmony_ci	116, 81, 66, 87, 116, 102, 90, 49, 69, 114, 55, 116, 49, 120, 68,
247d4afb5ceSopenharmony_ci	107, 98, 78, 57, 71, 81, 84, 66, 57, 121, 113, 112, 68, 111, 89, 97,
248d4afb5ceSopenharmony_ci	78, 48, 54, 72, 55, 67, 70, 116, 114, 107, 120, 104, 74, 73, 66, 81,
249d4afb5ceSopenharmony_ci	97, 106, 54, 110, 107, 70, 53, 75, 75, 83, 51, 84, 81, 116, 81, 53,
250d4afb5ceSopenharmony_ci	113, 67, 122, 107, 79, 107, 109, 120, 73, 101, 51, 75, 82, 98, 66,
251d4afb5ceSopenharmony_ci	121, 109, 88, 120, 107, 98, 53, 113, 119, 85, 112, 88, 53, 69, 76,
252d4afb5ceSopenharmony_ci	68, 53, 120, 70, 99, 54, 70, 101, 105, 97, 102, 87, 89, 89, 54, 51,
253d4afb5ceSopenharmony_ci	84, 109, 109, 69, 65, 117, 95, 108, 82, 70, 67, 79, 74, 51, 120, 68,
254d4afb5ceSopenharmony_ci	101, 97, 45, 111, 116, 115, 34, 44, 34, 113, 105, 34, 58, 34, 108,
255d4afb5ceSopenharmony_ci	83, 81, 105, 45, 119, 57, 67, 112, 121, 85, 82, 101, 77, 69, 114, 80,
256d4afb5ceSopenharmony_ci	49, 82, 115, 66, 76, 107, 55, 119, 78, 116, 79, 118, 115, 53, 69, 81,
257d4afb5ceSopenharmony_ci	112, 80, 113, 109, 117, 77, 118, 113, 87, 53, 55, 78, 66, 85, 99,
258d4afb5ceSopenharmony_ci	122, 83, 99, 69, 111, 80, 119, 109, 85, 113, 113, 97, 98, 117, 57,
259d4afb5ceSopenharmony_ci	86, 48, 45, 80, 121, 52, 100, 81, 53, 55, 95, 98, 97, 112, 111, 75,
260d4afb5ceSopenharmony_ci	82, 117, 49, 82, 57, 48, 98, 118, 117, 70, 110, 85, 54, 51, 83, 72,
261d4afb5ceSopenharmony_ci	87, 69, 70, 103, 108, 90, 81, 118, 74, 68, 77, 101, 65, 118, 109,
262d4afb5ceSopenharmony_ci	106, 52, 115, 109, 45, 70, 112, 48, 111, 89, 117, 95, 110, 101, 111,
263d4afb5ceSopenharmony_ci	116, 103, 81, 48, 104, 122, 98, 73, 53, 103, 114, 121, 55, 97, 106,
264d4afb5ceSopenharmony_ci	100, 89, 121, 57, 45, 50, 108, 78, 120, 95, 55, 54, 97, 66, 90, 111,
265d4afb5ceSopenharmony_ci	79, 85, 117, 57, 72, 67, 74, 45, 85, 115, 102, 83, 79, 73, 56, 34,
266d4afb5ceSopenharmony_ci	125 } */
267d4afb5ceSopenharmony_ci;
268d4afb5ceSopenharmony_ci
269d4afb5ceSopenharmony_cistatic int
270d4afb5ceSopenharmony_cikey_import_callback(struct lws_jwk *s, void *user)
271d4afb5ceSopenharmony_ci{
272d4afb5ceSopenharmony_ci	lwsl_notice("%s: key type %d\n", __func__, s->kty);
273d4afb5ceSopenharmony_ci
274d4afb5ceSopenharmony_ci	return 0;
275d4afb5ceSopenharmony_ci}
276d4afb5ceSopenharmony_ci
277d4afb5ceSopenharmony_ci
278d4afb5ceSopenharmony_ciint
279d4afb5ceSopenharmony_citest_jwk(struct lws_context *context)
280d4afb5ceSopenharmony_ci{
281d4afb5ceSopenharmony_ci	struct lws_jwk jwk;
282d4afb5ceSopenharmony_ci
283d4afb5ceSopenharmony_ci	/* Test 1: A.1: Example public keys */
284d4afb5ceSopenharmony_ci
285d4afb5ceSopenharmony_ci	if (lws_jwk_import(&jwk, key_import_callback, NULL,
286d4afb5ceSopenharmony_ci			   (char *)lws_jwe_ex_a1_jwk_json,
287d4afb5ceSopenharmony_ci			   strlen((char *)lws_jwe_ex_a1_jwk_json)) < 0) {
288d4afb5ceSopenharmony_ci		lwsl_notice("Failed to decode JWK test key\n");
289d4afb5ceSopenharmony_ci		goto bail1;
290d4afb5ceSopenharmony_ci	}
291d4afb5ceSopenharmony_ci
292d4afb5ceSopenharmony_ci	lws_jwk_destroy(&jwk);
293d4afb5ceSopenharmony_ci
294d4afb5ceSopenharmony_ci	/* Test 1: A.2: Example private keys */
295d4afb5ceSopenharmony_ci
296d4afb5ceSopenharmony_ci	if (lws_jwk_import(&jwk, key_import_callback, NULL,
297d4afb5ceSopenharmony_ci			   (char *)lws_jwe_ex_a2_jwk_json,
298d4afb5ceSopenharmony_ci			   strlen((char *)lws_jwe_ex_a2_jwk_json)) < 0) {
299d4afb5ceSopenharmony_ci		lwsl_notice("Failed at A.2\n");
300d4afb5ceSopenharmony_ci		goto bail1;
301d4afb5ceSopenharmony_ci	}
302d4afb5ceSopenharmony_ci
303d4afb5ceSopenharmony_ci	lws_jwk_destroy(&jwk);
304d4afb5ceSopenharmony_ci
305d4afb5ceSopenharmony_ci	/* Test 1: A.3: Example symmetric keys */
306d4afb5ceSopenharmony_ci
307d4afb5ceSopenharmony_ci	if (lws_jwk_import(&jwk, key_import_callback, NULL,
308d4afb5ceSopenharmony_ci			   (char *)lws_jwe_ex_a3_jwk_json,
309d4afb5ceSopenharmony_ci			   strlen((char *)lws_jwe_ex_a3_jwk_json)) < 0) {
310d4afb5ceSopenharmony_ci		lwsl_notice("Failed at A.3\n");
311d4afb5ceSopenharmony_ci		goto bail1;
312d4afb5ceSopenharmony_ci	}
313d4afb5ceSopenharmony_ci
314d4afb5ceSopenharmony_ci	lws_jwk_destroy(&jwk);
315d4afb5ceSopenharmony_ci
316d4afb5ceSopenharmony_ci	/* Test 1: B: Example x509 cert chain (no parent JSON) */
317d4afb5ceSopenharmony_ci
318d4afb5ceSopenharmony_ci	if (lws_jwk_import(&jwk, NULL, NULL, (char *)lws_jwe_ex_b_jwk_json,
319d4afb5ceSopenharmony_ci			   strlen((char *)lws_jwe_ex_b_jwk_json)) < 0) {
320d4afb5ceSopenharmony_ci		lwsl_notice("Failed at B\n");
321d4afb5ceSopenharmony_ci		goto bail1;
322d4afb5ceSopenharmony_ci	}
323d4afb5ceSopenharmony_ci
324d4afb5ceSopenharmony_ci	lws_jwk_destroy(&jwk);
325d4afb5ceSopenharmony_ci
326d4afb5ceSopenharmony_ci	/* Test 1: C.1: Example private key (no parent JSON) */
327d4afb5ceSopenharmony_ci
328d4afb5ceSopenharmony_ci	if (lws_jwk_import(&jwk, NULL, NULL,
329d4afb5ceSopenharmony_ci			   (char *)lws_jwe_ex_c1_jwk_json,
330d4afb5ceSopenharmony_ci			   strlen((char *)lws_jwe_ex_c1_jwk_json)) < 0) {
331d4afb5ceSopenharmony_ci		lwsl_notice("Failed at B\n");
332d4afb5ceSopenharmony_ci		goto bail1;
333d4afb5ceSopenharmony_ci	}
334d4afb5ceSopenharmony_ci
335d4afb5ceSopenharmony_ci	lws_jwk_destroy(&jwk);
336d4afb5ceSopenharmony_ci
337d4afb5ceSopenharmony_ci	/* end */
338d4afb5ceSopenharmony_ci
339d4afb5ceSopenharmony_ci	lwsl_notice("%s: selftest OK\n", __func__);
340d4afb5ceSopenharmony_ci
341d4afb5ceSopenharmony_ci	return 0;
342d4afb5ceSopenharmony_ci
343d4afb5ceSopenharmony_ci//bail:
344d4afb5ceSopenharmony_ci//	lws_jwk_destroy(&jwk);
345d4afb5ceSopenharmony_cibail1:
346d4afb5ceSopenharmony_ci	lwsl_err("%s: selftest failed ++++++++++++++++++++\n", __func__);
347d4afb5ceSopenharmony_ci
348d4afb5ceSopenharmony_ci	return 1;
349d4afb5ceSopenharmony_ci
350d4afb5ceSopenharmony_ci}
351