public function testGenerateBodyhash() { $this->assertEquals('qUqP5cyxm6YcTAhz05Hph5gvu9M=', OAuth2MacTokenUtil::generateBodyhash('test', 'hmac-sha-1')); $this->assertEquals('n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=', OAuth2MacTokenUtil::generateBodyhash('test', 'hmac-sha-256')); // sample at http://tools.ietf.org/html/draft-hammer-oauth-v2-mac-token-02 $this->assertEquals('k9kbtCIy0CkI3/FEfpS/oIDjk6k=', OAuth2MacTokenUtil::generateBodyhash('hello=world%21', 'hmac-sha-1')); $this->assertEquals('Lve95gjOVATpfV8EL5X4nxwjKHE=', OAuth2MacTokenUtil::generateBodyhash('Hello World!', 'hmac-sha-1')); }
/** * Validate bodyhash param */ public function validateBodyHash() { if (empty($this->_algorithm)) { throw new Exception('Missing Algorithm'); } if (!empty($this->_entitybody)) { $cal_bodyhash = OAuth2MacTokenUtil::generateBodyhash($this->_entitybody, $this->_algorithm); if ($this->_bodyhash != $cal_bodyhash) { $this->_enabled = false; $this->_code = 'HTTP/1.1 401 Unauthorized'; $this->_error = 'invalid_bodyhash'; } } }