Wie erstelle ich ein OpenSSL::PKey
Objekt, das mit der folgenden öffentlichen Schlüsselzeichenfolge initialisiert wird? Endziel ist die Verwendung des Objekts zum Dekodieren eines JWT-Tokens unter Verwendung von ruby-jwt
.Wie erstellt man OpenSSL :: PKey mit einer öffentlichen Schlüsselzeichenfolge?
Ich habe folgendes versucht:
public_key = ""-----BEGIN CERTIFICATE-----\n ...many characters... \n-----END CERTIFICATE-----\n" # I only have the public key
OpenSSL::PKey.read(key) # Gives ArgumentError: Could not parse PKey: no start line
OpenSSL::PKey.read(key.gsub("CERTIFICATE", "PUBLIC KEY")) # Gives ArgumentError: Could not parse PKey: ASN1 lib
ultimative Ziel ist es, Decodierung JWT zu verwenden:
# example from docs
require 'jwt'
rsa_public => OpenSSL::PKey.read(File.read(File.join(CERT_PATH, 'rsa-2048-public.pem')))
JWT.decode(token, rsa_public, true, { algorithm: "RS256", verify_iat: true })
Irgendwelche Ideen für OpenSSL::PKey
mit Public-Key-String initialisiert?
Gibt es ein zusätzliches Anführungszeichen am Anfang Ihres 'public_key'? – Aetherus
Es ist kein öffentlicher Schlüssel; Es ist ein X.509-Zertifikat: *** "BEGIN CERTIFICATE" ***. Extrahieren Sie den öffentlichen Schlüssel aus dem Zertifikat und verwenden Sie ihn stattdessen. – jww