123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace Namshi\JOSE\Test;
- use DateTime;
- use Namshi\JOSE\SimpleJWS;
- use PHPUnit_Framework_TestCase as TestCase;
- class SimpleJWSTest extends TestCase
- {
- const SSL_KEY_PASSPHRASE = 'tests';
- public function setup()
- {
- $date = new DateTime('tomorrow');
- $data = array(
- 'a' => 'b',
- 'exp' => $date->format('U'),
- );
- $this->jws = new SimpleJWS(array('alg' => 'RS256'));
- $this->jws->setPayload($data);
- }
- public function testConstruction()
- {
- $this->assertSame($this->jws->getHeader(), array('alg' => 'RS256', 'typ' => 'JWS'));
- $this->assertTrue(is_int($this->jws->getPayload()['iat']), 'iat property should be integer value (from construction)');
- }
- public function testValidationOfAValidSimpleJWS()
- {
- $privateKey = openssl_pkey_get_private(SSL_KEYS_PATH.'private.key', self::SSL_KEY_PASSPHRASE);
- $this->jws->sign($privateKey);
- $jws = SimpleJWS::load($this->jws->getTokenString());
- $public_key = openssl_pkey_get_public(SSL_KEYS_PATH.'public.key');
- $this->assertTrue($jws->isValid($public_key, 'RS256'));
- }
- public function testValidationOfInvalidSimpleJWS()
- {
- $date = new DateTime('yesterday');
- $this->jws->setPayload(array(
- 'exp' => $date->format('U'),
- ));
- $privateKey = openssl_pkey_get_private(SSL_KEYS_PATH.'private.key', self::SSL_KEY_PASSPHRASE);
- $this->jws->sign($privateKey);
- $jws = SimpleJWS::load($this->jws->getTokenString());
- $public_key = openssl_pkey_get_public(SSL_KEYS_PATH.'public.key');
- $this->assertFalse($jws->isValid($public_key, 'RS256'));
- }
- public function testValidationOfValidSimpleJWSWithStringIat()
- {
- $date = new DateTime('tomorrow');
- $data = array(
- 'a' => 'b',
- 'exp' => $date->format('U'),
- 'iat' => time()
- );
- $this->jws->setPayload($data);
- $privateKey = openssl_pkey_get_private(SSL_KEYS_PATH.'private.key', self::SSL_KEY_PASSPHRASE);
- $this->jws->sign($privateKey);
- $jws = SimpleJWS::load($this->jws->getTokenString());
- $public_key = openssl_pkey_get_public(SSL_KEYS_PATH.'public.key');
- $this->assertTrue($jws->isValid($public_key, 'RS256'));
- }
- public function testValidationOfValidSimpleJWSWithExpAsInt()
- {
- $date = new DateTime('tomorrow');
- $data = array(
- 'a' => 'b',
- 'exp' => $date->getTimestamp(),
- 'iat' => time()
- );
- $this->jws->setPayload($data);
- $privateKey = openssl_pkey_get_private(SSL_KEYS_PATH.'private.key', self::SSL_KEY_PASSPHRASE);
- $this->jws->sign($privateKey);
- $jws = SimpleJWS::load($this->jws->getTokenString());
- $public_key = openssl_pkey_get_public(SSL_KEYS_PATH.'public.key');
- $this->assertTrue($jws->isValid($public_key, 'RS256'));
- }
- public function testValidationOfInvalidSimpleJWSWithExpAsInt()
- {
- $date = new DateTime('yesterday');
- $data = array(
- 'a' => 'b',
- 'exp' => $date->getTimestamp(),
- 'iat' => time()
- );
- $this->jws->setPayload($data);
- $privateKey = openssl_pkey_get_private(SSL_KEYS_PATH.'private.key', self::SSL_KEY_PASSPHRASE);
- $this->jws->sign($privateKey);
- $jws = SimpleJWS::load($this->jws->getTokenString());
- $public_key = openssl_pkey_get_public(SSL_KEYS_PATH.'public.key');
- $this->assertFalse($jws->isValid($public_key, 'RS256'));
- }
- }
|