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

secret

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 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