func (sc *SignatureCache) SetSignature(input []byte, sig ct.DigitallySigned) {
	sc.mu.Lock()
	defer sc.mu.Unlock()
	sc.input, sc.sig = input, sig
}
SetSignature associates the signature with the given bytes input.
package ctfe
import (
	"bytes"
	"crypto"
	"crypto/rand"
	"crypto/sha256"
	"fmt"
	"sync"
	"github.com/google/certificate-transparency-go/tls"
	ct "github.com/google/certificate-transparency-go"
)
type SignatureCache struct {
	mu    sync.RWMutex
	input []byte
	sig   ct.DigitallySigned
}
func (sc *SignatureCache) GetSignature(input []byte) (ct.DigitallySigned, bool) {
	sc.mu.RLock()
	defer sc.mu.RUnlock()
	if !bytes.Equal(input, sc.input) {
		return ct.DigitallySigned{}, false
	}
	return sc.sig, true
}