diff options
Diffstat (limited to 'mod/modexp.php')
-rw-r--r-- | mod/modexp.php | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mod/modexp.php b/mod/modexp.php new file mode 100644 index 000000000..bba2c2882 --- /dev/null +++ b/mod/modexp.php @@ -0,0 +1,34 @@ +<?php + +require_once('library/asn1.php'); + +function modexp_init(&$a) { + + if($a->argc != 2) + killme(); + + $nick = $a->argv[1]; + $r = q("SELECT `spubkey` FROM `user` WHERE `nickname` = '%s' LIMIT 1", + dbesc($nick) + ); + + if(! count($r)) + killme(); + + $lines = explode("\n",$r[0]['spubkey']); + unset($lines[0]); + unset($lines[count($lines)]); + $x = base64_decode(implode('',$lines)); + + $r = ASN_BASE::parseASNString($x); + + $m = $r[0]->asnData[1]->asnData[0]->asnData[0]->asnData; + $e = $r[0]->asnData[1]->asnData[0]->asnData[1]->asnData; + + header("Content-type: application/magic-public-key"); + echo 'RSA' . '.' . $m . '.' . $e ; + + killme(); + +} + |