Files
Go_I2p/lib/common/signature/signature_test.go
2025-02-16 14:38:06 -05:00

79 lines
2.3 KiB
Go

package signature
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestReadSignatureErrors(t *testing.T) {
assert := assert.New(t)
data := []byte{0xbe, 0xef}
unsupportedSigType := 1000
_, _, err := ReadSignature(data, unsupportedSigType)
assert.NotNil(err, "unsupported signature error should be reported")
sigType := SIGNATURE_TYPE_DSA_SHA1
_, _, err = ReadSignature(data, sigType)
assert.NotNil(err, "insufficient data error should be reported")
}
func TestReadSignature(t *testing.T) {
assert := assert.New(t)
sigTypes := []int{
SIGNATURE_TYPE_DSA_SHA1, SIGNATURE_TYPE_ECDSA_SHA256_P256,
SIGNATURE_TYPE_ECDSA_SHA384_P384, SIGNATURE_TYPE_ECDSA_SHA512_P521,
SIGNATURE_TYPE_RSA_SHA256_2048, SIGNATURE_TYPE_RSA_SHA384_3072,
SIGNATURE_TYPE_RSA_SHA512_4096, SIGNATURE_TYPE_EDDSA_SHA512_ED25519,
SIGNATURE_TYPE_EDDSA_SHA512_ED25519PH, SIGNATURE_TYPE_REDDSA_SHA512_ED25519,
}
sigLengths := []int{
DSA_SHA1_SIZE, EdDSA_SHA512_Ed25519_SIZE,
ECDSA_SHA384_P384_SIZE, ECDSA_SHA512_P512_SIZE,
RSA_SHA256_2048_SIZE, RSA_SHA384_3072_SIZE,
RSA_SHA512_4096_SIZE, EdDSA_SHA512_Ed25519_SIZE,
EdDSA_SHA512_Ed25519ph_SIZE, RedDSA_SHA512_Ed25519_SIZE,
}
dataLen := 1024
data := []byte{}
for i := 0; i < dataLen; i++ {
data = append(data, byte(i%10))
}
for i, sigType := range sigTypes {
sig, rem, err := ReadSignature(data, sigType)
assert.Nil(err, "no errors should be returned")
assert.Equal(sig, Signature(data[:sigLengths[i]]), "signature should be sliced from data")
assert.Equal(rem, data[sigLengths[i]:], "remainder should be sliced from data ")
}
}
func TestNewSignatureError(t *testing.T) {
assert := assert.New(t)
data := []byte{0xbe, 0xef}
unsupportedSigType := 1000
_, _, err := NewSignature(data, unsupportedSigType)
assert.NotNil(err, "NewSignature error should be reported")
}
func TestNewSignature(t *testing.T) {
assert := assert.New(t)
data := []byte{}
sigLength := EdDSA_SHA512_Ed25519_SIZE
remLength := 20
for i := 0; i < sigLength+remLength; i++ {
data = append(data, byte(i%10))
}
sigType := SIGNATURE_TYPE_EDDSA_SHA512_ED25519
sig, rem, err := NewSignature(data, sigType)
assert.Nil(err, "no errors should be returned")
assert.Equal(*sig, Signature(data[:sigLength]), "signature should be sliced from data")
assert.Equal(rem, data[sigLength:], "remainder should be sliced from data ")
}