Documentation
¶
Overview ¶
Package saltpack integrates keys with Saltpack (saltpack.org).
Index ¶
- func Decrypt(b []byte, ks KeyStore) ([]byte, *keys.X25519PublicKey, error)
- func DecryptArmored(str string, ks KeyStore) ([]byte, *keys.X25519PublicKey, error)
- func Encrypt(b []byte, sender *keys.X25519Key, recipients ...keys.ID) ([]byte, error)
- func EncryptArmored(b []byte, sender *keys.X25519Key, recipients ...keys.ID) (string, error)
- func NewDecryptArmoredStream(r io.Reader, ks KeyStore) (io.Reader, *keys.X25519PublicKey, error)
- func NewDecryptStream(r io.Reader, ks KeyStore) (io.Reader, *keys.X25519PublicKey, error)
- func NewEncryptArmoredStream(w io.Writer, sender *keys.X25519Key, recipients ...keys.ID) (io.WriteCloser, error)
- func NewEncryptStream(w io.Writer, sender *keys.X25519Key, recipients ...keys.ID) (io.WriteCloser, error)
- func NewSignArmoredDetachedStream(w io.Writer, key *keys.EdX25519Key) (io.WriteCloser, error)
- func NewSignArmoredStream(w io.Writer, key *keys.EdX25519Key) (io.WriteCloser, error)
- func NewSignDetachedStream(w io.Writer, key *keys.EdX25519Key) (io.WriteCloser, error)
- func NewSignStream(w io.Writer, key *keys.EdX25519Key) (io.WriteCloser, error)
- func NewSigncryptArmoredOpenStream(r io.Reader, ks KeyStore) (io.Reader, *keys.EdX25519PublicKey, error)
- func NewSigncryptArmoredStream(w io.Writer, sender *keys.EdX25519Key, recipients ...keys.ID) (io.WriteCloser, error)
- func NewSigncryptOpenStream(r io.Reader, ks KeyStore) (io.Reader, *keys.EdX25519PublicKey, error)
- func NewSigncryptStream(w io.Writer, sender *keys.EdX25519Key, recipients ...keys.ID) (io.WriteCloser, error)
- func NewVerifyArmoredStream(r io.Reader) (io.Reader, keys.ID, error)
- func NewVerifyStream(r io.Reader) (io.Reader, keys.ID, error)
- func SetLogger(l Logger)
- func Sign(b []byte, key *keys.EdX25519Key) ([]byte, error)
- func SignArmored(b []byte, key *keys.EdX25519Key) (string, error)
- func SignArmoredDetached(b []byte, key *keys.EdX25519Key) (string, error)
- func SignDetached(b []byte, key *keys.EdX25519Key) ([]byte, error)
- func Signcrypt(b []byte, sender *keys.EdX25519Key, recipients ...keys.ID) ([]byte, error)
- func SigncryptArmored(b []byte, sender *keys.EdX25519Key, recipients ...keys.ID) (string, error)
- func SigncryptArmoredOpen(str string, ks KeyStore) ([]byte, *keys.EdX25519PublicKey, error)
- func SigncryptOpen(b []byte, ks KeyStore) ([]byte, *keys.EdX25519PublicKey, error)
- func StripBefore(message string) string
- func Verify(b []byte) ([]byte, keys.ID, error)
- func VerifyArmored(msg string) ([]byte, keys.ID, error)
- func VerifyArmoredDetached(sig string, b []byte) (keys.ID, error)
- func VerifyArmoredDetachedReader(sig string, r io.Reader) (keys.ID, error)
- func VerifyDetached(sig []byte, b []byte) (keys.ID, error)
- func VerifyDetachedReader(sig []byte, r io.Reader) (keys.ID, error)
- type ContextLogger
- type KeyStore
- type LogLevel
- type Logger
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Decrypt ¶
Decrypt bytes (using the specified keys). If there was a sender, will return a X25519 key ID.
func DecryptArmored ¶
DecryptArmored text (using the specified keys). If there was a sender, will return a X25519 key ID.
func Encrypt ¶
Encrypt to recipients. Sender can be nil, if you want it to be anonymous. https://saltpack.org/encryption-format-v2
func EncryptArmored ¶
EncryptArmored to recipients. Sender can be nil, if you want it to be anonymous. https://saltpack.org/encryption-format-v2
func NewDecryptArmoredStream ¶
NewDecryptArmoredStream creates a decryption stream (using the specified keys). If there was a sender, will return a X25519 key ID.
func NewDecryptStream ¶
NewDecryptStream creates a decryption stream (using the specified keys). If there was a sender, will return a X25519 key ID.
func NewEncryptArmoredStream ¶
func NewEncryptArmoredStream(w io.Writer, sender *keys.X25519Key, recipients ...keys.ID) (io.WriteCloser, error)
NewEncryptArmoredStream creates an encrypted armored io.WriteCloser. Sender can be nil, if you want it to be anonymous.
func NewEncryptStream ¶
func NewEncryptStream(w io.Writer, sender *keys.X25519Key, recipients ...keys.ID) (io.WriteCloser, error)
NewEncryptStream creates an encrypted io.WriteCloser. Sender can be nil, if you want it to be anonymous.
func NewSignArmoredDetachedStream ¶
func NewSignArmoredDetachedStream(w io.Writer, key *keys.EdX25519Key) (io.WriteCloser, error)
NewSignArmoredDetachedStream ...
func NewSignArmoredStream ¶
func NewSignArmoredStream(w io.Writer, key *keys.EdX25519Key) (io.WriteCloser, error)
NewSignArmoredStream ...
func NewSignDetachedStream ¶
func NewSignDetachedStream(w io.Writer, key *keys.EdX25519Key) (io.WriteCloser, error)
NewSignDetachedStream ...
func NewSignStream ¶
func NewSignStream(w io.Writer, key *keys.EdX25519Key) (io.WriteCloser, error)
NewSignStream ...
func NewSigncryptArmoredOpenStream ¶
func NewSigncryptArmoredOpenStream(r io.Reader, ks KeyStore) (io.Reader, *keys.EdX25519PublicKey, error)
NewSigncryptArmoredOpenStream ...
func NewSigncryptArmoredStream ¶
func NewSigncryptArmoredStream(w io.Writer, sender *keys.EdX25519Key, recipients ...keys.ID) (io.WriteCloser, error)
NewSigncryptArmoredStream creates a signcrypt stream.
func NewSigncryptOpenStream ¶
NewSigncryptOpenStream creates a signcrypt open stream.
func NewSigncryptStream ¶
func NewSigncryptStream(w io.Writer, sender *keys.EdX25519Key, recipients ...keys.ID) (io.WriteCloser, error)
NewSigncryptStream creates a signcrypt stream.
func NewVerifyArmoredStream ¶
NewVerifyArmoredStream ...
func NewVerifyStream ¶
NewVerifyStream ...
func Sign ¶
func Sign(b []byte, key *keys.EdX25519Key) ([]byte, error)
Sign ...
Example ¶
package main import ( "fmt" "log" "github.com/keys-pub/keys" "github.com/keys-pub/keys/saltpack" ) func main() { alice := keys.GenerateEdX25519Key() message := []byte("hi from alice") sig, err := saltpack.SignArmored(message, alice) if err != nil { log.Fatal(err) } fmt.Printf("%s\n", alice.ID()) fmt.Printf("%s\n", sig) }
Output:
func SignArmored ¶
func SignArmored(b []byte, key *keys.EdX25519Key) (string, error)
SignArmored ...
func SignArmoredDetached ¶
func SignArmoredDetached(b []byte, key *keys.EdX25519Key) (string, error)
SignArmoredDetached ...
func SignDetached ¶
func SignDetached(b []byte, key *keys.EdX25519Key) ([]byte, error)
SignDetached ...
Example ¶
package main import ( "fmt" "log" "github.com/keys-pub/keys" "github.com/keys-pub/keys/saltpack" ) func main() { alice := keys.GenerateEdX25519Key() message := []byte("hi from alice") sig, err := saltpack.SignArmoredDetached(message, alice) if err != nil { log.Fatal(err) } fmt.Printf("%s", sig) }
Output:
func Signcrypt ¶
Signcrypt to recipients. https://saltpack.org/signcryption-format
func SigncryptArmored ¶
SigncryptArmored to recipients.
func SigncryptArmoredOpen ¶
SigncryptArmoredOpen ...
func SigncryptOpen ¶
SigncryptOpen ...
func Verify ¶
Verify ...
Example ¶
package main import ( "fmt" "log" "github.com/keys-pub/keys" "github.com/keys-pub/keys/saltpack" ) func main() { aliceID := keys.ID("kex1w2jep8dkr2s0g9kx5g6xe3387jslnlj08yactvn8xdtrx4cnypjq9rpnux") signed := `BEGIN SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5wcIkHbs7mPCSd NhKLR9E0K47y29T QkuYinHym6EfZwL 1TwgxI3RQ52fHg5 1FzmLOMghcYLcV7 i0l0ovabGhxGrEl z7WuI4O3xMU5saq U28RqUnKNroATPO 5rn2YyQcut2SeMn lXJBlDqRv9WyxjG M0PcKvsAsvmid1m cqA4TCjz5V9VpuO zuIQ55lRQLeP5kU aWFxq5Nl8WsPqlR RdX86OuTbaKUvKI wdNd6ISacrT0I82 qZ71sc7sTxiMxoI P43uCGaAZZ3Ab62 vR8N6WQPE8. END SALTPACK SIGNED MESSAGE.` out, signer, err := saltpack.VerifyArmored(signed) if err != nil { log.Fatal(err) } if signer == aliceID { fmt.Printf("signer is alice\n") } fmt.Printf("%s\n", string(out)) }
Output: signer is alice hi from alice
func VerifyArmoredDetached ¶
VerifyArmoredDetached ...
func VerifyArmoredDetachedReader ¶
VerifyArmoredDetachedReader ...
Types ¶
type ContextLogger ¶
type ContextLogger interface { Debugf(ctx context.Context, format string, args ...interface{}) Infof(ctx context.Context, format string, args ...interface{}) Warningf(ctx context.Context, format string, args ...interface{}) Errorf(ctx context.Context, format string, args ...interface{}) }
ContextLogger interface used in this package with request context.