github / github/smimesign

protocol: BER2DER does not handle empty indefinite length objects

Offen
#103 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Go
Sterne
658
Forks
154
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

For indefinite length objects, we check for the terminator here: https://github.com/github/smimesign/blob/3564e86011859c28b315328027abebb954b6bf6f/ietf-cms/protocol/ber.go#L217

However, this does not consider that a SEQUENCE or SET can be potentially empty with indefinite length.
Instead, I think the proper thing is to first check for the termination sequence and only then read the object.
I.e., move the if condition above this line: https://github.com/github/smimesign/blob/3564e86011859c28b315328027abebb954b6bf6f/ietf-cms/protocol/ber.go#L209

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne in ietf-cms/protocol/ber.go ungefähr bei den Zeilen 209 und 217, wo BER2DER Objekte mit unbestimmter Länge liest und den Terminator prüft. Bestätige, dass leere Objekte vom Typ SEQUENCE und SET behandelt werden, indem die Beendigungssequenz vor dem Lesen des Objekts geprüft wird; abgeschlossen ist die Aufgabe, wenn diese Eingaben nicht mehr fehlschlagen, während die bestehende Behandlung nicht leerer Objekte unverändert bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
go
Bereich
cryptography
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.