Documentation ¶
Overview ¶
Package signature provides implementations of the Signer and Verifier primitives.
To sign data using Tink you can use ECDSA, ED25519 or RSA-SSA-PKCS1 key templates.
Example ¶
package main import ( "encoding/base64" "fmt" "log" "github.com/google/tink/go/keyset" "github.com/google/tink/go/signature" ) func main() { kh, err := keyset.NewHandle(signature.ECDSAP256KeyTemplate()) // Other key templates can also be used. if err != nil { log.Fatal(err) } // TODO: save the private keyset to a safe location. DO NOT hardcode it in source code. // Consider encrypting it with a remote key in Cloud KMS, AWS KMS or HashiCorp Vault. // See https://github.com/google/tink/blob/master/docs/GOLANG-HOWTO.md#storing-and-loading-existing-keysets. s, err := signature.NewSigner(kh) if err != nil { log.Fatal(err) } msg := []byte("this data needs to be signed") sig, err := s.Sign(msg) if err != nil { log.Fatal(err) } pubkh, err := kh.Public() if err != nil { log.Fatal(err) } // TODO: share the public with the verifier. v, err := signature.NewVerifier(pubkh) if err != nil { log.Fatal(err) } if err := v.Verify(sig, msg); err != nil { log.Fatal(err) } fmt.Printf("Message: %s\n", msg) fmt.Printf("Signature: %s\n", base64.StdEncoding.EncodeToString(sig)) }
Output:
Index ¶
- func ECDSAP256KeyTemplate() *tinkpb.KeyTemplate
- func ECDSAP256KeyWithoutPrefixTemplate() *tinkpb.KeyTemplate
- func ECDSAP256RawKeyTemplate() *tinkpb.KeyTemplate
- func ECDSAP384KeyTemplate() *tinkpb.KeyTemplatedeprecated
- func ECDSAP384KeyWithoutPrefixTemplate() *tinkpb.KeyTemplate
- func ECDSAP384SHA384KeyTemplate() *tinkpb.KeyTemplate
- func ECDSAP384SHA512KeyTemplate() *tinkpb.KeyTemplate
- func ECDSAP521KeyTemplate() *tinkpb.KeyTemplate
- func ECDSAP521KeyWithoutPrefixTemplate() *tinkpb.KeyTemplate
- func ED25519KeyTemplate() *tinkpb.KeyTemplate
- func ED25519KeyWithoutPrefixTemplate() *tinkpb.KeyTemplate
- func NewSigner(h *keyset.Handle) (tink.Signer, error)
- func NewSignerWithKeyManager(h *keyset.Handle, km registry.KeyManager) (tink.Signer, error)deprecated
- func NewVerifier(h *keyset.Handle) (tink.Verifier, error)
- func NewVerifierWithKeyManager(h *keyset.Handle, km registry.KeyManager) (tink.Verifier, error)deprecated
- func RSA_SSA_PKCS1_3072_SHA256_F4_Key_Template() *tinkpb.KeyTemplate
- func RSA_SSA_PKCS1_3072_SHA256_F4_RAW_Key_Template() *tinkpb.KeyTemplate
- func RSA_SSA_PKCS1_4096_SHA512_F4_Key_Template() *tinkpb.KeyTemplate
- func RSA_SSA_PKCS1_4096_SHA512_F4_RAW_Key_Template() *tinkpb.KeyTemplate
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ECDSAP256KeyTemplate ¶
func ECDSAP256KeyTemplate() *tinkpb.KeyTemplate
ECDSAP256KeyTemplate is a KeyTemplate that generates a new ECDSA private key with the following parameters:
- Hash function: SHA256
- Curve: NIST P-256
- Signature encoding: DER
- Output prefix type: TINK
func ECDSAP256KeyWithoutPrefixTemplate ¶
func ECDSAP256KeyWithoutPrefixTemplate() *tinkpb.KeyTemplate
ECDSAP256KeyWithoutPrefixTemplate is a KeyTemplate that generates a new ECDSA private key with the following parameters:
- Hash function: SHA256
- Curve: NIST P-256
- Signature encoding: DER
- Output prefix type: RAW
Note that this template uses a different encoding than ESDSA_P256_RAW in Tinkey.
func ECDSAP256RawKeyTemplate ¶ added in v1.7.0
func ECDSAP256RawKeyTemplate() *tinkpb.KeyTemplate
ECDSAP256RawKeyTemplate is a KeyTemplate that generates a new ECDSA private key with the following parameters:
- Hash function: SHA256
- Curve: NIST P-256
- Signature encoding: IEEE_P1363
- Output prefix type: RAW
func ECDSAP384KeyTemplate
deprecated
func ECDSAP384KeyTemplate() *tinkpb.KeyTemplate
ECDSAP384KeyTemplate is a KeyTemplate that generates a new ECDSA private key with the following parameters:
- Hash function: SHA512
- Curve: NIST P-384
- Signature encoding: DER
- Output prefix type: TINK
Deprecated: Use ECDSAP384SHA384KeyTemplate or ECDSAP384SHA512KeyTemplate instead.
func ECDSAP384KeyWithoutPrefixTemplate ¶
func ECDSAP384KeyWithoutPrefixTemplate() *tinkpb.KeyTemplate
ECDSAP384KeyWithoutPrefixTemplate is a KeyTemplate that generates a new ECDSA private key with the following parameters:
- Hash function: SHA512
- Curve: NIST P-384
- Signature encoding: DER
- Output prefix type: RAW
func ECDSAP384SHA384KeyTemplate ¶ added in v1.7.0
func ECDSAP384SHA384KeyTemplate() *tinkpb.KeyTemplate
ECDSAP384SHA384KeyTemplate is a KeyTemplate that generates a new ECDSA private key with the following parameters:
- Hash function: SHA384
- Curve: NIST P-384
- Signature encoding: DER
- Output prefix type: TINK
func ECDSAP384SHA512KeyTemplate ¶ added in v1.7.0
func ECDSAP384SHA512KeyTemplate() *tinkpb.KeyTemplate
ECDSAP384SHA512KeyTemplate is a KeyTemplate that generates a new ECDSA private key with the following parameters:
- Hash function: SHA512
- Curve: NIST P-384
- Signature encoding: DER
- Output prefix type: TINK
func ECDSAP521KeyTemplate ¶
func ECDSAP521KeyTemplate() *tinkpb.KeyTemplate
ECDSAP521KeyTemplate is a KeyTemplate that generates a new ECDSA private key with the following parameters:
- Hash function: SHA512
- Curve: NIST P-521
- Signature encoding: DER
- Output prefix type: TINK
func ECDSAP521KeyWithoutPrefixTemplate ¶
func ECDSAP521KeyWithoutPrefixTemplate() *tinkpb.KeyTemplate
ECDSAP521KeyWithoutPrefixTemplate is a KeyTemplate that generates a new ECDSA private key with the following parameters:
- Hash function: SHA512
- Curve: NIST P-521
- Signature encoding: DER
- Output prefix type: TINK
func ED25519KeyTemplate ¶
func ED25519KeyTemplate() *tinkpb.KeyTemplate
ED25519KeyTemplate is a KeyTemplate that generates a new ED25519 private key.
func ED25519KeyWithoutPrefixTemplate ¶
func ED25519KeyWithoutPrefixTemplate() *tinkpb.KeyTemplate
ED25519KeyWithoutPrefixTemplate is a KeyTemplate that generates a new ED25519 private key.
func NewSignerWithKeyManager
deprecated
func NewVerifier ¶
NewVerifier returns a Verifier primitive from the given keyset handle.
func NewVerifierWithKeyManager
deprecated
NewVerifierWithKeyManager returns a Verifier primitive from the given keyset handle and custom key manager.
Deprecated: Use NewVerifier.
func RSA_SSA_PKCS1_3072_SHA256_F4_Key_Template ¶ added in v1.7.0
func RSA_SSA_PKCS1_3072_SHA256_F4_Key_Template() *tinkpb.KeyTemplate
RSA_SSA_PKCS1_3072_SHA256_F4_Key_Template is a KeyTemplate that generates a new RSA SSA PKCS1 private key with the following parameters:
- Modulus size in bits: 3072.
- Hash function: SHA256.
- Public Exponent: 65537 (aka F4).
- OutputPrefixType: TINK
func RSA_SSA_PKCS1_3072_SHA256_F4_RAW_Key_Template ¶ added in v1.7.0
func RSA_SSA_PKCS1_3072_SHA256_F4_RAW_Key_Template() *tinkpb.KeyTemplate
RSA_SSA_PKCS1_3072_SHA256_F4_RAW_Key_Template is a KeyTemplate that generates a new RSA SSA PKCS1 private key with the following parameters:
- Modulus size in bits: 3072.
- Hash function: SHA256.
- Public Exponent: 65537 (aka F4).
- OutputPrefixType: RAW
func RSA_SSA_PKCS1_4096_SHA512_F4_Key_Template ¶ added in v1.7.0
func RSA_SSA_PKCS1_4096_SHA512_F4_Key_Template() *tinkpb.KeyTemplate
RSA_SSA_PKCS1_4096_SHA512_F4_Key_Template is a KeyTemplate that generates a new RSA SSA PKCS1 private key with the following parameters:
- Modulus size in bits: 4096.
- Hash function: SHA512.
- Public Exponent: 65537 (aka F4).
- OutputPrefixType: TINK
func RSA_SSA_PKCS1_4096_SHA512_F4_RAW_Key_Template ¶ added in v1.7.0
func RSA_SSA_PKCS1_4096_SHA512_F4_RAW_Key_Template() *tinkpb.KeyTemplate
RSA_SSA_PKCS1_4096_SHA512_F4_RAW_Key_Template is a KeyTemplate that generates a new RSA SSA PKCS1 private key with the following parameters:
- Modulus size in bits: 4096.
- Hash function: SHA512.
- Public Exponent: 65537 (aka F4).
- OutputPrefixType: RAW
Types ¶
This section is empty.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package internal implements digital signatures.
|
Package internal implements digital signatures. |
Package subtle provides subtle implementations of the digital signature primitive.
|
Package subtle provides subtle implementations of the digital signature primitive. |