MCPcopy
hub / github.com/oauth2-proxy/oauth2-proxy / TestGCMtoCFBErrors

Function TestGCMtoCFBErrors

pkg/encryption/cipher_test.go:162–196  ·  view source on GitHub ↗

Encrypt with GCM, Decrypt with CFB: Results in Garbage data

(t *testing.T)

Source from the content-addressed store, hash-verified

160
161// Encrypt with GCM, Decrypt with CFB: Results in Garbage data
162func TestGCMtoCFBErrors(t *testing.T) {
163 // Test all 3 valid AES sizes
164 for _, secretSize := range []int{16, 24, 32} {
165 t.Run(fmt.Sprintf("%d", secretSize), func(t *testing.T) {
166 secret := make([]byte, secretSize)
167 _, err := io.ReadFull(rand.Reader, secret)
168 assert.Equal(t, nil, err)
169
170 gcm, err := NewGCMCipher(secret)
171 assert.Equal(t, nil, err)
172
173 cfb, err := NewCFBCipher(secret)
174 assert.Equal(t, nil, err)
175
176 // Test various sizes sessions might be
177 for _, dataSize := range []int{10, 100, 1000, 5000, 10000} {
178 t.Run(fmt.Sprintf("%d", dataSize), func(t *testing.T) {
179 data := make([]byte, dataSize)
180 _, err := io.ReadFull(rand.Reader, data)
181 assert.Equal(t, nil, err)
182
183 encrypted, err := gcm.Encrypt(data)
184 assert.Equal(t, nil, err)
185 assert.NotEqual(t, encrypted, data)
186
187 decrypted, err := cfb.Decrypt(encrypted)
188 assert.Equal(t, nil, err)
189 // Data is mangled
190 assert.NotEqual(t, data, decrypted)
191 assert.NotEqual(t, encrypted, decrypted)
192 })
193 }
194 })
195 }
196}
197
198// Encrypt with CFB, Decrypt with GCM: Results in errors
199func TestCFBtoGCMErrors(t *testing.T) {

Callers

nothing calls this directly

Calls 4

NewGCMCipherFunction · 0.85
NewCFBCipherFunction · 0.85
EncryptMethod · 0.65
DecryptMethod · 0.65

Tested by

no test coverage detected