@@ -14,8 +14,16 @@ Convert JSON Web Key (JWK) to PEM format.
1414composer require codercat/jwk-to-pem
1515```
1616
17+ ## Test
18+
19+ ``` bash
20+ vendor/bin/phpunit
21+ ```
22+
1723## Usage
1824
25+ #### Single JWK
26+
1927``` php
2028<?php
2129
@@ -24,7 +32,7 @@ use CoderCat\JWKToPEM\JWKConverter;
2432$jwkConverter = new JWKConverter();
2533
2634// !!!! RSA key type is currently only supported.
27- $jwk = [
35+ $JWK = [
2836 "kty" => "RSA",
2937 "kid" => "zhA-H1DWOSgWQAIW7mewCYeaZLGpkgW_hXfq8jmV99I",
3038 "use" => "sig",
@@ -34,14 +42,12 @@ $jwk = [
3442];
3543
3644```
37- Convert to PEM format :
45+ Convert to PEM:
3846
3947``` php
40- $PEM = $jwkConverter->toPEM($jwk);
41- echo $PEM;
48+ $PEM = $jwkConverter->toPEM($JWK);
4249```
43-
44- The PEM for this jwk:
50+ The PEM for this JWK:
4551
4652```
4753-----BEGIN PUBLIC KEY-----\r\n
@@ -54,12 +60,63 @@ yn0FGmGjrJXnyVJwyDiTrKRO36piMuiaJE2nIRJaLvhDN5M1K2VhSKPuaqUPyxLz\r\n
5460BwIDAQAB\r\n
5561-----END PUBLIC KEY-----
5662```
57-
63+ #### Multiple JWK
5864You can also convert multiple JWKs by using ` multipleToPEM ` :
65+ ``` php
66+ <?php
67+
68+ use CoderCat\JWKToPEM\JWKConverter;
69+
70+ $jwkConverter = new JWKConverter();
71+
72+ // !!!! RSA key type is currently only supported.
73+ $JWKs = [
74+ [
75+ 'kty' => 'RSA',
76+ 'kid' => '86D88Kf',
77+ 'use' => 'sig',
78+ 'alg' => 'RS256',
79+ 'n' => 'iGaLqP6y-SJCCBq5Hv6pGDbG_SQ11MNjH7rWHcCFYz4hGwHC4lcSurTlV8u3avoVNM8jXevG1Iu1SY11qInqUvjJur--hghr1b56OPJu6H1iKulSxGjEIyDP6c5BdE1uwprYyr4IO9th8fOwCPygjLFrh44XEGbDIFeImwvBAGOhmMB2AD1n1KviyNsH0bEB7phQtiLk-ILjv1bORSRl8AK677-1T8isGfHKXGZ_ZGtStDe7Lu0Ihp8zoUt59kx2o9uWpROkzF56ypresiIl4WprClRCjz8x6cPZXU2qNWhu71TQvUFwvIvbkE1oYaJMb0jcOTmBRZA2QuYw-zHLwQ',
80+ 'e' => 'AQAB',
81+ ],
82+ [
83+ 'kty' => 'RSA',
84+ 'kid' => 'eXaunmL',
85+ 'use' => 'sig',
86+ 'alg' => 'RS256',
87+ 'n' => '4dGQ7bQK8LgILOdLsYzfZjkEAoQeVC_aqyc8GC6RX7dq_KvRAQAWPvkam8VQv4GK5T4ogklEKEvj5ISBamdDNq1n52TpxQwI2EqxSk7I9fKPKhRt4F8-2yETlYvye-2s6NeWJim0KBtOVrk0gWvEDgd6WOqJl_yt5WBISvILNyVg1qAAM8JeX6dRPosahRVDjA52G2X-Tip84wqwyRpUlq2ybzcLh3zyhCitBOebiRWDQfG26EH9lTlJhll-p_Dg8vAXxJLIJ4SNLcqgFeZe4OfHLgdzMvxXZJnPp_VgmkcpUdRotazKZumj6dBPcXI_XID4Z4Z3OM1KrZPJNdUhxw',
88+ 'e' => 'AQAB',
89+ ],
90+ ];
91+ ```
92+
93+ Convert to PEMs:
5994
6095``` php
61- $PEMs = $jwkConverter->multipleToPEM($jwkSet);
62- // $PEMs now contains an array of PEMs
96+ $PEMs = $jwkConverter->multipleToPEM($JWKs);
97+ ```
98+ The PEMs for this JWKs:
99+ ``` php
100+ [
101+ "-----BEGIN PUBLIC KEY-----\r\n
102+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiGaLqP6y+SJCCBq5Hv6p\r\n
103+ GDbG/SQ11MNjH7rWHcCFYz4hGwHC4lcSurTlV8u3avoVNM8jXevG1Iu1SY11qInq\r\n
104+ UvjJur++hghr1b56OPJu6H1iKulSxGjEIyDP6c5BdE1uwprYyr4IO9th8fOwCPyg\r\n
105+ jLFrh44XEGbDIFeImwvBAGOhmMB2AD1n1KviyNsH0bEB7phQtiLk+ILjv1bORSRl\r\n
106+ 8AK677+1T8isGfHKXGZ/ZGtStDe7Lu0Ihp8zoUt59kx2o9uWpROkzF56ypresiIl\r\n
107+ 4WprClRCjz8x6cPZXU2qNWhu71TQvUFwvIvbkE1oYaJMb0jcOTmBRZA2QuYw+zHL\r\n
108+ wQIDAQAB\r\n
109+ -----END PUBLIC KEY-----",
110+ "-----BEGIN PUBLIC KEY-----\r\n
111+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4dGQ7bQK8LgILOdLsYzf\r\n
112+ ZjkEAoQeVC/aqyc8GC6RX7dq/KvRAQAWPvkam8VQv4GK5T4ogklEKEvj5ISBamdD\r\n
113+ Nq1n52TpxQwI2EqxSk7I9fKPKhRt4F8+2yETlYvye+2s6NeWJim0KBtOVrk0gWvE\r\n
114+ Dgd6WOqJl/yt5WBISvILNyVg1qAAM8JeX6dRPosahRVDjA52G2X+Tip84wqwyRpU\r\n
115+ lq2ybzcLh3zyhCitBOebiRWDQfG26EH9lTlJhll+p/Dg8vAXxJLIJ4SNLcqgFeZe\r\n
116+ 4OfHLgdzMvxXZJnPp/VgmkcpUdRotazKZumj6dBPcXI/XID4Z4Z3OM1KrZPJNdUh\r\n
117+ xwIDAQAB\r\n
118+ -----END PUBLIC KEY-----",
119+ ]
63120```
64121
65122
0 commit comments