BCJWSTest.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace Namshi\JOSE\Test;
  3. use Namshi\JOSE\Base64\Base64Encoder;
  4. use Namshi\JOSE\JWS;
  5. use PHPUnit_Framework_TestCase as TestCase;
  6. /**
  7. * BC test for base64 url-safe fix
  8. * Test that tokens generated the old way (non url-safe) will work with url-safe base64 decoding.
  9. */
  10. class BCJWSTest extends TestCase
  11. {
  12. const SSL_KEY_PASSPHRASE = 'tests';
  13. public function testTestBC()
  14. {
  15. $data = array(
  16. array('order_nr' => 'ae123123'),
  17. array('username' => 'asdasdasd'),
  18. array('anything' => '!@#$%^&*()_+'),
  19. );
  20. foreach ($data as $payload) {
  21. $jwsOld = new JWS(array('alg' => 'RS256'));
  22. $jwsOld->setEncoder(new Base64Encoder());
  23. $jwsOld->setPayload($payload);
  24. $jwsOld->sign(openssl_pkey_get_private(SSL_KEYS_PATH.'private.key', self::SSL_KEY_PASSPHRASE));
  25. $t = $jwsOld->getTokenString();
  26. $jwsNew = JWS::load($t);
  27. $this->assertTrue($jwsNew->verify(openssl_pkey_get_public(SSL_KEYS_PATH.'public.key')));
  28. }
  29. }
  30. }