@@ -71,7 +71,7 @@ func TestValidateCASecret(t *testing.T) {
71
71
},
72
72
Type : SecretTypeCA ,
73
73
Data : map [string ][]byte {
74
- "ca.crt" : nil ,
74
+ "ca.crt" : validCert ,
75
75
},
76
76
}
77
77
@@ -94,7 +94,7 @@ func TestValidateCASecretFails(t *testing.T) {
94
94
},
95
95
Type : "some-type" ,
96
96
Data : map [string ][]byte {
97
- "ca.crt" : nil ,
97
+ "ca.crt" : validCert ,
98
98
},
99
99
},
100
100
msg : "Incorrect type for CA secret" ,
@@ -109,6 +109,45 @@ func TestValidateCASecretFails(t *testing.T) {
109
109
},
110
110
msg : "Missing ca.crt for CA secret" ,
111
111
},
112
+ {
113
+ secret : & v1.Secret {
114
+ ObjectMeta : meta_v1.ObjectMeta {
115
+ Name : "ingress-mtls-secret" ,
116
+ Namespace : "default" ,
117
+ },
118
+ Type : SecretTypeCA ,
119
+ Data : map [string ][]byte {
120
+ "ca.crt" : invalidCACertWithNoPEMBlock ,
121
+ },
122
+ },
123
+ msg : "Invalid cert with no PEM block" ,
124
+ },
125
+ {
126
+ secret : & v1.Secret {
127
+ ObjectMeta : meta_v1.ObjectMeta {
128
+ Name : "ingress-mtls-secret" ,
129
+ Namespace : "default" ,
130
+ },
131
+ Type : SecretTypeCA ,
132
+ Data : map [string ][]byte {
133
+ "ca.crt" : invalidCACertWithWrongPEMBlock ,
134
+ },
135
+ },
136
+ msg : "Invalid cert with wrong PEM block" ,
137
+ },
138
+ {
139
+ secret : & v1.Secret {
140
+ ObjectMeta : meta_v1.ObjectMeta {
141
+ Name : "ingress-mtls-secret" ,
142
+ Namespace : "default" ,
143
+ },
144
+ Type : SecretTypeCA ,
145
+ Data : map [string ][]byte {
146
+ "ca.crt" : invalidCACert ,
147
+ },
148
+ },
149
+ msg : "Invalid cert" ,
150
+ },
112
151
}
113
152
114
153
for _ , test := range tests {
@@ -126,6 +165,10 @@ func TestValidateTLSSecret(t *testing.T) {
126
165
Namespace : "default" ,
127
166
},
128
167
Type : v1 .SecretTypeTLS ,
168
+ Data : map [string ][]byte {
169
+ "tls.crt" : validCert ,
170
+ "tls.key" : validKey ,
171
+ },
129
172
}
130
173
131
174
err := ValidateTLSSecret (secret )
@@ -135,17 +178,55 @@ func TestValidateTLSSecret(t *testing.T) {
135
178
}
136
179
137
180
func TestValidateTLSSecretFails (t * testing.T ) {
138
- secret := & v1.Secret {
139
- ObjectMeta : meta_v1.ObjectMeta {
140
- Name : "tls-secret" ,
141
- Namespace : "default" ,
181
+ tests := []struct {
182
+ secret * v1.Secret
183
+ msg string
184
+ }{
185
+ {
186
+ secret : & v1.Secret {
187
+ ObjectMeta : meta_v1.ObjectMeta {
188
+ Name : "tls-secret" ,
189
+ Namespace : "default" ,
190
+ },
191
+ Type : "some type" ,
192
+ },
193
+ msg : "Wrong type" ,
194
+ },
195
+ {
196
+ secret : & v1.Secret {
197
+ ObjectMeta : meta_v1.ObjectMeta {
198
+ Name : "tls-secret" ,
199
+ Namespace : "default" ,
200
+ },
201
+ Type : v1 .SecretTypeTLS ,
202
+ Data : map [string ][]byte {
203
+ "tls.crt" : invalidCert ,
204
+ "tls.key" : validKey ,
205
+ },
206
+ },
207
+ msg : "Invalid cert" ,
208
+ },
209
+ {
210
+ secret : & v1.Secret {
211
+ ObjectMeta : meta_v1.ObjectMeta {
212
+ Name : "tls-secret" ,
213
+ Namespace : "default" ,
214
+ },
215
+ Type : v1 .SecretTypeTLS ,
216
+ Data : map [string ][]byte {
217
+ "tls.crt" : validCert ,
218
+ "tls.key" : invalidKey ,
219
+ },
220
+ },
221
+ msg : "Invalid key" ,
142
222
},
143
- Type : "some type" ,
144
223
}
145
224
146
- err := ValidateTLSSecret (secret )
147
- if err == nil {
148
- t .Errorf ("ValidateTLSSecret() returned no error" )
225
+ for _ , test := range tests {
226
+ err := ValidateTLSSecret (test .secret )
227
+ if err == nil {
228
+ t .Errorf ("ValidateTLSSecret() returned no error for the case of %s" , test .msg )
229
+ }
149
230
}
150
231
}
151
232
@@ -161,6 +242,10 @@ func TestValidateSecret(t *testing.T) {
161
242
Namespace : "default" ,
162
243
},
163
244
Type : v1 .SecretTypeTLS ,
245
+ Data : map [string ][]byte {
246
+ "tls.crt" : validCert ,
247
+ "tls.key" : validKey ,
248
+ },
164
249
},
165
250
msg : "Valid TLS secret" ,
166
251
},
@@ -172,7 +257,7 @@ func TestValidateSecret(t *testing.T) {
172
257
},
173
258
Type : SecretTypeCA ,
174
259
Data : map [string ][]byte {
175
- "ca.crt" : nil ,
260
+ "ca.crt" : validCACert ,
176
261
},
177
262
},
178
263
msg : "Valid CA secret" ,
@@ -210,6 +295,10 @@ func TestValidateSecretFails(t *testing.T) {
210
295
Name : "tls-secret" ,
211
296
Namespace : "default" ,
212
297
},
298
+ Data : map [string ][]byte {
299
+ "tls.crt" : validCert ,
300
+ "tls.key" : validKey ,
301
+ },
213
302
},
214
303
msg : "Missing type for TLS secret" ,
215
304
},
@@ -272,3 +361,70 @@ func TestHasCorrectSecretType(t *testing.T) {
272
361
}
273
362
}
274
363
}
364
+
365
+ var (
366
+ validCert = []byte (`-----BEGIN CERTIFICATE-----
367
+ MIIDLjCCAhYCCQDAOF9tLsaXWjANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJV
368
+ UzELMAkGA1UECAwCQ0ExITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
369
+ ZDEbMBkGA1UEAwwSY2FmZS5leGFtcGxlLmNvbSAgMB4XDTE4MDkxMjE2MTUzNVoX
370
+ DTIzMDkxMTE2MTUzNVowWDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMSEwHwYD
371
+ VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxGTAXBgNVBAMMEGNhZmUuZXhh
372
+ bXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCp6Kn7sy81
373
+ p0juJ/cyk+vCAmlsfjtFM2muZNK0KtecqG2fjWQb55xQ1YFA2XOSwHAYvSdwI2jZ
374
+ ruW8qXXCL2rb4CZCFxwpVECrcxdjm3teViRXVsYImmJHPPSyQgpiobs9x7DlLc6I
375
+ BA0ZjUOyl0PqG9SJexMV73WIIa5rDVSF2r4kSkbAj4Dcj7LXeFlVXH2I5XwXCptC
376
+ n67JCg42f+k8wgzcRVp8XZkZWZVjwq9RUKDXmFB2YyN1XEWdZ0ewRuKYUJlsm692
377
+ skOrKQj0vkoPn41EE/+TaVEpqLTRoUY3rzg7DkdzfdBizFO2dsPNFx2CW0jXkNLv
378
+ Ko25CZrOhXAHAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKHFCcyOjZvoHswUBMdL
379
+ RdHIb383pWFynZq/LuUovsVA58B0Cg7BEfy5vWVVrq5RIkv4lZ81N29x21d1JH6r
380
+ jSnQx+DXCO/TJEV5lSCUpIGzEUYaUPgRyjsM/NUdCJ8uHVhZJ+S6FA+CnOD9rn2i
381
+ ZBePCI5rHwEXwnnl8ywij3vvQ5zHIuyBglWr/Qyui9fjPpwWUvUm4nv5SMG9zCV7
382
+ PpuwvuatqjO1208BjfE/cZHIg8Hw9mvW9x9C+IQMIMDE7b/g6OcK7LGTLwlFxvA8
383
+ 7WjEequnayIphMhKRXVf1N349eN98Ez38fOTHTPbdJjFA/PcC+Gyme+iGt5OQdFh
384
+ yRE=
385
+ -----END CERTIFICATE-----` )
386
+
387
+ validKey = []byte (`-----BEGIN RSA PRIVATE KEY-----
388
+ MIIEowIBAAKCAQEAqeip+7MvNadI7if3MpPrwgJpbH47RTNprmTStCrXnKhtn41k
389
+ G+ecUNWBQNlzksBwGL0ncCNo2a7lvKl1wi9q2+AmQhccKVRAq3MXY5t7XlYkV1bG
390
+ CJpiRzz0skIKYqG7Pcew5S3OiAQNGY1DspdD6hvUiXsTFe91iCGuaw1Uhdq+JEpG
391
+ wI+A3I+y13hZVVx9iOV8FwqbQp+uyQoONn/pPMIM3EVafF2ZGVmVY8KvUVCg15hQ
392
+ dmMjdVxFnWdHsEbimFCZbJuvdrJDqykI9L5KD5+NRBP/k2lRKai00aFGN684Ow5H
393
+ c33QYsxTtnbDzRcdgltI15DS7yqNuQmazoVwBwIDAQABAoIBAQCPSdSYnQtSPyql
394
+ FfVFpTOsoOYRhf8sI+ibFxIOuRauWehhJxdm5RORpAzmCLyL5VhjtJme223gLrw2
395
+ N99EjUKb/VOmZuDsBc6oCF6QNR58dz8cnORTewcotsJR1pn1hhlnR5HqJJBJask1
396
+ ZEnUQfcXZrL94lo9JH3E+Uqjo1FFs8xxE8woPBqjZsV7pRUZgC3LhxnwLSExyFo4
397
+ cxb9SOG5OmAJozStFoQ2GJOes8rJ5qfdvytgg9xbLaQL/x0kpQ62BoFMBDdqOePW
398
+ KfP5zZ6/07/vpj48yA1Q32PzobubsBLd3Kcn32jfm1E7prtWl+JeOFiOznBQFJbN
399
+ 4qPVRz5hAoGBANtWyxhNCSLu4P+XgKyckljJ6F5668fNj5CzgFRqJ09zn0TlsNro
400
+ FTLZcxDqnR3HPYM42JERh2J/qDFZynRQo3cg3oeivUdBVGY8+FI1W0qdub/L9+yu
401
+ edOZTQ5XmGGp6r6jexymcJim/OsB3ZnYOpOrlD7SPmBvzNLk4MF6gxbXAoGBAMZO
402
+ 0p6HbBmcP0tjFXfcKE77ImLm0sAG4uHoUx0ePj/2qrnTnOBBNE4MvgDuTJzy+caU
403
+ k8RqmdHCbHzTe6fzYq/9it8sZ77KVN1qkbIcuc+RTxA9nNh1TjsRne74Z0j1FCLk
404
+ hHcqH0ri7PYSKHTE8FvFCxZYdbuB84CmZihvxbpRAoGAIbjqaMYPTYuklCda5S79
405
+ YSFJ1JzZe1Kja//tDw1zFcgVCKa31jAwciz0f/lSRq3HS1GGGmezhPVTiqLfeZqc
406
+ R0iKbhgbOcVVkJJ3K0yAyKwPTumxKHZ6zImZS0c0am+RY9YGq5T7YrzpzcfvpiOU
407
+ ffe3RyFT7cfCmfoOhDCtzukCgYB30oLC1RLFOrqn43vCS51zc5zoY44uBzspwwYN
408
+ TwvP/ExWMf3VJrDjBCH+T/6sysePbJEImlzM+IwytFpANfiIXEt/48Xf60Nx8gWM
409
+ uHyxZZx/NKtDw0V8vX1POnq2A5eiKa+8jRARYKJLYNdfDuwolxvG6bZhkPi/4EtT
410
+ 3Y18sQKBgHtKbk+7lNJVeswXE5cUG6EDUsDe/2Ua7fXp7FcjqBEoap1LSw+6TXp0
411
+ ZgrmKE8ARzM47+EJHUviiq/nupE15g0kJW3syhpU9zZLO7ltB0KIkO9ZRcmUjo8Q
412
+ cpLlHMAqbLJ8WYGJCkhiWxyal6hYTyWY4cVkC0xtTl/hUE9IeNKo
413
+ -----END RSA PRIVATE KEY-----` )
414
+
415
+ invalidCert = []byte (`-----BEGIN CERTIFICATE-----
416
+ -----END CERTIFICATE-----` )
417
+
418
+ invalidKey = []byte (`-----BEGIN RSA PRIVATE KEY-----
419
+ -----END RSA PRIVATE KEY-----` )
420
+
421
+ validCACert = validCert
422
+
423
+ invalidCACertWithNoPEMBlock []byte
424
+
425
+ invalidCACertWithWrongPEMBlock = []byte (`-----BEGIN PRIVATE KEY-----
426
+ -----END PRIVATE KEY-----` )
427
+
428
+ invalidCACert = []byte (`-----BEGIN CERTIFICATE-----
429
+ -----END CERTIFICATE-----` )
430
+ )
0 commit comments