diff options
-rw-r--r-- | include/salmon.php | 18 | ||||
-rw-r--r-- | mod/modexp.php | 7 | ||||
-rw-r--r-- | mod/xrd.php | 10 | ||||
-rw-r--r-- | view/xrd_person.tpl | 4 |
4 files changed, 31 insertions, 8 deletions
diff --git a/include/salmon.php b/include/salmon.php new file mode 100644 index 000000000..7198f07c6 --- /dev/null +++ b/include/salmon.php @@ -0,0 +1,18 @@ +<?php + +require_once('library/asn1.php'); + +function salmon_key($pubkey) { + $lines = explode("\n",$pubkey); + 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; + + + return 'RSA' . '.' . $m . '.' . $e ; +} diff --git a/mod/modexp.php b/mod/modexp.php index d424b4c39..715ffe30c 100644 --- a/mod/modexp.php +++ b/mod/modexp.php @@ -8,14 +8,14 @@ function modexp_init(&$a) { killme(); $nick = $a->argv[1]; - $r = q("SELECT `pubkey` FROM `user` WHERE `nickname` = '%s' LIMIT 1", + $r = q("SELECT `spubkey` FROM `user` WHERE `nickname` = '%s' LIMIT 1", dbesc($nick) ); if(! count($r)) killme(); - $lines = explode("\n",$r[0]['pubkey']); + $lines = explode("\n",$r[0]['spubkey']); unset($lines[0]); unset($lines[count($lines)]); $x = base64_decode(implode('',$lines)); @@ -30,4 +30,5 @@ function modexp_init(&$a) { killme(); -}
\ No newline at end of file +} + diff --git a/mod/xrd.php b/mod/xrd.php index 06b2442b2..53985e10c 100644 --- a/mod/xrd.php +++ b/mod/xrd.php @@ -1,5 +1,6 @@ <?php +require_once('salmon.php'); function xrd_content(&$a) { @@ -16,6 +17,11 @@ function xrd_content(&$a) { if(! count($r)) killme(); + $salmon_key = salmon_key($r[0]['spubkey']); + + + + $tpl = load_view_file('view/xrd_person.tpl'); $o = replace_macros($tpl, array( @@ -23,10 +29,10 @@ function xrd_content(&$a) { '$profile_url' => $a->get_baseurl() . '/profile/' . $r[0]['nickname'], '$photo' => $a->get_baseurl() . '/photo/profile/' . $r[0]['uid'], '$salmon' => $a->get_baseurl() . '/salmon/' . $r[0]['nickname'] . '/mention', - '$modexp' => $a->get_baseurl() . '/modexp/' . $r[0]['nickname'] + '$modexp' => 'data:application/magic-public-key,' . $salmon_key )); echo $o; killme(); -}
\ No newline at end of file +} diff --git a/view/xrd_person.tpl b/view/xrd_person.tpl index ba9bc64db..d7ce13efa 100644 --- a/view/xrd_person.tpl +++ b/view/xrd_person.tpl @@ -15,8 +15,6 @@ <Link rel='http://webfinger.net/rel/avatar' href='$photo' /> <Link rel="salmon" href="$salmon" /> - <Link rel="magic-public-key" - type="application/magic-public-key" - href="$modexp" /> + <Link rel="magic-public-key" href="$modexp" /> </XRD> |