diff --git a/README.md b/README.md index 1645957..4f5a2cc 100644 --- a/README.md +++ b/README.md @@ -43,23 +43,28 @@ SPDX-License-Identifier: Apache-2.0 - [x] Public Key URL - [x] Login data - [x] Private data - - [ ] User interaction flag + - [x] User interaction flag + - [x] Password status - [ ] Key Import - [x] AES - - [ ] RSA - - [ ] EC + - [x] RSA + - [x] ECDSA + - [x] EdDSA - [x] 7.2.9 `GET RESPONSE` - [ ] 7.2.10 `PSO: COMPUTE DIGITAL SIGNATURE` - [ ] RSA - - [ ] ECDSA - - [ ] Attestation + - [x] ECDSA + - [x] EdDSA - [ ] 7.2.11 `PSO: DECIPHER` - [x] AES - [ ] RSA - - [ ] ECDH + - [x] ECDH + - [x] EdDSA - [ ] 7.2.12 `PSO: ENCIPHER` - [x] AES - [ ] 7.2.13 `INTERNAL AUTHENTICATE` + - [ ] RSA + - [ ] ECDSA - [x] 7.2.14 `GENERATE ASYMMETRIC KEY PAIR` - [x] RSA - [x] Elliptic Curves @@ -69,6 +74,8 @@ SPDX-License-Identifier: Apache-2.0 - [x] 7.2.18 `MANAGE SECURITY ENVIRONMENT` - [x] Key Derivation Function (KDF) for `VERIFY` +- [ ] Attestation +- [ ] PIN Handler / Callback ### YubiKey extensions diff --git a/algs.go b/algs.go new file mode 100644 index 0000000..8f425e7 --- /dev/null +++ b/algs.go @@ -0,0 +1,146 @@ +// SPDX-FileCopyrightText: 2023 Steffen Vogel +// SPDX-License-Identifier: Apache-2.0 + +package openpgp + +import ( + "bytes" + "encoding/binary" + "fmt" + "reflect" +) + +type AlgorithmAttributes struct { + Algorithm AlgPubkey + ImportFormat ImportFormat + + // Relevant for RSA + LengthModulus int + LengthExponent int + + // Relevant for ECDSA/ECDH/EdDSA + OID []byte +} + +func (a AlgorithmAttributes) Compatible(b AlgorithmAttributes) bool { + if b.OID != nil { // EC + return bytes.Equal(a.OID, b.OID) + } + + return a.LengthModulus == b.LengthModulus // RSA +} + +func (a AlgorithmAttributes) Equal(b AlgorithmAttributes) bool { + return reflect.DeepEqual(a, b) +} + +func (a *AlgorithmAttributes) Decode(b []byte) error { + if len(b) < 1 { + return ErrInvalidLength + } + + a.Algorithm = AlgPubkey(b[0]) + + switch a.Algorithm { + case AlgPubkeyRSA: + if len(b) < 6 { + return ErrInvalidLength + } + + a.LengthModulus = int(binary.BigEndian.Uint16(b[1:])) + a.LengthExponent = int(binary.BigEndian.Uint16(b[3:])) + a.ImportFormat = ImportFormat(b[5]) + + case AlgPubkeyECDH, AlgPubkeyECDSA, AlgPubkeyEdDSA: + a.OID = b[1:] + + // Strip trailing import format byte if present + l := len(a.OID) + if ImportFormat(a.OID[l-1]) == ImportFormatECDSAStdWithPublicKey { + a.ImportFormat = ImportFormatECDSAStdWithPublicKey + a.OID = a.OID[:l-1] + } + + default: + return errUnmarshal + } + + return nil +} + +func (a AlgorithmAttributes) Encode() (b []byte) { + b = []byte{byte(a.Algorithm)} + + switch a.Algorithm { + case AlgPubkeyRSA: + b = binary.BigEndian.AppendUint16(b, uint16(a.LengthModulus)) + b = binary.BigEndian.AppendUint16(b, uint16(a.LengthExponent)) + b = append(b, byte(a.ImportFormat)) + + case AlgPubkeyECDH, AlgPubkeyECDSA, AlgPubkeyEdDSA: + b = append(b, a.OID...) + if a.ImportFormat == ImportFormatECDSAStdWithPublicKey { + b = append(b, byte(ImportFormatECDSAStdWithPublicKey)) + } + + default: + } + + return b +} + +func (a AlgorithmAttributes) String() string { + switch a.Algorithm { + case AlgPubkeyRSAEncOnly, AlgPubkeyRSASignOnly, AlgPubkeyRSA: + return fmt.Sprintf("RSA-%d", a.LengthModulus) + + case AlgPubkeyECDH, AlgPubkeyECDSA, AlgPubkeyEdDSA: + return fmt.Sprintf("%s (%s)", a.Curve(), a.Algorithm) + + default: + return "" + } +} + +func (a AlgorithmAttributes) Curve() Curve { + switch { + case bytes.Equal(a.OID, oidANSIx9p256r1): + return CurveANSIx9p256r1 + case bytes.Equal(a.OID, oidANSIx9p384r1): + return CurveANSIx9p384r1 + case bytes.Equal(a.OID, oidANSIx9p521r1): + return CurveANSIx9p521r1 + + case bytes.Equal(a.OID, oidBrainpoolP256r1): + return CurveBrainpoolP256r1 + case bytes.Equal(a.OID, oidBrainpoolP384r1): + return CurveBrainpoolP384r1 + case bytes.Equal(a.OID, oidBrainpoolP512r1): + return CurveBrainpoolP512r1 + + case bytes.Equal(a.OID, oidSecp256k1): + return CurveSecp256k1 + + case bytes.Equal(a.OID, oidEd448): + return CurveEd448 + case bytes.Equal(a.OID, oidEd25519): + return CurveEd25519 + + case bytes.Equal(a.OID, oidX448): + return CurveX448 + case bytes.Equal(a.OID, oidX25519): + return CurveX25519 + } + + return CurveUnknown +} + +func EC(curve Curve) AlgorithmAttributes { + return curve.AlgAttrs() +} + +func RSA(bits int) AlgorithmAttributes { + return AlgorithmAttributes{ + LengthModulus: bits, + } +} diff --git a/auth.go b/auth.go index 5210220..34b5542 100644 --- a/auth.go +++ b/auth.go @@ -8,6 +8,7 @@ import ( "fmt" iso "cunicu.li/go-iso7816" + "cunicu.li/go-iso7816/encoding/tlv" ) // VerifyPassword attempts to unlock a given password. @@ -72,7 +73,7 @@ func (c *Card) ChangePassword(pwType byte, pwCurrent, pwNew string) error { } default: - return errUnsupported + return ErrUnsupported } _, err := send(c.tx, iso.InsChangeReferenceData, 0x00, pwType, []byte(pwCurrent+pwNew)) @@ -130,3 +131,38 @@ func (c *Card) SetRetryCounters(pw1, rc, pw3 byte) error { _, err := send(c.tx, insSetPINRetries, 0, 0, []byte{pw1, rc, pw3}) return err } + +func (c *Card) SetUserInteractionMode(op SecurityOperation, mode UserInteractionMode, feat GeneralFeatures) error { + uif := UIF{mode, feat} + return c.putData(tagUIFSign+tlv.Tag(op), uif.Encode()) +} + +type PasswordMode struct { + RequirePW1ForEachSignature bool + UsePINBlockFormat2ForPW1 bool +} + +func (c *Card) SetPasswordMode(mode PasswordMode) error { + sts, err := c.getData(tagPasswordStatus) + if err != nil { + return err + } + + if mode.RequirePW1ForEachSignature { + sts[0] = 0 + } else { + sts[0] = 1 + } + + if mode.UsePINBlockFormat2ForPW1 { + if c.Capabilities.Pin2BlockFormat == 0 { + return fmt.Errorf("PIN block 2 format is %w", ErrUnsupported) + } + + sts[1] |= 0b1 + } else { + sts[1] &= 0b1 + } + + return c.putData(tagPasswordStatus, sts) +} diff --git a/auth_kdf.go b/auth_kdf.go index bd4e83b..93c1456 100644 --- a/auth_kdf.go +++ b/auth_kdf.go @@ -17,9 +17,9 @@ import ( var ( errIterationsTooSmall = errors.New("iterations too small") - errUnsupportedKDFAlg = fmt.Errorf("%w algorithm", errUnsupported) - errUnsupportedKDFHashAlg = fmt.Errorf("%w hash algorithm", errUnsupported) - errUnsupportedPasswordLengthsTooShortForKDF = fmt.Errorf("%w: password lengths are too small for KDF", errUnsupported) + errUnsupportedKDFAlg = fmt.Errorf("%w algorithm", ErrUnsupported) + errUnsupportedKDFHashAlg = fmt.Errorf("%w hash algorithm", ErrUnsupported) + errUnsupportedPasswordLengthsTooShortForKDF = fmt.Errorf("%w: password lengths are too small for KDF", ErrUnsupported) errMissingKDFSalt = errors.New("missing salt") ) @@ -48,7 +48,7 @@ func (c *Card) GetKDF() (k *KDF, err error) { func (c *Card) SetupKDF(alg AlgKDF, iterations int, pw1, pw3 string) (err error) { // Check if KDF is supported if c.Capabilities.Flags&CapKDF == 0 { - return fmt.Errorf("key derived passwords are %w", errUnsupported) + return fmt.Errorf("key derived passwords are %w", ErrUnsupported) } if min(c.PasswordStatus.LengthPW1, c.PasswordStatus.LengthRC, c.PasswordStatus.LengthPW3) < 64 { @@ -84,7 +84,7 @@ func (c *Card) SetupKDF(alg AlgKDF, iterations int, pw1, pw3 string) (err error) } default: - return errUnsupported + return ErrUnsupported } if kdf.InitialHashPW1, err = kdf.DerivePassword(PW1, DefaultPW1); err != nil { diff --git a/card.go b/card.go index edae7bb..135d0ce 100644 --- a/card.go +++ b/card.go @@ -230,11 +230,11 @@ func (c *Card) GetCardholderCertificates() ([][]byte, error) { return c.getAllData(tagCerts) } -func (c *Card) GetCardholderCertificate(slot Slot) ([]byte, error) { - order := []Slot{SlotAuthn, SlotDecrypt, SlotSign} - index := slices.Index(order, slot) +func (c *Card) GetCardholderCertificate(key KeyRef) ([]byte, error) { + order := []KeyRef{KeyAuthn, KeyDecrypt, KeySign} + index := slices.Index(order, key) if index < 0 { - return nil, errUnsupported + return nil, ErrUnsupported } return c.getDataIndex(tagCerts, index) @@ -250,10 +250,8 @@ func (c *Card) GetSignatureCounter() (int, error) { func (c *Card) PrivateData(index int) ([]byte, error) { if c.Capabilities.Flags&CapPrivateDO == 0 { - return nil, errUnsupported - } - - if index < 0 || index > 3 { + return nil, ErrUnsupported + } else if index < 0 || index > 3 { return nil, errInvalidIndex } @@ -270,7 +268,12 @@ func (c *Card) SetName(name string) error { } func (c *Card) SetLoginData(login string) error { - return c.putData(tagLoginData, []byte(login)) + b := []byte(login) + if maxObjLen := int(c.Capabilities.MaxLenSpecialDO); len(b) > maxObjLen { + return fmt.Errorf("%w: max length is %d Bytes", ErrInvalidLength, maxObjLen) + } + + return c.putData(tagLoginData, b) } func (c *Card) SetLanguage(lang string) error { @@ -286,15 +289,21 @@ func (c *Card) SetSex(sex Sex) error { } func (c *Card) SetPublicKeyURL(url *url.URL) error { - return c.putData(tagPublicKeyURL, []byte(url.String())) + b := []byte(url.String()) + + if maxObjLen := int(c.Capabilities.MaxLenSpecialDO); len(b) > maxObjLen { + return fmt.Errorf("%w: max length is %d Bytes", ErrInvalidLength, maxObjLen) + } + + return c.putData(tagPublicKeyURL, b) } func (c *Card) SetPrivateData(index int, b []byte) error { if c.Capabilities.Flags&CapPrivateDO == 0 { - return errUnsupported - } - - if index < 0 || index > 3 { + return ErrUnsupported + } else if maxObjLen := int(c.Capabilities.MaxLenSpecialDO); len(b) > maxObjLen { + return fmt.Errorf("%w: max length is %d Bytes", ErrInvalidLength, maxObjLen) + } else if index < 0 || index > 3 { return errInvalidIndex } @@ -307,7 +316,7 @@ func (c *Card) SetPrivateData(index int, b []byte) error { // See: OpenPGP Smart Card Application - Section 7.2.15 GET CHALLENGE func (c *Card) Challenge(cnt int) ([]byte, error) { if c.Capabilities.Flags&CapGetChallenge == 0 { - return nil, errUnsupported + return nil, ErrUnsupported } else if cnt > int(c.Capabilities.MaxLenChallenge) { return nil, errChallengeTooLong } @@ -326,7 +335,7 @@ func (c *Card) Challenge(cnt int) ([]byte, error) { func (c *Card) FactoryReset() error { switch LifeCycleStatus(c.HistoricalBytes.LifeCycleStatus) { case LifeCycleStatusNoInfo: - return errUnsupported + return ErrUnsupported case LifeCycleStatusInitialized: @@ -351,22 +360,22 @@ func (c *Card) FactoryReset() error { } // See: OpenPGP Smart Card Application - Section 7.2.18 MANAGE SECURITY ENVIRONMENT -func (c *Card) ManageSecurityEnvironment(op SecurityOperation, slot Slot) error { +func (c *Card) ManageSecurityEnvironment(op SecurityOperation, key KeyRef) error { if c.Capabilities.CommandMSE == 0 { - return errUnsupported + return ErrUnsupported } - var p2 byte + var opRef KeyRef switch op { case SecurityOperationDecrypt: - p2 = 0xb8 + opRef = KeyDecrypt case SecurityOperationAuthenticate: - p2 = 0xa4 + opRef = KeyAuthn default: - return fmt.Errorf("%w: security operation", errUnsupported) + return fmt.Errorf("%w: security operation", ErrUnsupported) } - _, err := send(c.tx, iso.InsManageSecurityEnvironment, 0x41, p2, slot.crt()) + _, err := sendTLV(c.tx, iso.InsManageSecurityEnvironment, 0x41, byte(opRef.tag()), key.crt()) return err } @@ -456,11 +465,17 @@ func (c *Card) putData(t tlv.Tag, data []byte) error { return err } +// See: OpenPGP Smart Card Application - Section 7.2.8 PUT DATA +func (c *Card) putDataTLV(tv tlv.TagValue) error { + _, err := sendTLV(c.tx, iso.InsPutDataOdd, 0x3f, 0xff, tv) + return err +} + // See: OpenPGP Smart Card Application - Section 7.2.17 ACTIVATE FILE func (c *Card) activate() error { switch LifeCycleStatus(c.HistoricalBytes.LifeCycleStatus) { case LifeCycleStatusNoInfo: - return errUnsupported + return ErrUnsupported case LifeCycleStatusOperational: return errAlreadyInitialized @@ -475,7 +490,7 @@ func (c *Card) activate() error { // See: OpenPGP Smart Card Application - Section 7.2.16 TERMINATE DF func (c *Card) terminate() error { if c.HistoricalBytes.LifeCycleStatus == byte(LifeCycleStatusNoInfo) { - return errUnsupported + return ErrUnsupported } for { @@ -525,7 +540,7 @@ func send(tx *iso.Transaction, ins iso.Instruction, p1, p2 byte, data []byte) ([ return sendNe(tx, ins, p1, p2, data, 0) } -//nolint:unused +//nolint:unparam func sendTLV(tx *iso.Transaction, ins iso.Instruction, p1, p2 byte, value tlv.TagValue) ([]byte, error) { data, err := tlv.EncodeBER(value) if err != nil { @@ -534,13 +549,3 @@ func sendTLV(tx *iso.Transaction, ins iso.Instruction, p1, p2 byte, value tlv.Ta return send(tx, ins, p1, p2, data) } - -//nolint:unused -func sendTLVNe(tx *iso.Transaction, ins iso.Instruction, p1, p2 byte, value tlv.TagValue, ne int) ([]byte, error) { - data, err := tlv.EncodeBER(value) - if err != nil { - return nil, err - } - - return sendNe(tx, ins, p1, p2, data, ne) -} diff --git a/card_test.go b/card_test.go index 9f402ae..79f99a4 100644 --- a/card_test.go +++ b/card_test.go @@ -207,7 +207,7 @@ func TestSignatureCounter(t *testing.T) { }) } -func TestGetCardholderCertificates(t *testing.T) { +func TestCardholderCertificates(t *testing.T) { withCard(t, false, func(t *testing.T, c *pgp.Card) { require := require.New(t) @@ -218,13 +218,13 @@ func TestGetCardholderCertificates(t *testing.T) { }) } -func TestGetCardholderCertificate(t *testing.T) { - for _, slot := range []pgp.Slot{pgp.SlotAuthn, pgp.SlotDecrypt, pgp.SlotSign} { - t.Run(slot.String(), func(t *testing.T) { +func TestCardholderCertificate(t *testing.T) { + for _, key := range []pgp.KeyRef{pgp.KeyAuthn, pgp.KeyDecrypt, pgp.KeySign} { + t.Run(key.String(), func(t *testing.T) { withCard(t, false, func(t *testing.T, c *pgp.Card) { require := require.New(t) - chCert, err := c.GetCardholderCertificate(slot) + chCert, err := c.GetCardholderCertificate(key) require.NoError(err) t.Log(spew.Sdump(chCert)) diff --git a/constants.go b/constants.go index 1c0c48d..10ddd0f 100644 --- a/constants.go +++ b/constants.go @@ -5,6 +5,9 @@ package openpgp import ( + "crypto/ecdh" + "crypto/elliptic" + iso "cunicu.li/go-iso7816" "cunicu.li/go-iso7816/encoding/tlv" ) @@ -128,87 +131,94 @@ func (s Sex) String() string { return "" } -type Slot byte +type KeyRef byte const ( - SlotSign Slot = iota - SlotDecrypt - SlotAuthn - SlotAttest + KeySign KeyRef = 0x01 + KeyDecrypt KeyRef = 0x02 + KeyAuthn KeyRef = 0x03 + KeyAttest KeyRef = 0x81 ) -func (s Slot) String() string { - switch s { - case SlotSign: +func (r KeyRef) String() string { + switch r { + case KeySign: return "sign" - case SlotDecrypt: + case KeyDecrypt: return "decrypt" - case SlotAuthn: + case KeyAuthn: return "authenticate" - case SlotAttest: + case KeyAttest: return "attest" default: return unknown } } -func (s Slot) tagAlgAttrs() tlv.Tag { - switch s { - case SlotSign: +func (r KeyRef) tagAlgAttrs() tlv.Tag { + switch r { + case KeySign: return tagAlgAttrsSign - case SlotDecrypt: + case KeyDecrypt: return tagAlgAttrsDecrypt - case SlotAuthn: + case KeyAuthn: return tagAlgAttrsAuthn - case SlotAttest: + case KeyAttest: return tagAlgAttrsAttest default: return 0 } } -func (s Slot) tagGenTime() tlv.Tag { - switch s { - case SlotSign: +func (r KeyRef) tagGenTime() tlv.Tag { + switch r { + case KeySign: return tagGenTimeSign - case SlotDecrypt: + case KeyDecrypt: return tagGenTimeDecrypt - case SlotAuthn: + case KeyAuthn: return tagGenTimeAuthn - case SlotAttest: + case KeyAttest: return tagGenTimeAttest default: return 0 } } -func (s Slot) tagFpr() tlv.Tag { - switch s { - case SlotSign: +func (r KeyRef) tagFpr() tlv.Tag { + switch r { + case KeySign: return tagFprSign - case SlotDecrypt: + case KeyDecrypt: return tagFprDecrypt - case SlotAuthn: + case KeyAuthn: return tagFprAuthn - case SlotAttest: + case KeyAttest: return tagFprAttest default: return 0 } } -// crt returns the 7.2.14 GENERATE ASYMMETRIC KEY PAIR of the respective slot +// crt returns the control reference template // See: OpenPGP Smart Card Application - Section 7.2.14 GENERATE ASYMMETRIC KEY PAIR -func (s Slot) crt() []byte { - switch s { - case SlotSign: - return []byte{0xB6, 0x03, 0x84, 0x01, 0x01} - case SlotDecrypt: - return []byte{0xB8, 0x03, 0x84, 0x01, 0x02} - case SlotAuthn: - return []byte{0xA4, 0x03, 0x84, 0x01, 0x03} +func (r KeyRef) crt() tlv.TagValue { + return tlv.TagValue{ + Tag: r.tag(), + Value: []byte{0x84, 0x01, byte(r)}, + } +} + +func (r KeyRef) tag() tlv.Tag { + switch r { + case KeySign, KeyAttest: + return tlv.Tag(0xB6) + case KeyDecrypt: + return tlv.Tag(0xB8) + case KeyAuthn: + return tlv.Tag(0xA4) default: - return nil + return 0 } } @@ -237,6 +247,7 @@ const ( SecurityOperationSign SecurityOperation = iota SecurityOperationAuthenticate // Authentication SecurityOperationDecrypt // Confidentiality + SecurityOperationAttest ) type Curve byte @@ -290,6 +301,104 @@ func (c Curve) String() string { } } +func (c Curve) ECDH() ecdh.Curve { + switch c { + case CurveANSIx9p256r1: + return ecdh.P256() + case CurveANSIx9p384r1: + return ecdh.P384() + case CurveANSIx9p521r1: + return ecdh.P521() + case CurveX25519: + return ecdh.X25519() + default: + return nil // TODO: panic here? + } +} + +func (c Curve) ECDSA() elliptic.Curve { + switch c { + case CurveANSIx9p256r1: + return elliptic.P256() + case CurveANSIx9p384r1: + return elliptic.P384() + case CurveANSIx9p521r1: + return elliptic.P521() + default: + return nil // TODO: panic here? + } +} + +func (c Curve) OID() []byte { + switch c { + case CurveANSIx9p256r1: + return oidANSIx9p256r1 + case CurveANSIx9p384r1: + return oidANSIx9p384r1 + case CurveANSIx9p521r1: + return oidANSIx9p521r1 + + case CurveBrainpoolP256r1: + return oidBrainpoolP256r1 + case CurveBrainpoolP384r1: + return oidBrainpoolP384r1 + case CurveBrainpoolP512r1: + return oidBrainpoolP512r1 + + case CurveSecp256k1: + return oidSecp256k1 + + case CurveX448: + return oidX448 + case CurveX25519: + return oidX25519 + + case CurveEd448: + return oidEd448 + case CurveEd25519: + return oidEd25519 + + case CurveUnknown: + return nil // TODO: panic here? + } + + return nil +} + +func (c Curve) AlgAttrs() AlgorithmAttributes { + return AlgorithmAttributes{ + OID: c.OID(), + } +} + +func curveFromECDSA(c elliptic.Curve) Curve { + switch c { + case elliptic.P256(): + return CurveANSIx9p256r1 + case elliptic.P384(): + return CurveANSIx9p384r1 + case elliptic.P521(): + return CurveANSIx9p521r1 + } + + return CurveUnknown +} + +func curveFromECDH(c ecdh.Curve) Curve { + switch c { + case ecdh.P256(): + return CurveANSIx9p256r1 + case ecdh.P384(): + return CurveANSIx9p384r1 + case ecdh.P521(): + return CurveANSIx9p521r1 + case ecdh.X25519(): + return CurveX25519 + } + + return CurveUnknown +} + type oid []byte var ( @@ -308,26 +417,13 @@ var ( oidEd25519 = []byte{0x2B, 0x06, 0x01, 0x04, 0x01, 0xDA, 0x47, 0x0F, 0x01} oidEd448 = []byte{0x2B, 0x65, 0x71} - - oidByCurve = map[Curve]oid{ - CurveANSIx9p256r1: oidANSIx9p256r1, - CurveANSIx9p384r1: oidANSIx9p384r1, - CurveANSIx9p521r1: oidANSIx9p521r1, - CurveBrainpoolP256r1: oidBrainpoolP256r1, - CurveBrainpoolP384r1: oidBrainpoolP384r1, - CurveBrainpoolP512r1: oidBrainpoolP512r1, - CurveX25519: oidX25519, - CurveX448: oidX448, - CurveEd25519: oidEd25519, - CurveEd448: oidEd448, - CurveSecp256k1: oidSecp256k1, - } ) const ( - PW1 byte = 0x81 // User PIN (PSO:CDS command only) - RC byte = 0x82 // Resetting code - PW3 byte = 0x83 // Admin PIN + PW1 byte = 0x81 // User PIN (PSO:CDS command only) + PW1forPSO byte = 0x82 // User PIN for PSO: DECIPHER + RC byte = 0x82 // Resetting code + PW3 byte = 0x83 // Admin PIN ) var ( @@ -518,7 +614,7 @@ const ( tagExtendedHeaderList tlv.Tag = 0x4d // For key import including the following sub-tags tagPrivateKeyTemplate tlv.Tag = 0x7f48 - tagPrivateKey tlv.Tag = 0x4f48 + tagPrivateKey tlv.Tag = 0x5f48 // Constructed DOs diff --git a/error.go b/error.go index e0ed4d3..72cc418 100644 --- a/error.go +++ b/error.go @@ -12,18 +12,19 @@ import ( var ( - // errMismatchingAlgorithms is returned when a cryptographic operation + // ErrMismatchingAlgorithms is returned when a cryptographic operation // is given keys using different algorithms. - errMismatchingAlgorithms = errors.New("mismatching key algorithms") + ErrMismatchingAlgorithms = errors.New("mismatching key algorithms") ErrInvalidLength = errors.New("invalid length") errMissingTag = errors.New("missing tag") errOutOfMemory = errors.New("out of memory (basic card)") errSecurity = errors.New("security related issue") - errUnsupported = errors.New("unsupported") - errUnsupportedCurve = fmt.Errorf("%w curve", errUnsupported) + ErrUnsupported = errors.New("unsupported") + ErrUnsupportedKeyType = fmt.Errorf("%w key attributes", ErrUnsupported) + ErrUnsupportedCurve = fmt.Errorf("%w curve", ErrUnsupported) errUnmarshal = errors.New("failed to unmarshal") errKeyNotPresent = errors.New("key not present") - errAlgAttrsNotChangeable = errors.New("algorithm attributes are not changeable") + ErrAlgAttrsNotChangeable = errors.New("algorithm attributes are not changeable") errChallengeTooLong = fmt.Errorf("%w: challenge too long", ErrInvalidLength) ) diff --git a/key.go b/key.go index 29f634b..2667833 100644 --- a/key.go +++ b/key.go @@ -5,78 +5,292 @@ package openpgp import ( "crypto" + "crypto/ecdh" + "crypto/ecdsa" + "crypto/ed25519" + "crypto/rsa" "encoding/binary" "fmt" "math/big" - "math/bits" + "time" - iso "cunicu.li/go-iso7816" "cunicu.li/go-iso7816/encoding/tlv" ) +var ErrPubkeyRequired = fmt.Errorf("missing public key: not present on card") + type privateKey interface { - Fingerprint() []byte + fingerprint(creationTime time.Time) []byte } -type ECDHKey interface { - SharedKey(peer ECPublicKey) ([]byte, error) +func cpktTag(tag tlv.Tag, sz int) []byte { + b, _ := tag.MarshalBER() + bl, _ := tlv.EncodeLengthBER(sz) + return append(b, bl...) } -func (c *Card) ImportKey(_ /*slot*/ Slot, _ /*private*/ crypto.PrivateKey) error { - return errUnsupported +func (c *Card) ImportKey(key KeyRef, skImport crypto.PrivateKey) (crypto.PrivateKey, error) { + if c.Capabilities.Flags&CapKeyImport == 0 { + return nil, ErrUnsupported + } + + attrs, err := c.algorithmAttributesFromPrivateKey(skImport) + if err != nil { + return nil, fmt.Errorf("failed to detect private key attributes: %w", err) + } + + if attrs, err = c.changeAlgorithmAttributes(key, attrs); err != nil { + return nil, fmt.Errorf("failed to change algorithm attributes: %w", err) + } + + cpkt := tlv.New(tagPrivateKeyTemplate) + cpk := tlv.New(tagPrivateKey) + + // Some helpers + appendBytes := func(t tlv.Tag, b []byte) { + cpkt.Append(cpktTag(t, len(b))) + cpk.Append(b) + } + + appendBigInt := func(t tlv.Tag, l int, i *big.Int) { + b := make([]byte, l) + i.FillBytes(b) + + cpkt.Append(cpktTag(t, l)) + cpk.Append(b) + } + + appendInt := func(t tlv.Tag, l int, i int) { + appendBigInt(t, l, big.NewInt(int64(i))) + } + + var sk privateKey + switch skImport := skImport.(type) { + case *rsa.PrivateKey: + if attrs.ImportFormat == ImportFormatRSAStd || attrs.ImportFormat == ImportFormatRSACRT { + appendInt(0x91, (attrs.LengthExponent+7)/8, skImport.PublicKey.E) // Public exponent: e + appendBigInt(0x92, attrs.LengthModulus/(2*8), skImport.Primes[0]) // Prime1: p + appendBigInt(0x93, attrs.LengthModulus/(2*8), skImport.Primes[1]) // Prime2: q + } + + if attrs.ImportFormat == ImportFormatRSACRT { + appendBigInt(0x94, attrs.LengthModulus/(2*8), skImport.Precomputed.Qinv) // PQ: 1/q mod p + appendBigInt(0x95, attrs.LengthModulus/(2*8), skImport.Precomputed.Dp) // DP1: d mod (p - 1) + appendBigInt(0x96, attrs.LengthModulus/(2*8), skImport.Precomputed.Dq) // // DQ1: d mod (q - 1) + } + + if attrs.ImportFormat == ImportFormatRSAStdWithModulus || attrs.ImportFormat == ImportFormatRSACRTWithModulus { + appendBigInt(0x97, attrs.LengthModulus, skImport.N) // Modulus: n + } + + sk = &PrivateKeyRSA{ + card: c, + lenModulus: skImport.Size() * 8, + key: key, + public: &skImport.PublicKey, + } + + case *ecdsa.PrivateKey: + skECDH, err := skImport.ECDH() + if err != nil { + return nil, fmt.Errorf("failed to convert private key: %w", err) + } + + appendBytes(0x92, skECDH.Bytes()) + + if attrs.ImportFormat == ImportFormatECDSAStdWithPublicKey { + pkECDH, err := skImport.PublicKey.ECDH() + if err != nil { + return nil, fmt.Errorf("failed to get public key: %w", err) + } + + appendBytes(0x99, pkECDH.Bytes()) + } + + sk = &PrivateKeyECDSA{ + card: c, + curve: attrs.Curve(), + key: key, + public: &skImport.PublicKey, + } + + case *ecdh.PrivateKey: + appendBytes(0x92, skImport.Bytes()) + + if attrs.ImportFormat == ImportFormatECDSAStdWithPublicKey { + appendBytes(0x99, skImport.PublicKey().Bytes()) + } + + sk = &PrivateKeyECDH{ + card: c, + curve: attrs.Curve(), + key: key, + public: skImport.PublicKey(), + } + + case ed25519.PrivateKey: + appendBytes(0x92, []byte(skImport[:32])) + + pk, ok := skImport.Public().(ed25519.PublicKey) + if !ok { + panic("broken key") + } + + if attrs.ImportFormat == ImportFormatECDSAStdWithPublicKey { + appendBytes(0x99, []byte(pk)) + } + + sk = &PrivateKeyEdDSA{ + card: c, + key: key, + public: pk, + } + + default: + return nil, ErrUnsupportedKeyType + } + + if err := c.putDataTLV(tlv.New(tagExtendedHeaderList, key.crt(), cpkt, cpk)); err != nil { + return nil, fmt.Errorf("failed to import key: %w", err) + } + + if err := c.updateKeyMetadata(key, sk); err != nil { + return nil, fmt.Errorf("failed to update key metadata: %w", err) + } + + return sk, nil } -func (c *Card) GenerateKey(slot Slot, attrs AlgorithmAttributes) (crypto.PrivateKey, error) { - if err := c.changeAlgAttrs(slot, attrs); err != nil { +func (c *Card) GenerateKey(key KeyRef, attrs AlgorithmAttributes) (crypto.PrivateKey, error) { + if _, err := c.changeAlgorithmAttributes(key, attrs); err != nil { return nil, fmt.Errorf("failed to change algorithm attributes: %w", err) } - sk, err := c.generateAsymmetricKeyPair(slot, true) + sk, err := c.generateAsymmetricKeyPair(key, true) if err != nil { return nil, err } - i := &c.Keys[slot] + if err := c.updateKeyMetadata(key, sk); err != nil { + return nil, fmt.Errorf("failed to update key metadata: %w", err) + } + + return sk, nil +} - i.Status = StatusKeyGenerated - i.GenerationTime = c.Clock() - i.Fingerprint = sk.Fingerprint() +func (c *Card) updateKeyMetadata(key KeyRef, sk privateKey) error { + generationTime := c.Clock() ts := make([]byte, 4) - binary.BigEndian.PutUint32(ts, uint32(i.GenerationTime.Unix())) + binary.BigEndian.PutUint32(ts, uint32(generationTime.Unix())) - if err := c.putData(slot.tagGenTime(), ts); err != nil { - return nil, fmt.Errorf("failed to store key generation time: %w", err) + if err := c.putData(key.tagGenTime(), ts); err != nil { + return fmt.Errorf("failed to store key generation time: %w", err) } - if err := c.putData(slot.tagFpr(), i.Fingerprint); err != nil { - return nil, fmt.Errorf("failed to store key fingerprint: %w", err) + if err := c.putData(key.tagFpr(), sk.fingerprint(generationTime)); err != nil { + return fmt.Errorf("failed to store key fingerprint: %w", err) } - switch sk := sk.(type) { - case *rsaPrivateKey: - sk.info = *i - case *ecdhPrivateKey: - sk.info = *i + if _, err := c.GetApplicationRelatedData(); err != nil { + return fmt.Errorf("failed to get updated metadata: %w", err) } - return sk, nil + return nil } -func (c *Card) PrivateKey(slot Slot) (crypto.PrivateKey, error) { - return c.generateAsymmetricKeyPair(slot, false) +func (c *Card) PrivateKey(key KeyRef, pkHint crypto.PublicKey) (crypto.PrivateKey, error) { + attrs := c.Keys[key].AlgAttrs + + if sk, err := c.generateAsymmetricKeyPair(key, false); err == nil { + return sk, nil + } else if pkHint == nil { + // We failed to retrieve a public key from the card. + // Lets try to use the hint and fail if none has been provided. + return nil, ErrPubkeyRequired + } + + switch attrs.Algorithm { + case AlgPubkeyRSA: + pk, ok := pkHint.(*rsa.PublicKey) + if !ok { + return nil, fmt.Errorf("%w: %T. Must be an *rsa.PublicKey", ErrUnsupportedKeyType, pkHint) + } + + return &PrivateKeyRSA{ + card: c, + lenModulus: attrs.LengthModulus, + key: key, + public: pk, + }, nil + + case AlgPubkeyECDH: + pk, ok := pkHint.(*ecdh.PublicKey) + if !ok { + return nil, fmt.Errorf("%w: %T. Must be an *ecdh.PublicKey", ErrUnsupportedKeyType, pkHint) + } + + curve := curveFromECDH(pk.Curve()) + if curve == CurveUnknown { + return nil, ErrUnsupportedCurve + } + + return &PrivateKeyECDH{ + card: c, + curve: curve, + key: key, + public: pk, + }, nil + + case AlgPubkeyECDSA: + pk, ok := pkHint.(*ecdsa.PublicKey) + if !ok { + return nil, fmt.Errorf("%w: %T. Must be an *ecdsa.PublicKey", ErrUnsupportedKeyType, pkHint) + } + + curve := curveFromECDSA(pk.Curve) + if curve == CurveUnknown { + return nil, ErrUnsupportedCurve + } + + return &PrivateKeyECDSA{ + card: c, + curve: curve, + public: pk, + key: key, + }, nil + + case AlgPubkeyEdDSA: + pk, ok := pkHint.(ed25519.PublicKey) + if !ok { + return nil, fmt.Errorf("%w: %T. Must be edd25519.PublicKey", ErrUnsupportedKeyType, pkHint) + } + + return &PrivateKeyEdDSA{ + card: c, + public: pk, + key: key, + }, nil + + default: + return nil, fmt.Errorf("%w: %T", ErrUnsupportedKeyType, pkHint) + } } -func (c *Card) AlgorithmAttributes(slot Slot) (attrs AlgorithmAttributes, err error) { +// AlgorithmAttributes returns the currently configured +// algorithm attributes for the given key. +func (c *Card) AlgorithmAttributes(key KeyRef) (attrs AlgorithmAttributes, err error) { if c.ApplicationRelated, err = c.GetApplicationRelatedData(); err != nil { return attrs, err } - return c.Keys[slot].AlgAttrs, nil + return c.Keys[key].AlgAttrs, nil } -func (c *Card) SupportedAlgorithms() (map[Slot][]AlgorithmAttributes, error) { - algs := map[Slot][]AlgorithmAttributes{} +// SupportedAlgorithms returns the list of supported algorithms +// by each key type. +func (c *Card) SupportedAlgorithms() (map[KeyRef][]AlgorithmAttributes, error) { + algs := map[KeyRef][]AlgorithmAttributes{} algInfo, err := c.getData(tagAlgInfo) if err != nil { @@ -99,16 +313,16 @@ func (c *Card) SupportedAlgorithms() (map[Slot][]AlgorithmAttributes, error) { } for _, tv := range tvs { - var slot Slot + var key KeyRef switch tv.Tag { case tagAlgAttrsSign: - slot = SlotSign + key = KeySign case tagAlgAttrsDecrypt: - slot = SlotDecrypt + key = KeyDecrypt case tagAlgAttrsAuthn: - slot = SlotAuthn + key = KeyAuthn case tagAlgAttrsAttest: - slot = SlotAttest + key = KeyAttest } var algAttrs AlgorithmAttributes @@ -116,7 +330,7 @@ func (c *Card) SupportedAlgorithms() (map[Slot][]AlgorithmAttributes, error) { return nil, errUnmarshal } - algs[slot] = append(algs[slot], algAttrs) + algs[key] = append(algs[key], algAttrs) } return algs, nil @@ -157,7 +371,7 @@ func (c *Card) algorithmAttributesFromPrivateKey(sk crypto.PrivateKey) (aa Algor aa.OID = CurveEd25519.OID() default: - return aa, ErrUnsupportedKeyAttrs + return aa, ErrUnsupportedKeyType } return aa, nil @@ -171,7 +385,7 @@ func (c *Card) findCompatibleAlgorithmAttributes(key KeyRef, attrs AlgorithmAttr as, ok := asByKey[key] if !ok { - return aa, ErrUnsupportedKeyAttrs + return aa, ErrUnsupportedKeyType } for _, a := range as { @@ -180,30 +394,38 @@ func (c *Card) findCompatibleAlgorithmAttributes(key KeyRef, attrs AlgorithmAttr } } - return aa, ErrUnsupportedKeyAttrs + return aa, ErrUnsupportedKeyType } -func (c *Card) changeAlgAttrs(slot Slot, attrs AlgorithmAttributes) error { - if c.Keys[slot].AlgAttrs.Equal(attrs) { - return nil +func (c *Card) changeAlgorithmAttributes(key KeyRef, attrsRequested AlgorithmAttributes) (a AlgorithmAttributes, err error) { + attrsNew, err := c.findCompatibleAlgorithmAttributes(key, attrsRequested) + if err != nil { + return a, err + } + + if attrsCurrent := c.Keys[key].AlgAttrs; attrsCurrent.Equal(attrsNew) { + return attrsCurrent, nil } else if c.Capabilities.Flags&CapAlgAttrsChangeable == 0 { - return fmt.Errorf("%w: %s key is fixed to %s", errAlgAttrsNotChangeable, slot, c.Keys[slot].AlgAttrs) + return attrsCurrent, fmt.Errorf("%w: %s key is fixed to %s", ErrAlgAttrsNotChangeable, key, attrsCurrent) } - if err := c.putData(slot.tagAlgAttrs(), attrs.Encode()); err != nil { - return err + if err := c.putData(key.tagAlgAttrs(), attrsNew.Encode()); err != nil { + return a, err } // Update attributes - c.Keys[slot].AlgAttrs = attrs + keyInfo := c.Keys[key] + keyInfo.AlgAttrs = attrsNew + c.Keys[key] = keyInfo - return nil + return attrsNew, nil } // See: OpenPGP Smart Card Application - Section 7.2.14 GENERATE ASYMMETRIC KEY PAIR -func (c *Card) generateAsymmetricKeyPair(slot Slot, generate bool) (privateKey, error) { - i := c.Keys[slot] - if !generate && i.Status == StatusKeyNotPresent { +func (c *Card) generateAsymmetricKeyPair(key KeyRef, generate bool) (privateKey, error) { + attrs := c.Keys[key].AlgAttrs + + if !generate && c.Keys[key].Status == KeyNotPresent { return nil, errKeyNotPresent } @@ -212,7 +434,12 @@ func (c *Card) generateAsymmetricKeyPair(slot Slot, generate bool) (privateKey, p1 = 0x80 } - resp, err := send(c.tx, insGenerateAsymmetricKeyPair, p1, 0, slot.crt()) + data, err := tlv.EncodeBER(key.crt()) + if err != nil { + return nil, fmt.Errorf("failed to encode CRT: %w", err) + } + + resp, err := send(c.tx, insGenerateAsymmetricKeyPair, p1, 0, data) if err != nil { return nil, err } @@ -222,74 +449,64 @@ func (c *Card) generateAsymmetricKeyPair(slot Slot, generate bool) (privateKey, return nil, fmt.Errorf("%w: %w", errUnmarshal, err) } - switch i.AlgAttrs.Algorithm { - case AlgPubkeyRSAEncOnly, AlgPubkeyRSASignOnly, AlgPubkeyRSA: - pk, err := decodeRSAPublic(tvs) + switch { + case attrs.Algorithm == AlgPubkeyRSA: + pk, err := decodePublicRSA(tvs) if err != nil { return nil, err } - return &rsaPrivateKey{ - card: c, - info: i, - public: pk, - slot: slot, + return &PrivateKeyRSA{ + card: c, + lenModulus: attrs.LengthModulus, + key: key, + public: pk, }, nil - case AlgPubkeyECDH, AlgPubkeyECDSA: - pk, err := decodeECPublic(tvs, i.AlgAttrs.Curve()) + case attrs.Algorithm == AlgPubkeyECDSA: + pk, err := decodePublicECDSA(tvs, attrs.Curve()) if err != nil { return nil, err } - return &ecdhPrivateKey{ + return &PrivateKeyECDSA{ card: c, - info: i, + curve: attrs.Curve(), public: pk, - slot: slot, + key: key, }, nil - default: - return nil, errUnsupported - } -} - -// Some helpers for creating algorithm attributes + case attrs.Algorithm == AlgPubkeyEdDSA && attrs.Curve() == CurveX25519: + fallthrough // Special-case -func RSA(bits int) AlgorithmAttributes { - return AlgorithmAttributes{ - Algorithm: AlgPubkeyRSA, - LengthModulus: uint16(bits), - LengthExponent: 17, - } -} + case attrs.Algorithm == AlgPubkeyECDH: + pk, err := decodePublicECDH(tvs, attrs.Curve()) + if err != nil { + return nil, err + } -func EC(curve Curve) AlgorithmAttributes { - return AlgorithmAttributes{ - Algorithm: AlgPubkeyECDH, - OID: oidByCurve[curve], - } -} + return &PrivateKeyECDH{ + card: c, + curve: attrs.Curve(), + public: pk, + key: key, + }, nil -func appendMPI(b []byte, i *big.Int) []byte { - b = append(b, byte(i.BitLen()>>8), byte(i.BitLen())) - b = append(b, i.Bytes()...) - return b -} + case attrs.Algorithm == AlgPubkeyEdDSA: + pk, err := decodePublicEdDSA(tvs) + if err != nil { + return nil, err + } -func appendBytesMPI(b, o []byte) []byte { - for len(o) != 0 && o[0] == 0 { - o = o[1:] // Strip leading zero bytes - } + return &PrivateKeyEdDSA{ + card: c, + public: pk, + key: key, + }, nil - var l uint16 - if len(o) > 0 { - l = 8*uint16(len(o)-1) + uint16(bits.Len8(o[0])) + default: + return nil, ErrUnsupported } - - b = append(b, byte(l>>8), byte(l)) - b = append(b, o...) - return b } func appendKDF(b []byte, h AlgHash, c AlgSymmetric) []byte { diff --git a/key_ecdh.go b/key_ecdh.go index 09e1ed0..481f849 100644 --- a/key_ecdh.go +++ b/key_ecdh.go @@ -9,59 +9,30 @@ import ( "crypto/sha1" //nolint:gosec "encoding/binary" "fmt" - "io" + "time" iso "cunicu.li/go-iso7816" "cunicu.li/go-iso7816/encoding/tlv" ) -var ( - _ crypto.Signer = (*ecdhPrivateKey)(nil) - _ crypto.Decrypter = (*ecdhPrivateKey)(nil) -) - -type ECPublicKey interface { - Curve() Curve - Bytes() []byte - Equal(x crypto.PublicKey) bool -} - -type ecdhPublicKey struct { - *ecdh.PublicKey -} - -func (k *ecdhPublicKey) Curve() Curve { - switch k.PublicKey.Curve() { - case ecdh.P256(): - return CurveANSIx9p256r1 - case ecdh.P384(): - return CurveANSIx9p384r1 - case ecdh.P521(): - return CurveANSIx9p521r1 - case ecdh.X25519(): - return CurveX25519 - default: - panic(errUnsupportedCurve) - } -} - -type ecdhPrivateKey struct { +type PrivateKeyECDH struct { card *Card - slot Slot - info KeyInfo - public *ecdhPublicKey + curve Curve + key KeyRef + public *ecdh.PublicKey } -func (k *ecdhPrivateKey) Public() crypto.PublicKey { +func (k *PrivateKeyECDH) Public() crypto.PublicKey { return k.public } -// SharedSecret performs a ECDH operation on the card. +// ECDH performs a Diffie-Hellman key agreement with the peer +// to produce a shared secret key. // // See: OpenPGP Smart Card Application - Section 7.2.11 PSO: DECIPHER -func (k *ecdhPrivateKey) SharedKey(peer ECPublicKey) ([]byte, error) { - if peer.Curve() != k.public.Curve() { - return nil, errMismatchingAlgorithms +func (k *PrivateKeyECDH) ECDH(peer *ecdh.PublicKey) ([]byte, error) { + if peer.Curve() != k.curve.ECDH() { + return nil, ErrMismatchingAlgorithms } data, err := tlv.EncodeBER( @@ -78,35 +49,21 @@ func (k *ecdhPrivateKey) SharedKey(peer ECPublicKey) ([]byte, error) { return send(k.card.tx, iso.InsPerformSecurityOperation, 0x80, 0x86, data) } -// See: OpenPGP Smart Card Application - Section 7.2.10 PSO: COMPUTE DIGITAL SIGNATURE -func (k *ecdhPrivateKey) Sign(_ io.Reader, _ /*digest*/ []byte, _ /*opts*/ crypto.SignerOpts) (signature []byte, err error) { - if c := k.public.Curve(); c == CurveX25519 || c == CurveX448 { - return nil, errUnsupported - } - - return nil, errUnsupported -} - -// See: OpenPGP Smart Card Application - Section 7.2.11 PSO: DECIPHER -func (k *ecdhPrivateKey) Decrypt(_ io.Reader, _ /*msg*/ []byte, _ /*opts*/ crypto.DecrypterOpts) (plaintext []byte, err error) { - return nil, errUnsupported -} - -func (k ecdhPrivateKey) Fingerprint() []byte { +func (k PrivateKeyECDH) fingerprint(creationTime time.Time) []byte { buf := []byte{ 0x99, // Prefix 0, 0, // Packet length 0x04, // Version 0, 0, 0, 0, // Creation timestamp - byte(k.info.AlgAttrs.Algorithm), + byte(AlgPubkeyECDH), } - buf = append(buf, k.info.AlgAttrs.OID...) + buf = append(buf, k.curve.OID()...) buf = appendBytesMPI(buf, k.public.Bytes()) buf = appendKDF(buf, AlgHashSHA512, AlgSymAES256) // same default values as Sequoia - binary.BigEndian.PutUint16(buf[1:], uint16(len(buf)-3)) // Fill in packet length - binary.BigEndian.PutUint32(buf[4:], uint32(k.info.GenerationTime.Unix())) // Fill in generation timestamp + binary.BigEndian.PutUint16(buf[1:], uint16(len(buf)-3)) // Fill in packet length + binary.BigEndian.PutUint32(buf[4:], uint32(creationTime.Unix())) // Fill in generation timestamp digest := sha1.New() //nolint:gosec digest.Write(buf) @@ -114,7 +71,7 @@ func (k ecdhPrivateKey) Fingerprint() []byte { return digest.Sum(nil) } -func decodeECPublic(tvs tlv.TagValues, curve Curve) (*ecdhPublicKey, error) { +func decodePublicECDH(tvs tlv.TagValues, curve Curve) (*ecdh.PublicKey, error) { _, tvs, ok := tvs.Get(tagPublicKey) if !ok { return nil, fmt.Errorf("%w: public key", errMissingTag) @@ -125,24 +82,10 @@ func decodeECPublic(tvs tlv.TagValues, curve Curve) (*ecdhPublicKey, error) { return nil, fmt.Errorf("%w: points", errMissingTag) } - var ecdhCurve ecdh.Curve - switch curve { - case CurveANSIx9p256r1: - ecdhCurve = ecdh.P256() - case CurveANSIx9p384r1: - ecdhCurve = ecdh.P384() - case CurveANSIx9p521r1: - ecdhCurve = ecdh.P521() - case CurveX25519: - ecdhCurve = ecdh.X25519() - default: - return nil, errUnsupportedCurve - } - - pk, err := ecdhCurve.NewPublicKey(p) - if err != nil { - return nil, err + curveECDH := curve.ECDH() + if curveECDH == nil { + return nil, ErrUnsupportedCurve } - return &ecdhPublicKey{pk}, nil + return curveECDH.NewPublicKey(p) } diff --git a/key_ecdh_test.go b/key_ecdh_test.go new file mode 100644 index 0000000..25030ea --- /dev/null +++ b/key_ecdh_test.go @@ -0,0 +1,133 @@ +// SPDX-FileCopyrightText: 2023 Steffen Vogel +// SPDX-License-Identifier: Apache-2.0 + +package openpgp_test + +import ( + "crypto/ecdh" + "errors" + "testing" + + "github.com/stretchr/testify/require" + + pgp "cunicu.li/go-openpgp-card" +) + +//nolint:gochecknoglobals +var ecdhCurves = []pgp.Curve{ + pgp.CurveANSIx9p256r1, + pgp.CurveANSIx9p384r1, + pgp.CurveANSIx9p521r1, + pgp.CurveX25519, +} + +func testGenerateKeyECDH(t *testing.T) { + for _, curve := range ecdhCurves { + t.Run(curve.String(), func(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + sk, err := c.GenerateKey(pgp.KeyDecrypt, pgp.EC(curve)) + if errors.Is(err, pgp.ErrUnsupportedKeyType) { + t.Skip(err) + } + + require.NoError((err)) + + skECDH, ok := sk.(*pgp.PrivateKeyECDH) + require.True(ok) + + pkECDH, ok := skECDH.Public().(*ecdh.PublicKey) + require.True(ok) + + require.Equal(curve.ECDH(), pkECDH.Curve()) + + ki := c.Keys[pgp.KeyDecrypt] + require.Equal(pgp.KeyDecrypt, ki.Reference) + require.Equal(pgp.KeyGenerated, ki.Status) + require.Equal(curve.OID(), ki.AlgAttrs.OID) + if curve == pgp.CurveX25519 { + require.Equal(pgp.AlgPubkeyEdDSA, ki.AlgAttrs.Algorithm) + } else { + require.Equal(pgp.AlgPubkeyECDH, ki.AlgAttrs.Algorithm) + } + }) + }) + } +} + +func testImportKeyECDH(t *testing.T) { + for _, curve := range ecdhCurves { + t.Run(curve.String(), func(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + skImport, err := curve.ECDH().GenerateKey(c.Rand) + require.NoError(err) + + sk, err := c.ImportKey(pgp.KeyDecrypt, skImport) + if errors.Is(err, pgp.ErrUnsupportedKeyType) { + t.Skip(err) + } + + require.NoError(err) + + skECDH, ok := sk.(*pgp.PrivateKeyECDH) + require.True(ok) + + pkECDH, ok := skECDH.Public().(*ecdh.PublicKey) + require.True(ok) + + require.Equal(curve.ECDH(), pkECDH.Curve()) + + ki := c.Keys[pgp.KeyDecrypt] + require.Equal(pgp.KeyDecrypt, ki.Reference) + require.Equal(pgp.KeyImported, ki.Status) + require.Equal(curve.OID(), ki.AlgAttrs.OID) + if curve == pgp.CurveX25519 { + require.Equal(pgp.AlgPubkeyEdDSA, ki.AlgAttrs.Algorithm) + } else { + require.Equal(pgp.AlgPubkeyECDH, ki.AlgAttrs.Algorithm) + } + }) + }) + } +} + +func TestSharedKeyECDH(t *testing.T) { + for _, curve := range ecdhCurves { + t.Run(curve.String(), func(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + skAlice, err := c.GenerateKey(pgp.KeyDecrypt, pgp.EC(curve)) + require.NoError(err) + + skAliceECDH, ok := skAlice.(*pgp.PrivateKeyECDH) + require.True(ok) + + pkAlice := skAliceECDH.Public() + pkAliceECDH, ok := pkAlice.(*ecdh.PublicKey) + require.True(ok) + + skBobECDH, err := curve.ECDH().GenerateKey(c.Rand) + require.NoError(err) + + pkBob := skBobECDH.Public() + pkBobECDH, ok := pkBob.(*ecdh.PublicKey) + require.True(ok) + + ss1, err := skBobECDH.ECDH(pkAliceECDH) + require.NoError(err) + + err = c.VerifyPassword(pgp.PW1forPSO, pgp.DefaultPW1) + require.NoError(err) + + ss2, err := skAliceECDH.ECDH(pkBobECDH) + require.NoError(err) + + require.Equal(ss1, ss2) + }) + }) + } +} diff --git a/key_ecdsa.go b/key_ecdsa.go new file mode 100644 index 0000000..f56ef0a --- /dev/null +++ b/key_ecdsa.go @@ -0,0 +1,133 @@ +// SPDX-FileCopyrightText: 2023 Steffen Vogel +// SPDX-License-Identifier: Apache-2.0 + +package openpgp + +import ( + "crypto" + "crypto/ecdh" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/sha1" //nolint:gosec + "encoding/asn1" + "encoding/binary" + "io" + "math/big" + "time" + + iso "cunicu.li/go-iso7816" + "cunicu.li/go-iso7816/encoding/tlv" +) + +var ( + _ crypto.Signer = (*PrivateKeyECDSA)(nil) + _ crypto.Decrypter = (*PrivateKeyECDSA)(nil) +) + +type PrivateKeyECDSA struct { + card *Card + curve Curve + key KeyRef + public *ecdsa.PublicKey +} + +func (k *PrivateKeyECDSA) Public() crypto.PublicKey { + return k.public +} + +// See: OpenPGP Smart Card Application - Section 7.2.10 PSO: COMPUTE DIGITAL SIGNATURE +func (k *PrivateKeyECDSA) Sign(_ io.Reader, digest []byte, opts crypto.SignerOpts) (signature []byte, err error) { + if l := len(digest); (opts != nil && l != opts.HashFunc().Size()) || (l != 32 && l != 48 && l != 64) { + return nil, ErrInvalidLength + } + + ds, err := send(k.card.tx, iso.InsPerformSecurityOperation, 0x9e, 0x9a, digest) + if err != nil { + return nil, err + } + + return asn1.Marshal(struct { + R, S *big.Int + }{ + R: new(big.Int).SetBytes(ds[:len(ds)/2]), + S: new(big.Int).SetBytes(ds[len(ds)/2:]), + }) +} + +// See: OpenPGP Smart Card Application - Section 7.2.11 PSO: DECIPHER +func (k *PrivateKeyECDSA) Decrypt(_ io.Reader, _ /*msg*/ []byte, _ /*opts*/ crypto.DecrypterOpts) (plaintext []byte, err error) { + return nil, ErrUnsupported +} + +func (k PrivateKeyECDSA) fingerprint(creationTime time.Time) []byte { + var alg AlgPubkey + switch { + case k.curve == CurveX25519: + alg = AlgPubkeyEdDSA + default: + alg = AlgPubkeyECDSA + } + + buf := []byte{ + 0x99, // Prefix + 0, 0, // Packet length + 0x04, // Version + 0, 0, 0, 0, // Creation timestamp + byte(alg), + } + + pk, err := k.public.ECDH() + if err != nil { + return nil + } + + buf = append(buf, k.curve.OID()...) + buf = appendBytesMPI(buf, pk.Bytes()) + buf = appendKDF(buf, AlgHashSHA512, AlgSymAES256) // same default values as Sequoia + + binary.BigEndian.PutUint16(buf[1:], uint16(len(buf)-3)) // Fill in packet length + binary.BigEndian.PutUint32(buf[4:], uint32(creationTime.Unix())) // Fill in generation timestamp + + digest := sha1.New() //nolint:gosec + digest.Write(buf) + + return digest.Sum(nil) +} + +func decodePublicECDSA(tvs tlv.TagValues, curve Curve) (*ecdsa.PublicKey, error) { + pkECDH, err := decodePublicECDH(tvs, curve) + if err != nil { + return nil, err + } + + return ecdhToECDSAPublicKey(pkECDH) +} + +func ecdhToECDSAPublicKey(key *ecdh.PublicKey) (*ecdsa.PublicKey, error) { + rawKey := key.Bytes() + switch key.Curve() { + case ecdh.P256(): + return &ecdsa.PublicKey{ + Curve: elliptic.P256(), + X: big.NewInt(0).SetBytes(rawKey[1:33]), + Y: big.NewInt(0).SetBytes(rawKey[33:]), + }, nil + + case ecdh.P384(): + return &ecdsa.PublicKey{ + Curve: elliptic.P384(), + X: big.NewInt(0).SetBytes(rawKey[1:49]), + Y: big.NewInt(0).SetBytes(rawKey[49:]), + }, nil + + case ecdh.P521(): + return &ecdsa.PublicKey{ + Curve: elliptic.P521(), + X: big.NewInt(0).SetBytes(rawKey[1:67]), + Y: big.NewInt(0).SetBytes(rawKey[67:]), + }, nil + + default: + return nil, ErrUnsupportedCurve + } +} diff --git a/key_ecdsa_test.go b/key_ecdsa_test.go new file mode 100644 index 0000000..74f4db7 --- /dev/null +++ b/key_ecdsa_test.go @@ -0,0 +1,132 @@ +// SPDX-FileCopyrightText: 2023 Steffen Vogel +// SPDX-License-Identifier: Apache-2.0 + +package openpgp_test + +import ( + "crypto" + "crypto/ecdsa" + "errors" + "testing" + + "github.com/stretchr/testify/require" + + pgp "cunicu.li/go-openpgp-card" +) + +//nolint:gochecknoglobals +var ecdsaCurves = []pgp.Curve{ + pgp.CurveANSIx9p256r1, + pgp.CurveANSIx9p384r1, + pgp.CurveANSIx9p521r1, +} + +func testGenerateKeyECDSA(t *testing.T) { + for _, curve := range ecdsaCurves { + t.Run(curve.String(), func(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + sk, err := c.GenerateKey(pgp.KeySign, pgp.EC(curve)) + if errors.Is(err, pgp.ErrUnsupportedKeyType) { + t.Skip(err) + } + + require.NoError((err)) + + skECDSA, ok := sk.(*pgp.PrivateKeyECDSA) + require.True(ok) + + pkECDSA, ok := skECDSA.Public().(*ecdsa.PublicKey) + require.True(ok) + + require.Equal(curve.ECDSA(), pkECDSA.Curve) + + ki := c.Keys[pgp.KeySign] + require.Equal(pgp.KeySign, ki.Reference) + require.Equal(pgp.KeyGenerated, ki.Status) + require.Equal(pgp.AlgPubkeyECDSA, ki.AlgAttrs.Algorithm) + require.Equal(curve.OID(), ki.AlgAttrs.OID) + }) + }) + } +} + +func testImportKeyECDSA(t *testing.T) { + for _, curve := range ecdsaCurves { + t.Run(curve.String(), func(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + skImport, err := ecdsa.GenerateKey(curve.ECDSA(), c.Rand) + require.NoError(err) + + sk, err := c.ImportKey(pgp.KeySign, skImport) + if errors.Is(err, pgp.ErrUnsupportedKeyType) { + t.Skip(err) + } + + require.NoError(err) + + skECDSA, ok := sk.(*pgp.PrivateKeyECDSA) + require.True(ok) + + pkECDSA, ok := skECDSA.Public().(*ecdsa.PublicKey) + require.True(ok) + + require.Equal(curve.ECDSA(), pkECDSA.Curve) + + ki := c.Keys[pgp.KeySign] + require.Equal(pgp.KeySign, ki.Reference) + require.Equal(pgp.KeyImported, ki.Status) + require.Equal(pgp.AlgPubkeyECDSA, ki.AlgAttrs.Algorithm) + require.Equal(curve.OID(), ki.AlgAttrs.OID) + }) + }) + } +} + +func testSignECDSA(t *testing.T) { + for _, curve := range ecdsaCurves { + t.Run(curve.String(), func(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + skAlice, err := c.GenerateKey(pgp.KeySign, pgp.EC(curve)) + require.NoError(err) + + skECDSA, ok := skAlice.(*pgp.PrivateKeyECDSA) + require.True(ok) + + pk := skECDSA.Public() + + pkECDSA, ok := pk.(*ecdsa.PublicKey) + require.True(ok) + + data := make([]byte, 21422) + _, err = c.Rand.Read(data) + require.NoError(err) + + err = c.VerifyPassword(pgp.PW1, pgp.DefaultPW1) + require.NoError(err) + + for _, ht := range []crypto.Hash{crypto.SHA256, crypto.SHA384, crypto.SHA512} { + h := ht.New() + _, err := h.Write(data) + require.NoError(err) + + digest := h.Sum(nil) + + _, err = skECDSA.Sign(nil, digest[:len(digest)-1], nil) + require.ErrorIs(err, pgp.ErrInvalidLength) + + ds, err := skECDSA.Sign(nil, digest, nil) + require.NoError(err) + + ok = ecdsa.VerifyASN1(pkECDSA, digest, ds) + require.True(ok) + } + }) + }) + } +} diff --git a/key_eddsa.go b/key_eddsa.go index 1304dce..9b27884 100644 --- a/key_eddsa.go +++ b/key_eddsa.go @@ -4,42 +4,73 @@ package openpgp import ( + "crypto" "crypto/ed25519" "crypto/sha1" //nolint:gosec "encoding/binary" + "fmt" + "io" + "time" + + iso "cunicu.li/go-iso7816" + "cunicu.li/go-iso7816/encoding/tlv" ) -//nolint:unused -type eddsaPublicKey struct { - ed25519.PublicKey -} +var _ crypto.Signer = (*PrivateKeyEdDSA)(nil) //nolint:unused -type eddsaPrivateKey struct { +type PrivateKeyEdDSA struct { card *Card - slot Slot - info KeyInfo - public *eddsaPublicKey + attrs AlgorithmAttributes + key KeyRef + public ed25519.PublicKey } //nolint:unused -func (k eddsaPrivateKey) Fingerprint() []byte { +func (k PrivateKeyEdDSA) fingerprint(creationTime time.Time) []byte { buf := []byte{ 0x99, // Prefix 0, 0, // Packet length 0x04, // Version 0, 0, 0, 0, // Creation timestamp - byte(k.info.AlgAttrs.Algorithm), + byte(AlgPubkeyEdDSA), } - buf = append(buf, k.info.AlgAttrs.OID...) - buf = append(buf, k.public.PublicKey...) + buf = append(buf, k.attrs.OID...) + buf = append(buf, k.public...) - binary.BigEndian.PutUint16(buf[1:], uint16(len(buf)-3)) // Fill in packet length - binary.BigEndian.PutUint32(buf[4:], uint32(k.info.GenerationTime.Unix())) // Fill in generation timestamp + binary.BigEndian.PutUint16(buf[1:], uint16(len(buf)-3)) // Fill in packet length + binary.BigEndian.PutUint32(buf[4:], uint32(creationTime.Unix())) // Fill in generation timestamp digest := sha1.New() //nolint:gosec digest.Write(buf) return digest.Sum(nil) } + +func (k PrivateKeyEdDSA) Public() crypto.PublicKey { + return k.public +} + +// See: OpenPGP Smart Card Application - Section 7.2.10 PSO: COMPUTE DIGITAL SIGNATURE +func (k PrivateKeyEdDSA) Sign(_ io.Reader, digest []byte, opts crypto.SignerOpts) (signature []byte, err error) { + if l := len(digest); (opts != nil && l != opts.HashFunc().Size()) || (l != 32 && l != 48 && l != 64) { + return nil, ErrInvalidLength + } + + return send(k.card.tx, iso.InsPerformSecurityOperation, 0x9e, 0x9a, digest) +} + +func decodePublicEdDSA(tvs tlv.TagValues) (ed25519.PublicKey, error) { + _, tvs, ok := tvs.Get(tagPublicKey) + if !ok { + return nil, fmt.Errorf("%w: public key", errMissingTag) + } + + p, _, ok := tvs.Get(tagPublicKeyEC) + if !ok { + return nil, fmt.Errorf("%w: points", errMissingTag) + } + + return p, nil +} diff --git a/key_eddsa_test.go b/key_eddsa_test.go new file mode 100644 index 0000000..c6bfae6 --- /dev/null +++ b/key_eddsa_test.go @@ -0,0 +1,120 @@ +// SPDX-FileCopyrightText: 2023 Steffen Vogel +// SPDX-License-Identifier: Apache-2.0 + +package openpgp_test + +import ( + "crypto" + "crypto/ed25519" + "errors" + "testing" + + "github.com/stretchr/testify/require" + + pgp "cunicu.li/go-openpgp-card" +) + +//nolint:gochecknoglobals +var eddsaCurves = []pgp.Curve{pgp.CurveEd25519} + +func testGenerateKeyEdDSA(t *testing.T) { + for _, curve := range eddsaCurves { + t.Run(curve.String(), func(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + sk, err := c.GenerateKey(pgp.KeySign, pgp.EC(curve)) + if errors.Is(err, pgp.ErrUnsupportedKeyType) { + t.Skip(err) + } + + require.NoError((err)) + + skEdDSA, ok := sk.(*pgp.PrivateKeyEdDSA) + require.True(ok) + + _, ok = skEdDSA.Public().(ed25519.PublicKey) + require.True(ok) + + ki := c.Keys[pgp.KeySign] + require.Equal(pgp.KeySign, ki.Reference) + require.Equal(pgp.KeyGenerated, ki.Status) + require.Equal(pgp.AlgPubkeyEdDSA, ki.AlgAttrs.Algorithm) + require.Equal(curve.OID(), ki.AlgAttrs.OID) + }) + }) + } +} + +func testImportKeyEdDSA(t *testing.T) { + for _, curve := range eddsaCurves { + t.Run(curve.String(), func(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + _, skImport, err := ed25519.GenerateKey(c.Rand) + require.NoError(err) + + sk, err := c.ImportKey(pgp.KeySign, skImport) + if errors.Is(err, pgp.ErrUnsupportedKeyType) { + t.Skip(err) + } + + require.NoError(err) + + skEdDSA, ok := sk.(*pgp.PrivateKeyEdDSA) + require.True(ok) + + _, ok = skEdDSA.Public().(ed25519.PublicKey) + require.True(ok) + + ki := c.Keys[pgp.KeySign] + require.Equal(pgp.KeySign, ki.Reference) + require.Equal(pgp.KeyImported, ki.Status) + require.Equal(pgp.AlgPubkeyEdDSA, ki.AlgAttrs.Algorithm) + require.Equal(curve.OID(), ki.AlgAttrs.OID) + }) + }) + } +} + +func testSignEdDSA(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + sk, err := c.GenerateKey(pgp.KeySign, pgp.EC(pgp.CurveEd25519)) + require.NoError(err) + + skEdDSA, ok := sk.(*pgp.PrivateKeyEdDSA) + require.True(ok) + + pk := skEdDSA.Public() + + pkEdDSA, ok := pk.(ed25519.PublicKey) + require.True(ok) + + data := make([]byte, 21422) + _, err = c.Rand.Read(data) + require.NoError(err) + + err = c.VerifyPassword(pgp.PW1, pgp.DefaultPW1) + require.NoError(err) + + for _, ht := range []crypto.Hash{crypto.SHA256, crypto.SHA384, crypto.SHA512} { + h := ht.New() + _, err := h.Write(data) + require.NoError(err) + + digest := h.Sum(nil) + + _, err = skEdDSA.Sign(nil, digest[:len(digest)-1], nil) + require.ErrorIs(err, pgp.ErrInvalidLength) + + ds, err := skEdDSA.Sign(nil, digest, nil) + require.NoError(err) + + ok = ed25519.Verify(pkEdDSA, digest, ds) + require.True(ok) + } + }) +} diff --git a/key_rsa.go b/key_rsa.go index a8610e4..107eb7d 100644 --- a/key_rsa.go +++ b/key_rsa.go @@ -11,57 +11,62 @@ import ( "fmt" "io" "math/big" + "time" "cunicu.li/go-iso7816/encoding/tlv" ) var ( - _ crypto.Signer = (*rsaPrivateKey)(nil) - _ crypto.Decrypter = (*rsaPrivateKey)(nil) + _ crypto.Signer = (*PrivateKeyRSA)(nil) + _ crypto.Decrypter = (*PrivateKeyRSA)(nil) ) //nolint:unused type rsaPublicKey struct { *rsa.PublicKey - private *rsaPrivateKey + private *PrivateKeyRSA } -type rsaPrivateKey struct { - card *Card - info KeyInfo - slot Slot - public *rsa.PublicKey +type PrivateKeyRSA struct { + card *Card + lenModulus int + key KeyRef + public *rsa.PublicKey } -func (k *rsaPrivateKey) Public() crypto.PublicKey { +func (k *PrivateKeyRSA) Public() crypto.PublicKey { return k.public } +func (k *PrivateKeyRSA) Bits() int { + return k.lenModulus +} + // See: OpenPGP Smart Card Application - Section 7.2.10 PSO: COMPUTE DIGITAL SIGNATURE -func (k *rsaPrivateKey) Sign(_ io.Reader, _ /*digest*/ []byte, _ /*opts*/ crypto.SignerOpts) (signature []byte, err error) { - return nil, errUnsupported +func (k *PrivateKeyRSA) Sign(_ io.Reader, _ /*digest*/ []byte, _ /*opts*/ crypto.SignerOpts) (signature []byte, err error) { + return nil, ErrUnsupported } // See: OpenPGP Smart Card Application - Section 7.2.11 PSO: DECIPHER -func (k *rsaPrivateKey) Decrypt(_ io.Reader, _ /*msg*/ []byte, _ /*opts*/ crypto.DecrypterOpts) (plaintext []byte, err error) { - return nil, errUnsupported +func (k *PrivateKeyRSA) Decrypt(_ io.Reader, _ /*msg*/ []byte, _ /*opts*/ crypto.DecrypterOpts) (plaintext []byte, err error) { + return nil, ErrUnsupported } -func (k rsaPrivateKey) Fingerprint() []byte { +func (k PrivateKeyRSA) fingerprint(creationTime time.Time) []byte { buf := []byte{ 0x99, // Prefix 0, 0, // Packet length 0x04, // Version 0, 0, 0, 0, // Creation timestamp - byte(k.info.AlgAttrs.Algorithm), + byte(AlgPubkeyRSA), } buf = appendMPI(buf, k.public.N) buf = appendMPI(buf, big.NewInt(int64(k.public.E))) - binary.BigEndian.PutUint16(buf[1:], uint16(len(buf)-3)) // Fill in packet length - binary.BigEndian.PutUint32(buf[4:], uint32(k.info.GenerationTime.Unix())) // Fill in creation timestamp + binary.BigEndian.PutUint16(buf[1:], uint16(len(buf)-3)) // Fill in packet length + binary.BigEndian.PutUint32(buf[4:], uint32(creationTime.Unix())) // Fill in creation timestamp digest := sha1.New() // nolint:gosec digest.Write(buf) @@ -69,7 +74,7 @@ func (k rsaPrivateKey) Fingerprint() []byte { return digest.Sum(nil) } -func decodeRSAPublic(tvs tlv.TagValues) (*rsa.PublicKey, error) { +func decodePublicRSA(tvs tlv.TagValues) (*rsa.PublicKey, error) { _, tvs, ok := tvs.Get(tagPublicKey) if !ok { return nil, fmt.Errorf("%w: public key", errMissingTag) diff --git a/key_rsa_test.go b/key_rsa_test.go new file mode 100644 index 0000000..633fe74 --- /dev/null +++ b/key_rsa_test.go @@ -0,0 +1,79 @@ +// SPDX-FileCopyrightText: 2023 Steffen Vogel +// SPDX-License-Identifier: Apache-2.0 + +package openpgp_test + +import ( + "crypto/rand" + "crypto/rsa" + "errors" + "fmt" + "testing" + + "github.com/stretchr/testify/require" + + pgp "cunicu.li/go-openpgp-card" +) + +//nolint:gochecknoglobals +var rsaBits = []int{1024, 2048, 3072, 4096} + +func testGenerateKeyRSA(t *testing.T) { + for _, bits := range rsaBits { + t.Run(fmt.Sprintf("%d", bits), func(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + sk, err := c.GenerateKey(pgp.KeySign, pgp.RSA(bits)) + if errors.Is(err, pgp.ErrUnsupportedKeyType) { + t.Skip(err) + } + + require.NoError(err) + + skRSA, ok := sk.(*pgp.PrivateKeyRSA) + require.True(ok) + require.Equal(bits, skRSA.Bits()) + + ki := c.Keys[pgp.KeySign] + require.Equal(pgp.KeySign, ki.Reference) + require.Equal(pgp.KeyGenerated, ki.Status) + require.Equal(pgp.AlgPubkeyRSA, ki.AlgAttrs.Algorithm) + require.Equal(bits, ki.AlgAttrs.LengthModulus) + }) + }) + } +} + +func testImportKeyRSA(t *testing.T) { + for _, bits := range rsaBits { + t.Run(fmt.Sprint(bits), func(t *testing.T) { + withCard(t, true, func(t *testing.T, c *pgp.Card) { + require := require.New(t) + + skImport, err := rsa.GenerateKey(rand.Reader, bits) + require.NoError(err) + + sk, err := c.ImportKey(pgp.KeySign, skImport) + if errors.Is(err, pgp.ErrUnsupportedKeyType) { + t.Skip(err) + } + + require.NoError(err) + + skRSA, ok := sk.(*pgp.PrivateKeyRSA) + require.True(ok) + require.Equal(bits, skRSA.Bits()) + + ki := c.Keys[pgp.KeySign] + require.Equal(pgp.KeySign, ki.Reference) + require.Equal(pgp.KeyImported, ki.Status) + require.Equal(pgp.AlgPubkeyRSA, ki.AlgAttrs.Algorithm) + require.Equal(bits, ki.AlgAttrs.LengthModulus) + }) + }) + } +} + +func testSignRSA(*testing.T) { +} diff --git a/key_test.go b/key_test.go index 2841e1a..b1a82f6 100644 --- a/key_test.go +++ b/key_test.go @@ -3,7 +3,6 @@ package openpgp_test import ( - "fmt" "testing" "github.com/stretchr/testify/require" @@ -12,54 +11,35 @@ import ( ) func TestGenerateKey(t *testing.T) { - cases := []struct { - slot pgp.Slot - attr pgp.AlgorithmAttributes - }{ - // {pgp.SlotSign, pgp.EC(pgp.CurveANSIx9p256r1)}, - // {pgp.SlotDecrypt, pgp.EC(pgp.CurveANSIx9p384r1)}, - // {pgp.SlotAuthn, pgp.EC(pgp.CurveANSIx9p521r1)}, - // {pgp.SlotSign, pgp.RSA(2048)}, - // {pgp.SlotDecrypt, pgp.RSA(2048)}, - {pgp.SlotAuthn, pgp.RSA(2048)}, - } - - for _, tc := range cases { - t.Run(fmt.Sprintf("%s/%s", tc.slot, tc.attr), func(t *testing.T) { - withCard(t, true, func(t *testing.T, c *pgp.Card) { - require := require.New(t) - - _, err := c.GenerateKey(tc.slot, tc.attr) - require.NoError(err) - }) - }) - } + t.Run("RSA", testGenerateKeyRSA) + t.Run("ECDSA", testGenerateKeyECDSA) + t.Run("ECDH", testGenerateKeyECDH) + t.Run("EdDSA", testGenerateKeyEdDSA) } -// func TestImportKey(t *testing.T) { -// withCard(t, true, func(t *testing.T, c *pgp.Card) { -// }) -// } +func TestImportKey(t *testing.T) { + t.Run("RSA", testImportKeyRSA) + t.Run("ECDSA", testImportKeyECDSA) + t.Run("ECDH", testImportKeyECDH) + t.Run("EdDSA", testImportKeyEdDSA) +} -// func TestEncipherAES(t *testing.T) { -// withCard(t, true, func(t *testing.T, c *pgp.Card) { -// }) -// } +func TestSign(t *testing.T) { + t.Run("RSA", testSignRSA) + t.Run("ECDSA", testSignECDSA) + t.Run("EdDSA", testSignEdDSA) +} func TestSupportedAlgorithms(t *testing.T) { withCard(t, false, func(t *testing.T, c *pgp.Card) { require := require.New(t) - algs, err := c.SupportedAlgorithms() + asByKey, err := c.SupportedAlgorithms() require.NoError(err) - for slot, algs := range algs { - for _, alg := range algs { - if alg.Algorithm == pgp.AlgPubkeyRSA { - t.Logf("%s %s-%d (%d)", slot, alg.Algorithm, alg.LengthModulus, alg.LengthExponent) - } else { - t.Logf("%s %s %s", slot, alg.Algorithm, alg.Curve()) - } + for key, as := range asByKey { + for _, a := range as { + t.Logf("%s %s %#x", key, a, a.ImportFormat) } } }) @@ -69,7 +49,7 @@ func TestAlgorithmAttributes(t *testing.T) { withCard(t, false, func(t *testing.T, c *pgp.Card) { require := require.New(t) - attrs, err := c.AlgorithmAttributes(pgp.SlotSign) + attrs, err := c.AlgorithmAttributes(pgp.KeySign) require.NoError(err) t.Log(attrs) diff --git a/mockdata/TestAlgorithmAttributes/yk-5.4.3 b/mockdata/TestAlgorithmAttributes/yk-5.4.3 index 5975f8f..145d7c5 100644 --- a/mockdata/TestAlgorithmAttributes/yk-5.4.3 +++ b/mockdata/TestAlgorithmAttributes/yk-5.4.3 @@ -1,13 +1,13 @@ -# Mockfile/v1 created=2023-11-27T01:57:30+01:00 +# Mockfile/v1 created=2023-12-03T03:01:10+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55000000000000000000000000000000000000000000000000000000000000000000000000000000000e88637f191942f620ba7ea29e5e7257556cc45d8e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd1000000000000000006563d4c4624d7083de0801000200030181027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e82013b4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820114c00a7d000bfe080000ff0000c10a162b06010401da470f01c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5504d386099d53d5f5d5d02a60f56a772be92f2d39500000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613f +on Transmit 00c00000 0000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 -on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca007a000bfe 7a0593030000039000 on Transmit 00ca00f9000bfe 8101009000 on Transmit 00a4040007a0000005272001 0504030105009000 on Transmit 00030000 0504030105009000 on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55000000000000000000000000000000000000000000000000000000000000000000000000000000000e88637f191942f620ba7ea29e5e7257556cc45d8e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd1000000000000000006563d4c4624d7083de0801000200030181027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e000bfe 6e82013b4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820114c00a7d000bfe080000ff0000c10a162b06010401da470f01c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5504d386099d53d5f5d5d02a60f56a772be92f2d39500000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on EndTransaction diff --git a/mockdata/TestApplicationRelated/yk-5.4.3 b/mockdata/TestApplicationRelated/yk-5.4.3 index b1dfb27..daa9810 100644 --- a/mockdata/TestApplicationRelated/yk-5.4.3 +++ b/mockdata/TestApplicationRelated/yk-5.4.3 @@ -1,13 +1,13 @@ -# Mockfile/v1 created=2023-11-27T01:57:23+01:00 +# Mockfile/v1 created=2023-12-03T02:57:28+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040022c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000057282f2bf790f1a384c993b6e80c75adedbb815f0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 on Transmit 00a4040007a0000005272001 0504030105009000 on Transmit 00030000 0504030105009000 on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040022c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000057282f2bf790f1a384c993b6e80c75adedbb815f0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on EndTransaction diff --git a/mockdata/TestGenerateKey/authenticate/RSA-2048/yk-5.4.3 b/mockdata/TestBlockCipherDecrypt/yk-5.4.3 similarity index 70% rename from mockdata/TestGenerateKey/authenticate/RSA-2048/yk-5.4.3 rename to mockdata/TestBlockCipherDecrypt/yk-5.4.3 index c00bd54..7dff308 100644 --- a/mockdata/TestGenerateKey/authenticate/RSA-2048/yk-5.4.3 +++ b/mockdata/TestBlockCipherDecrypt/yk-5.4.3 @@ -1,9 +1,9 @@ -# Mockfile/v1 created=2023-11-27T01:57:30+01:00 +# Mockfile/v1 created=2023-12-03T02:57:09+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 -on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca0065000bfe 65185b0d5374656666656e20566f67656c5f2d0264655f3501319000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 on Transmit 00a4040007a0000005272001 0504030105009000 @@ -18,8 +18,4 @@ on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f5208007 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 -on Transmit 0047800005a403840103 7f49820109818201009e581e3d22bcaedf92fc540c603511e516aebda2bb9cad4753c441e8166ffc9b6b26bf52d00a97f758459e49b04d6e26905b1610459d1ca687dedf41bdb565f51f1aa824eed85af10e81a73b8c60399be13021bd4a201a39ec6c746e8be4e4439c5f53145d7675cb47691aac6fd1b581392f9266617a67f115cb883eb489e885ac332e553ccd97e46c8ba2ec29d2890306dede8f4e2168b764ba259a9cb0a05ccababb7491f44977708de3790a2134ffa293caad695b269118f0871465da440fa1589d8bec34ddc9b79de9b967403b2282e9ded40239a4e8ac7c17fd71d7bb90d49ad47df4694c62fff899365715a60c7a79de7e2a2f42610e -on Transmit 00c00000 5ab6973ab295c5b99782030100019000 -on Transmit 00da00d0046563d4c4 9000 -on Transmit 00da00c914e88637f191942f620ba7ea29e5e7257556cc45d8 9000 on EndTransaction diff --git a/mockdata/TestCardHolder/yk-5.4.3 b/mockdata/TestCardHolder/yk-5.4.3 index 2057391..65f8f6f 100644 --- a/mockdata/TestCardHolder/yk-5.4.3 +++ b/mockdata/TestCardHolder/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:19+01:00 +# Mockfile/v1 created=2023-12-03T02:57:21+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestGetCardholderCertificate/authenticate/yk-5.4.3 b/mockdata/TestCardholderCertificate/authenticate/yk-5.4.3 similarity index 68% rename from mockdata/TestGetCardholderCertificate/authenticate/yk-5.4.3 rename to mockdata/TestCardholderCertificate/authenticate/yk-5.4.3 index 353ae74..a828935 100644 --- a/mockdata/TestGetCardholderCertificate/authenticate/yk-5.4.3 +++ b/mockdata/TestCardholderCertificate/authenticate/yk-5.4.3 @@ -1,8 +1,8 @@ -# Mockfile/v1 created=2023-11-27T01:57:23+01:00 +# Mockfile/v1 created=2023-12-03T02:57:54+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010c00001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5501c96941361ac2cd31acfdf7ea8913db8ec5098d700000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 diff --git a/mockdata/TestGetCardholderCertificate/decrypt/yk-5.4.3 b/mockdata/TestCardholderCertificate/decrypt/yk-5.4.3 similarity index 68% rename from mockdata/TestGetCardholderCertificate/decrypt/yk-5.4.3 rename to mockdata/TestCardholderCertificate/decrypt/yk-5.4.3 index 58a09b6..191fad5 100644 --- a/mockdata/TestGetCardholderCertificate/decrypt/yk-5.4.3 +++ b/mockdata/TestCardholderCertificate/decrypt/yk-5.4.3 @@ -1,8 +1,8 @@ -# Mockfile/v1 created=2023-11-27T01:57:23+01:00 +# Mockfile/v1 created=2023-12-03T02:59:02+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106011000001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550680d3ffc830278e7f31b73a05d8619ca4335086200000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 diff --git a/mockdata/TestCardholderCertificate/sign/yk-5.4.3 b/mockdata/TestCardholderCertificate/sign/yk-5.4.3 new file mode 100644 index 0000000..6d635bb --- /dev/null +++ b/mockdata/TestCardholderCertificate/sign/yk-5.4.3 @@ -0,0 +1,14 @@ +# Mockfile/v1 created=2023-12-03T02:59:03+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c109132a8648ce3d030107c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550f7dc8e3f4a3fe5bf8183ed2559a9bf77844fafaf00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613e +on Transmit 00c00000 00000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00a50204070660045c027f2100 9000 +on Transmit 00ca7f21000bfe 9000 +on EndTransaction diff --git a/mockdata/TestGetCardholderCertificates/yk-5.4.3 b/mockdata/TestCardholderCertificates/yk-5.4.3 similarity index 74% rename from mockdata/TestGetCardholderCertificates/yk-5.4.3 rename to mockdata/TestCardholderCertificates/yk-5.4.3 index 2614bb6..14611dd 100644 --- a/mockdata/TestGetCardholderCertificates/yk-5.4.3 +++ b/mockdata/TestCardholderCertificates/yk-5.4.3 @@ -1,8 +1,8 @@ -# Mockfile/v1 created=2023-11-27T01:57:23+01:00 +# Mockfile/v1 created=2023-12-03T02:57:43+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5504b063f18103c64c03dbd66d3a6e4dce76c84561500000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 diff --git a/mockdata/TestChallenge/yk-5.4.3 b/mockdata/TestChallenge/yk-5.4.3 index d5d1706..b191cb4 100644 --- a/mockdata/TestChallenge/yk-5.4.3 +++ b/mockdata/TestChallenge/yk-5.4.3 @@ -1,14 +1,14 @@ -# Mockfile/v1 created=2023-11-27T01:57:23+01:00 +# Mockfile/v1 created=2023-12-03T02:57:31+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e82013c4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820115c00a7d000bfe080000ff0000c106010800001100c20b162b060104019755010501c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000d44b73e35bd782091ea51f8833001882fb9904200000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006140 +on Transmit 00c00000 000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 on Transmit 00a4040007a0000005272001 0504030105009000 on Transmit 00030000 0504030105009000 on Transmit 00a4040006d27600012401 9000 -on Transmit 00840000000bee 7c91f88026429759c4e17cd89214298e1b4b951c5399eba36d67d7ff679e4b7be6caf2df81e31322afa2ba460a3ce69e0532c3fe51e941d79a1a43de8339d9ab084ed4a0ca683d2471114ef342628fa4fa30b71be2176f1c2739f612165855974f86ab62fcfc5e91bb6eb3bf318222f87ae7184ef4d1c614392229e90f1f2e942e82930e3fda860c99dd49389780afa94c1cde3f896201c6be35789247c1eca52c46a7b066a5d9430c03448f34e512e612d91d4c33e50c734d579719a6b663128dc477febbfd67393b664dc69151fd8a1d43c819372d59b48a10cc57033feafc5d0cb2b24ea3fc848337d2c6e56e59edd891a6c67e9cf5b1c93ec22b861ed4d2aae8889ab990003032457bf6f7a63603197b529d29b2649c7c34d14e085e104a16bd3e96df2ce64674fa116235f2229a151892d03a325e1bc61ab2258fc0ea9054fe4b8be3bce31018340704291489831f0f2ab4bfbfb7bbfdafb8dc7256545a8b0a5b6cfdef8bcc4e8855366155576989e18779b3de00cabab58d06ad51c24fc5d99ba5c99894b81325fa79342b6f1a72e2e3af1afcfa833e2012526275e21037c0e9192eca94101e4351a7ffb7a9782e7198d1a2b6e24a98e8c2c616d3adb23bcf3cc3be39797b8fa1159fb7352f068507fe2058b90df3f2c6662dfc592d065941964b6875917f66bed5b855ee133fe2c8dafee181686dfd1d60642777a026edc3eadcd59c1e5073aa979aaca55b61a695c5e3b54a890bee66cff910491384f410a6f99353021b08c57c7821d96e65465d3c774c937f6319865677c7f34bb7b1466cf850a913dceb1935d428cac91e2c40d4f79f39de20a16b39d50ed5bbf100d8d8b49b985917518e110cb6b52c7413f5e2bbe05cf6345c6caf71168960caa1dd4f4b3c0468aa027a679b5a7797c4135cacb04a4cd759cf2465ccfbb324e4e6a195eb4e2f93d579efb57a335d15cf9bc5bf1633a6eff46aac86c840d6e0b8f28e8e9fdad7adfea3eb01c66a4dfb89021b3e01209bf47bb6be7e3720cb9646da119cff441b635edaa2413c1ac68b51fa965e6d08e193a7f754333a67f1f18fcee9aedfdd5a033d9bb817ead74b5ec973fda831f140198ed30500c153214a2643de45d1d454bd424d232a107f000890a744349bb170978768154ae7bf8970521cd02bea9147e8280506ca7ecf894b48f1dc98a5166832e6a20739591e437d9ad13d713854185f07d59a88bf7ad7cc888556a2aab6f5285691f02a28198f78ad23f0731c10570a62bddbda8a4fdd4338f11f0c8cf0417b2b880ffcc781247f3571aed337fdc025277f01e7ed25d3e1d012bd2d30b8396c754153f84831f0c3b6aed0ae8822e9617b484f417db1a7abd9477bf1699c765e61133012062fcbd4b78ed5b9fd7d34b36f9d36a507d734fced46ec15daab0f101ebd327d126c07bffd7f69b104d59bb04ab57f218bbdba648a431d60a0e7a5d37ec708a6d2ef245093c49521b096c8f7b2d764ad345e1d6eba492c8d6f7229af6be56471a988aa5c5a66407a56eaa7589a257321ea92f47ab159716f66dcafadcc1bd78790886e709082bc56eb3b73cbb6d8047119211b4bc3c9e09055900a593f35cdc91bdda28033abc37d2e99c04bed26a996d81c83fa61e18400ea5edd4275f5a70c4891899600b310febc41553631aecc6a9a3efebb78c0686a413a5983cc3684f2a7ae48bc43e37c5ea7112910bf5c6d7afddb6dd40d7be58067dd7c378f5a0761b1acbb9aa80f68f60617c9d4d9c6e63dace0b331b7788df14574dc054af8df5b8be5f8a03d87317ec19de7c8af65bb74dd2484f404d8d385dfe75992d0c3095a89d08794c0aaf89a3b55cad6a22b3dc93d05a89a8f60b3c8a7ff58764da121e76783b0e9d2a6e540a2d791bcca59045d2afd80d2f49c33b0b94042a998aec00392e9df0733ec66fb5b155449b36db2e0e08401f4dc0c8bb05a87af8ca5733633261962531130fbdf2901dec399dd52a915924b8ac2409922c6829fd3071e4f5965640cdd95c828a652f0260ecea03a370dd7182993e31bd4a1993f98259eb04b967132cb73399dcc27de045981cba5ef833dd5061fd3c910eb9aa13fad340069793aa934fdf352cf40ea22fb478171ca7c68df03319f94fcd6f00413649c02f3ba587f8946b36f4b2d763eb386a9745a1dcd2347bd7510851d72fe6d1c223cffa810524c6b3a99df2c0b6e1bd26b5f576bacaf9620a3d0e253001efe376c87b1e4cb0ae528e7ae33c46e310a59dbd80246c8b512cbdf3225b60e66512b6b760ec4a33d6a6e4e0911da751b0db67d0a086ca14d7aa6d9e4aa00e2f82edca7ccff4c1d077750434aa67a35627b3a66cf9f54b9b36edd3e3ea95dd6374936bd2715000f52e3b7ab46cac491bb3cb57597a28efcdcd4aeacc1394ba63ddeb6fcf2cd648f00cc395dfa23236afc33a56ca26f1cf421512c6e5b42852358659903b11defebf28c4e1de9a1c53784937569ecd198f22f24d3723ee857638af857a53b7bb092beeed93f063aacf60b1e300a021d650932c8ccfbcc604670a4c706945f97e46c57f823c09fd3b782a8757ed265d270d34000cd4aa4cd885ceb2eb04d61cb268643209ad99005affbbc5a787748a1ebd4e048c1f83779201cf200922ca4721ad027d4ec22f00ecd8e438bb212340e546caf55fcbf9a5fc798e21ac848fd1e10a5bcc85eddefbef81edae01f203e2ce0b48c27cbf60c716556c8b49f1b7bc47a99680011f5d0632493dcf9fe9bf782c90ea64c5e259ba1a7abed58bbb2d3350ae646aa58eec00bf4e4cdc40549cb645c0006fc66a80373b64e948f3080624b81ec58870f2ce07a9a00bc1d22ed5b9308ad18578f1935695241d19cd19ea2074a63464825048c1c4e1af4838b8b8e99cff7e35db2ac1dc5c75a23a6d87f7c9612a9323acffc5c1d7b3df6418d88c06e0b7baa80aafec1b770367f4f8d44c8785b85b112d0523ae29fcb21c132b17be84257b49c208b9dc3304b0aeb62e1928a87ef90cd68cb350de62a2a7a725067c96a373626fbc6fdf17646774314cffd8ac7f2a7468137e8ba444b5c20681059d3e4941d3392d0892bc7716d68a2b051cc3f11a853c496a0397a09e7399e053358d7d34ddf8d702b383fc39deb07b7214542b4d5da576d792af10e7d5e11669184ae65a05077df1cb7b5624b3b568c0e106ddb95453d548e6f612f43de84102e5eaf85345e45534519e8f1a63eaa96fc883ffd06ee40ea07e1ff6c94b7b509d8a1def06adecbfeac111c5d88e2b07ba0ee967284acf15dbdc576f0c47de6590df7854d67682934bb1803186ca47c153cad79af3960fe8368b687c1f2e1caa953fa8c4fcb6ceff34737ab5684ff4fcc1b659886fb051be344475330088f0afede01df4f16eb00a0a1c80a1319ab9e9cd0cd69a72ce53cb37300cf6a3bf39bb19c11183dddaf98803f1a292110bb1a706e87c4fb4eca368cf86c0c37114280d77ad7e7469f4eb7d53862c1591ce4c1facba43b9f2813891f0466573b30711020d14db7fc60dc663951e18f163bd6c7fb54699de3d24a3400b72efc4362738b66f679de0eea60efabb50c80c4834380fcb685847e6f367130bc2038218ff0b20d3dcbd729345ad5c458096474688913fc1641e5343b599448c8292d32611144ea500a19f553b97fda3bbf1987edc1cea405e126908053f3b6c1832d005dd4d36625a29a71f268a3d8772e6dc9e17030b66dbbf05cd7fb6f520263bfcd5c1974cc4f7665885ce0c0c4463a815a5fa1be0318e974aff5d51a23e1b57d1418478752679852ab42273dd4da3c9352d667acd571f9b8d093829ec5aed2031dc2cee1b6c18c9fc73c64a072d49e6802fcca24d981b542d09fc136e264bbae4c9a96d8fe9fa74e0a5881aca0d542d779cf2bd04d036165b9805ea0a8e360bfa1df69936b36380980bb3bcc462227f4de19a97c3f6c44818476ea460bca1de33c016c64607e20f6fec0bf03f4e4da7da3c87e04935d9dc176c377d22f4e90b514b46c42fc232e3d90ffecccecf96398a0e86999f0b62b44eecf59745438abf1ff06c5f1209ca93127b225a1ae5b06a8b382619bd3af97a260edfb71de3659c9cf7a0ca33d8f9e490ca55342f85a96044bbab808c3b5b90c511b640913d32a73166b7170bfb3d6b48ed1357a2bd3620bcaafb1e2f4090d037263e70455abe849ec0fc169b50bda4591cafd0cca41819b3cb4ac39e9234bc4d89de6f087700b2068522cd5a50faf46a46aad38f77d386ffa4818cf771bf684c28f3825a1b65d183527a1f3012ec67f27889000 -on Transmit 00840000000bee c1fe64f28e5e54a356589b62984f4928b384bee967d9a7f9a1091580205b6005398082e2c96018bf7e987c72bdc740adf8766343b1bc6cbd2b01dd41b95decc7d8d0960f27abc18856fbe38d98ef33116d64187badac0df5e098c8f45f3f1ffe237ecc6e875759d8a3392edf5e2c48b97a0a6d9667e56bc3e82c8ac63d7348ba62e32d47702ae724454584f10f0e05cc015cdb14e7c8d2d3d3b4a0acc4d405a4a3286aaa27f85a858aba5635ff1194e7c229885f0e3a254bb9104562eda2a59036dc8573bdeb92ad81cfe17b4af156c6dfa7eff83c9387861f08c08961b6e2919ead81fdb6530992c04f6284627259171cec93d8a36025a91574da8850682a8a62ab68226248ce22113ddb299bedc25783a8bfe84781398a2ee0f4bd0791088f622c88208747dd4003dba7c8e7ecbad310adba8f772048ad56960e9fd01d8c74dbadfdfe99ec70635551b96193acbaab3b0070586d265664f1f3f65c185156f1979abd27e6f882cae77167da6cf11bb989b433cae1050b6cf810f42b5f61e794cd74ffb39f67de5ea590c3726961416f3919201bb6ea903637c0ac3a5ffefb2bf2c5a801cafb845ecafd3de1aa0dabcb8af770cbb56472c182045a4c21bc4383337999574d6dbd57a6a2dd0dc6233e593b67691797b8575f1b6b8120bef259f2de997e03fcd0d1a65dd178b0947c495f1a308729241dd44dbcbb3eaf8509737341800b67b04af9f1830885b92dbfb8ff526ee135158c12cdcd2012f29abd334ca163e5eb336a26a84ed9350071be3e1b5173446bffe3bbaba7f1c21e917d69bf59ab0c4de91199b1e43e0be30b555959209e64193292607532cf4247ee1dde37c29440fae6d6d22b9cb089a0c798bd62db2f2e7b41669494dd304510192b9c1d6dd0db7e88d26d7b0059b91bd127d5abd512f8e030e3df1dc0667ab69fb38c4f54e6d3aad926c22ed20f5fd79118c9de2c031958dddb82e114c0687d361c6d4aaffbccd1085b3ce4ee1ba95fccec4f4335c8a78f7bca843e673b35bb185abc653e621f48178229d9626b030bf8dc7df26f0650ecda512dd890852e80d80c1e011e9447f101845f5c15d4bca9e27e62a1c91a5b45e6816eff0bfeb5b9fa3a1a8bf3b47fe04e9c001a46a213fc1e5c618a198ab7d9038b436c474770ef679fc0645c0f07932671aa521b91093621281a611eaa21f384fdc6e579421d140d644cdc63805c05607931501dcbadced96083074eaf2cc514785adc77e41ea52679593f3367fad6056b9f965c6d2994478a5a44099f8a1fb0d5f1e3df5ff9e748b16455c918059ae0d0f104777f856ebb345f320039d2580a8648eceeb7b35c3a3d65e9c1b23b6c08879ad068c77521fbf8219a5ed000f280b51474bc7e3512951e2d673023c85ef4c3a475ca4cfff75cb742c3be77621437c1a7f17e79671ddcb3f44621c231055a03e1b815291df98b1b66992e7583e556560efe4a889fd3172de3e85d8f91743c8beeda02379b1b64caf2ed5a599b9b17b40c73e8b9d15dace7c52e2d097bbbae35fcf1e206b5ed1546a92684f1c7545c016f7ac8a3a015b3f5dcde4b79e19676dd02a91ba8812671f23d428c551b7029c3230b71973099c598eb4af0afc90520fa5729178cf30f0a6419eb033ca5ad7dfbf9a120b2db7ea813888e8abbab3a17fcf576b1e43f98025c389ecab067bc831f6f58aa9a2312d7e33e3098d3bca205968c18294e670a2ec0fc8e2e8ba316026c6972c84e9b464898d93a9e6fd0845ec7549bb34b4cef758f7296787990059ce16249535631a8013920d2b7436d1407a029e93d7021104fb2f0bdf89fb523d903b30048e5af2da1cc8fdae9e17795ef6365f14678c0859eff11c56b085b74b8b2d4e867e6edf5faf0df443f2c20ee9d88f97ab7a7468b99fcbd2461e147ede7392ffdb183f5e6799034b4a5dc5fa5a6fc09e8c710929f3cc05ebca1d1e161f2d80e7198aafac3df84abe6c553455099f4755c7a6ed9e456dc0a72030aee3934252243b63e2313a0d41d169a6a97eba8c3a401ce6b34a07e8571c1f1c3575808fa981cb656f888dbf4725bda21bd624b75d24b70ead54621fc90e8d3374da1996e906c5c5ca1e39a28bd6fc088103061769c063a4091b10ac7c096fb1de6f7e110ac2813957bf270b195a68aef9b0b8228890bb72b9e822761a8014f77d72c8b5e32602c9f183e2307515d97d625dee39ef7f708a19a553e72aa856e9dc2ee3cd48fcb869df92e640dc3d8ed53cf5b67ac3330b9b22fb6aaed9c43bcdc4f8b72b9836173b240e5a7110ca458af6f0a49216d897246a7bcb304ce1d5310a9c7e95a2543e6a64002309525f3ac19df5ce920080f7c14240dcce831fc6fff3e658a0dbdb1fa5d505e1ac484a72c1471d5c230033595578d408de62889980e221aa6ce787d5d20c2334d255d9815e5e83e008bcd655446ac18996528a296afe7261ca6360255b701eee0e27154914113861dc5b31989432166546f0a4a1d15066b09a6163ddf43214e90c6f7777e8e798465e0129b635f69c1123ec9aeceede768f570482a5e71a77b76717f50815d8ee54f6ea4ec13729f85d8420f2133f083224835955700c656bda523eb6aff52b55a03cd872225c90ff6c50c24caf6f857250f54fa6ecc0118ebbdba26dba7ecfb839751cc15ef16d8e113f8d6234c8bbae1fc966031ccf4b108325f60392c5cf2bbc5532f3d164467dce2386912c713991d54d867020776ca0ee2f21ca57b78672cd067eb952adb88b8e13213a7904048322c78320602b1069f5ccca8da58dff2165bb4f5c57969f709bd60157414af7368a4bef7531b68298e14e45ba9a553d2fc3b85e8cddbf202136342c3cc1492a2c5baa8910ed21de0a7285f5b5532a7a2db70e3c191d83a1fd086e29c2b8b521c6ad7740d01eda966521c5969b3564c99adb2a09343958eb0ef58fdb4cae72e17e18a069f1a57cd8fa9926e57ff9c9852cfadeaf61ca938a511be99e4cf9c9ad198f397b62a4eb6c49dd3314bcf89e821dc7e3ae9231dfb2a6abfebd6b9fa28d709f497f5ca90d40cf30bb7b861b22ed1c61bcc3e194393d9a5eb3305c5a86f15065cadeca424e248e389cde7ce1c02aaa6191c6a1a3045513b6e0a537c31911d19413ba7e650721329e6d2f89ed0a082cd589ddea75a9d0e57eb5b42701e92c112963e33cc0b25090fb9a5c2cb738e9374396c9148ac08ec7a405898a036a098e9429353ae69830561d5af5d351966d2a251207ea835c6fb5a531853c8500b47fc06a31b5c89df32db4f094286b3789abf1af2b96fd5506630d51a7da301d4c43a0fcae596239775bd449bef4e08214982ff58da7c9bc0a4e3c704aa61aae1652cfebf7f4b2b0ee1e9041eccb1bef5ba434e37ab9141dd84368414bb6ef316b1e01c6b2e69b62f784071f0ef882161f0084095e8e71996c72b8fed798c9d5010f34065c8ff4db53192b724dd46fe203579c294f232f3d4a1fe0a75686d547503a238fe3499f5cdf0fbc608c960cd8744f4a163c265021c702e4f7daf6d71ea31f6c3a020104f227b67cb92fc64ca6013f288c55bef448ebe6c9bd255b078ee4bde5ed2d9a5ec1e8fa6d69a06d53785afc88230d6c0410e4bc2deb717f9ddbe0ebf3d2d473c88376465dfe2292b39683f13dd73a62849468c4563c1fa72b82c1988b027a8639961475f5f70ebd938e6530ebe841ce411fa67390085c813aee5a34f904f3fb95d077acc8c65fc1067a19eb9f8539d447105a4fa0727f533645287c83a3a4460328ebbd381eb8111157ee7290a56d16124d263fe19bf2215bcd7d383a9e6b2d0281eff29e6d0ba5b1ddd9762a864e5955508e1ba9e4d8a7e827b44dd6052d1717f12386cb60f1005cfc6c6534f993724f3f6ebb790c7d92f694c8d1b647e17155197cd48814743726ba3b73991c3cbf7e419ca7fb723d487037937f0aa69f21387ec27e0a0d4d6e4951180e9f1c169fc1f972d4da7640c4eefb9f0393255ea7224610e35def1d667cf15cf04d731f9b30e3867805cc2860a0e925730fed3081b39d40e8eb1b37c6e4779772576457aa097332cc7a358d673cf9e4205256ebbfd6d4f3445f446e592b4773c47d462dd64afc2241e0a49fcf8a4210ee3bf03574c79517a6d4061d5fcaad69b32228e38246ed3b8d8060ac5400ff9af49eb4a801c795591408964c24e7ac2c1c5725e8e85d0644a1b51c095e1cc019a57abe081d934c8682060615a019b56e230100680ed172907f7efca45e8317e33ed91fcdc6e5591fa5cc79df1ff4585577bd8d867944c31139338259000 +on Transmit 00840000000bee cbcd26f227525d0fdc4957f8b00b4ab4101891dc36f426a944f3132cca55f968c37537a2b57873407bb17331df65e861c17f5384d05dfde3996789ff1b630d2bd6e464556c89fbe2d558fcdcbaae295d502d3cdd22a4a6f20240d54c5a4366d0eff5362288b44d1c9a8dba514ea0a36724981bfb4f43f825a30474d693355b40f1eda87f13e932e50fa3e6c90d60549e109958df0dc9bbcceccf0560f9b6fe39a3246ebabd1c30a13c01681d51d22a1b98d1f9ccb329d91f0028863d791d992d4ac30174fe1525d9876960d472c8655d273ed63950f4e4ce7188f0e3456f72fa5e175d7d256772da28892c0b61ed036e017e3a78167e5fc05b1156b6e2faf67e808815dc97f8d375844e4e6a12f32d26aebedae071d19fea7b0ea7736471d980f42f487b649a77c63515103596151160c783a05326bcc8ab603de323fb2f4764eb2a25a70171eb67d153bf7746afd088ef45a74d0f44baaa74c8be7cffb0be3ee52d3a2ed72fdca41f4d1f457341064f0034bcb455fbe623fe6066de6e40074d12ef3c121ab61d62a31f9c98402813ee25e820eb6a9d33845e9329c7419e609266082fcf391f65aecb6915fd9362fe24675b11f4a757a4d51971d5a3b8ca7f1b0fb74a2936920272d20a8665219519d44f0d0e57d67b3dcb71c05c1cbe427c4960144da7a9a936c8605eaaaa80706e1bd6f9805ae05bc862ccf5db24e4c787641bc246ee7e92496582577f54cc825ec87b8972ab51463333529781ffd744ae26a7057d85d76146ea8667aba03f37dbb6ebf54b053c7f36ef23862e8a7a8bda0d5679cc169e54e04bd2be429ec44c1efd0c10c94af335d369e6de83a5442a55cf8a0786a862e6912dc4d0033560454ed40aac2f46dfffa8fe2e088bfcaa80144092804c50010b0da901ce77a0a76df324949f24d480beff1450a550768fc174c416e09a3625a26fa6d9632ef54c28937b8926185910beb9bace268df26970e646a05b59135a612f17bba5b9e31bb6323070534ec9b7b1923765d2b0c58614441e400cbce37a0a24276f67689cf6ccf43c0d5a0cda021f321ce455e1a542a2eead8874ed7e8c4d19a470da51a370870cf924a8e52a1e6c7475678bdfe8cdc362cf9183541f5c6d502b06ae6618122a818cd9ce48e3c9a5ed6c3e5a548a8d2a2b26c26a3617108a7f41f86edbb11d4474ce5b00e69d8954b48844a226ec3db1551c9580b3e9890866616eb54caf1da8db213dd9f3592ce741fa9b7005b69d59bc51433e44b3891a525177891fba498b0d78ae022c635790cfb5643eb91e734e2bfebee08e4c90d36a97d390a879045673e7bacc0d35a5544634fe417668b53123d1e38c0b1e880e710de7d537c757734bc916e6e61a1853cf4db4f8fb9c00bb1cae8665be5e58e3740c91dd5775d2b1068412e7f2c64cf9307533841a2e16936911aeed13fea26c99f2908e7c17b32b7b49c87a9c93ed678ac8db3c7d6159296d5c1643738804a9bbee2ed07f96f84001a601588b7b04076a451f30a81e0e0c5e0d7270235bad346c5a9179a6bd2fd934f8dc5d7bdf58cac205de71fae37bb4af9210eea79f1131c9d77a49e26153f9589a619b1ee4ee8e965dd9ae1ba735a6bd8090233e38e234d2c4dc11ecb56bf379cff829ca371e6ba381e56ccc791e514c34d6962b05a2de09ed442ee1a153d42bad3b98dc0f948b4bf8ce2f42a0736bd4b2007db0331457840a1b8720bbf56c027ad6769555ba0be98949df7f5a0a05854dd1a4dbcbc883c57ee3b8fde1034632b2ac38906c69042ebd755ef80fabc2aaa9a73ad79d9ff2084189ca0c35eaf1b8b76a04d7f92e570a9d27b4f2cdb47f709ccb3bf3fe0f38e1dc6754c27ae83113de13fc4ff96905b29f532ad704ec9a4e6ce619133a0986706e6add085b96e9b1498ecd9d27273100858a51610c3883cf0baeafb00f2b809d98194ba2946047758bdb77d28c5a52a1cc44f01c30deab231de06f26f5e4e52549f51ccba1d310ceea97662765d1c61241f99f6d4a604297f59cf12887d5aa8b637c365dada9ba05d024b98128d1ea080301e3975e276a115ca3ed78744794ae471c364379fa71433653d46f317954d7e9a34d852e55681ba4f7045386a598e50321eeab6df29a920cc1781aa588bb01ade9b88d06debcf7fa34f905faadca38444a0ba1d190fc23e6dbc5ba77731c18cf68b4a46250d3b6d187aac9c54c9fd26ef156ac716e283864ba34ff4197af9e600fc6e0c77b369f267b1a01b9cb3f8abc9c6b9bcd9a868c39b24d1312c38799068b86f4f6922e8adc688beeeeaa93bcc5ac8b9d104eef7d0da71555e6fbf61f56fa5a32a39789ac748231bf338d2a0b6c980f34386c8d0d6f46eefe19bc67e692ea0d06b146afd2e176d4efe3ef8d883961258e1cacfa2c4ce31fb3667af5e2a52c1dd3eb90ddbcfd2b1fba72ed2b69a2f0fb7941c892cc30964b74141760ef788fb8e2cfd0a8c98e955a8e50e9d23958098454f42a1031f8d83667a8726b22529c5a3409a243284f142c4b7b1b0cc5bb9f0a502c21acc6f543274a704fceb1173cec9e3f418dcd3afdf6b9be32e19641eb47087f2056efabf499108db1f6c1ee77892685ad8772f2fa778bcf9deebbc9111b71a496c21dfaa316585d3958caeffaee8df40fc000d3f18da206c368797017287ba3cfd297a45310143c493baceff85a3c49b20ac7e286016b3d5a3c92d56da09850781f49728b7839f22f3790f5ea8e0ac543ae1368cf01be4150d5ad7d5a8df0e63a3f8aecea7344e0a5c3083f54488c9b663c969747f45d7ad6db3d237378061d96af00922ddb87900c37c4845de3fbf3eaab1542b4e3a1850f43b6d08fbc110d274e4a2d7d555deb66c4d3eb9c58279e44d6908625f20e02b0fdbd59e099b887fd98255243743d03e0b963750d7f395528ff61b98bba91eb6052b624aea6624d8d529fe9b3c971aeeecc9e31ab6e190c679c85b92d100aee765f73d3e377813cd88334447f72d347cae42968c8aff36bd53518925d6d6424d01be5d7986df557aa2c0aa78e2eda91412e857d656fa4cf1793c1afaada4304c77b45705e80577d94c26b4fb0da9f1ad4f427ac13296e61dd0b680f1d02229d939b9acc6029807dae9886bc4eee1e59bc9787ec09cc5e9c46d879d621905f26b7314426fcfbeb7953d619712b5891f1cd75dec3e353f2b18f2b832dd3dbc346a1b4239f20426f4ca3bec75a7a5355799c4fc2b730a9c81ac275eb2afc15dd76500168b431d117fa350540eb180ccb54079c4945a7847bb77d9ea783b9e5df91df744fde5d3c0a9a51c9d514e77c71094d1d6cc36fcce8c2ebf69a312e8b4e5ac4035dda2840f226067b3dfcf2355ffd8e1e501f1faca1c98ef55b63910714380d2adef30c6212305e28fe11a0d3f584b28540561a03a2c942ccf7af19f0c8d88d7e4d14483c080605114425fbc437f7d5ca6d668ea326e9780970fe170bdc46a02f2a34e6a2cbaf2d8206db2f2ac98815b25999cefddf29a0fda643e55e6a347ad6fae3a25edce5f4389b25923fc67cdbf591f0361ecb0a7ab228699e6922a2fcf858237f38eddbc77d547bf3b57085be829bfeed8c8f20a6c0f118def839e19f2ba8e81b4bdb8778b78f841dea19d2287b35fcb12a4616d26fd7c36426f0cf8df58f53670586de25688891de902bc6e307e95866137ee2de2487fea87a13ad727ca55517051ff5d4de0aaba38f6d2b47fffb45609fbcad0113601742ebec1f1e93c434c03b51d6b93361dcaa9dc1d432431935deb1136ae6182fa81d3d84456b04fd79c3ce52ac0e8dc2fb975495a0e559db1e9e6b3ca7e919583ba1c5fc795a7d5a93cbe4e922676b35a4d863c11cfd5bac7d17788bc3327499f2958d27f728b6441187cb4f30a47e1ff20aeef39c299a5d717ac3357630d4048f8bc03e5d3ff58dfcc3001e2e4feaaf575dd6999fb1372706ce9bccf65e98a0c81ded2460011e8ea7b1bdadb6b4d0fc67c39263276030547bfcb9cf13dc31a9857ee1742f0b037ce337ef27722f14daec3fc4c5e4cfc5a272d4ae78e8ad38611ea284998765b7b0578768f8151785127e81dc83d7a438c208b724f0201120ed8f81e8c88e346e55cf6a0d47ec73ff1b5dbf9cf389828ca0da23eca9d97c85ad15ebf37350f4d8cd9ad1232d3e5b03487c7dc0847bcb3a7285aef3a9df266512553c20742e8dc374d5347728205d8da38ef5dd7417944b18dfd5f936b47f69af8f4bc1e0268b793e4afb85673c7470714a6ee49164ab7f64ffacb3a4e9796f1571402ec871a80a63136f8f02ec57819000 +on Transmit 00840000000bee 5a34ebd75ca38c05d9314567b173afbb16a54d19335e3c7e9dc5fbb2b6cf4255a32bc7993737cb654a952c63dee66f408527b4ccbe906a3538f4bb232e7b785388493cb44e5740dc862131c2894bb923f2e2978758c69a9116bad6dde275f5e0e35c315fd67134839505c46b15db3e7c8b52f4feb6467fadf7322b2d9e05ea75f0768601ece3402fdfd6c76faf4252a621921d106646d70889ce6ca1df7681ae4ae26ece4875a4ebb658511d0353c30cb14f772583bbb9739fef250511c3709d01876b03118ccd0665ba5bc5263bf24e4c8fa8b4250b9db4b1ff6f51850f6ee7719c3d1b27af16c8c2a47a74e4727fcba7d49e49e16abdf533219aa50ec85e2f320529da14e9ad7429ff6f4ac1ca9971601b9cb50de75dd3ff5645f61a028b8d9ccf62e663ae518ac733440bf3fcca302f0610ed82d10b594a7e1c465fb4aba4d58e13ef47ce61e500c2077d024b350fb48d5c99319b3968c9feabdcf09dcbc87eaad0821507ca90200a7385d7a5eb9d3070c89714de12683898f8b5fc1d53331015f1ea07393a36915a158230b58939b6fab9c11bbd6f803ac816e32549587977d17726edcacecf9b5af41b26f18231a3b302864cd0de33162121b8acd4a244690b4602ce43ec8c4d21d335a5c0e8491e26448a3019b381e584b732ea9057b3ad2019ee345f9e67fa7ca31c101122eb94f2d2575c23e22e7fd8d5ae3de381c11bce970107168483e6bd8e866cdac9fc2354d3272624dda46e08dc8ea8f464722121badb6ee6237ec03c72b13f0a7de19581f936e034d0aa3c29d1b83249d766976c1c93328aa7f28dffae8468dad12848eaa57968f1459aa08d592204ac266fce9211e59852ec5c90d0ee869f75fe3407d01a615adbb7607a8ea0569239ca397dcb0e47d0dddf04798820a8da241466e0009639277a280d6d59550ce165359c89afb4f43d93b638f9fa948bd64e769172c8b9e3d8c85ef2a0edcfbe57cc566cee5a70d64ecc7cf9fe50c0071c51898308850a1ba3379406487a87fb39e5a450c64a1a3ac29d8947f8c8cdde2aa1f8af4a94b5f41c83a1a3ab163438dd48b4890b34e26e30c94264a8f75ac258422d04ebeb5007ac4c8faa0799d08fe396be4c27c3483461bb70ccdadbca33acf0e85f5eff8d9b502725d750ba9cbdfc4f122c58c3f5ab4fa4ac0acb46f7956b330ffd7474fd3881109da5b8cd970b318b1c508b5b944bddd49d75dab5cdf11f687b0a2395ad18bdb2fd0db5c230a4d6cc8df6da9dbbab02edf9c47c62b99d5d55d210b14669eacaeccfd90150e8d01ad39c722a786a47a2a94f03d30cc9b8b70e3e85170d3f14466a9b5302efe8abab0637e524daa96df973c4d2b3c59d63fdff3f479e6297d0fda7ac9cf8c6e1bd55e785267cf5f75f2a828217cfd6d1b224ebdc246a700be0ecf75d7cc6207753bd698d81bbbc102f9419a540d6c2733c250246804af7cca03f13d3c613e7e58bdbeb89f0244c6ceb2bab5b8c1cdcc71c1e4183ca18f1b6b729e35cfde4fbbb1d6800a2177ec73b712d292e22321aa1adf003f8f023423cb5378132f06145485c02a204e32cf4cdabb9c657b97016c42b631044f61d943ecbade51c17fa67dd060237f7b0a84391e0f403b79312aeed7bf28bea015fc52755b4d701f8296695fc468b8e4586c346f4e09b341f5ca9c7d8fddefa2390bc0bfc51311e854e8cd26071a86c198f50ae6208accf1bfe63c143cdd8c1607e9412815808d185299cb0db24432a08a34c8b98e6bc63c2c998b103a54bfa8c130e03d648dab9169916248dc0773eaa75af01d71ab21ca35284ccc0ea313fa500826620fbf4d63a67db9f87813b1b2b7f86431353c441c316df34183b534f0b3378bb2e0fc5b67d23b338ff26b8cc7ad588c94d301c6f87ad44cf4ea7e4673d4704a40d37bfa623531ddd3286904d3d1e78a8f1ba4a1cc19b1093e5326beeeae74c3e5d55c94ae2b4b39cbbf0e788ae63d667fee8a1c8eaf384b25ab053318d88488c9f6b1cd986c1d2a359ce2db5028a12d486fd43d9b2c2ac617d4283861e7034ddd5679a896dcab7fe05585b68f64ec888a27b0c54372f2ee74020a69fae5b6b5017fde550e5eb4c7b737ebcaa7266436460669fe8cea46edab4b306261be6053fe3ceea72e79f34626ce4e6117750c8c7da89cc87675cabdd898d70444e2bd6cc7c0974b07d9a132e4b3f4195f0254b3d55ff35ed2a6ab3a94a747d13d8615cceb1e7927ad80b8e1edf196fcaa3cd3ce5eadd200e82688b0a4080680b9891af66431165e4633194e9bb8ccb8f0a715a8b0657f5fefdc11b2586c6f8f61ea6356ac9545d10bc76a13512fd73f322e9ee286a67b9308dc459a7f8d059469d5619e340ade91aff41d709fa52263ce35f9ad245f68408de5edb60867a7794d058bddf50121eee5f6a8092d8790808073ec2a7656f7f19c495587a9ca9a53d97aca98c4d3e8aa5b793f56f71e41a5bc7eaac67115c154766970fdec0f65ca40d772f206b1474be6136d31266b6ca07dbb3943a0f78a62fcdcb44207fbb4bfb450a7d031bb3cf41ae42815cbdf2dfc508c60f4cc76ad0857ab9f223e7651ee241402f31f09fc75c229c48c2ef8cb065b624492a73c37a65c04cf91b8ae48e14d42400da03f9e9a14f8a1b4c707421379db746458a5615f1bf3f861033fc2b86b985f38068550666d6a485d49f5560aa3cd1dbc094f63acac14181087f33ce3c70aa973a5d9cd9f94bee380568b6723b07a80f7fda4aae6109d1cf71ece42e7bb05d97b66319ab4bc85c0a3eb5d8309b3c8355b11617a3f93304aee5408726186fca8abd8102f6b9f24e0321c1eee342b32a70f34b6d1dc2d592193f32aa2b8dbf2fb0ebe776dbe2757c52c12cc2a5d786f220c7c2ca9769640d3c001b017f77ffb83e11e950192a5671298b4d56f12150246a094daed2ea6bc643e22511b3af322a125324769e6fd37c6d6455740b523dd48945d3dd0965e77c9daa937d6126030faac7812374e8fe68a32eb9814c5cf750733f62d890dfd1d2054c764140673db31f847d121c949c1df3544f88c0607d47420c60402ca6ce5683435b5fcd14bda577ce54ae643edc30479aec86765cc7a81503eb4c174e7cf2f3b4d6acc314c1ea2b36d2390d861c7ca3904533635e1bdc0616848cca5a8fdfe7ef289abb75e73e82d0b1452ef8cd98aefc58553cae1461d8ccb81e1d9f8f95b07d3cc074c5c7d6aba7e5c95288cb72873d3d60b0430601aa447ea17cfdd594a4d9092230f6b8cc7ed0b570d3cab7a5d6a90e3421c60a0c8920202c3a9706af4ad9a92b764a88b34a4a5b0e74dcbdedbde9ea330da2b2cb569e416e9ba9ac95652fdd0beef3fc9a35eb4d8528e96dfde4bc9f5e91602ba9c5c20c6b4b012225c55bf02fa985b6f209f3c8cee6ceb46357a3ff4e48879cfcca8ced4787e33c2f829eac5920ebdbe94e0da5ce40f85128774c8834a5ea23a51614863fd8f58ecb6243d1f1947a656d95d3de08cb718d83ad94c77e00926917618555177dec5e93e55b8f4736059029d25d1ea9799a6a96affa25ab490fdce19fa6091b605917ce830b0ac1e4febd6ec6a206f46dec9809b0d27fd491fba9f8975eefdb4a3614fc7577c51b0aa7f4714e017294ca1fb55a645df4fe9968043a3e167bf67f2f0db8a1f5529c5a511960b974b26fac2c9ba492a8c3108e90f906b5abdbc52b96d33c685579cef519d9ba2879d5adfe03aeb880a14c1f08923db84dc724b077e68380cb01a7ea8d28de639a5e70cb0999eb9700cdcf0fd957cc3f129e67bd571ef9a8c0285a8b1b9e0390b183577f5d1677c8db99657fd7f27ffd4c12f5d60f73776c3524ad239924df8e40a9d40334888c23510b669d3320dc0286846bf02212d6be66ff9e52ee9cbcb809c46b80e9958e5c5d82c8acfda62e65bdf8efde7b49f781efe2cbcbc3cc2bc35a51e4bcb77a0cb7b4d47b55da5fa4dbd1b3329b7212031e69144a163ed8ff7974545098a5764133e85299b3d3a1b3bb1a3c23ee96383569ebde6bba6cc486f2111e10d46d0d8bd3f75c54525f3dac3c045d44bbea0b6cf3c7c8c4b49e09ae6a9e1e32086b242b1aed2849f6c82d711a1fb8b12adb25ca5a62cd9680b9bb395b9dc9a4e2d184e0d6bcc7fda71e468d3f09681cea9cc206d48a1506f3b2bd9b3025e28e910439cd7c39d15841d7ad5756d7a7eb9c3cec201e07ee0c1f7712eb0a0588b6a940482edd36bbb058e6fde5be13e1aeee26c114c26729fb16a58b39ab0eeb4d489e2207b45efeaa6219c7a752d28db3f50077816d897406edc29000 on EndTransaction diff --git a/mockdata/TestChangePassword/yk-5.4.3 b/mockdata/TestChangePassword/yk-5.4.3 index 912042b..745a441 100644 --- a/mockdata/TestChangePassword/yk-5.4.3 +++ b/mockdata/TestChangePassword/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:14+01:00 +# Mockfile/v1 created=2023-12-03T02:57:14+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestFactoryReset/yk-5.4.3 b/mockdata/TestFactoryReset/yk-5.4.3 index c6165b0..3855437 100644 --- a/mockdata/TestFactoryReset/yk-5.4.3 +++ b/mockdata/TestFactoryReset/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:17+01:00 +# Mockfile/v1 created=2023-12-03T02:57:20+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f060c0dc550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestFactoryResetWithDefaultPW/yk-5.4.3 b/mockdata/TestFactoryResetWithDefaultPW/yk-5.4.3 index 951d813..bdd7ed7 100644 --- a/mockdata/TestFactoryResetWithDefaultPW/yk-5.4.3 +++ b/mockdata/TestFactoryResetWithDefaultPW/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:18+01:00 +# Mockfile/v1 created=2023-12-03T02:57:20+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestGenerateKey/ECDH/ANSIx9p256r1/yk-5.4.3 b/mockdata/TestGenerateKey/ECDH/ANSIx9p256r1/yk-5.4.3 new file mode 100644 index 0000000..800a1bb --- /dev/null +++ b/mockdata/TestGenerateKey/ECDH/ANSIx9p256r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:33+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040023c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55098b818e348cf11868c456a41811040c08d44b8b700000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c209122a8648ce3d030107 9000 +on Transmit 0047800005b803840102 7f494386410419ab23bc273002c40909b20be5bb569d19ef47ee7949467be8b5b8412e547aea476f52e2cc69794c3ea51e2b9653d7ebb41d457991c97d59ae1f410d6a26de569000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c8148534b3a7692c99ef9889460ab3e8adcb8353e21a 9000 +on Transmit 00ca006e000bfe 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c106010800001100c209122a8648ce3d030107c306010800001100da06010800001100c407017f7f7f030003c55000000000000000000000000000000000000000008534b3a7692c99ef9889460ab3e8adcb8353e21a0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGenerateKey/ECDH/ANSIx9p384r1/yk-5.4.3 b/mockdata/TestGenerateKey/ECDH/ANSIx9p384r1/yk-5.4.3 new file mode 100644 index 0000000..1d2e460 --- /dev/null +++ b/mockdata/TestGenerateKey/ECDH/ANSIx9p384r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:34+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c106010800001100c209122a8648ce3d030107c306010800001100da06010800001100c407017f7f7f030003c55000000000000000000000000000000000000000008534b3a7692c99ef9889460ab3e8adcb8353e21a0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613e +on Transmit 00c00000 00000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c206122b81040022 9000 +on Transmit 0047800005b803840102 7f4963866104ada8f826a4c228d615f0126698a18f1d2dd5fc496d7c2bbd2fe9de62eaf21b5a37000f907b733d8c9e8254cb148e4cd3f54ea66da253703bfdd4119bf24afb306406e61474c823d0001eea98da1076038b0ea7fe8803431a8d460ab3e7cc3d1f9000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c81416b733c8fab47dc9a3d1f9feb149b8665c6e1798 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040022c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000016b733c8fab47dc9a3d1f9feb149b8665c6e17980000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGenerateKey/ECDH/ANSIx9p521r1/yk-5.4.3 b/mockdata/TestGenerateKey/ECDH/ANSIx9p521r1/yk-5.4.3 new file mode 100644 index 0000000..c56531b --- /dev/null +++ b/mockdata/TestGenerateKey/ECDH/ANSIx9p521r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:37+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c106010800001100c209122a8648ce3d030107c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000588afd179d55f89221abed06a7726701c16c61ed0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613e +on Transmit 00c00000 00000000000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c206122b81040023 9000 +on Transmit 0047800005b803840102 7f4981888681850401a5b88d7eeacde9f10e1778e02504bb6be1984590dc587196d37798caafec498af32c424ed164b2e156aa786f077b071b47a1e782d5b173c1dd87ee127478da910501624d7ac80d75b0050c3ef84717ffdb7deeae4e4d50e52306fef6ca43fdd9f04ebae967f5d814766006f51438608fb74cb6714d8465b6dd0acb75df20f9b435c28e9000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c814896b61d2bb65b75865227a4a076f54962c3b8dbd 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040023c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000896b61d2bb65b75865227a4a076f54962c3b8dbd0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGenerateKey/ECDH/X25519/yk-5.4.3 b/mockdata/TestGenerateKey/ECDH/X25519/yk-5.4.3 new file mode 100644 index 0000000..4487e8d --- /dev/null +++ b/mockdata/TestGenerateKey/ECDH/X25519/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:40+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040023c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000ff17136d7f80aadf8eda27fa9d9350c5a71bced60000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c20b162b060104019755010501 9000 +on Transmit 0047800005b803840102 7f49228620862bc202a51820f207ee463e96b5947e33aeb5639da8145b3693cda9d805882d9000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c814926405f0726d15a74040affecf8870520486ac74 9000 +on Transmit 00ca006e000bfe 6e82013c4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820115c00a7d000bfe080000ff0000c106010800001100c20b162b060104019755010501c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000926405f0726d15a74040affecf8870520486ac740000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGenerateKey/ECDSA/ANSIx9p256r1/yk-5.4.3 b/mockdata/TestGenerateKey/ECDSA/ANSIx9p256r1/yk-5.4.3 new file mode 100644 index 0000000..352f13e --- /dev/null +++ b/mockdata/TestGenerateKey/ECDSA/ANSIx9p256r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:23+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010c00001100c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000eeea7b2da78e1c3184559773368598afbedf5cda0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c109132a8648ce3d030107 9000 +on Transmit 0047800005b603840101 7f49438641049b948c550fdf2203058bfd87ed1abf0057eb36cad9bff3eecd5f4e05ea0b537b781e6d067d22036050c56dcb17fbc643b5583a3c2f24bad10c179d34cf4c6fe19000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c714065d9f6c3580167c098cef7011a092c36954aa63 9000 +on Transmit 00ca006e000bfe 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c109132a8648ce3d030107c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550065d9f6c3580167c098cef7011a092c36954aa6300000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGenerateKey/ECDSA/ANSIx9p384r1/yk-5.4.3 b/mockdata/TestGenerateKey/ECDSA/ANSIx9p384r1/yk-5.4.3 new file mode 100644 index 0000000..e52aff1 --- /dev/null +++ b/mockdata/TestGenerateKey/ECDSA/ANSIx9p384r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:27+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206011000001100c306010800001100da06010800001100c407017f7f7f030003c55000000000000000000000000000000000000000003391a35adf62b40470893a5823e0e5991c798b510000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c106132b81040022 9000 +on Transmit 0047800005b603840101 7f4963866104da393b796d1e433f1a8daa7f95ce66b2b2b3f235a56af95c4edac42c32384ab73f173a04589e55e0254d599870222c2ae3a7f7905359a23d51145fdd84872de0a8bbb28e5c532d30175ff2c0e84ac87a4d8c1846ed5d4e0b0f1e0931cf87bffd9000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c714fdb20e640cc9dfc6f447f7d597ea019291d855aa 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040022c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550fdb20e640cc9dfc6f447f7d597ea019291d855aa00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGenerateKey/ECDSA/ANSIx9p521r1/yk-5.4.3 b/mockdata/TestGenerateKey/ECDSA/ANSIx9p521r1/yk-5.4.3 new file mode 100644 index 0000000..f5edcf8 --- /dev/null +++ b/mockdata/TestGenerateKey/ECDSA/ANSIx9p521r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:29+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c109132a8648ce3d030107c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55023c2c3b2776845593235323ef40800bb526b520900000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613e +on Transmit 00c00000 00000000000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c106132b81040023 9000 +on Transmit 0047800005b603840101 7f498188868185040035ccbacc38ed7a80ab2ebcf7df56f1bbd2264137fa4dacd1f7e1a50d894c91150bfb2a08487324a2401dfcd4cbb926ca22f40bfd27df7da39f914d0e526938af4f01fd7078837a0a1686232fdf4f894ff6757ec67dbf1ee1ab4258007c3e3ebdf16fea10d551d3bf1e527e618b5af544d46e103918e5c3331b050f8e63615e97790eb89000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c7142807c7c830ab9359b5fda8c7ff9cffe7f816a52e 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040023c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5502807c7c830ab9359b5fda8c7ff9cffe7f816a52e00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGenerateKey/EdDSA/Ed25519/yk-5.4.3 b/mockdata/TestGenerateKey/EdDSA/Ed25519/yk-5.4.3 new file mode 100644 index 0000000..485aded --- /dev/null +++ b/mockdata/TestGenerateKey/EdDSA/Ed25519/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:41+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013c4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820115c00a7d000bfe080000ff0000c106010800001100c20b162b060104019755010501c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000926405f0726d15a74040affecf8870520486ac740000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006140 +on Transmit 00c00000 000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c10a162b06010401da470f01 9000 +on Transmit 0047800005b603840101 7f49228620e5e7ec81c8ca8d18ef6af093d02314193d332e78f9807c0a11b52a21576159979000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c714216603553393a47ae1e269fa1d778f10fc38fdc4 9000 +on Transmit 00ca006e000bfe 6e82013b4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820114c00a7d000bfe080000ff0000c10a162b06010401da470f01c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550216603553393a47ae1e269fa1d778f10fc38fdc400000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGenerateKey/RSA/2048/yk-5.4.3 b/mockdata/TestGenerateKey/RSA/2048/yk-5.4.3 new file mode 100644 index 0000000..6f8ffe7 --- /dev/null +++ b/mockdata/TestGenerateKey/RSA/2048/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T02:59:25+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013c4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820115c00a7d000bfe080000ff0000c106010800001100c20b162b060104019755010501c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000a19ce2e2086e468b65830e331ac517230fbbb9fa0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006140 +on Transmit 00c00000 000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 0047800005b603840101 7f4982010981820100cec6e88872bbf98167802c77f0edc8623d534bd3084d79b0d07760ebbd992d7be6f4cdcf7bb76acfbe5804b25377afc6bf9a9437e339f1770bf53207ecc7c581a23ce21437154285265e55d7d26c45bdae1a45d6511db676ba36b0240d6b4a7c3712b2d59953eded99b5504bc39773dfb28d8975911ed5046eac3c1ef09a125083d8df90ee64704944a6557da5272b8c3cfd1400d9e3332ef687c65ef56bbd83d83a469f49e61eead958948f60a89e046eb3100178d7e23309da5e5dd056ee232927df7428fc19316b78800cc5374c13e0268f0b84c412360f1e4dbe1a10b9eb01299e1d12e9897bc0131cc6615ec0082e49601ee64e44610e +on Transmit 00c00000 470eb14d45d77bc2f982030100019000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c71475975af9a4e49247c56c04e026987e11e7e1256b 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55075975af9a4e49247c56c04e026987e11e7e1256b00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGenerateKey/RSA/3072/yk-5.4.3 b/mockdata/TestGenerateKey/RSA/3072/yk-5.4.3 new file mode 100644 index 0000000..57c1f8a --- /dev/null +++ b/mockdata/TestGenerateKey/RSA/3072/yk-5.4.3 @@ -0,0 +1,28 @@ +# Mockfile/v1 created=2023-12-03T02:59:57+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013b4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820114c00a7d000bfe080000ff0000c10a162b06010401da470f01c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55053a1ca79baec605eb88e0dd613892a91ff00767200000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613f +on Transmit 00c00000 0000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c106010c00001100 9000 +on Transmit 0047800005b603840101 7f49820189818201809ff47ccfc5602b7e8e74a93427adeb873e12431f00afb601ecd205a005bf750fc8d6ef077d5afa41365dc6d90d3c4a5eaf2dad7ff3271c19492f39e03da7fb1ca5234b8577960582adf6a5c60645fc94778066246050f28e9656a44297b3f70a5b13aa3a9435a8d48fdd1ef3f11c4e678ecc727560b8e0129c0f003aeec157fc99fab3fc92c9bd46dc5950d61896bf8bb75c8799e3fd1a1f3689cc65f81b157d3121613a0ce79e426faa86e70a9d05809df03d8e0c2be5fb059ac215b731016a2b521e301700e44d2ac08d37d9335ab1e44e5dddd0e05cd301a673f7bc95a0867a3e01ab5a774c38f48ba3334b9659d27c9f1320311e00618e +on Transmit 00c00000 83227484e9fed73028bdd75a9b35ab1464cc2505f1298c06794a78065c68e775c5e161529e77a1805881b8a05f80f996672bb6aa224ccc8b007fad25c49897c5bfea0dd180958bdf13b8ee5a7918a0ef55d90ccf03aa0c3584ecd1167ec2122d0efd179e340c775f0dde7c80d2edbbfe3452e6e0b69f95016393d718ee3e86b51384c82847ca89c51d82030100019000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c7140c4c542816533d205810ce1aa293442c4007e040 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010c00001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5500c4c542816533d205810ce1aa293442c4007e04000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGenerateKey/RSA/4096/yk-5.4.3 b/mockdata/TestGenerateKey/RSA/4096/yk-5.4.3 new file mode 100644 index 0000000..80b7f9d --- /dev/null +++ b/mockdata/TestGenerateKey/RSA/4096/yk-5.4.3 @@ -0,0 +1,29 @@ +# Mockfile/v1 created=2023-12-03T03:00:19+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c106011000001100 9000 +on Transmit 0047800005b603840101 7f4982020981820200b97d59e3475cf66ad70679d4983008318725c3674818404ae3878b2a09909e2dcf8134a5e8ceaff978a0705299a570fe215a825cb8bb23b7c308ec2b234f839eefd90ea551a4e983081e28f767dffd1d9222ea335dc34a3f0a52b9442e1e728aaa9264ea0ede41e80e1e44a19b4469d7a051ca6d578a72c9e6abb45041b56b44638b1380e371f268269ec52e7fc5093d1ef92f5fb8d3d0c9a7d05f745b7909b44ee211cb7d7df851441ccfd69d10084aeffcdaa045e5f6ac06f1769f337d6ac9d79878b8d5743287f4c6bff8dbaa64f0f063759982371fb1e68f64e6dbd09b225bdf794e4ddaba7c5c5e5cd50e43d741ae7200ae9e5c2a6100 +on Transmit 00c00000 9f4e3044770c32bec754935e0a0e2f635ca0fd774bf4b440f37b996197d13b274e57d415a78169bf03610e89b348c7c1a276cf7c1ea9978a9a8e0beffa7118e550053f77dfdfab03f3b738b0a39b76e23c64411410ba56668f19adb6f195f7ff0b805dfd713f954ee9a5de1e8f0cb9e5518dfb755d55f538fe2cbee708e7d4dbb592f9f45fd36a071d03afb57a6402d8027326cefa4f95ca8fc1eb2918be7122b27cd32dcb91a6838c60e1fb6e38f8b3d21cbe02e56d153cf25c4e0ca03f6697687d655ed83eb118213f04606e38cce0baef6276937db2376cfee30f32d69f1c1e55d9947cdeb927939e8442892904f108a0012e4177121308e7fd91f791779c610e +on Transmit 00c00000 672b1ec41973031f8f82030100019000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c7141f762299937a46339820b9a4e95da24f4d1ae131 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106011000001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5501f762299937a46339820b9a4e95da24f4d1ae13100000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestGetCardholderCertificate/sign/yk-5.4.3 b/mockdata/TestGetCardholderCertificate/sign/yk-5.4.3 deleted file mode 100644 index e87a336..0000000 --- a/mockdata/TestGetCardholderCertificate/sign/yk-5.4.3 +++ /dev/null @@ -1,14 +0,0 @@ -# Mockfile/v1 created=2023-11-27T01:57:23+01:00 -on BeginTransaction -on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 -on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 -on Transmit 00ca007a000bfe 7a0593030000009000 -on Transmit 00ca00f9000bfe 8101009000 -on Transmit 00a4040007a0000005272001 0504030105009000 -on Transmit 00030000 0504030105009000 -on Transmit 00a4040006d27600012401 9000 -on Transmit 00a50204070660045c027f2100 9000 -on Transmit 00ca7f21000bfe 9000 -on EndTransaction diff --git a/mockdata/TestImportKey/ECDH/ANSIx9p256r1/yk-5.4.3 b/mockdata/TestImportKey/ECDH/ANSIx9p256r1/yk-5.4.3 new file mode 100644 index 0000000..df04274 --- /dev/null +++ b/mockdata/TestImportKey/ECDH/ANSIx9p256r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:01:00+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040023c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55098b818e348cf11868c456a41811040c08d44b8b700000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c209122a8648ce3d030107 9000 +on Transmit 00db3fff2f4d2db8038401027f480292205f4820abe9abababababababababababababababababababababababababababababab 9000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c814588afd179d55f89221abed06a7726701c16c61ed 9000 +on Transmit 00ca006e000bfe 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c106010800001100c209122a8648ce3d030107c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000588afd179d55f89221abed06a7726701c16c61ed0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestImportKey/ECDH/ANSIx9p384r1/yk-5.4.3 b/mockdata/TestImportKey/ECDH/ANSIx9p384r1/yk-5.4.3 new file mode 100644 index 0000000..daa057e --- /dev/null +++ b/mockdata/TestImportKey/ECDH/ANSIx9p384r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:01:01+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c106010800001100c209122a8648ce3d030107c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000588afd179d55f89221abed06a7726701c16c61ed0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613e +on Transmit 00c00000 00000000000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c206122b81040022 9000 +on Transmit 00db3fff3f4d3db8038401027f480292305f4830abe9abababababababababababababababababababababababababababababababababababababababababababababab 9000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c814c7afc80333416a150ebf43b3a75bd0c846591bd0 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040022c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000c7afc80333416a150ebf43b3a75bd0c846591bd00000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestImportKey/ECDH/ANSIx9p521r1/yk-5.4.3 b/mockdata/TestImportKey/ECDH/ANSIx9p521r1/yk-5.4.3 new file mode 100644 index 0000000..8d354b9 --- /dev/null +++ b/mockdata/TestImportKey/ECDH/ANSIx9p521r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:01:02+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040022c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000c7afc80333416a150ebf43b3a75bd0c846591bd00000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c206122b81040023 9000 +on Transmit 00db3fff514d4fb8038401027f480292425f484201e9abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab 9000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c814ff17136d7f80aadf8eda27fa9d9350c5a71bced6 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040023c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000ff17136d7f80aadf8eda27fa9d9350c5a71bced60000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestImportKey/ECDH/X25519/yk-5.4.3 b/mockdata/TestImportKey/ECDH/X25519/yk-5.4.3 new file mode 100644 index 0000000..0480239 --- /dev/null +++ b/mockdata/TestImportKey/ECDH/X25519/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:01:03+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040023c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000ff17136d7f80aadf8eda27fa9d9350c5a71bced60000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c20b162b060104019755010501 9000 +on Transmit 00db3fff2f4d2db8038401027f480292205f4820abababababababababababababababababababababababababababababababab 9000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c814f1ee3e382cf041660f10f0d7ac1277adb1bb579c 9000 +on Transmit 00ca006e000bfe 6e82013c4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820115c00a7d000bfe080000ff0000c106010800001100c20b162b060104019755010501c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000f1ee3e382cf041660f10f0d7ac1277adb1bb579c0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestImportKey/ECDSA/ANSIx9p256r1/yk-5.4.3 b/mockdata/TestImportKey/ECDSA/ANSIx9p256r1/yk-5.4.3 new file mode 100644 index 0000000..61dc2fa --- /dev/null +++ b/mockdata/TestImportKey/ECDSA/ANSIx9p256r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:53+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040022c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550a9d0931cc8e5f9f330f3b3c194f14655a31b568600000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000039000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c109132a8648ce3d030107 9000 +on Transmit 00db3fff2f4d2db6038401017f480292205f4820abababababababababababababababababababababababababababababababab 9000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c71423c2c3b2776845593235323ef40800bb526b5209 9000 +on Transmit 00ca006e000bfe 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c109132a8648ce3d030107c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55023c2c3b2776845593235323ef40800bb526b520900000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestImportKey/ECDSA/ANSIx9p384r1/yk-5.4.3 b/mockdata/TestImportKey/ECDSA/ANSIx9p384r1/yk-5.4.3 new file mode 100644 index 0000000..a702862 --- /dev/null +++ b/mockdata/TestImportKey/ECDSA/ANSIx9p384r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:56+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040023c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550db96aa238d788e6c8160e71b89cc47fc62a51a7d00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000039000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c106132b81040022 9000 +on Transmit 00db3fff3f4d3db6038401017f480292305f4830abababababababababababababababababababababababababababababababababababababababababababababababab 9000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c71419ee9fbbc6d638ca34043fab39771fd1578792e7 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040022c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55019ee9fbbc6d638ca34043fab39771fd1578792e700000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestImportKey/ECDSA/ANSIx9p521r1/yk-5.4.3 b/mockdata/TestImportKey/ECDSA/ANSIx9p521r1/yk-5.4.3 new file mode 100644 index 0000000..82e7124 --- /dev/null +++ b/mockdata/TestImportKey/ECDSA/ANSIx9p521r1/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:00:59+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013b4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820114c00a7d000bfe080000ff0000c10a162b06010401da470f01c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550be4753feba68505469305e0ae75498780097c1dc00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613f +on Transmit 00c00000 0000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000039000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c106132b81040023 9000 +on Transmit 00db3fff514d4fb6038401017f480292425f484201ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab 9000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c71498b818e348cf11868c456a41811040c08d44b8b7 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040023c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55098b818e348cf11868c456a41811040c08d44b8b700000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestImportKey/EdDSA/Ed25519/yk-5.4.3 b/mockdata/TestImportKey/EdDSA/Ed25519/yk-5.4.3 new file mode 100644 index 0000000..ea7ba71 --- /dev/null +++ b/mockdata/TestImportKey/EdDSA/Ed25519/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:01:04+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013c4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820115c00a7d000bfe080000ff0000c106010800001100c20b162b060104019755010501c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000f1ee3e382cf041660f10f0d7ac1277adb1bb579c0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006140 +on Transmit 00c00000 000000000000000000cd10000000006563d4c400000000624d7083de0801000202030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c10a162b06010401da470f01 9000 +on Transmit 00db3fff2f4d2db6038401017f480292205f4820abababababababababababababababababababababababababababababababab 9000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c714cbab5cd54bf6adbf5f3fdb95b780ba4e75588962 9000 +on Transmit 00ca006e000bfe 6e82013b4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820114c00a7d000bfe080000ff0000c10a162b06010401da470f01c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550cbab5cd54bf6adbf5f3fdb95b780ba4e7558896200000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestImportKey/RSA/2048/yk-5.4.3 b/mockdata/TestImportKey/RSA/2048/yk-5.4.3 new file mode 100644 index 0000000..2bfb368 --- /dev/null +++ b/mockdata/TestImportKey/RSA/2048/yk-5.4.3 @@ -0,0 +1,26 @@ +# Mockfile/v1 created=2023-12-03T03:09:47+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00db3fff00011c4d820118b6038401017f480891039281809381805f48820103010001e6096f98529a5be0c21fac0f69637c38bf9271956f86645ae8f052fc1b04cdac1ef69824e1df21dcae71f1d5abcbcff9d1fe0c1525c1b1f194713eddf54631f1660c75853aa727e24bac10e614a2909cead0aceafbb32090f685a7eace17bfb6e6755b3f9a0d8907dbcd440887aed0f372264d31d7435c54451c40c29c01d9b5f702129b3e9fefdb01b96d3b21f23eefc4d71bd76702093f1ae84d25f3a3950334d7de09b70b9cc72bd50f4be3813a823941d3cb6fc164be7db4740227486c0d57cf3d6bce0866f15513ba3d1e77b41fda21383aba7c64b49bf788730ad07483b7bcca079df2b4f0b9fb11cb0937fe40305d873edc165281895030884b3de1b9 9000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c714a73e18811900e3253c4303356e96fc8212de35bd 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550a73e18811900e3253c4303356e96fc8212de35bd00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestImportKey/RSA/3072/yk-5.4.3 b/mockdata/TestImportKey/RSA/3072/yk-5.4.3 new file mode 100644 index 0000000..81e64e1 --- /dev/null +++ b/mockdata/TestImportKey/RSA/3072/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:09:49+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550a73e18811900e3253c4303356e96fc8212de35bd00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c106010c00001100 9000 +on Transmit 00db3fff00019c4d820198b6038401017f480891039281c09381c05f48820183010001fb50413c31b666c21f52b50094ae0902c1bf4157f3cd2c951b5b43e34f2f0155770e8c93d5ce6abb360a68db783ef673aa106bc60e8369ad80e9b864bcee14b1781b95ad2de066322cb10517c12579f00d4ee665f2d7dc103e9c3f41bde6a7bc03a0d14f267074cac33eee76547fa67dd5f5b7d1344921537ca45dacad70b474290d7f9abe0b771cbb8f559390a1f53cc0f22d32bff261cc5f87f3eb50ef361f88bf19f255958f1f64bd437cce4ef3ab3949f09f89bdef3170236bfe7cc53f73edf6d726bfc376a0f7effa5fc4c6f94efd8f9305bf9b154d47284de8914ed857c906816c7053120cf5d733568db7643552a3b8df91e4b9fd306109aa3dc31d8ae0ce495bac9dd8f7e290f048f74ef79dbb1be6d3a58a9d5d70461c546a8c14fdc850401708d872356e2aec10838c942f921b55ee56a33140def48a8e315175d1b778faf35b711378b2da1ec3cd14fcc637469f2bdc9faf0f1bec8863de0c89b34da624419b2b8bb5c8ceb044398826c5e5cc096855987f05afadb2754bbe1315 9000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c71476f0fb061c4984e6ef9b6a1d2c00b6328b21b406 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010c00001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55076f0fb061c4984e6ef9b6a1d2c00b6328b21b40600000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestImportKey/RSA/4096/yk-5.4.3 b/mockdata/TestImportKey/RSA/4096/yk-5.4.3 new file mode 100644 index 0000000..56fd785 --- /dev/null +++ b/mockdata/TestImportKey/RSA/4096/yk-5.4.3 @@ -0,0 +1,27 @@ +# Mockfile/v1 created=2023-12-03T03:09:53+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010c00001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55076f0fb061c4984e6ef9b6a1d2c00b6328b21b40600000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c106011000001100 9000 +on Transmit 00db3fff00021e4d82021ab6038401017f480a910392820100938201005f48820203010001cd40e361880699fedab46494f1e51ab4cedfaefe6a9d6293da2a639dd891fc4a3f26b7d3cd78de53388ea9db4aba3816eb6beb1f53b638081f647e99684094829d96cad8cf0064e35959f15b37c4bdda559d45f42aa07492cc65f74101231218511f24aaf8e4d1130e69303c9715d26b1c18abb58e235b461c7916c82940947d592fd2ea75a72e7670aa8b3e29b720ae9e1fe8b24672e8376a9a060f1cd6327ac41520c7b5c8e5abde6661e9369b92be2df520aa519c148c77316a034240d0f82c28bee770a7cc43c90358d1e788fccd9191471a6ac99f5b74efbe65ac5178c6b6da752ee215c48f4a03ebcdc44583cd3f0b7613a371716091c58fbb675a68f3e7cd2950cd5bb78d8c3a7e7c69eb19a0dba7d52c952475fc3e770f9d03da02e1b19cf9ef61cb28c449fbb36e29ea46f5ae8ebb67d16835e79085e4d14c3bde300a4743e4bd2b862599aba6310b3024f876eba0d940d02701a5aa79392b3aa10355564108486075cdffbf0450954c4baba4e3d018fbd9c7c3683fa146517e2c29fda910ca08ae4346f89ea394e3d83e74efae01cb000eeb6fab02b4b2c91942c9d593b87c4c87e10469659de0359ad2e1c9d34af9bbe521a222bf2955b869c0b9785426fdcc10c1858fd4db18522a0fa8c8e22293fc26c8b9d98b5c3a9679f61063aade9453de4c0f56c24246fca3437f4678596fd80a269367887ef4a4cb838b 9000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c7142ec76441614a37470cb5543b833f31b19cb271a9 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106011000001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5502ec76441614a37470cb5543b833f31b19cb271a900000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on EndTransaction diff --git a/mockdata/TestLoginData/yk-5.4.3 b/mockdata/TestLoginData/yk-5.4.3 index c7fdeb7..89d8e1b 100644 --- a/mockdata/TestLoginData/yk-5.4.3 +++ b/mockdata/TestLoginData/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:20+01:00 +# Mockfile/v1 created=2023-12-03T02:57:22+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestPrivateData/0/yk-5.4.3 b/mockdata/TestPrivateData/0/yk-5.4.3 index 7a05d70..6bc6416 100644 --- a/mockdata/TestPrivateData/0/yk-5.4.3 +++ b/mockdata/TestPrivateData/0/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:21+01:00 +# Mockfile/v1 created=2023-12-03T02:57:23+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestPrivateData/1/yk-5.4.3 b/mockdata/TestPrivateData/1/yk-5.4.3 index 547172b..b931ea7 100644 --- a/mockdata/TestPrivateData/1/yk-5.4.3 +++ b/mockdata/TestPrivateData/1/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:22+01:00 +# Mockfile/v1 created=2023-12-03T02:57:24+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestPrivateData/2/yk-5.4.3 b/mockdata/TestPrivateData/2/yk-5.4.3 index c4647a0..1c8384c 100644 --- a/mockdata/TestPrivateData/2/yk-5.4.3 +++ b/mockdata/TestPrivateData/2/yk-5.4.3 @@ -1,8 +1,8 @@ -# Mockfile/v1 created=2023-11-27T01:57:22+01:00 +# Mockfile/v1 created=2023-12-03T02:57:26+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c106010800001100c209122a8648ce3d030107c306010800001100da06010800001100c407017f7f7f030003c55000000000000000000000000000000000000000001345b5872a138ebb17e613926039a3c4cefbc95f0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613e +on Transmit 00c00000 00000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 diff --git a/mockdata/TestPrivateData/3/yk-5.4.3 b/mockdata/TestPrivateData/3/yk-5.4.3 index bac9e43..0ff0168 100644 --- a/mockdata/TestPrivateData/3/yk-5.4.3 +++ b/mockdata/TestPrivateData/3/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:23+01:00 +# Mockfile/v1 created=2023-12-03T02:57:27+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestPublicKeyURL/yk-5.4.3 b/mockdata/TestPublicKeyURL/yk-5.4.3 index fe6f064..393f8ad 100644 --- a/mockdata/TestPublicKeyURL/yk-5.4.3 +++ b/mockdata/TestPublicKeyURL/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:20+01:00 +# Mockfile/v1 created=2023-12-03T02:57:23+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestResetRetryCounter/yk-5.4.3 b/mockdata/TestResetRetryCounter/yk-5.4.3 index 99fe657..8b8ad14 100644 --- a/mockdata/TestResetRetryCounter/yk-5.4.3 +++ b/mockdata/TestResetRetryCounter/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:15+01:00 +# Mockfile/v1 created=2023-12-03T02:57:16+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestResetRetryCounterWithResettingCode/yk-5.4.3 b/mockdata/TestResetRetryCounterWithResettingCode/yk-5.4.3 index 675e71d..72ffbd8 100644 --- a/mockdata/TestResetRetryCounterWithResettingCode/yk-5.4.3 +++ b/mockdata/TestResetRetryCounterWithResettingCode/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:16+01:00 +# Mockfile/v1 created=2023-12-03T02:57:18+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestSecuritySupportTemplate/yk-5.4.3 b/mockdata/TestSecuritySupportTemplate/yk-5.4.3 index 80f288d..0d9c201 100644 --- a/mockdata/TestSecuritySupportTemplate/yk-5.4.3 +++ b/mockdata/TestSecuritySupportTemplate/yk-5.4.3 @@ -1,8 +1,8 @@ -# Mockfile/v1 created=2023-11-27T01:57:23+01:00 +# Mockfile/v1 created=2023-12-03T02:57:30+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040023c306010800001100da06010800001100c407017f7f7f030003c55000000000000000000000000000000000000000001360433fef94e5ca0ac54716ac41500473d2f88a0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 diff --git a/mockdata/TestSetRetryCounters/yk-5.4.3 b/mockdata/TestSetRetryCounters/yk-5.4.3 index ee395b4..da208a8 100644 --- a/mockdata/TestSetRetryCounters/yk-5.4.3 +++ b/mockdata/TestSetRetryCounters/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:16+01:00 +# Mockfile/v1 created=2023-12-03T02:57:18+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030303c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestSetupKDF/yk-5.4.3 b/mockdata/TestSetupKDF/yk-5.4.3 index eed7b5f..7811161 100644 --- a/mockdata/TestSetupKDF/yk-5.4.3 +++ b/mockdata/TestSetupKDF/yk-5.4.3 @@ -1,8 +1,8 @@ -# Mockfile/v1 created=2023-11-27T01:57:12+01:00 +# Mockfile/v1 created=2023-12-03T02:57:10+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000008fe3330ba6def5f93f017d98013fda128ec43e21e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd1000000000000000006563d4c4624d7083de0801000200030181027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 diff --git a/mockdata/TestSharedKeyECDH/ANSIx9p256r1/yk-5.4.3 b/mockdata/TestSharedKeyECDH/ANSIx9p256r1/yk-5.4.3 new file mode 100644 index 0000000..b1bfab9 --- /dev/null +++ b/mockdata/TestSharedKeyECDH/ANSIx9p256r1/yk-5.4.3 @@ -0,0 +1,29 @@ +# Mockfile/v1 created=2023-12-03T02:59:06+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040022c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550ee4c4b12c5954421ec2888e10cb9abea6e062b8b00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c209122a8648ce3d030107 9000 +on Transmit 0047800005b803840102 7f494386410476fefaf85b8f79363575586a784a9b047fe0aff791dc3474edb352a6d0cda6863cd7b19dc0a94582e8ce286de7889fc4f379bdaca17c36fa91f2c497e0df7a709000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c814164393959e0601f0cd0a16490d7a6636e316bf82 9000 +on Transmit 00ca006e000bfe 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c106010800001100c209122a8648ce3d030107c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000164393959e0601f0cd0a16490d7a6636e316bf820000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 0020008206313233343536 9000 +on Transmit 002a808648a6467f494386410444b54e8f07a2b948d70ef10ed49457a8495b47d2d214fd3f07c2a5d958ad1aa0370b2345112aba138685b62008f7afbe8ba1bb7ab63f245d69d5fec298469fa2 f0afa72d9d502d8501971e1ee40951a6cf6baefc493647d42f46bbacd71a06b89000 +on EndTransaction diff --git a/mockdata/TestSharedKeyECDH/ANSIx9p384r1/yk-5.4.3 b/mockdata/TestSharedKeyECDH/ANSIx9p384r1/yk-5.4.3 new file mode 100644 index 0000000..a8376e0 --- /dev/null +++ b/mockdata/TestSharedKeyECDH/ANSIx9p384r1/yk-5.4.3 @@ -0,0 +1,29 @@ +# Mockfile/v1 created=2023-12-03T02:59:09+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040023c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550ef2d2ebf667a9dcd86ea75bb665c0f44592b2e3700000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c206122b81040022 9000 +on Transmit 0047800005b803840102 7f4963866104dfc458a84d99666f5bf4eed8df618f4ee80eaf81ec60b5ace03fcfc112c99d5e7abd32585c439bda00afb21e6e6d635d21b87cc1f948cd4ca1679fe3b64c3dcfb36bff024fcf576e98f33a9a4fb11272e73cee9da7fdf19bc84fbc8d8e9faacf9000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c81492ddaaa7a42221262cae701c232555152aa68cae 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040022c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000092ddaaa7a42221262cae701c232555152aa68cae0000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 0020008206313233343536 9000 +on Transmit 002a808668a6667f4963866104e62d33317956199dc587ebcd1d5fb46843cc1879cb7b86e120a55bc0fd1986935b0bf7fbf3e0e57d70bb10fd0c93a78ea17143864abc512af83505c9376a7b96f78bd5d0fe9a523284bad91faf6af8c094834a30478e2fb488baa79ac04b935e 9bc33bad02b31d09e77b1ecc028f7452d96dd6169bea4173b9b76af0ebb860f4c355665bca4c014cace9b1b8e1a02e839000 +on EndTransaction diff --git a/mockdata/TestSharedKeyECDH/ANSIx9p521r1/yk-5.4.3 b/mockdata/TestSharedKeyECDH/ANSIx9p521r1/yk-5.4.3 new file mode 100644 index 0000000..a89630b --- /dev/null +++ b/mockdata/TestSharedKeyECDH/ANSIx9p521r1/yk-5.4.3 @@ -0,0 +1,29 @@ +# Mockfile/v1 created=2023-12-03T02:59:13+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040022c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000fe453c428cabb3ccbe9b0cd452056688d82c22290000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c206122b81040023 9000 +on Transmit 0047800005b803840102 7f49818886818504002fe14ce0a46246db5885523a6e79acee1438a85f1679fdbe4d6383163f102aad3912c461cf79fdf04aa045cd16852275086522b7fae6731f9aefdcaa8d3d9b88fa01b98b8bbf4468b5ec3d4a93aded74bf0001efd1991d67028220ac1bb14077d5a8eeb612e536d45ecda71cce039cfadb640d29c2c4cc83f0e83ce438c19cb78752db9000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c814ea252b9c2a60160d1b224e5cb59a5aabb46523d1 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040023c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000ea252b9c2a60160d1b224e5cb59a5aabb46523d10000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 0020008206313233343536 9000 +on Transmit 002a80868fa6818c7f49818886818504011f9ae236f2e61db18df4f2d9d7233f97c0e87b27168d5357cdbc816aca3c5e01ad30e1d0da11ae1ca76fb282a3bb5f9c430070cf970f9867f7a8ac47e96eb4808b01e77c3ee39ec0864e0657f404a55799e4c909356204113456c37bb2dfcd2584e258e20f616be268b30cbc35b538dd1ce05a1ea29eef66aab08ebccd15c4b1bdaf75 00166b7e87334fdf1b00d1019000bc14a6b11e1d230fff7bfa07ec970397f6081f9c0156eccdc15efd46869ab3a06cf689a0a8a6c40cc13d832145ed9e81ca0fa1769000 +on EndTransaction diff --git a/mockdata/TestSharedKeyECDH/X25519/yk-5.4.3 b/mockdata/TestSharedKeyECDH/X25519/yk-5.4.3 new file mode 100644 index 0000000..84e5f24 --- /dev/null +++ b/mockdata/TestSharedKeyECDH/X25519/yk-5.4.3 @@ -0,0 +1,29 @@ +# Mockfile/v1 created=2023-12-03T02:59:14+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206122b81040023c306010800001100da06010800001100c407017f7f7f030003c5500000000000000000000000000000000000000000ea252b9c2a60160d1b224e5cb59a5aabb46523d10000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c20b162b060104019755010501 9000 +on Transmit 0047800005b803840102 7f492286203736bf9c96e73f8d60760d584d32dacb97f903327ca7f43581af47262e212f609000 +on Transmit 00da00cf046563d4c4 9000 +on Transmit 00da00c8146eaf1c2fd539639fece321cfa9ae5338b99e92f2 9000 +on Transmit 00ca006e000bfe 6e82013c4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820115c00a7d000bfe080000ff0000c106010800001100c20b162b060104019755010501c306010800001100da06010800001100c407017f7f7f030003c55000000000000000000000000000000000000000006eaf1c2fd539639fece321cfa9ae5338b99e92f20000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000006563d4c400000000624d7083de0801000201030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 0020008206313233343536 9000 +on Transmit 002a808627a6257f49228620e3712d851a0e5d79b831c5e34ab22b41a198171de209b8b8faca23a11c624859 f5706740d2dd784d81400d28911b8df17176312a03f71a998296cea6abc792069000 +on EndTransaction diff --git a/mockdata/TestSign/ECDSA/ANSIx9p256r1/yk-5.4.3 b/mockdata/TestSign/ECDSA/ANSIx9p256r1/yk-5.4.3 new file mode 100644 index 0000000..5be11c8 --- /dev/null +++ b/mockdata/TestSign/ECDSA/ANSIx9p256r1/yk-5.4.3 @@ -0,0 +1,31 @@ +# Mockfile/v1 created=2023-12-03T03:01:05+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013b4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820114c00a7d000bfe080000ff0000c10a162b06010401da470f01c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550cbab5cd54bf6adbf5f3fdb95b780ba4e7558896200000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613f +on Transmit 00c00000 0000000000000000cd106563d4c40000000000000000624d7083de0801020200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c109132a8648ce3d030107 9000 +on Transmit 0047800005b603840101 7f4943864104a2b0d7b73630ec2d71dad6aba0b8b7e1b2035355944ece06de741af469fb2495021fd47d2a22f9fbddd073ef1eac37e478d49437c610169c2505976caac099809000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c714a772d8e794e76e84866e53f046a35b593facca51 9000 +on Transmit 00ca006e000bfe 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c109132a8648ce3d030107c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550a772d8e794e76e84866e53f046a35b593facca5100000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 0020008106313233343536 9000 +on Transmit 002a9e9a208d756ae4bf4f413db4aa7bf14a84e716650742f4852d9dda7395324f3e2b3bbd 87382b61a1fcfe6345eca18ec31317e468282779619349eb27b90d1937091fdbcd4ba8110e72376107d8627f37575be43128e6e12937fc36ba00928239e720c79000 +on Transmit 002a9e9a303d9e664749a24984140961ebe1a9b54a04f93d4f9a742fbbe2ef7032340c1773193683c6102dbea76c4cd3c16b424bda b27a4fb768cc2929254c1f7ede821a9f928692cd206a96b3e0e2d8655afca8059d2773aca8a2eb4398cb985a9861a9e7d4bfc86c3f14bd476756d6adc0dd50159000 +on Transmit 002a9e9a4046a3a46f02bff4a2373524166766edca4e6d1fca67e95952f492b0912ac12239be75694d63c646139f6eb43313c688ded5a4b331f17191952780740b9f979c20 0f0fa0ef268d025d907b33a628ed31bc8040a6f6787b30ea4a8f6e187c91b13ef03715eaa06a2e0ec5af455bc627532ccfd073bbf6d8e7742dca2107a23be8ed9000 +on EndTransaction diff --git a/mockdata/TestSign/ECDSA/ANSIx9p384r1/yk-5.4.3 b/mockdata/TestSign/ECDSA/ANSIx9p384r1/yk-5.4.3 new file mode 100644 index 0000000..dde4eed --- /dev/null +++ b/mockdata/TestSign/ECDSA/ANSIx9p384r1/yk-5.4.3 @@ -0,0 +1,31 @@ +# Mockfile/v1 created=2023-12-03T03:01:07+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e82013a4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820113c00a7d000bfe080000ff0000c109132a8648ce3d030107c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550a772d8e794e76e84866e53f046a35b593facca5100000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613e +on Transmit 00c00000 00000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000039000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c106132b81040022 9000 +on Transmit 0047800005b603840101 7f4963866104a4d7aaa3faf215e8f373a33e7f7d32fa6d844e0706ecac37171f00d23e7310ca2065e209342b78e79bbe28145cfbd23caf613e13cba9ff8392057c17856cf795458c83ee9b3e15442c6caddfe6d2e4d25a5ad4b8c4534043bf9b6902e6459d9d9000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c71414b5984e46a42bed8d4f00a17cb1864907b3a30c 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040022c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55014b5984e46a42bed8d4f00a17cb1864907b3a30c00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 0020008106313233343536 9000 +on Transmit 002a9e9a208d756ae4bf4f413db4aa7bf14a84e716650742f4852d9dda7395324f3e2b3bbd afe3cf78f7557b7a4cb5a33825f90e801626519c2290e545e5fa3261a9bfbf8deb6a1b24490ed3b82968dbb64aba50cd499fcbdd8acd48512002265be3838a6263162a39a31716a64e9af6c315fb9bf7f3caf3d9fe53139acef3cd268bf34a1b9000 +on Transmit 002a9e9a303d9e664749a24984140961ebe1a9b54a04f93d4f9a742fbbe2ef7032340c1773193683c6102dbea76c4cd3c16b424bda d2cb0556141fee0d312d057259b19aa1e894b37fa9f2eed5e487449ca1d7e16daef91cc0a8c0efb172824d71a5929c81cd187630be973c165dffb48944143a8f532cab983abc9377a45688153daefabfa71fd4279711745a3b9a76c90991eab59000 +on Transmit 002a9e9a4046a3a46f02bff4a2373524166766edca4e6d1fca67e95952f492b0912ac12239be75694d63c646139f6eb43313c688ded5a4b331f17191952780740b9f979c20 b3afe0b5ead06da7d418f5f82d3a484e456166c451148ab30e1743ee23587eda4cf1e96894813cdb0e2c5f291cdfe262fe0725bf332fc0df368dd05b4081e72f0a40ea5bc9f4519c52dc1f04ff0426ab069ca1c342fdf52a510e7ceb382668479000 +on EndTransaction diff --git a/mockdata/TestSign/ECDSA/ANSIx9p521r1/yk-5.4.3 b/mockdata/TestSign/ECDSA/ANSIx9p521r1/yk-5.4.3 new file mode 100644 index 0000000..5e5dba2 --- /dev/null +++ b/mockdata/TestSign/ECDSA/ANSIx9p521r1/yk-5.4.3 @@ -0,0 +1,31 @@ +# Mockfile/v1 created=2023-12-03T03:01:09+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040022c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55014b5984e46a42bed8d4f00a17cb1864907b3a30c00000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000039000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c106132b81040023 9000 +on Transmit 0047800005b603840101 7f49818886818504008a3d985442c81674b90e722e6de9d2d4e1f8f6e2b23b574ac71ec8553b980b1ae97bf92ee914f75274d86b341874ef150d219da68144bdac4cbfe244c07083b2ce0142a53873d747804c661bc14655be72e9b238381130a60f2274754c44a7373d3962f34f909eb60b9df3869946d1d96fa636ea1c591911898e173365921150c71e889000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c71402449a1ebdd4ad710508ca297be12a2f2bd72333 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040023c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55002449a1ebdd4ad710508ca297be12a2f2bd7233300000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 0020008106313233343536 9000 +on Transmit 002a9e9a208d756ae4bf4f413db4aa7bf14a84e716650742f4852d9dda7395324f3e2b3bbd 01c6a4f18c11112e747f649c2239ebf3319ba96c16995d692d271cf16b9ff4a9eff6f76e9dcbfaaf98d6b70ae5b0c9d78ad79b3c71f62d7ceeef14ce7f0f7a60982101072b0f4c388ecc1e42e8de1c41b6f365ba5fa9c1057de927f8f6a9fc07c554bbf0c04957391e593f6e140c8037a0d55af49f2cead7186e51448afff2bff84a72379000 +on Transmit 002a9e9a303d9e664749a24984140961ebe1a9b54a04f93d4f9a742fbbe2ef7032340c1773193683c6102dbea76c4cd3c16b424bda 015060853977aed37f88366eb1703f47068fb07fef9cd80521db00f488a875e76ff1f3b19ce159f5c06e692fb0e5e90412bbd2a75b1bc3ddefe190990c4cb6f51d8d00cbdd6f5a0bca2164a187fff777ef5147280274ca69ba91b726f2571aab27d861ba8d76f175ce390773a12728252983ca568c162e5d5bd3cebb39487fdef0d219939000 +on Transmit 002a9e9a4046a3a46f02bff4a2373524166766edca4e6d1fca67e95952f492b0912ac12239be75694d63c646139f6eb43313c688ded5a4b331f17191952780740b9f979c20 00be9559a0e4e0ca8e03aa6790a36bbda748d99c7b45cf2ccfdb3f5fc373a4dbef27f06a29f3a13f5e6a3cdf6f7212c0e4f79fc5d66e08af64d0a8b1c4befecd052d0108a82b25edce79ee0eace611433f418cd89bf21e8c8fce5df90738946521bd2ed95cbfc782515111c0f7fa1c321c237ef19a836d8f3a64d0bdde1130b6f4857ee19000 +on EndTransaction diff --git a/mockdata/TestSign/EdDSA/yk-5.4.3 b/mockdata/TestSign/EdDSA/yk-5.4.3 new file mode 100644 index 0000000..a849671 --- /dev/null +++ b/mockdata/TestSign/EdDSA/yk-5.4.3 @@ -0,0 +1,31 @@ +# Mockfile/v1 created=2023-12-03T03:01:10+01:00 +on BeginTransaction +on Transmit 00a4040006d27600012401 9000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106132b81040023c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55002449a1ebdd4ad710508ca297be12a2f2bd7233300000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000039000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00a4040007a0000005272001 0504030105009000 +on Transmit 00030000 0504030105009000 +on Transmit 00a4040006d27600012401 9000 +on Transmit 00e60000 6982 +on Transmit 00ca00c4000bfe 017f7f7f0300039000 +on Transmit 00200083083132333435363738 9000 +on Transmit 00e60000 9000 +on Transmit 00440000 9000 +on Transmit 00ca006e000bfe 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 +on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca00f9000bfe 8101009000 +on Transmit 00ca00fa000bfe fa8201e2c106010800001100c106010c00001100c106011000001100c109132a8648ce3d030107c106132b81040022c106132b81040023c106132b8104000ac10a132b2403030208010107c10a132b240303020801010bc10a132b240303020801010dc10a162b06010401da470f01c10b162b060104019755010501c206010800001100c206010c00001100c206011000001100c209122a8648ce3d030107c206122b81040022c206122b81040023c206122b8104000ac20a122b2403030208010107c20a122b240303020801010bc20a122b240303020801010dc20a162b06010401da470f01c20b162b060104019755010501c306010800001100c306010c00001100c306011000001100c309132a8648ce3d030107c306132b81040022c306132b81040023c306132b8104000ac30a132b2403030208010107c30a132b240303020801010bc30a132b240303020801010dc30a162b06010401da470f01c30b162b060104019755010501da06010800001100da06010c00001100da06011000001100da09132a8648ce3d030107da06132b81040022da06132b81040023da06132b8104000ada0a132b2403030208010107da0a132b240303020801010bda0a132b240303020801010dda0a162b06010401da470f01da0b162b0601040197550105019000 +on Transmit 00da00c10a162b06010401da470f01 9000 +on Transmit 0047800005b603840101 7f49228620ad805a882120da4a18805e6d751f67918c102ac7571ddeef7ab0f954ae6a64919000 +on Transmit 00da00ce046563d4c4 9000 +on Transmit 00da00c7144d386099d53d5f5d5d02a60f56a772be92f2d395 9000 +on Transmit 00ca006e000bfe 6e82013b4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820114c00a7d000bfe080000ff0000c10a162b06010401da470f01c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5504d386099d53d5f5d5d02a60f56a772be92f2d39500000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 0020008106313233343536 9000 +on Transmit 002a9e9a208d756ae4bf4f413db4aa7bf14a84e716650742f4852d9dda7395324f3e2b3bbd 17b173e6ef079dea8f0e693a02aab3e6bec192a3ea7cf81e96dd9d953386e6cbe67f11d4cae69f6aca99b1ba29e6a2b4a474597b8b771441062cec2f3079310f9000 +on Transmit 002a9e9a303d9e664749a24984140961ebe1a9b54a04f93d4f9a742fbbe2ef7032340c1773193683c6102dbea76c4cd3c16b424bda c4e3752bc68344b1e95a3083ea869a7809257dbcda74e9c4c789cec3ab970bfbab81419d924c4d901e71e78c3bc34de3e49658cae538cbf6750beb8b560cf50b9000 +on Transmit 002a9e9a4046a3a46f02bff4a2373524166766edca4e6d1fca67e95952f492b0912ac12239be75694d63c646139f6eb43313c688ded5a4b331f17191952780740b9f979c20 485a29a449c50e449073709fd586767b8b4825429d8205dbdb45e54d7badb86af95049fb60cd83f3a98cef67c48437767540a96edc23cf4a3e4606ea4ba6a1089000 +on EndTransaction diff --git a/mockdata/TestSignatureCounter/yk-5.4.3 b/mockdata/TestSignatureCounter/yk-5.4.3 index 80f288d..176326d 100644 --- a/mockdata/TestSignatureCounter/yk-5.4.3 +++ b/mockdata/TestSignatureCounter/yk-5.4.3 @@ -1,8 +1,8 @@ -# Mockfile/v1 created=2023-11-27T01:57:23+01:00 +# Mockfile/v1 created=2023-12-03T02:57:43+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd10000000000000000000000000624d7083de0801000200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5504b063f18103c64c03dbd66d3a6e4dce76c84561500000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b +on Transmit 00c00000 00000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 on Transmit 00ca007a000bfe 7a0593030000009000 on Transmit 00ca00f9000bfe 8101009000 diff --git a/mockdata/TestSupportedAlgorithms/yk-5.4.3 b/mockdata/TestSupportedAlgorithms/yk-5.4.3 index fd0cd79..0201614 100644 --- a/mockdata/TestSupportedAlgorithms/yk-5.4.3 +++ b/mockdata/TestSupportedAlgorithms/yk-5.4.3 @@ -1,10 +1,10 @@ -# Mockfile/v1 created=2023-11-27T01:57:30+01:00 +# Mockfile/v1 created=2023-12-03T03:01:10+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 -on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c55000000000000000000000000000000000000000000000000000000000000000000000000000000000e88637f191942f620ba7ea29e5e7257556cc45d8e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b -on Transmit 00c00000 00000000cd1000000000000000006563d4c4624d7083de0801000200030181027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 +on Transmit 00ca006e00 6e82013b4f10d27600012401030400062385277400005f520800730000e00590007f740381012073820114c00a7d000bfe080000ff0000c10a162b06010401da470f01c206010800001100c306010800001100da06010800001100c407017f7f7f030003c5504d386099d53d5f5d5d02a60f56a772be92f2d39500000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613f +on Transmit 00c00000 0000000000000000cd106563d4c40000000000000000624d7083de0801010200030081027f660802020bfe02020bfed6020020d7020020d8020020d90200209000 on Transmit 00ca0065000bfe 65095b005f2d005f3501399000 -on Transmit 00ca007a000bfe 7a0593030000009000 +on Transmit 00ca007a000bfe 7a0593030000039000 on Transmit 00ca00f9000bfe 8101009000 on Transmit 00a4040007a0000005272001 0504030105009000 on Transmit 00030000 0504030105009000 diff --git a/mockdata/TestVerifyPassword/pw1/yk-5.4.3 b/mockdata/TestVerifyPassword/pw1/yk-5.4.3 index 16df937..b9ca4f6 100644 --- a/mockdata/TestVerifyPassword/pw1/yk-5.4.3 +++ b/mockdata/TestVerifyPassword/pw1/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:13+01:00 +# Mockfile/v1 created=2023-12-03T02:57:11+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mockdata/TestVerifyPassword/pw3/yk-5.4.3 b/mockdata/TestVerifyPassword/pw3/yk-5.4.3 index eecd739..87b5a35 100644 --- a/mockdata/TestVerifyPassword/pw3/yk-5.4.3 +++ b/mockdata/TestVerifyPassword/pw3/yk-5.4.3 @@ -1,4 +1,4 @@ -# Mockfile/v1 created=2023-11-27T01:57:13+01:00 +# Mockfile/v1 created=2023-12-03T02:57:13+01:00 on BeginTransaction on Transmit 00a4040006d27600012401 9000 on Transmit 00ca006e00 6e8201374f10d27600012401030400062385277400005f520800730000e00590007f740381012073820110c00a7d000bfe080000ff0000c106010800001100c206010800001100c306010800001100da06010800001100c407017f7f7f030003c550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9f5079a2003e46930c0d9c24a4e3318fdcbcf67c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613b diff --git a/mpi.go b/mpi.go new file mode 100644 index 0000000..07a44c7 --- /dev/null +++ b/mpi.go @@ -0,0 +1,30 @@ +// SPDX-FileCopyrightText: 2023 Steffen Vogel +// SPDX-License-Identifier: Apache-2.0 + +package openpgp + +import ( + "math/big" + "math/bits" +) + +func appendMPI(b []byte, i *big.Int) []byte { + b = append(b, byte(i.BitLen()>>8), byte(i.BitLen())) + b = append(b, i.Bytes()...) + return b +} + +func appendBytesMPI(b, o []byte) []byte { + for len(o) != 0 && o[0] == 0 { + o = o[1:] // Strip leading zero bytes + } + + var l uint16 + if len(o) > 0 { + l = 8*uint16(len(o)-1) + uint16(bits.Len8(o[0])) + } + + b = append(b, byte(l>>8), byte(l)) + b = append(b, o...) + return b +} diff --git a/objects.go b/objects.go index 6cec0e5..cffb42f 100644 --- a/objects.go +++ b/objects.go @@ -4,19 +4,18 @@ package openpgp import ( - "bytes" "encoding/binary" "encoding/hex" "fmt" "log" "log/slog" - "reflect" "time" iso "cunicu.li/go-iso7816" "cunicu.li/go-iso7816/encoding/tlv" ) +// KDF contains the Parameters for the Key Derivation Function (KDF). type KDF struct { Algorithm AlgKDF HashAlgorithm AlgHash @@ -115,28 +114,33 @@ func (k *KDF) Encode() ([]byte, error) { ) default: - return nil, errUnsupported + return nil, ErrUnsupported } return tlv.EncodeBER(parts...) } -type UserInteractionFlag struct { +// UIF configures the required user interaction for certain security operations. +type UIF struct { Mode UserInteractionMode - Feature byte + Feature GeneralFeatures } -func (uif *UserInteractionFlag) Decode(b []byte) error { +func (uif *UIF) Decode(b []byte) error { if len(b) != 2 { return ErrInvalidLength } uif.Mode = UserInteractionMode(b[0]) - uif.Feature = b[1] + uif.Feature = GeneralFeatures(b[1]) return nil } +func (uif UIF) Encode() []byte { + return []byte{byte(uif.Mode), byte(uif.Feature)} +} + type ImportFormat byte const ( @@ -148,123 +152,28 @@ const ( ImportFormatECDSAStdWithPublicKey ImportFormat = 0xff ) -type AlgorithmAttributes struct { - Algorithm AlgPubkey - - // Relevant for RSA - LengthModulus uint16 - LengthExponent uint16 - - // Relevant for ECDSA/ECDH - OID []byte - - ImportFormat ImportFormat -} - -func (a AlgorithmAttributes) Equal(ab AlgorithmAttributes) bool { - return reflect.DeepEqual(a, ab) -} - -func (a *AlgorithmAttributes) Decode(b []byte) error { - if len(b) < 1 { - return ErrInvalidLength - } - - a.Algorithm = AlgPubkey(b[0]) - - switch a.Algorithm { - case AlgPubkeyRSA: - if len(b) < 6 { - return ErrInvalidLength - } - - a.LengthModulus = binary.BigEndian.Uint16(b[1:]) - a.LengthExponent = binary.BigEndian.Uint16(b[3:]) - a.ImportFormat = ImportFormat(b[5]) - - case AlgPubkeyECDH, AlgPubkeyECDSA, AlgPubkeyEdDSA: - a.OID = b[1:] - - // Strip trailing import format byte if present - l := len(a.OID) - if ImportFormat(a.OID[l-1]) == ImportFormatECDSAStdWithPublicKey { - a.ImportFormat = ImportFormatECDSAStdWithPublicKey - a.OID = a.OID[:l-1] - } - - default: - return errUnmarshal - } - - return nil -} - -func (a AlgorithmAttributes) Encode() (b []byte) { - b = []byte{byte(a.Algorithm)} - - switch a.Algorithm { - case AlgPubkeyRSA: - b = binary.BigEndian.AppendUint16(b, a.LengthModulus) - b = binary.BigEndian.AppendUint16(b, a.LengthExponent) - b = append(b, byte(a.ImportFormat)) - - case AlgPubkeyECDH, AlgPubkeyECDSA, AlgPubkeyEdDSA: - b = append(b, a.OID...) - if a.ImportFormat == ImportFormatECDSAStdWithPublicKey { - b = append(b, byte(ImportFormatECDSAStdWithPublicKey)) - } - - default: - } - - return b -} - -func (a AlgorithmAttributes) String() string { - switch a.Algorithm { - case AlgPubkeyRSAEncOnly, AlgPubkeyRSASignOnly, AlgPubkeyRSA: - return fmt.Sprintf("RSA-%d", a.LengthModulus) - - case AlgPubkeyECDH, AlgPubkeyECDSA, AlgPubkeyEdDSA: - return a.Curve().String() - - default: - return "" - } -} - -func (a AlgorithmAttributes) Curve() Curve { - for curve, oid := range oidByCurve { - if bytes.Equal(a.OID, oid) { - return curve - } - } - - return CurveUnknown -} - type Fingerprint [20]byte -type Status byte +type KeyStatus byte const ( - StatusKeyNotPresent Status = iota // Not generated or imported - StatusKeyGenerated // On the the card - StatusKeyImported // Into the card (insecure) + KeyNotPresent KeyStatus = iota // Not generated or imported + KeyGenerated // On the the card + KeyImported // Into the card (insecure) ) type KeyInfo struct { - Reference byte - Status Status + Reference KeyRef + Status KeyStatus AlgAttrs AlgorithmAttributes Fingerprint []byte FingerprintCA []byte GenerationTime time.Time - UIF UserInteractionFlag + UIF UIF } type ApplicationRelated struct { - AID ApplicationIdentifier + AID AID HistoricalBytes iso.HistoricalBytes LengthInfo ExtendedLengthInfo @@ -272,7 +181,7 @@ type ApplicationRelated struct { Features GeneralFeatures PasswordStatus PasswordStatus - Keys [4]KeyInfo + Keys map[KeyRef]KeyInfo } //nolint:gocognit @@ -305,6 +214,8 @@ func (ar *ApplicationRelated) Decode(b []byte) (err error) { } case tagDiscretionaryDOs: + var keySign, keyDecrypt, keyAuthn, keyAttest KeyInfo + for _, tv := range tv.Children { switch tv.Tag { case tagExtendedLengthInfo: @@ -318,40 +229,42 @@ func (ar *ApplicationRelated) Decode(b []byte) (err error) { } case tagAlgAttrsSign: - if err := ar.Keys[SlotSign].AlgAttrs.Decode(tv.Value); err != nil { + if err := keySign.AlgAttrs.Decode(tv.Value); err != nil { return fmt.Errorf("failed to decode sign key attrs: %w", err) } + case tagAlgAttrsDecrypt: - if err := ar.Keys[SlotDecrypt].AlgAttrs.Decode(tv.Value); err != nil { + if err := keyDecrypt.AlgAttrs.Decode(tv.Value); err != nil { return fmt.Errorf("failed to decode decrypt key attrs: %w", err) } + case tagAlgAttrsAuthn: - if err := ar.Keys[SlotAuthn].AlgAttrs.Decode(tv.Value); err != nil { + if err := keyAuthn.AlgAttrs.Decode(tv.Value); err != nil { return fmt.Errorf("failed to decode authentication key attrs: %w", err) } case tagAlgAttrsAttest: - if err := ar.Keys[SlotAttest].AlgAttrs.Decode(tv.Value); err != nil { + if err := keyAttest.AlgAttrs.Decode(tv.Value); err != nil { return fmt.Errorf("failed to decode attestation key attrs: %w", err) } case tagUIFSign: - if err := ar.Keys[SlotSign].UIF.Decode(tv.Value); err != nil { + if err := keySign.UIF.Decode(tv.Value); err != nil { return fmt.Errorf("failed to decode user interaction flag: %w", err) } case tagUIFAuthn: - if err := ar.Keys[SlotAuthn].UIF.Decode(tv.Value); err != nil { + if err := keyAuthn.UIF.Decode(tv.Value); err != nil { return fmt.Errorf("failed to decode user interaction flag: %w", err) } case tagUIFDecrypt: - if err := ar.Keys[SlotDecrypt].UIF.Decode(tv.Value); err != nil { + if err := keyDecrypt.UIF.Decode(tv.Value); err != nil { return fmt.Errorf("failed to decode user interaction flag: %w", err) } case tagUIFAttest: - if err := ar.Keys[SlotAttest].UIF.Decode(tv.Value); err != nil { + if err := keyAttest.UIF.Decode(tv.Value); err != nil { return fmt.Errorf("failed to decode user interaction flag: %w", err) } @@ -365,53 +278,60 @@ func (ar *ApplicationRelated) Decode(b []byte) (err error) { return ErrInvalidLength } - ar.Keys[SlotSign].Fingerprint = tv.Value[0:20] - ar.Keys[SlotDecrypt].Fingerprint = tv.Value[20:40] - ar.Keys[SlotAuthn].Fingerprint = tv.Value[40:60] + keySign.Fingerprint = tv.Value[0:20] + keyDecrypt.Fingerprint = tv.Value[20:40] + keyAuthn.Fingerprint = tv.Value[40:60] case tagFprAttest: if len(tv.Value) < 20 { return ErrInvalidLength } - ar.Keys[SlotAttest].Fingerprint = tv.Value[0:20] + keyAttest.Fingerprint = tv.Value[0:20] case tagFprCA: if len(tv.Value) < 60 { return ErrInvalidLength } - ar.Keys[SlotSign].FingerprintCA = tv.Value[0:20] - ar.Keys[SlotDecrypt].FingerprintCA = tv.Value[20:40] - ar.Keys[SlotAuthn].FingerprintCA = tv.Value[40:60] + keySign.FingerprintCA = tv.Value[0:20] + keyDecrypt.FingerprintCA = tv.Value[20:40] + keyAuthn.FingerprintCA = tv.Value[40:60] case tagFprCAAttest: if len(tv.Value) < 20 { return ErrInvalidLength } - ar.Keys[SlotAttest].FingerprintCA = tv.Value[0:20] + keyAttest.FingerprintCA = tv.Value[0:20] case tagGenTime: if len(tv.Value) < 12 { return ErrInvalidLength } - ar.Keys[SlotSign].GenerationTime = decodeTime(tv.Value[0:]) - ar.Keys[SlotDecrypt].GenerationTime = decodeTime(tv.Value[4:]) - ar.Keys[SlotAuthn].GenerationTime = decodeTime(tv.Value[8:]) + keySign.GenerationTime = decodeTime(tv.Value[0:]) + keyDecrypt.GenerationTime = decodeTime(tv.Value[4:]) + keyAuthn.GenerationTime = decodeTime(tv.Value[8:]) case tagGenTimeAttest: if len(tv.Value) < 4 { return ErrInvalidLength } - ar.Keys[SlotAttest].GenerationTime = decodeTime(tv.Value[0:]) + keyAttest.GenerationTime = decodeTime(tv.Value[0:]) case tagKeyInfo: - for i := 0; i < len(tv.Value)/2; i++ { - ar.Keys[i].Reference = tv.Value[i*2+0] - ar.Keys[i].Status = Status(tv.Value[i*2+1]) + keySign.Reference = KeyRef(tv.Value[0]) + keySign.Status = KeyStatus(tv.Value[1]) + keyDecrypt.Reference = KeyRef(tv.Value[2]) + keyDecrypt.Status = KeyStatus(tv.Value[3]) + keyAuthn.Reference = KeyRef(tv.Value[4]) + keyAuthn.Status = KeyStatus(tv.Value[5]) + + if len(tv.Value) >= 8 { + keyAttest.Reference = KeyRef(tv.Value[6]) + keyAttest.Status = KeyStatus(tv.Value[7]) } default: @@ -422,6 +342,12 @@ func (ar *ApplicationRelated) Decode(b []byte) (err error) { } } + ar.Keys = map[KeyRef]KeyInfo{ + KeySign: keySign, + KeyDecrypt: keyDecrypt, + KeyAuthn: keyAuthn, + } + default: slog.Warn("Received unknown tag", slog.String("do", "application related"), @@ -598,7 +524,7 @@ func (gf *GeneralFeatures) Decode(b []byte) error { return nil } -type ApplicationIdentifier struct { +type AID struct { RID iso.RID Application byte Version iso.Version @@ -606,7 +532,7 @@ type ApplicationIdentifier struct { Manufacturer Manufacturer } -func (aid *ApplicationIdentifier) Decode(b []byte) error { +func (aid *AID) Decode(b []byte) error { if len(b) != 16 { return ErrInvalidLength }