Example #1
0
 public function testSignAndVerifyNoPubKey()
 {
     $obj = new Statement(['actor' => ['mbox' => COMMON_MBOX], 'verb' => ['id' => COMMON_VERB_ID], 'object' => new Activity(['id' => COMMON_ACTIVITY_ID . '/StatementTest/testSignAndVerify'])]);
     $obj->sign('file://' . $GLOBALS['KEYs']['private'], $GLOBALS['KEYs']['password']);
     $result = $obj->verify();
     $this->assertFalse($result['success'], 'success return value');
     $this->assertSame($result['reason'], 'No public key found or provided for verification', 'reason');
 }
 public function testSignedAndVerifiedX5c()
 {
     $statement = new Statement(['actor' => ['mbox' => COMMON_MBOX], 'verb' => ['id' => COMMON_VERB_ID], 'object' => new Activity(['id' => COMMON_ACTIVITY_ID . '/StatementVariationsTest/Signed'])]);
     $statement->sign('file://' . $GLOBALS['KEYs']['private'], $GLOBALS['KEYs']['password'], ['x5c' => 'file://' . $GLOBALS['KEYs']['public']]);
     foreach (self::$lrss as $lrs) {
         $saveResponse = $lrs->saveStatement($statement);
         $this->assertInstanceOf('TinCan\\LRSResponse', $saveResponse);
         if (!$saveResponse->success) {
             print_r($saveResponse);
         }
         $this->assertTrue($saveResponse->success, "successful request");
         $retrieveResponse = $lrs->retrieveStatement($saveResponse->content->getId(), ['attachments' => true]);
         $this->assertInstanceOf('TinCan\\LRSResponse', $retrieveResponse);
         $this->assertTrue($retrieveResponse->success);
         $this->assertInstanceOf('TinCan\\Statement', $retrieveResponse->content);
         $verificationResult = $retrieveResponse->content->verify();
         $this->assertTrue($verificationResult['success'], 'verify signature');
     }
 }