ING-04: mime-anhang-parsing

- mail/internal/mimeparse.Parse: rekursive Multipart-Zerlegung,
  Zeichensatz-Reparatur (mime.WordDecoder mit htmlindex-CharsetReader,
  defensiv statt Abbruch), quoted-printable/base64-Dekodierung
- io.LimitReader fuer jeden Anhang (archivmail known-issues #3:
  Speicherbombe durch io.ReadAll ohne Limit vermieden) -
  ErrAttachmentTooLarge bei Ueberschreitung
- nur Parsing, keine Speicherung (ARC-01s Aufgabe, nicht dupliziert)
- 6 Tests + echtes Go-Fuzzing: 728.164 reale Fuzz-Durchlaeufe
  (go test -fuzz=FuzzParse -fuzztime=45s), 0 Abstuerze, 146
  coverage-erweiternde Eingaben gefunden
- alle 3 Pflichtpruefungen real bestanden (Speicherbombe abgewehrt,
  realitaetsnaher Testkorpus, Fuzz-Nachweis)

Pruefungen siehe mail/docs/ING-04-PRUEFPROTOKOLL.md
This commit is contained in:
sysops
2026-08-30 23:31:02 +02:00
parent 44b78b1554
commit dff6b8b7a4
4 changed files with 494 additions and 2 deletions
+4 -2
View File
@@ -2,7 +2,10 @@ module gitea.perlbach24.de/scripte/nexarch/mail
go 1.22
require github.com/jackc/pgx/v5 v5.6.0
require (
github.com/jackc/pgx/v5 v5.6.0
golang.org/x/text v0.14.0
)
require (
github.com/jackc/pgpassfile v1.0.0 // indirect
@@ -10,5 +13,4 @@ require (
github.com/jackc/puddle/v2 v2.2.1 // indirect
golang.org/x/crypto v0.17.0 // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/text v0.14.0 // indirect
)