17 use Psr\Http\Message\ResponseInterface;
18 use Psr\Http\Message\ServerRequestInterface;
40 $this->encoder =
$encoder ?: GeneralUtility::makeInstance(RsaEncryptionEncoder::class);
47 public function processRequest(ServerRequestInterface $request): ResponseInterface
49 $keyPair = $this->encoder->getRsaPublicKey();
51 if ($keyPair ===
null) {
56 switch ($request->getHeaderLine(
'content-type')) {
57 case 'application/json':
59 'publicKeyModulus' => $keyPair->getPublicKeyModulus(),
60 'exponent' => sprintf(
'%x', $keyPair->getExponent()),
66 trigger_error(
'Requesting RSA public keys without "Content-Type: application/json" will be removed in TYPO3 v10.0. Add this header to your AJAX request.', E_USER_DEPRECATED);
68 $content = $keyPair->getPublicKeyModulus() .
':' . sprintf(
'%x', $keyPair->getExponent()) .
':';
69 $response =
new Response(
'php://temp', 200, [
'Content-Type' =>
'application/json; charset=utf-8']);
70 $response->getBody()->write($content);