salmon-magic-public-freaking-nasty-keys
This commit is contained in:
parent
a0ecdd025e
commit
9c10ada906
4 changed files with 41 additions and 9 deletions
|
@ -186,7 +186,7 @@ class ASN_BASE {
|
|||
case ASN_BOOLEAN:
|
||||
return new ASN_BOOLEAN((bool)$data);
|
||||
case ASN_INTEGER:
|
||||
return new ASN_INTEGER(accum($data));
|
||||
return new ASN_INTEGER(strtr(base64_encode($data),'+/=','-_,'));
|
||||
// return new ASN_INTEGER(ord($data));
|
||||
case ASN_BIT_STR:
|
||||
return new ASN_BIT_STR(self::parseASNString($data, $level+1, $maxLevels));
|
||||
|
@ -292,12 +292,7 @@ class ASN_BASE {
|
|||
|
||||
|
||||
function accum($s) {
|
||||
$len = strlen($s);
|
||||
$result = '';
|
||||
for ($i=0; $i < $len; $i++) {
|
||||
$cur = substr($s,$i,1);
|
||||
$result .= bin2hex($cur);
|
||||
}
|
||||
$result = strtr(base64_encode($s),'+/=','-_,');
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
|
33
mod/modexp.php
Normal file
33
mod/modexp.php
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
include('library/asn1.php');
|
||||
|
||||
function modexp_init(&$a) {
|
||||
|
||||
if($a->argc != 2)
|
||||
killme();
|
||||
|
||||
$nick = $a->argv[1];
|
||||
$r = q("SELECT `pubkey` FROM `user` WHERE `nickname` = '%s' LIMIT 1",
|
||||
dbesc($nick)
|
||||
);
|
||||
|
||||
if(! count($r))
|
||||
killme();
|
||||
|
||||
$lines = explode("\n",$r[0]['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;
|
||||
|
||||
header("Content-type: application/magic-public-key");
|
||||
echo 'RSA' . '.' . $m . '.' . $e ;
|
||||
|
||||
killme();
|
||||
|
||||
}
|
|
@ -22,7 +22,8 @@ function xrd_content(&$a) {
|
|||
'$accturi' => $uri,
|
||||
'$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'
|
||||
'$salmon' => $a->get_baseurl() . '/salmon/' . $r[0]['nickname'] . '/mention',
|
||||
'$modexp' => $a->get_baseurl() . '/modexp/' . $r[0]['nickname']
|
||||
));
|
||||
|
||||
echo $o;
|
||||
|
|
|
@ -15,5 +15,8 @@
|
|||
<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" />
|
||||
|
||||
</XRD>
|
||||
|
|
Loading…
Reference in a new issue