Documentation
¶
Overview ¶
Package dek registers the "dek" encryption provider. Byte-slice encryption uses AES-256-GCM; streamed attachment encryption uses MSEH v3 AES-GCM records.
Index ¶
- func AESGCMOpenWithAAD(key, iv, ciphertext, aad []byte) ([]byte, error)
- func AESGCMSealWithNonceAndAAD(key, iv, plaintext, aad []byte) (usedIV, ciphertext []byte, err error)
- func NewGCMNonce() ([]byte, error)
- func NewGCMStreamDecryptReader(src io.Reader, key []byte, providerID string, headerNonce []byte) (io.Reader, error)
- func NewGCMStreamEncryptWriter(dst io.Writer, key []byte, providerID string, headerNonce []byte) (io.WriteCloser, error)
- func NewGCMStreamNonce(key []byte) ([]byte, error)
- func SelectGCMStreamKey(keys [][]byte, nonce []byte) ([]byte, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AESGCMOpenWithAAD ¶ added in v0.0.4
AESGCMOpenWithAAD decrypts ciphertext using key, iv, and AAD.
func AESGCMSealWithNonceAndAAD ¶ added in v0.0.4
func AESGCMSealWithNonceAndAAD(key, iv, plaintext, aad []byte) (usedIV, ciphertext []byte, err error)
AESGCMSealWithNonceAndAAD encrypts plaintext with AES-256-GCM using the supplied IV and AAD.
func NewGCMNonce ¶ added in v0.0.4
NewGCMNonce returns a fresh AES-GCM nonce.
func NewGCMStreamDecryptReader ¶ added in v0.0.4
func NewGCMStreamDecryptReader(src io.Reader, key []byte, providerID string, headerNonce []byte) (io.Reader, error)
NewGCMStreamDecryptReader returns a Reader over plaintext from an MSEH v3 authenticated record stream.
func NewGCMStreamEncryptWriter ¶ added in v0.0.4
func NewGCMStreamEncryptWriter(dst io.Writer, key []byte, providerID string, headerNonce []byte) (io.WriteCloser, error)
NewGCMStreamEncryptWriter returns a WriteCloser that writes MSEH v3 authenticated 64-KiB AES-GCM records to dst.
func NewGCMStreamNonce ¶ added in v0.0.4
NewGCMStreamNonce generates a v3 attachment stream nonce. The leading bytes encode a stable key ID so rotated providers can select the correct master key before streaming; the trailing bytes are the per-stream salt.
Types ¶
This section is empty.