secret

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package secret seals configuration secrets at rest.

NE YAPAR: veritabanına yazılacak sırları (LDAP servis hesabı parolası gibi) AES-256-GCM ile mühürler. Anahtar AYRI bir dosyada durur.

NE YAPMAZ — ve bunu net söylemek önemli: sunucuyu ele geçiren birine karşı koruma sağlamaz. O kişi hem veritabanını hem anahtar dosyasını okuyabilir. Bu paketin koruduğu senaryo veritabanı KOPYASININ sızmasıdır: yedek, hata ayıklama için alınan döküm, yanlışlıkla paylaşılan dosya. Anahtar o kopyalarda olmadığı için sır da açılmaz.

"Anahtarı nerede saklayacağız" sorusu sonsuza kadar geriye gider (ana anahtarı şifreleyen anahtar...). Zincir bir yerde dosya sistemi izinlerine dayanmak zorunda; biz orada duruyoruz ve iddiayı da o kadar tutuyoruz.

Index

Constants

This section is empty.

Variables

View Source
var ErrNotSealed = errors.New("secret: value is not sealed or is corrupt")

ErrNotSealed: mühürlü olmayan ya da bozulmuş bir değer açılmaya çalışıldı.

Functions

This section is empty.

Types

type Box

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

Box, mühürleme/çözme işlemlerini yapan anahtar sahibi.

func Init

func Init(path string) (*Box, error)

Init, yeni bir ana anahtar üretip path'e yazar ve Box döner.

Dosya O_EXCL ile açılır: var olan anahtarın ÜSTÜNE YAZMAK, o anahtarla mühürlenmiş bütün sırları kalıcı olarak okunamaz yapardı — ca.Init'te verdiğimiz kararın aynısı, aynı sebeple.

func Load

func Load(path string) (*Box, error)

Load, var olan ana anahtarı okur.

İzin kontrolü ca.Load'daki ile aynı: grup ya da diğerleri okuyabiliyorsa anahtar zaten sır değildir. Sessizce düzeltmek yerine REDDEDİYORUZ — operatör neyin yanlış olduğunu bilsin.

func (*Box) Seal

func (b *Box) Seal(plaintext string) (string, error)

Seal, düz metni mühürler. Çıktı base64(nonce || ciphertext+tag).

Nonce her çağrıda TAZE: GCM'de aynı anahtar+nonce çiftini iki kez kullanmak şifrelemeyi çökertir. Çıktının başına yazılıyor çünkü açarken gerekiyor ve gizli değil.

func (*Box) Unseal

func (b *Box) Unseal(sealed string) (string, error)

Unseal, mühürlü değeri açar.

GCM kimlik doğrulamalı: değiştirilmiş bir şifreli metin sessizce yanlış düz metin ÜRETMEZ, hata verir. Yani bu fonksiyonun başarısı aynı zamanda "bu değer bozulmamış" kanıtıdır.

Jump to

Keyboard shortcuts

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