Failed Conditions
Push — master ( 072e31...fa6436 )
by Florent
10s
created

testWrap64BitsKeyDataWith128BitKEK()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 10
rs 9.4285
cc 1
eloc 7
nc 1
nop 0
1
<?php
2
3
/*
4
 * The MIT License (MIT)
5
 *
6
 * Copyright (c) 2014-2016 Spomky-Labs
7
 *
8
 * This software may be modified and distributed under the terms
9
 * of the MIT license.  See the LICENSE file for details.
10
 */
11
12
namespace AESKW\Tests;
13
14
use AESKW\A128KW;
15
use AESKW\A192KW;
16
use AESKW\A256KW;
17
use PHPUnit\Framework\TestCase;
18
19
/**
20
 * These tests come from the RFC3394.
21
 *
22
 * @see https://www.ietf.org/rfc/rfc3394.txt#4
23
 */
24
final class One64BitBlockTest extends TestCase
25
{
26
    public function testWrap64BitsKeyDataWith128BitKEK()
27
    {
28
        $kek = hex2bin('000102030405060708090A0B0C0D0E0F');
29
        $data = hex2bin('0011223344556677');
30
31
        $wrapped = A128KW::wrap($kek, $data);
32
        $this->assertEquals(hex2bin('F4740052E82A225174CE86FBD7B805E7'), $wrapped);
33
        $unwrapped = A128KW::unwrap($kek, $wrapped);
34
        $this->assertEquals($data, $unwrapped);
35
    }
36
37
    public function testWrap64BitsKeyDataWith192BitKEK()
38
    {
39
        $kek = hex2bin('000102030405060708090A0B0C0D0E0F1011121314151617');
40
        $data = hex2bin('0011223344556677');
41
42
        $wrapped = A192KW::wrap($kek, $data);
43
        $this->assertEquals(hex2bin('DFE8FD5D1A3786A7351D385096CCFB29'), $wrapped);
44
        $unwrapped = A192KW::unwrap($kek, $wrapped);
45
        $this->assertEquals($data, $unwrapped);
46
    }
47
48
    public function testWrap64BitsKeyDataWith256BitKEK()
49
    {
50
        $kek = hex2bin('000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F');
51
        $data = hex2bin('0011223344556677');
52
53
        $wrapped = A256KW::wrap($kek, $data);
54
        $this->assertEquals(hex2bin('794314D454E3FDE1F661BD9F31FBFA31'), $wrapped);
55
        $unwrapped = A256KW::unwrap($kek, $wrapped);
56
        $this->assertEquals($data, $unwrapped);
57
    }
58
}
59