1// Copyright 2019 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15//////////////////////////////////////////////////////////////////////////////// 16 17// Package signature provides implementations of the Signer and Verifier 18// primitives. 19// 20// To sign data using Tink you can use ECDSA, ED25519 or RSA-SSA-PKCS1 key templates. 21package signature 22 23import ( 24 "fmt" 25 26 "github.com/google/tink/go/core/registry" 27 "github.com/google/tink/go/internal/internalregistry" 28) 29 30func init() { 31 // ECDSA 32 if err := registry.RegisterKeyManager(new(ecdsaSignerKeyManager)); err != nil { 33 panic(fmt.Sprintf("signature.init() failed: %v", err)) 34 } 35 if err := registry.RegisterKeyManager(new(ecdsaVerifierKeyManager)); err != nil { 36 panic(fmt.Sprintf("signature.init() failed: %v", err)) 37 } 38 39 // ED25519 40 if err := registry.RegisterKeyManager(new(ed25519SignerKeyManager)); err != nil { 41 panic(fmt.Sprintf("signature.init() failed: %v", err)) 42 } 43 if err := internalregistry.AllowKeyDerivation(ed25519SignerTypeURL); err != nil { 44 panic(fmt.Sprintf("signature.init() failed: %v", err)) 45 } 46 if err := registry.RegisterKeyManager(new(ed25519VerifierKeyManager)); err != nil { 47 panic(fmt.Sprintf("signature.init() failed: %v", err)) 48 } 49 50 // RSA SSA PKCS1 51 if err := registry.RegisterKeyManager(new(rsaSSAPKCS1SignerKeyManager)); err != nil { 52 panic(fmt.Sprintf("signature.init() failed: %v", err)) 53 } 54 if err := registry.RegisterKeyManager(new(rsaSSAPKCS1VerifierKeyManager)); err != nil { 55 panic(fmt.Sprintf("signature.init() failed: %v", err)) 56 } 57 58 // RSA SSA PSS 59 if err := registry.RegisterKeyManager(new(rsaSSAPSSSignerKeyManager)); err != nil { 60 panic(fmt.Sprintf("signature.init() failed: %v", err)) 61 } 62 if err := registry.RegisterKeyManager(new(rsaSSAPSSVerifierKeyManager)); err != nil { 63 panic(fmt.Sprintf("signature.init() failed: %v", err)) 64 } 65} 66