1*e7b1675dSTing-Kang Chang// Copyright 2020 Google LLC 2*e7b1675dSTing-Kang Chang// 3*e7b1675dSTing-Kang Chang// Licensed under the Apache License, Version 2.0 (the "License"); 4*e7b1675dSTing-Kang Chang// you may not use this file except in compliance with the License. 5*e7b1675dSTing-Kang Chang// You may obtain a copy of the License at 6*e7b1675dSTing-Kang Chang// 7*e7b1675dSTing-Kang Chang// http://www.apache.org/licenses/LICENSE-2.0 8*e7b1675dSTing-Kang Chang// 9*e7b1675dSTing-Kang Chang// Unless required by applicable law or agreed to in writing, software 10*e7b1675dSTing-Kang Chang// distributed under the License is distributed on an "AS IS" BASIS, 11*e7b1675dSTing-Kang Chang// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*e7b1675dSTing-Kang Chang// See the License for the specific language governing permissions and 13*e7b1675dSTing-Kang Chang// limitations under the License. 14*e7b1675dSTing-Kang Chang// 15*e7b1675dSTing-Kang Chang//////////////////////////////////////////////////////////////////////////////// 16*e7b1675dSTing-Kang Chang 17*e7b1675dSTing-Kang Changpackage subtle_test 18*e7b1675dSTing-Kang Chang 19*e7b1675dSTing-Kang Changimport "github.com/google/tink/go/testutil" 20*e7b1675dSTing-Kang Chang 21*e7b1675dSTing-Kang Changtype ecdsaSuite struct { 22*e7b1675dSTing-Kang Chang testutil.WycheproofSuite 23*e7b1675dSTing-Kang Chang TestGroups []*ecdsaGroup `json:"testGroups"` 24*e7b1675dSTing-Kang Chang} 25*e7b1675dSTing-Kang Chang 26*e7b1675dSTing-Kang Changtype ecdsaGroup struct { 27*e7b1675dSTing-Kang Chang testutil.WycheproofGroup 28*e7b1675dSTing-Kang Chang JWK *ecdsaJWK `json:"jwk,omitempty"` 29*e7b1675dSTing-Kang Chang KeyDER string `json:"keyDer"` 30*e7b1675dSTing-Kang Chang KeyPEM string `json:"keyPem"` 31*e7b1675dSTing-Kang Chang SHA string `json:"sha"` 32*e7b1675dSTing-Kang Chang Type string `json:"type"` 33*e7b1675dSTing-Kang Chang Key *ecdsaTestKey `json:"key"` 34*e7b1675dSTing-Kang Chang Tests []*ecdsaCase `json:"tests"` 35*e7b1675dSTing-Kang Chang} 36*e7b1675dSTing-Kang Chang 37*e7b1675dSTing-Kang Changtype ecdsaCase struct { 38*e7b1675dSTing-Kang Chang testutil.WycheproofCase 39*e7b1675dSTing-Kang Chang Message testutil.HexBytes `json:"msg"` 40*e7b1675dSTing-Kang Chang Signature testutil.HexBytes `json:"sig"` 41*e7b1675dSTing-Kang Chang} 42*e7b1675dSTing-Kang Chang 43*e7b1675dSTing-Kang Changtype ecdsaTestKey struct { 44*e7b1675dSTing-Kang Chang Curve string `json:"curve"` 45*e7b1675dSTing-Kang Chang Type string `json:"type"` 46*e7b1675dSTing-Kang Chang Wx string `json:"wx"` 47*e7b1675dSTing-Kang Chang Wy string `json:"wy"` 48*e7b1675dSTing-Kang Chang} 49*e7b1675dSTing-Kang Chang 50*e7b1675dSTing-Kang Changtype ecdsaJWK struct { 51*e7b1675dSTing-Kang Chang JWK string `json:"jwk"` 52*e7b1675dSTing-Kang Chang Curve string `json:"crv"` 53*e7b1675dSTing-Kang Chang Kid string `json:"kid"` 54*e7b1675dSTing-Kang Chang Kty string `json:"kty"` 55*e7b1675dSTing-Kang Chang X string `json:"x"` 56*e7b1675dSTing-Kang Chang Y string `json:"y"` 57*e7b1675dSTing-Kang Chang} 58*e7b1675dSTing-Kang Chang 59*e7b1675dSTing-Kang Changtype ed25519Suite struct { 60*e7b1675dSTing-Kang Chang testutil.WycheproofSuite 61*e7b1675dSTing-Kang Chang TestGroups []*ed25519Group `json:"testGroups"` 62*e7b1675dSTing-Kang Chang} 63*e7b1675dSTing-Kang Chang 64*e7b1675dSTing-Kang Changtype ed25519Group struct { 65*e7b1675dSTing-Kang Chang testutil.WycheproofGroup 66*e7b1675dSTing-Kang Chang KeyDER string `json:"keyDer"` 67*e7b1675dSTing-Kang Chang KeyPEM string `json:"keyPem"` 68*e7b1675dSTing-Kang Chang SHA string `json:"sha"` 69*e7b1675dSTing-Kang Chang Type string `json:"type"` 70*e7b1675dSTing-Kang Chang Key *ed25519TestKey `json:"key"` 71*e7b1675dSTing-Kang Chang Tests []*ed25519Case `json:"tests"` 72*e7b1675dSTing-Kang Chang} 73*e7b1675dSTing-Kang Chang 74*e7b1675dSTing-Kang Changtype ed25519Case struct { 75*e7b1675dSTing-Kang Chang testutil.WycheproofCase 76*e7b1675dSTing-Kang Chang Message testutil.HexBytes `json:"msg"` 77*e7b1675dSTing-Kang Chang Signature testutil.HexBytes `json:"sig"` 78*e7b1675dSTing-Kang Chang} 79*e7b1675dSTing-Kang Chang 80*e7b1675dSTing-Kang Changtype ed25519TestKey struct { 81*e7b1675dSTing-Kang Chang SK testutil.HexBytes `json:"sk"` 82*e7b1675dSTing-Kang Chang PK testutil.HexBytes `json:"pk"` 83*e7b1675dSTing-Kang Chang} 84