encryption

package
v1.9.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2025 License: Unlicense Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MinPlaintextSize = 0x0001 // 1b msg => padded to 32b
	MaxPlaintextSize = 0xffff // 65535 (64kb-1) => padded to 64kb
)

Variables

View Source
var WithCustomSalt = WithCustomNonce

Deprecated: use WithCustomNonce instead of WithCustomSalt, so the naming is less confusing

Functions

func ComputeSharedSecret

func ComputeSharedSecret(pkh, skh string) (sharedSecret []byte, err error)

ComputeSharedSecret returns a shared secret key used to encrypt messages. The private and public keys should be hex encoded. Uses the Diffie-Hellman key exchange (ECDH) (RFC 4753).

func Decrypt

func Decrypt(b64ciphertextWrapped string, conversationKey []byte) (plaintext string, err error)

func DecryptNip4 deprecated

func DecryptNip4(content string, key []byte) (msg []byte, err error)

DecryptNip4 decrypts a content string using the shared secret key. The inverse operation to message -> EncryptNip4(message, key).

Deprecated: upgrade to using Decrypt with the NIP-44 algorithm.

func Encrypt

func Encrypt(plaintext string, conversationKey []byte,
	applyOptions ...func(opts *Opts)) (cipherString string,
	err error)

func EncryptNip4 deprecated

func EncryptNip4(msg string, key []byte) (ct []byte, err error)

EncryptNip4 encrypts message with key using aes-256-cbc. key should be the shared secret generated by ComputeSharedSecret.

Returns: base64(encrypted_bytes) + "?iv=" + base64(initialization_vector).

Deprecated: upgrade to using Decrypt with the NIP-44 algorithm.

func GenerateConversationKey

func GenerateConversationKey(pkh, skh string) (ck []byte, err error)

func WithCustomNonce

func WithCustomNonce(salt []byte) func(opts *Opts)

Types

type Opts

type Opts struct {
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL