credential_svc

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2026 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateSalt

func GenerateSalt() ([]byte, error)

GenerateSalt 生成随机 salt

func ResolveMasterKey

func ResolveMasterKey(opts MasterKeyOptions) (string, error)

ResolveMasterKey 按优先级获取 master key:

  1. opts.Explicit(CLI --master-key / 环境变量)
  2. OS Keychain(opts.NoKeychain 为 true 时跳过)
  3. 文件回退 (<DataDir>/master.key)

如果所有来源都没有,自动生成并存储。

func SetDefault

func SetDefault(svc *CredentialSvc)

SetDefault 设置全局实例

Types

type CredentialSvc

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

CredentialSvc 凭证加解密服务(Argon2id + AES-256-GCM)

func Default

func Default() *CredentialSvc

Default 获取全局实例

func New

func New(masterKey string, salt []byte) *CredentialSvc

New 创建凭证服务,使用 Argon2id(masterKey, salt) 派生 AES-256 密钥

func (*CredentialSvc) Decrypt

func (s *CredentialSvc) Decrypt(ciphertextB64 string) (string, error)

Decrypt 解密 base64 编码的密文

func (*CredentialSvc) Encrypt

func (s *CredentialSvc) Encrypt(plaintext string) (string, error)

Encrypt 加密明文,返回 base64 编码的密文

type MasterKeyOptions added in v1.11.0

type MasterKeyOptions struct {
	// Explicit 来自 CLI --master-key 或 OPSKAT_MASTER_KEY,非空则直接采用。
	Explicit string
	// DataDir master key 文件所在目录。
	DataDir string
	// NoKeychain 便携模式下为 true:master key 只落 <DataDir>/master.key,
	// 不读也不写 OS 凭据管理器。凭据管理器是机器本地的,便携目录换到另一台
	// 机器后会读不到 key 而重新生成,导致库内已加密凭据永久解不开。
	NoKeychain bool
}

MasterKeyOptions 是 ResolveMasterKey 的入参。

Jump to

Keyboard shortcuts

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