salmon-magic-public-freaking-nasty-keys

This commit is contained in:
Mike Macgirvin 2010-10-06 21:13:15 -07:00
parent a0ecdd025e
commit 9c10ada906
4 changed files with 41 additions and 9 deletions

View file

@ -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
View 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();
}

View file

@ -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;

View file

@ -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>