| 1 | <?php  | 
            ||
| 21 | class ECDSASignatureTest extends \PHPUnit_Framework_TestCase  | 
            ||
| 22 | { | 
            ||
| 23 | /**  | 
            ||
| 24 | *  | 
            ||
| 25 | */  | 
            ||
| 26 | public function testES512Verify()  | 
            ||
| 27 |     { | 
            ||
| 28 | /*  | 
            ||
| 29 | * EC public key  | 
            ||
| 30 | * @see https://tools.ietf.org/html/rfc7520#section-3.1  | 
            ||
| 31 | */  | 
            ||
| 32 | $public_key = new JWK([  | 
            ||
| 33 | 'kty' => 'EC',  | 
            ||
| 34 | 'kid' => '[email protected]',  | 
            ||
| 35 | 'use' => 'sig',  | 
            ||
| 36 | 'crv' => 'P-521',  | 
            ||
| 37 | 'x' => 'AHKZLLOsCOzz5cY97ewNUajB957y-C-U88c3v13nmGZx6sYl_oJXu9A5RkTKqjqvjyekWF-7ytDyRXYgCF5cj0Kt',  | 
            ||
| 38 | 'y' => 'AdymlHvOiLxXkEhayXQnNCvDX4h9htZaCJN34kfmC6pV5OhQHiraVySsUdaQkAgDPrwQrJmbnX9cwlGfP-HqHZR1',  | 
            ||
| 39 | ]);  | 
            ||
| 40 | |||
| 41 | $header = 'eyJhbGciOiJFUzUxMiIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhbXBsZSJ9';  | 
            ||
| 42 | $payload = 'SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4';  | 
            ||
| 43 | $signature = 'AE_R_YZCChjn4791jSQCrdPZCNYqHXCTZH0-JZGYNlaAjP2kqaluUIIUnC9qvbu9Plon7KRTzoNEuT4Va2cmL1eJAQy3mtPBu_u_sDDyYjnAMDxXPn7XrT0lw-kvAD890jl8e2puQens_IEKBpHABlsbEPX6sFY8OcGDqoRuBomu9xQ2';  | 
            ||
| 44 | |||
| 45 | $ecdsa = new ES512();  | 
            ||
| 46 | $this->assertTrue($ecdsa->verify($public_key, $header.'.'.$payload, Base64Url::decode($signature)));  | 
            ||
| 47 | }  | 
            ||
| 48 | }  | 
            ||
| 49 |