Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

access to raw public key, or keyid

Aperta
#163 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
30/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
c, ruby
Ambito
cryptography

Direzione di ricerca

Esamina OpenSSL::PKey::EC#to_text, #to_der e l’approccio con OpenSSL::ASN1.decode descritto nell’issue, quindi ispeziona openssl/crypto/x509v3/v3_skey.c per individuare il calcolo esistente dell’identificatore della chiave. Determina se un’API Ruby o C debba esporre la chiave pubblica codificata o keyid e conferma che il risultato corrisponda alla sezione 4.2.1.2 di RFC 5280 senza riconvertire il testo in binario.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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?

Lingua principale
C
Stelle
276
Fork
200
Merge medio
15h 27m
PR unite (30g)
7

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ruby/openssl

Tutte le issue di ruby/openssl

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.