2019-10-10 00:34:18 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Zotlabs\Module;
|
|
|
|
|
|
|
|
use Zotlabs\Lib\Keyutils;
|
2019-10-10 03:18:27 +00:00
|
|
|
use Zotlabs\Web\Controller;
|
2019-10-10 00:34:18 +00:00
|
|
|
|
2019-10-10 03:18:27 +00:00
|
|
|
class Jwks extends Controller {
|
2019-10-10 00:34:18 +00:00
|
|
|
|
|
|
|
function init() {
|
|
|
|
|
|
|
|
$key = Keyutils::pemtome(get_config('system','pubkey'),$m,$e);
|
|
|
|
$keys = [
|
|
|
|
[
|
|
|
|
'e' => base64url_encode($e),
|
|
|
|
'n' => base64url_encode($m),
|
|
|
|
'kty' => 'RSA',
|
2020-11-12 05:37:13 +00:00
|
|
|
'kid' => '0',
|
2019-10-10 00:34:18 +00:00
|
|
|
]
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
$ret = [
|
2019-10-10 03:18:27 +00:00
|
|
|
'keys' => $keys
|
2019-10-10 00:34:18 +00:00
|
|
|
];
|
|
|
|
|
2019-10-10 03:18:27 +00:00
|
|
|
if (argc() > 1) {
|
|
|
|
$entry = intval(argv(1));
|
|
|
|
if ($keys[$entry]) {
|
|
|
|
unset($keys[$entry]['kid']);
|
|
|
|
json_return_and_die($keys[$entry],'application/jwk+json');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
json_return_and_die($ret,'application/jwk-set+json');
|
|
|
|
|
2019-10-10 00:34:18 +00:00
|
|
|
}
|
|
|
|
}
|