3 namespace Friendica\Module;
6 use Friendica\BaseModule;
7 use Friendica\Model\User;
8 use Friendica\Network\HTTPException\BadRequestException;
11 * prints the public RSA key of a user
13 class PublicRSAKey extends BaseModule
15 public static function rawContent(array $parameters = [])
17 $app = self::getApp();
19 // @TODO: Replace with parameter from router
20 if ($app->argc !== 2) {
21 throw new BadRequestException();
24 // @TODO: Replace with parameter from router
25 $nick = $app->argv[1];
27 $user = User::getByNickname($nick, ['spubkey']);
28 if (empty($user) || empty($user['spubkey'])) {
29 throw new BadRequestException();
32 $lines = explode("\n", $user['spubkey']);
34 unset($lines[count($lines)]);
36 $asnString = base64_decode(implode('', $lines));
37 $asnBase = ASN_BASE::parseASNString($asnString);
39 $m = $asnBase[0]->asnData[1]->asnData[0]->asnData[0]->asnData;
40 $e = $asnBase[0]->asnData[1]->asnData[0]->asnData[1]->asnData;
42 header('Content-type: application/magic-public-key');
43 echo 'RSA' . '.' . $m . '.' . $e;