Tech · My 50piconeroj · Crypto

Wenn es kein anderer baut, mache es selbst - pdf-encrypt-lib

18. Juli 2026, 00:08 Uhr UTC · 3 Min.
Auch auf Englisch verfügbar: Read in English
Wenn es kein anderer baut, mache es selbst - pdf-encrypt-lib

Wie ihr vielleicht bereits wisst, hatte ich in der jüngeren Vergangenheit das Glück, über die Monero-Community viele verschiedene Menschen aus der ganzen Welt kennenzulernen. Einer von ihnen ist Anhdres, der auch dieses Jahr auf der Monerokon auf der Bühne stand. Nach seinem inzwischen legendären Hooks-and-Loops-Vortrag aus dem Vorjahr hat Anhdres meiner Meinung nach auch dieses Jahr wieder wegweisend weise Worte gefunden, und ich paraphrasiere hier:

Wenn du der Meinung bist, dass etwas eigentlich gemacht werden sollte, es aber bis jetzt niemand angepackt hat, dann mache es verdammt nochmal selbst. Habe keine Angst davor, wie gut oder schlecht das Ergebnis sein wird, denn selbst wenn es grottenschlecht ist, kann es immer noch dazu dienen, dass jemand anderes sich sagt: Das kann ich besser! So oder so ein Gewinn!

Meine erste JavaScript-Library

Ich habe noch nie eine JavaScript-Library veröffentlicht. Oh, streicht das - ich habe gerade meine erste JavaScript-Library veröffentlicht. Vielleicht findet sich jemand, der es besser macht, aber nach zugegebenermaßen zeitlich limitierter Recherche hatte ich nichts Vergleichbares gefunden und habe auf den Arbeiten von Andrew Dillon, Marked und Digital Bazaar, Inc. angeknüpft und pdf-encrypt-lib erstellt.

Wichtig ist, dass die Library open-source ist und nur als Startschuss verstanden werden soll, also als Grundlage auf der ihr etwas Neues baut. Wie immer kommt ein solches Projekt ohne Versprechen und ohne Garantien, aber wenn ihr etwas darin findet, das euch nützt, ist es schon ein Gewinn.

Was macht die Library?

pdf-encrypt-lib versieht PDFs mit Passwörtern und verwaltet PDFs, die bereits Passwörter haben. Hinter dem simplen "Passwort drauf, fertig" steckt allerdings ein komplexer Standard namens ISO 32000, und viele PDF-Bibliotheken, in JavaScript oder auch in anderen Sprachen, unterstützen das schlicht und einfach noch nicht oder nur halbherzig.

pdf-lib, eine der populäreren JavaScript-Bibliotheken zum Erstellen und Bearbeiten von PDFs, hat das Thema Verschlüsselung komplett ausgeklammert, obwohl es sich um ein lang offenes Feature-Request handelt, das bis heute nicht umgesetzt wurde. Meine kleine pdf-encrypt-lib ist mein Versuch, diese Lücke zu schließen. Dabei wird AES-256, der gleiche Verschlüsselungsstandard, der in VPNs und Bankensystemen eingesetzt wird, direkt auf das PDF-Objektmodell angewandt, mit der Absicht, dass das Ergebnis sich mit jedem spec-konformen Reader öffnen lässt, von Adobe Acrobat bis hin zum modernen Browser.

Browser ist hier das Schlüsselwort, denn meine Motivation, diese Library zu bauen, kommt direkt aus der Entwicklung des PDFfile Managers, dem neusten Browser-Tool, das in dieser Form erst mit der pdf-encrypt-lib möglich geworden ist.

Warum noch nicht auf npm?

Was noch aussteht, ist eine Veröffentlichung auf npm. Da der Code noch keinen Peer-Review erfahren hat und Kryptographie eine heikle Sache ist, die nicht im Nebenbei über ein schnelles npm install in ein vielleicht kritisches Projekt fließen sollte, habe ich mich zu diesem Zeitpunkt dazu entschieden, die Library erstmal nur über GitHub und Codeberg zu veröffentlichen. So soll einem unkritischen Massenkonsum vorgebeugt werden, auch wenn das bedeutet, dass ich mir eingestehe, dass mein kleines Browser-Tool wohl niemals die Massen erreichen wird. Aber et küt wie et küt.

Cheers Alexander