Benutzer-API-Schlüssel sollten OAEP-Padding verwenden

Ich komme hier kalt rein, aber dieser Fehler scheint falsch zu sein. Dies ist keine Funktion, die in Node entfernt wurde, sondern ein Problem mit einer OpenSSL-Installation. Laut den Node-Dokumenten:

Die Verwendung von crypto.constants.RSA_PKCS1_PADDING in crypto.privateDecrypt() erfordert, dass OpenSSL implizite Ablehnung unterstützt (rsa_pkcs1_implicit_rejection).

Siehe auch [Bug]: RSA_PKCS1_PADDING is no longer supported for private decryption · Issue #487 · bropat/eufy-security-client · GitHub

Beim lokalen Testen funktioniert dies für mich: An example of RSA Encryption implemented in Node.js · GitHub, auch wenn ich für das Padding sowohl für die Verschlüsselung als auch für die Entschlüsselung crypto.constants.RSA_PKCS1_PADDING verwende. Ich verwende OpenSSL 3.4.0 und Node 23.6.1.

Das Schwierige bei der Verwendung einer Site-Einstellung ist, dass Clients nicht wissen, welches Padding die spezifische Instanz unterstützt. Das erschwert das Verständnis der Kompatibilität zwischen Instanzen/Diensten.

Ich denke, wir sollten die bestehende Implementierung klären, d. h. explizit darauf hinweisen, dass wir RSA_PKCS1_PADDING verwenden, und dann über ein Upgrade nachdenken. Vielleicht müssen wir eine Versionierung für diesen Endpunkt einführen, damit Clients vor/nach dieser Version ordnungsgemäß das richtige Padding verwenden können.

2 „Gefällt mir“