function testA256KWWith246Key() { $kek = pack('H*', '000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F'); $key = pack('H*', '00112233445566778899AABBCCDDEEFF000102030405060708090A0B0C0D0E0F'); $alg = new AESKeyWrap('A256KW'); $set = $this->getKeySet($kek); $headers = array(); $encrypted_key = $alg->encryptKey($key, $set, $headers); $this->assertEquals($this->hex2base64url('28C9F404C4B810F4CBCCB35CFB87F8263F5786E2D80ED326CBC7F0E71A99F43BFB988B9B7A02DD21'), $encrypted_key); $decrypted_key = $alg->decryptKey($encrypted_key, $set, $headers); $this->assertEquals($key, $decrypted_key); }
public function getSupportedAlgs() { $results = array(); $aeskw = new AESKeyWrap(null); $aeskw_algs = $aeskw->getSupportedAlgs(); $hash_algs = hash_algos(); foreach (self::$alg_params as $alg => $params) { list($dummy, $aeskw_alg) = explode('+', $alg, 2); if (in_array($params['hash'], $hash_algs) && in_array($aeskw_alg, $aeskw_algs)) { $results[] = $alg; } } return $results; }