@@ -44,3 +44,141 @@ func TestPKCS7UnPadding(t *testing.T) {
44
44
})
45
45
}
46
46
}
47
+
48
+ func TestPadding (t * testing.T ) {
49
+ blockSize := 16
50
+ tests := []struct {
51
+ name string
52
+ padding string
53
+ src []byte
54
+ wantLen int
55
+ }{
56
+ {name : "PKCS5" , padding : PKCS5_PADDING , src : []byte ("test" ), wantLen : 16 },
57
+ {name : "PKCS7" , padding : PKCS7_PADDING , src : []byte ("test" ), wantLen : 16 },
58
+ {name : "Zeros" , padding : ZEROS_PADDING , src : []byte ("test" ), wantLen : 16 },
59
+ }
60
+ for _ , tt := range tests {
61
+ t .Run (tt .name , func (t * testing.T ) {
62
+ got := Padding (tt .padding , tt .src , blockSize )
63
+ assert .Equal (t , tt .wantLen , len (got ))
64
+ })
65
+ }
66
+ }
67
+
68
+ func TestUnPadding (t * testing.T ) {
69
+ blockSize := 16
70
+ padding := PKCS7_PADDING
71
+ tests := []struct {
72
+ name string
73
+ src []byte
74
+ want []byte
75
+ wantErr bool
76
+ }{
77
+ {name : "valid padding" , src : PKCS7Padding ([]byte ("test" ), blockSize ), want : []byte ("test" ), wantErr : false },
78
+ {name : "empty src" , src : []byte {}, want : []byte {}, wantErr : true },
79
+ }
80
+ for _ , tt := range tests {
81
+ t .Run (tt .name , func (t * testing.T ) {
82
+ got , err := UnPadding (padding , tt .src )
83
+ if tt .wantErr {
84
+ assert .Error (t , err )
85
+ } else {
86
+ assert .NoError (t , err )
87
+ }
88
+ assert .Equal (t , tt .want , got )
89
+ })
90
+ }
91
+ }
92
+
93
+ func TestPKCS5Padding (t * testing.T ) {
94
+ blockSize := 16
95
+ tests := []struct {
96
+ name string
97
+ src []byte
98
+ wantLen int
99
+ }{
100
+ {name : "test PKCS5" , src : []byte ("test" ), wantLen : 16 },
101
+ }
102
+ for _ , tt := range tests {
103
+ t .Run (tt .name , func (t * testing.T ) {
104
+ got := PKCS5Padding (tt .src , blockSize )
105
+ assert .Equal (t , tt .wantLen , len (got ))
106
+ })
107
+ }
108
+ }
109
+
110
+ func TestPKCS5Unpadding (t * testing.T ) {
111
+ blockSize := 16
112
+ padded := PKCS5Padding ([]byte ("test" ), blockSize )
113
+ tests := []struct {
114
+ name string
115
+ src []byte
116
+ want []byte
117
+ wantErr bool
118
+ }{
119
+ {name : "valid padding" , src : padded , want : []byte ("test" ), wantErr : false },
120
+ }
121
+ for _ , tt := range tests {
122
+ t .Run (tt .name , func (t * testing.T ) {
123
+ got , err := PKCS5Unpadding (tt .src )
124
+ if tt .wantErr {
125
+ assert .Error (t , err )
126
+ } else {
127
+ assert .NoError (t , err )
128
+ }
129
+ assert .Equal (t , tt .want , got )
130
+ })
131
+ }
132
+ }
133
+
134
+ func TestPKCS7Padding (t * testing.T ) {
135
+ blockSize := 16
136
+ tests := []struct {
137
+ name string
138
+ src []byte
139
+ wantLen int
140
+ }{
141
+ {name : "test PKCS7" , src : []byte ("test" ), wantLen : 16 },
142
+ }
143
+ for _ , tt := range tests {
144
+ t .Run (tt .name , func (t * testing.T ) {
145
+ got := PKCS7Padding (tt .src , blockSize )
146
+ assert .Equal (t , tt .wantLen , len (got ))
147
+ })
148
+ }
149
+ }
150
+
151
+ func TestZerosPadding (t * testing.T ) {
152
+ blockSize := 16
153
+ tests := []struct {
154
+ name string
155
+ src []byte
156
+ wantLen int
157
+ }{
158
+ {name : "test Zeros" , src : []byte ("test" ), wantLen : 16 },
159
+ }
160
+ for _ , tt := range tests {
161
+ t .Run (tt .name , func (t * testing.T ) {
162
+ got := ZerosPadding (tt .src , blockSize )
163
+ assert .Equal (t , tt .wantLen , len (got ))
164
+ })
165
+ }
166
+ }
167
+
168
+ func TestZerosUnPadding (t * testing.T ) {
169
+ blockSize := 16
170
+ tests := []struct {
171
+ name string
172
+ src []byte
173
+ want []byte
174
+ }{
175
+ {name : "test ZerosUnPadding" , src : ZerosPadding ([]byte ("test" ), blockSize ), want : []byte ("test" )},
176
+ }
177
+ for _ , tt := range tests {
178
+ t .Run (tt .name , func (t * testing.T ) {
179
+ got , err := ZerosUnPadding (tt .src )
180
+ assert .NoError (t , err )
181
+ assert .Equal (t , tt .want , got )
182
+ })
183
+ }
184
+ }
0 commit comments