Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

access to raw public key, or keyid

Offen
#163 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
30/100
Issue-Typ
Feature
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
c, ruby
Bereich
cryptography

Rechercherichtung

Überprüfe OpenSSL::PKey::EC#to_text, #to_der und den im Issue beschriebenen Ansatz mit OpenSSL::ASN1.decode. Untersuche anschließend openssl/crypto/x509v3/v3_skey.c auf die bestehende Berechnung der Schlüsselkennung. Entscheide, ob eine Ruby- oder C-API den codierten öffentlichen Schlüssel oder keyid bereitstellen sollte, und bestätige, dass das Ergebnis RFC 5280 Abschnitt 4.2.1.2 entspricht, ohne Text zurück in Binärdaten umzuwandeln.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

RFC5280, section 4.2.1.2 defines keyid as the SHA1 of the subjectPublicKey encoding.

OpenSSL::PKey::EC's to_text 

reveals the public key info via an OpenSSL method that produces text. This is the input that we need for the SHA1, and I guess I could decode the text back to binary if I had to, but this seems really wrong....
While there is some code in openssl/crypto/x509v3/v3_skey.c that calculates what I want, it's buried inside an extension definition, and can't (AFAIK) be used directly.

I can get what I want via:
a1 = OpenSSL::ASN1.decode(pubkey.to_der)
a1.value[1].value

but that just seems wrong. Is there another way to pull the encoded public key out?
Should getting this keyid be ruby or C code?

Vorherrschende Sprache
C
Sterne
276
Forks
200
Ø Merge
15 Std. 27 Min.
Gemergte PRs (30 T.)
7

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus ruby/openssl

Alle Issues in ruby/openssl

Ähnliche Issues

Weitere Issues zu C

Neue Issues direkt in Ihr Postfach

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