Documentation
¶
Overview ¶
Package audit writes a hash-chained JSONL audit log and verifies it.
Index ¶
- Constants
- func Anchored(dir, head string) (bool, error)
- func Digest(head string) ([]byte, error)
- func Head(dir string) (string, error)
- func ReadLines(dir string, fn func(file string, lineNo int, l Line, err error) error) error
- func SaveToken(dir string, info tsp.Info, token []byte) (string, error)
- func Verify(dir string) (string, int, error)
- type Level
- type Line
- type TimestampSummary
- type Writer
Constants ¶
const TimestampDir = "timestamps"
TimestampDir est le sous-dossier de dir qui reçoit les jetons RFC 3161.
Variables ¶
This section is empty.
Functions ¶
func Anchored ¶ added in v0.7.0
Anchored indique si un jeton lisible de dir/timestamps porte l'empreinte de head.
func Digest ¶ added in v0.7.0
Digest décode "sha256:<64 hex>" en 32 octets bruts (l'empreinte horodatée).
func Head ¶ added in v0.7.0
Head renvoie le dernier hash de la chaîne, "" si le journal est vide ou absent.
func ReadLines ¶ added in v0.7.0
ReadLines parcourt en lecture seule les fichiers *.jsonl de dir dans l'ordre de la chaîne et appelle fn pour chaque ligne non vide (numérotées dès 1). Une ligne illisible est transmise avec err non nil et l à zéro. Un retour non nil de fn arrête le parcours et est renvoyé. Un dossier absent n'est pas une erreur : aucun appel, nil.
Types ¶
type Line ¶ added in v0.7.0
type Line struct {
Seq uint64 `json:"seq"`
TS string `json:"ts"`
Session string `json:"session"`
Type event.Type `json:"type"`
Payload json.RawMessage `json:"payload"`
Prev string `json:"prev"`
Hash string `json:"hash,omitempty"`
}
Line est l'enregistrement canonique sur disque ; l'ordre des champs fait partie du hash.
type TimestampSummary ¶ added in v0.7.0
type TimestampSummary struct {
Count, Valid int
LastFile string
LastLine int
LastTime time.Time
TSA string
LinesAfter int
Errors, Warnings []string
}
TimestampSummary résume l'état de l'ancrage de la chaîne.
func VerifyTimestamps ¶ added in v0.7.0
func VerifyTimestamps(dir string, roots *x509.CertPool) (TimestampSummary, error)
VerifyTimestamps vérifie la chaîne puis chaque jeton de dir/timestamps. L'erreur n'est non nil que si la chaîne est cassée ou illisible.
type Writer ¶
type Writer struct {
// contains filtered or unexported fields
}
Writer appends chained, fsynced lines. Safe for concurrent use, and across processes sharing the same dir (exclusive flock on <dir>/.lock per Write; the chain tail is re-read from disk inside the lock).