gmsm/pkcs/pkcs5_pbes1_test.go
2024-07-10 14:47:27 +08:00

64 lines
1.6 KiB
Go

package pkcs
import (
"crypto/rand"
"testing"
)
func TestPBES1(t *testing.T) {
var testCases []*PBES1
pbes1, err := NewPbeWithMD2AndDESCBC(rand.Reader, 8, 1000)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
testCases = append(testCases, pbes1)
pbes1, err = NewPbeWithMD2AndRC2CBC(rand.Reader, 8, 1000)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
testCases = append(testCases, pbes1)
pbes1, err = NewPbeWithMD5AndDESCBC(rand.Reader, 8, 1000)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
testCases = append(testCases, pbes1)
pbes1, err = NewPbeWithMD5AndRC2CBC(rand.Reader, 8, 1000)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
testCases = append(testCases, pbes1)
pbes1, err = NewPbeWithSHA1AndDESCBC(rand.Reader, 8, 1000)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
testCases = append(testCases, pbes1)
pbes1, err = NewPbeWithSHA1AndRC2CBC(rand.Reader, 8, 1000)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
testCases = append(testCases, pbes1)
for _, pbes1 := range testCases {
t.Run("", func(t *testing.T) {
_, ciphertext, err := pbes1.Encrypt(rand.Reader, []byte("password"), []byte("pbes1"))
if err != nil {
t.Errorf("unexpected error: %v", err)
}
plaintext, _, err := pbes1.Decrypt([]byte("password"), ciphertext)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if string(plaintext) != "pbes1" {
t.Errorf("unexpected plaintext: got %s, want password", plaintext)
}
})
}
}