keystore

package
v0.0.0-...-9c5e272 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package keystore выбирает источник mTLS-материала агента: файлы на диске (по умолчанию) или защищённое хранилище ОС (macOS Keychain / Windows Certificate Store). Приватный ключ в режиме keystore не покидает хранилище — подпись TLS-хендшейка делает ОС (crypto.Signer поверх SecKey/NCrypt).

Граница абстракции — transport.CertProvider: остальной код агента не знает, откуда взялись cert/key/CA.

Реальная реализация Keychain доступна только в сборке darwin с CGO (Security.framework). CGO-free сборка (как кросс-сборка в CI, CGO_ENABLED=0) компилирует заглушку — режим keystore в ней недоступен, используется file.

Index

Constants

View Source
const (
	SourceFile     = "file"     // cert/key/CA — файлы на диске (FileCertProvider)
	SourceKeystore = "keystore" // защищённое хранилище ОС (Keychain/Cert Store)
)

Источники сертификатов.

Variables

This section is empty.

Functions

func Import

func Import(certPEM, keyPEM []byte, target string) error

Import — заглушка: защищённого хранилища нет (используется cert-source=file).

func New

New возвращает провайдер mTLS-материала по выбранному источнику.

func ProvisionIsMachineScope

func ProvisionIsMachineScope() bool

ProvisionIsMachineScope — защищённого хранилища нет, машинного scope тоже.

func ProvisionTarget

func ProvisionTarget() string

ProvisionTarget — на платформах без защищённого хранилища пусто (режим file).

func Purge

func Purge(label, target string) error

Purge — заглушка: защищённого хранилища ОС нет (используется cert-source=file, файлы cert/key удаляет план decommission).

Types

type Options

type Options struct {
	Source string // file | keystore

	// Пути для файлового провайдера и для CA (CA публичен и в режиме keystore
	// читается из файла — секрета в нём нет).
	CertFile string
	KeyFile  string
	CAFile   string

	// Label — метка идентичности в хранилище ОС (обычно device_id = CN серта,
	// который проставил сервер при энроллменте, ADR-1).
	Label string
}

Options — параметры выбора провайдера.

Jump to

Keyboard shortcuts

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