44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
package globalplatform
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/status-im/keycard-go/apdu"
|
|
"github.com/status-im/keycard-go/hexutils"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestNewSession(t *testing.T) {
|
|
key := hexutils.HexToBytes("404142434445464748494a4b4c4d4e4f")
|
|
keys := NewSCP02Keys(key, key)
|
|
|
|
raw := hexutils.HexToBytes("000002650183039536622002000de9c62ba1c4c8e55fcb91b6654ce49000")
|
|
resp, err := apdu.ParseResponse(raw)
|
|
assert.NoError(t, err)
|
|
|
|
hostChallenge := hexutils.HexToBytes("f0467f908e5ca23f")
|
|
_, err = NewSession(keys, resp, hostChallenge)
|
|
assert.NoError(t, err)
|
|
}
|
|
|
|
func TestNewSession_BadResponse(t *testing.T) {
|
|
raw := hexutils.HexToBytes("01026982")
|
|
resp, err := apdu.ParseResponse(raw)
|
|
assert.NoError(t, err)
|
|
_, err = NewSession(&SCP02Keys{}, resp, []byte{})
|
|
assert.Error(t, err)
|
|
|
|
raw = hexutils.HexToBytes("01026983")
|
|
resp, err = apdu.ParseResponse(raw)
|
|
assert.NoError(t, err)
|
|
_, err = NewSession(&SCP02Keys{}, resp, []byte{})
|
|
assert.Error(t, err)
|
|
|
|
// bad data length
|
|
raw = hexutils.HexToBytes("01029000")
|
|
resp, err = apdu.ParseResponse(raw)
|
|
assert.NoError(t, err)
|
|
_, err = NewSession(&SCP02Keys{}, resp, []byte{})
|
|
assert.Error(t, err)
|
|
}
|