aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/tests/Sabre/HTTP/AWSAuthTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/sabre/dav/tests/Sabre/HTTP/AWSAuthTest.php')
-rw-r--r--vendor/sabre/dav/tests/Sabre/HTTP/AWSAuthTest.php242
1 files changed, 0 insertions, 242 deletions
diff --git a/vendor/sabre/dav/tests/Sabre/HTTP/AWSAuthTest.php b/vendor/sabre/dav/tests/Sabre/HTTP/AWSAuthTest.php
deleted file mode 100644
index 569ec2e7d..000000000
--- a/vendor/sabre/dav/tests/Sabre/HTTP/AWSAuthTest.php
+++ /dev/null
@@ -1,242 +0,0 @@
-<?php
-
-namespace Sabre\HTTP;
-
-require_once 'Sabre/HTTP/ResponseMock.php';
-
-class AWSAuthTest extends \PHPUnit_Framework_TestCase {
-
- /**
- * @var Sabre\HTTP\ResponseMock
- */
- private $response;
- /**
- * @var Sabre\HTTP\AWSAuth
- */
- private $auth;
-
- const REALM = 'SabreDAV unittest';
-
- public function setUp() {
-
- $this->response = new ResponseMock();
- $this->auth = new AWSAuth();
- $this->auth->setRealm(self::REALM);
- $this->auth->setHTTPResponse($this->response);
-
- }
-
- public function testNoHeader() {
-
- $request = new Request(array(
- 'REQUEST_METHOD' => 'GET',
- ));
-
- $this->auth->setHTTPRequest($request);
-
- $result = $this->auth->init();
-
- $this->assertFalse($result,'No AWS Authorization header was supplied, so we should have gotten false');
- $this->assertEquals(AWSAuth::ERR_NOAWSHEADER,$this->auth->errorCode);
-
- }
-
- public function testIncorrectContentMD5() {
-
- $accessKey = 'accessKey';
- $secretKey = 'secretKey';
-
- $request = new Request(array(
- 'REQUEST_METHOD' => 'GET',
- 'HTTP_AUTHORIZATION' => "AWS $accessKey:sig",
- 'HTTP_CONTENT_MD5' => 'garbage',
- 'REQUEST_URI' => '/',
- ));
-
- $this->auth->setHTTPRequest($request);
- $this->auth->init();
- $result = $this->auth->validate($secretKey);
-
- $this->assertFalse($result);
- $this->assertEquals(AWSAuth::ERR_MD5CHECKSUMWRONG,$this->auth->errorCode);
-
- }
-
- public function testNoDate() {
-
- $accessKey = 'accessKey';
- $secretKey = 'secretKey';
- $content = 'thisisthebody';
- $contentMD5 = base64_encode(md5($content,true));
-
-
- $request = new Request(array(
- 'REQUEST_METHOD' => 'POST',
- 'HTTP_AUTHORIZATION' => "AWS $accessKey:sig",
- 'HTTP_CONTENT_MD5' => $contentMD5,
- ));
-
- $request->setBody($content);
-
- $this->auth->setHTTPRequest($request);
- $this->auth->init();
- $result = $this->auth->validate($secretKey);
-
- $this->assertFalse($result);
- $this->assertEquals(AWSAuth::ERR_INVALIDDATEFORMAT,$this->auth->errorCode);
-
- }
-
- public function testFutureDate() {
-
- $accessKey = 'accessKey';
- $secretKey = 'secretKey';
- $content = 'thisisthebody';
- $contentMD5 = base64_encode(md5($content,true));
-
- $date = new \DateTime('@' . (time() + (60*20)));
- $date->setTimeZone(new \DateTimeZone('GMT'));
- $date = $date->format('D, d M Y H:i:s \\G\\M\\T');
-
- $request = new Request(array(
- 'REQUEST_METHOD' => 'POST',
- 'HTTP_AUTHORIZATION' => "AWS $accessKey:sig",
- 'HTTP_CONTENT_MD5' => $contentMD5,
- 'HTTP_DATE' => $date,
- ));
-
- $request->setBody($content);
-
- $this->auth->setHTTPRequest($request);
- $this->auth->init();
- $result = $this->auth->validate($secretKey);
-
- $this->assertFalse($result);
- $this->assertEquals(AWSAuth::ERR_REQUESTTIMESKEWED,$this->auth->errorCode);
-
- }
-
- public function testPastDate() {
-
- $accessKey = 'accessKey';
- $secretKey = 'secretKey';
- $content = 'thisisthebody';
- $contentMD5 = base64_encode(md5($content,true));
-
- $date = new \DateTime('@' . (time() - (60*20)));
- $date->setTimeZone(new \DateTimeZone('GMT'));
- $date = $date->format('D, d M Y H:i:s \\G\\M\\T');
-
- $request = new Request(array(
- 'REQUEST_METHOD' => 'POST',
- 'HTTP_AUTHORIZATION' => "AWS $accessKey:sig",
- 'HTTP_CONTENT_MD5' => $contentMD5,
- 'HTTP_X_AMZ_DATE' => $date,
- ));
-
- $request->setBody($content);
-
- $this->auth->setHTTPRequest($request);
- $this->auth->init();
- $result = $this->auth->validate($secretKey);
-
- $this->assertFalse($result);
- $this->assertEquals(AWSAuth::ERR_REQUESTTIMESKEWED,$this->auth->errorCode);
-
- }
-
- public function testIncorrectSignature() {
-
- $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');
-
- $request = new Request(array(
- 'REQUEST_METHOD' => 'POST',
- 'HTTP_AUTHORIZATION' => "AWS $accessKey:sig",
- 'HTTP_CONTENT_MD5' => $contentMD5,
- 'HTTP_X_AMZ_DATE' => $date,
- 'REQUEST_URI' => '/',
- ));
-
- $request->setBody($content);
-
- $this->auth->setHTTPRequest($request);
- $this->auth->init();
- $result = $this->auth->validate($secretKey);
-
- $this->assertFalse($result);
- $this->assertEquals(AWSAuth::ERR_INVALIDSIGNATURE,$this->auth->errorCode);
-
- }
-
- public 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"
- ));
-
- $request = new Request(array(
- 'REQUEST_METHOD' => 'POST',
- 'HTTP_AUTHORIZATION' => "AWS $accessKey:$sig",
- 'HTTP_CONTENT_MD5' => $contentMD5,
- 'HTTP_X_AMZ_DATE' => $date,
- 'REQUEST_URI' => '/evert',
- ));
-
- $request->setBody($content);
-
- $this->auth->setHTTPRequest($request);
- $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());
-
- }
-
- public function test401() {
-
- $this->auth->requireLogin();
- $test = preg_match('/^AWS$/',$this->response->headers['WWW-Authenticate'],$matches);
- $this->assertTrue($test==true,'The WWW-Authenticate response didn\'t match our pattern');
-
- }
-
- /**
- * Generates an HMAC-SHA1 signature
- *
- * @param string $key
- * @param string $message
- * @return string
- */
- private function hmacsha1($key, $message) {
-
- $blocksize=64;
- if (strlen($key)>$blocksize)
- $key=pack('H*', sha1($key));
- $key=str_pad($key,$blocksize,chr(0x00));
- $ipad=str_repeat(chr(0x36),$blocksize);
- $opad=str_repeat(chr(0x5c),$blocksize);
- $hmac = pack('H*',sha1(($key^$opad).pack('H*',sha1(($key^$ipad).$message))));
- return $hmac;
-
- }
-
-}