crypto

package
v1.26.5 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