package crypto

import "github.com/google/trillian/crypto"

Package crypto provides signing functionality for Trillian.

Index

Functions

func HashLogRoot

func HashLogRoot(root trillian.SignedLogRoot) []byte

HashLogRoot hashes SignedLogRoot objects using ObjectHash with "RootHash", "TimestampNanos", and "TreeSize", used as keys in a map.

func SignatureAlgorithm

SignatureAlgorithm returns the algorithm used for this public key. Only ECDSA and RSA keys are supported. Other key types will return sigpb.DigitallySigned_ANONYMOUS.

func Verify

func Verify(pub crypto.PublicKey, data []byte, sig *sigpb.DigitallySigned) error

Verify cryptographically verifies the output of Signer.

func VerifyObject

func VerifyObject(pub crypto.PublicKey, obj interface{}, sig *sigpb.DigitallySigned) error

VerifyObject verifies the output of Signer.SignObject.

Types

type Signer

type Signer struct {
	Hash   crypto.Hash
	Signer crypto.Signer
}

Signer is responsible for signing log-related data and producing the appropriate application specific signature objects.

func NewSHA256Signer

func NewSHA256Signer(signer crypto.Signer) *Signer

NewSHA256Signer creates a new SHA256 based Signer.

func (*Signer) Public

func (s *Signer) Public() crypto.PublicKey

Public returns the public key that can verify signatures produced by s.

func (*Signer) Sign

func (s *Signer) Sign(data []byte) (*sigpb.DigitallySigned, error)

Sign obtains a signature after first hashing the input data.

func (*Signer) SignObject

func (s *Signer) SignObject(obj interface{}) (*sigpb.DigitallySigned, error)

SignObject signs the requested object using ObjectHash.

Source Files

data_formats.go signatures.go signer.go verifier.go

Directories

PathSynopsis
crypto/keysPackage keys provides access to public and private keys for signing and verification of signatures.
crypto/keys/der
crypto/keys/der/protoPackage proto registers a DER keys.ProtoHandler using keys.RegisterHandler.
crypto/keyspbPackage keyspb is a generated protocol buffer package.
crypto/keys/pem
crypto/keys/pem/protoPackage proto registers a PEM keys.ProtoHandler using keys.RegisterHandler.
crypto/keys/pkcs11Package pkcs11 provides access to private keys using a PKCS#11 interface.
crypto/keys/pkcs11/protoPackage proto registers a PKCS#11 keys.ProtoHandler using keys.RegisterHandler.
crypto/keys/testonlyPackage testonly contains code and data that should only be used by tests.
crypto/sigpbPackage sigpb is a generated protocol buffer package.
Version
v1.0.1
Published
Sep 20, 2017
Platform
js/wasm
Imports
14 packages
Last checked
4 hours ago

Tools for package owners.