Skip to content

Commit 1f29382

Browse files
committed
test: add some tests
1 parent 7f1e2bd commit 1f29382

File tree

3 files changed

+129
-0
lines changed

3 files changed

+129
-0
lines changed

cbc_test.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package openssl
2+
3+
import (
4+
"bytes"
5+
"crypto/aes"
6+
"testing"
7+
8+
"github.com/stretchr/testify/assert"
9+
)
10+
11+
func TestCBCEncryptAndDecrypt(t *testing.T) {
12+
key := []byte("12345678901234567890123456789012") // 32 bytes for AES-256
13+
block, err := aes.NewCipher(key)
14+
assert.NoError(t, err)
15+
16+
src := []byte("test data")
17+
iv := []byte("1234567890123456") // 16 bytes for AES
18+
19+
// Test encryption
20+
encrypted, err := CBCEncrypt(block, src, iv, PKCS7_PADDING)
21+
assert.NoError(t, err)
22+
assert.NotEmpty(t, encrypted)
23+
24+
// Test decryption
25+
decrypted, err := CBCDecrypt(block, encrypted, iv, PKCS7_PADDING)
26+
assert.NoError(t, err)
27+
assert.Equal(t, src, decrypted)
28+
}
29+
30+
func TestCBCIVPending(t *testing.T) {
31+
blockSize := 16
32+
testCases := []struct {
33+
iv []byte
34+
expected []byte
35+
}{
36+
{[]byte("1234"), append([]byte("1234"), bytes.Repeat([]byte{0}, 12)...)},
37+
{[]byte("12345678901234567890"), []byte("1234567890123456")},
38+
{[]byte("1234567890123456"), []byte("1234567890123456")},
39+
}
40+
41+
for _, tc := range testCases {
42+
result := cbcIVPending(tc.iv, blockSize)
43+
assert.Equal(t, tc.expected, result)
44+
}
45+
}

ecb_test.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package openssl
2+
3+
import (
4+
"crypto/aes"
5+
"testing"
6+
"github.com/stretchr/testify/assert"
7+
)
8+
9+
func TestECBEncryptAndDecrypt(t *testing.T) {
10+
key := []byte("12345678901234567890123456789012") // 32 bytes for AES-256
11+
block, err := aes.NewCipher(key)
12+
assert.NoError(t, err)
13+
14+
src := []byte("test data")
15+
16+
// Test encryption
17+
encrypted, err := ECBEncrypt(block, src, PKCS7_PADDING)
18+
assert.NoError(t, err)
19+
assert.NotEmpty(t, encrypted)
20+
21+
// Test decryption
22+
decrypted, err := ECBDecrypt(block, encrypted, PKCS7_PADDING)
23+
assert.NoError(t, err)
24+
assert.Equal(t, src, decrypted)
25+
}
26+
27+
func TestECBEncrypterCryptBlocks(t *testing.T) {
28+
key := []byte("1234567890123456") // 16 bytes for AES-128
29+
block, err := aes.NewCipher(key)
30+
assert.NoError(t, err)
31+
32+
encrypter := NewECBEncrypter(block)
33+
src := make([]byte, encrypter.BlockSize()*2)
34+
dst := make([]byte, len(src))
35+
36+
encrypter.CryptBlocks(dst, src)
37+
assert.Equal(t, len(src), len(dst))
38+
}
39+
40+
func TestECBDecrypterCryptBlocks(t *testing.T) {
41+
key := []byte("1234567890123456") // 16 bytes for AES-128
42+
block, err := aes.NewCipher(key)
43+
assert.NoError(t, err)
44+
45+
decrypter := NewECBDecrypter(block)
46+
src := make([]byte, decrypter.BlockSize()*2)
47+
dst := make([]byte, len(src))
48+
49+
decrypter.CryptBlocks(dst, src)
50+
assert.Equal(t, len(src), len(dst))
51+
}

key_test.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package openssl
2+
3+
import (
4+
"crypto/sha1"
5+
"testing"
6+
"github.com/stretchr/testify/assert"
7+
)
8+
9+
func TestSHA1(t *testing.T) {
10+
testData := []byte("test")
11+
h := sha1.New()
12+
_, _ = h.Write(testData)
13+
expected := h.Sum(nil)
14+
result := SHA1(testData)
15+
assert.Equal(t, expected, result, "SHA1 function output should match expected hash")
16+
}
17+
18+
func TestKeyGenerator(t *testing.T) {
19+
testCases := []struct {
20+
data []byte
21+
blockSize int
22+
expected []byte
23+
}{
24+
{[]byte("test"), 10, KeyGenerator([]byte("test"), 10)},
25+
{[]byte("test"), 20, KeyGenerator([]byte("test"), 20)},
26+
{[]byte("test"), 30, []byte("test")},
27+
}
28+
29+
for _, tc := range testCases {
30+
result := KeyGenerator(tc.data, tc.blockSize)
31+
assert.Equal(t, tc.expected, result, "KeyGenerator output should match expected key")
32+
}
33+
}

0 commit comments

Comments
 (0)