diff options
Diffstat (limited to 'Zotlabs/Lib')
-rw-r--r-- | Zotlabs/Lib/ActivityStreams.php | 12 | ||||
-rw-r--r-- | Zotlabs/Lib/LDSignatures.php | 4 |
2 files changed, 14 insertions, 2 deletions
diff --git a/Zotlabs/Lib/ActivityStreams.php b/Zotlabs/Lib/ActivityStreams.php index 686f4a140..2846ea476 100644 --- a/Zotlabs/Lib/ActivityStreams.php +++ b/Zotlabs/Lib/ActivityStreams.php @@ -13,7 +13,9 @@ class ActivityStreams { public $tgt = null; public $origin = null; public $owner = null; - + public $signer = null; + public $ldsig = null; + public $sigok = false; public $recips = null; function __construct($string) { @@ -32,6 +34,14 @@ class ActivityStreams { $this->origin = $this->get_compound_property('origin'); $this->recips = $this->collect_recips(); + $this->ldsig = $this->get_compound_property('signature'); + if($this->ldsig) { + $this->signer = $this->get_compound_property('creator',$this->ldsig); + if($this->signer && $this->signer['publicKey'] && $this->signer['publicKey']['publicKeyPem']) { + $this->sigok = \Zotlabs\Lib\LDSignatures::verify($this->data,$this->signer['publicKey']['publicKeyPem']); + } + } + if(($this->type === 'Note') && (! $this->obj)) { $this->obj = $this->data; $this->type = 'Create'; diff --git a/Zotlabs/Lib/LDSignatures.php b/Zotlabs/Lib/LDSignatures.php index 88dfe80c0..7d468782a 100644 --- a/Zotlabs/Lib/LDSignatures.php +++ b/Zotlabs/Lib/LDSignatures.php @@ -21,6 +21,7 @@ class LDSignatures { } static function sign($data,$channel) { + $options = [ 'type' => 'RsaSignature2017', 'nonce' => random_string(64), @@ -46,7 +47,7 @@ class LDSignatures { if($data) { foreach($data as $k => $v) { if(! in_array($k,[ 'signature' ])) { - $newopts[$k] = $v; + $newdata[$k] = $v; } } } @@ -68,6 +69,7 @@ class LDSignatures { } static function hash($obj) { + return hash('sha256',self::normalise($obj)); } |