From ca517446cc87428062dd7668d5e9672defc2a83c Mon Sep 17 00:00:00 2001 From: ivan katliarchuk Date: Sun, 29 Dec 2024 12:57:01 +0000 Subject: [PATCH] fix(aes-encryption): crypto.GenerateNonce write tests Signed-off-by: ivan katliarchuk --- endpoint/crypto_test.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/endpoint/crypto_test.go b/endpoint/crypto_test.go index 880afcce3..002e2579e 100644 --- a/endpoint/crypto_test.go +++ b/endpoint/crypto_test.go @@ -17,8 +17,12 @@ limitations under the License. package endpoint import ( + "encoding/base64" + "io" "testing" + "crypto/rand" + "github.com/stretchr/testify/require" ) @@ -56,3 +60,33 @@ func TestEncrypt(t *testing.T) { t.Error("Decryption of text didn't result in expected plaintext result.") } } + +func TestGenerateNonceSuccess(t *testing.T) { + nonce, err := GenerateNonce() + require.NoError(t, err) + require.NotEmpty(t, nonce) + + // Test nonce length + decodedNonce, err := base64.StdEncoding.DecodeString(string(nonce)) + require.NoError(t, err) + require.Equal(t, standardGcmNonceSize, len(decodedNonce)) +} + +func TestGenerateNonceError(t *testing.T) { + // Save the original rand.Reader + originalRandReader := rand.Reader + defer func() { rand.Reader = originalRandReader }() + + // Replace rand.Reader with a faulty reader + rand.Reader = &faultyReader{} + + nonce, err := GenerateNonce() + require.Error(t, err) + require.Nil(t, nonce) +} + +type faultyReader struct{} + +func (f *faultyReader) Read(p []byte) (n int, err error) { + return 0, io.ErrUnexpectedEOF +}