Help us shape the future of Go! Take the 2026 Go Developer Survey

crypto

package
v1.26.6 Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package crypto предоставляет AES-256-GCM шифрование для TDTP-пакетов.

Формат зашифрованного файла:

[2B version][1B algorithm][16B package_uuid][12B nonce][...ciphertext]

version: 0x01 0x00 (v1.0) algorithm: 0x01 = AES-256-GCM package_uuid: UUID пакета в бинарном виде (16 байт без дефисов) nonce: 12 байт из crypto/rand (уникален для каждого шифрования) ciphertext: AES-256-GCM ciphertext + 16-байтный GCM-тег

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Decrypt

func Decrypt(key, blob []byte) (packageUUID string, plaintext []byte, err error)

Decrypt расшифровывает блоб, созданный Encrypt. Возвращает UUID пакета из заголовка и plaintext.

func DecryptSection

func DecryptSection(key []byte, encoded string) ([]byte, error)

DecryptSection расшифровывает секцию, зашифрованную EncryptSection.

func Encrypt

func Encrypt(key, plaintext []byte, packageUUID string) ([]byte, error)

Encrypt шифрует plaintext алгоритмом AES-256-GCM. key — 32 байта (AES-256), packageUUID — UUID пакета в стандартном формате "xxxxxxxx-xxxx-...". Возвращает бинарный блоб: заголовок + ciphertext.

func EncryptSection

func EncryptSection(key, plaintext []byte) (string, error)

EncryptSection шифрует содержимое одной секции пакета (QueryContext, Schema или Data) для формата v1.5 — в отличие от Encrypt, не добавляет собственный заголовок (version/algo/uuid): эти данные уже присутствуют в открытом Header пакета, дублировать их незачем. Возвращает base64(nonce || ciphertext), готовый лечь текстовым содержимым секции (см. docs/tdtp-protocol-schema.md → "v1.5").

Один key используется для всех секций пакета (и всех частей multi-part сообщения с одним MessageID) — обязательно свой nonce на каждый вызов, GCM не допускает повторного nonce с одним key.

func ExtractUUID

func ExtractUUID(blob []byte) (string, error)

ExtractUUID извлекает UUID пакета из заголовка зашифрованного блоба без расшифровки данных. Используется получателем перед вызовом RetrieveKey.

Types

This section is empty.

Jump to

Keyboard shortcuts

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