Beispiel #1
0
 public function testDigestAuthInt()
 {
     $this->auth->setQOP(Digest::QOP_AUTHINT | Digest::QOP_AUTH);
     list($nonce, $opaque) = $this->getServerTokens(Digest::QOP_AUTHINT | Digest::QOP_AUTH);
     $username = '******';
     $password = 12345;
     $nc = '00003';
     $cnonce = uniqid();
     $digestHash = md5(md5($username . ':' . self::REALM . ':' . $password) . ':' . $nonce . ':' . $nc . ':' . $cnonce . ':' . 'auth-int:' . md5('POST' . ':' . '/' . ':' . md5('body')));
     $this->request->setMethod('POST');
     $this->request->setHeader('Authorization', 'Digest username="******", realm="' . self::REALM . '", nonce="' . $nonce . '", uri="/", response="' . $digestHash . '", opaque="' . $opaque . '", qop=auth-int,nc=' . $nc . ',cnonce="' . $cnonce . '"');
     $this->request->setBody('body');
     $this->auth->init();
     $this->assertTrue($this->auth->validateA1(md5($username . ':' . self::REALM . ':' . $password)), 'Authentication is deemed invalid through validateA1');
 }
Beispiel #2
0
 function testValidRequest()
 {
     $accessKey = 'accessKey';
     $secretKey = 'secretKey';
     $content = 'thisisthebody';
     $contentMD5 = base64_encode(md5($content, true));
     $date = new \DateTime('now');
     $date->setTimeZone(new \DateTimeZone('GMT'));
     $date = $date->format('D, d M Y H:i:s \\G\\M\\T');
     $sig = base64_encode($this->hmacsha1($secretKey, "POST\n{$contentMD5}\n\n{$date}\nx-amz-date:{$date}\n/evert"));
     $this->request->setUrl('/evert');
     $this->request->setMethod('POST');
     $this->request->setHeaders(['Authorization' => "AWS {$accessKey}:{$sig}", 'Content-MD5' => $contentMD5, 'X-amz-date' => $date]);
     $this->request->setBody($content);
     $this->auth->init();
     $result = $this->auth->validate($secretKey);
     $this->assertTrue($result, 'Signature did not validate, got errorcode ' . $this->auth->errorCode);
     $this->assertEquals($accessKey, $this->auth->getAccessKey());
 }