@@ -14,15 +14,13 @@ type testCase struct {
1414 PaddingData []byte
1515}
1616
17- func testPadding (t * testing.T , padding Padding , testCases []testCase ) {
18- blockSize := 8
19-
17+ func testPadding (t * testing.T , blockSize int , padding Padding , testCases []testCase ) {
2018 for _ , testCase := range testCases {
2119 got := padding .Pad (testCase .Data , blockSize )
2220 want := testCase .PaddingData
2321
2422 if ! slices .Equal (got , want ) {
25- t .Fatalf ("got %+v != want %+v" , got , want )
23+ t .Fatalf ("data %+v: got %+v != want %+v" , testCase . Data , got , want )
2624 }
2725
2826 got , err := padding .Unpad (got , blockSize )
@@ -32,55 +30,187 @@ func testPadding(t *testing.T, padding Padding, testCases []testCase) {
3230
3331 want = testCase .Data
3432 if ! slices .Equal (got , want ) {
35- t .Fatalf ("got %+v != want %+v" , got , want )
33+ t .Fatalf ("data %+v: got %+v != want %+v" , testCase . Data , got , want )
3634 }
3735 }
3836}
3937
4038// go test -v -cover -run=^TestNone$
4139func TestNone (t * testing.T ) {
4240 testCases := []testCase {
43- {Data : []byte {}, PaddingData : []byte {}},
44- {Data : []byte {1 , 2 , 3 , 4 , 5 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 }},
45- {Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }},
46- {Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }},
41+ {
42+ Data : []byte {},
43+ PaddingData : []byte {},
44+ },
45+ {
46+ Data : []byte {1 , 2 , 3 , 4 , 5 },
47+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 },
48+ },
49+ {
50+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
51+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
52+ },
53+ {
54+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
55+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
56+ },
57+ }
58+
59+ testPadding (t , 8 , None {}, testCases )
60+
61+ testCases = []testCase {
62+ {
63+ Data : []byte {},
64+ PaddingData : []byte {},
65+ },
66+ {
67+ Data : []byte {1 , 2 , 3 , 4 , 5 },
68+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 },
69+ },
70+ {
71+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
72+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
73+ },
74+ {
75+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
76+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
77+ },
4778 }
4879
49- testPadding (t , None {}, testCases )
80+ testPadding (t , 16 , None {}, testCases )
5081}
5182
5283// go test -v -cover -run=^TestZero$
5384func TestZero (t * testing.T ) {
5485 testCases := []testCase {
55- {Data : []byte {}, PaddingData : []byte {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }},
56- {Data : []byte {1 , 2 , 3 , 4 , 5 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 0 , 0 , 0 }},
57- {Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }},
58- {Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }},
86+ {
87+ Data : []byte {},
88+ PaddingData : []byte {},
89+ },
90+ {
91+ Data : []byte {1 , 2 , 3 , 4 , 5 },
92+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 0 , 0 , 0 },
93+ },
94+ {
95+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
96+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
97+ },
98+ {
99+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
100+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
101+ },
102+ }
103+
104+ testPadding (t , 8 , Zero {}, testCases )
105+
106+ testCases = []testCase {
107+ {
108+ Data : []byte {},
109+ PaddingData : []byte {},
110+ },
111+ {
112+ Data : []byte {1 , 2 , 3 , 4 , 5 },
113+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
114+ },
115+ {
116+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
117+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
118+ },
119+ {
120+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
121+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
122+ },
59123 }
60124
61- testPadding (t , Zero {}, testCases )
125+ testPadding (t , 16 , Zero {}, testCases )
62126}
63127
64128// go test -v -cover -run=^TestPKCS5$
65129func TestPKCS5 (t * testing.T ) {
66130 testCases := []testCase {
67- {Data : []byte {}, PaddingData : []byte {8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 }},
68- {Data : []byte {1 , 2 , 3 , 4 , 5 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 3 , 3 , 3 }},
69- {Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 }},
70- {Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 }},
131+ {
132+ Data : []byte {},
133+ PaddingData : []byte {8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 },
134+ },
135+ {
136+ Data : []byte {1 , 2 , 3 , 4 , 5 },
137+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 3 , 3 , 3 },
138+ },
139+ {
140+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
141+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 },
142+ },
143+ {
144+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
145+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 },
146+ },
71147 }
72148
73- testPadding (t , PKCS5 {}, testCases )
149+ testPadding (t , 8 , PKCS5 {}, testCases )
150+
151+ testCases = []testCase {
152+ {
153+ Data : []byte {},
154+ PaddingData : []byte {16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 },
155+ },
156+ {
157+ Data : []byte {1 , 2 , 3 , 4 , 5 },
158+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 11 , 11 , 11 , 11 , 11 , 11 , 11 , 11 , 11 , 11 , 11 },
159+ },
160+ {
161+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
162+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 },
163+ },
164+ {
165+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
166+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 },
167+ },
168+ }
169+
170+ testPadding (t , 16 , PKCS5 {}, testCases )
74171}
75172
76173// go test -v -cover -run=^TestPKCS7$
77174func TestPKCS7 (t * testing.T ) {
78175 testCases := []testCase {
79- {Data : []byte {}, PaddingData : []byte {8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 }},
80- {Data : []byte {1 , 2 , 3 , 4 , 5 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 3 , 3 , 3 }},
81- {Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 }},
82- {Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 }, PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 }},
176+ {
177+ Data : []byte {},
178+ PaddingData : []byte {8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 },
179+ },
180+ {
181+ Data : []byte {1 , 2 , 3 , 4 , 5 },
182+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 3 , 3 , 3 },
183+ },
184+ {
185+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
186+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 },
187+ },
188+ {
189+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
190+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 },
191+ },
192+ }
193+
194+ testPadding (t , 8 , PKCS7 {}, testCases )
195+
196+ testCases = []testCase {
197+ {
198+ Data : []byte {},
199+ PaddingData : []byte {16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 },
200+ },
201+ {
202+ Data : []byte {1 , 2 , 3 , 4 , 5 },
203+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 11 , 11 , 11 , 11 , 11 , 11 , 11 , 11 , 11 , 11 , 11 },
204+ },
205+ {
206+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },
207+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 },
208+ },
209+ {
210+ Data : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
211+ PaddingData : []byte {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 },
212+ },
83213 }
84214
85- testPadding (t , PKCS7 {}, testCases )
215+ testPadding (t , 16 , PKCS7 {}, testCases )
86216}
0 commit comments