3 namespace Friendica\Module;
6 use Friendica\BaseModule;
8 use Friendica\Model\User;
9 use Friendica\Network\HTTPException\BadRequestException;
12 * prints the public RSA key of a user
14 class PublicRSAKey extends BaseModule
16 public static function rawContent(array $parameters = [])
20 // @TODO: Replace with parameter from router
21 if ($app->argc !== 2) {
22 throw new BadRequestException();
25 // @TODO: Replace with parameter from router
26 $nick = $app->argv[1];
28 $user = User::getByNickname($nick, ['spubkey']);
29 if (empty($user) || empty($user['spubkey'])) {
30 throw new BadRequestException();
33 $lines = explode("\n", $user['spubkey']);
35 unset($lines[count($lines)]);
37 $asnString = base64_decode(implode('', $lines));
38 $asnBase = ASN_BASE::parseASNString($asnString);
40 $m = $asnBase[0]->asnData[1]->asnData[0]->asnData[0]->asnData;
41 $e = $asnBase[0]->asnData[1]->asnData[0]->asnData[1]->asnData;
43 header('Content-type: application/magic-public-key');
44 echo 'RSA' . '.' . $m . '.' . $e;