În mare parte, îndoială încrucișată https://stackoverflow.com/questions/20065304/differences-between-begin-rsa-private-key-and-begin-private-key
În versiunile relativ recente ale OpenSSL, nu există nicio diferență în generarea cheii făcută implicit, așa cum ați folosit. În 1.0.0 (în 2010) genrsa
implicit la 512 biți în timp ce genpkey
implicit la 1024 de biți și, desigur, în 0.9.x genpkey
nu a existat. În toate versiunile care au ambele comenzi, există diferențe în celelalte opțiuni pe care le puteți adăuga, dintre care unele modifică generarea cheilor.
Ieșirea formate sunt diferite, dar conțin efectiv aceleași informații și pot fi convertite ușor și fără pierderi. Ca în Q-ul de mai sus:
tip PEM [BEGIN/END] CHEIE PRIVATĂ RSA
este formatul „tradițional” sau „moștenit” al OpenSSL, al cărui conținut este definit de PKCS1v2.0 = RFC2437 secțiunea 11.1.2 (mutat în Anexa C în versiunile ulterioare, dar v2.0 este aproape de momentul în care SSLeay a folosit-o, care mai târziu a devenit OpenSSL).
În PEM (dar nu DER), există, de asemenea, un formular criptat tradițional/PKCS1 folosind aceeași etichetă, dar adăugând linii de antet pentru de tip Proc
și DEK-info
.
tip PEM [BEGIN/END] CHEIE PRIVATĂ
este definit de RFC7468 secțiunea 10 cu continut definit de PKCS8 = RFC5208 secțiunea 5 care a fost adăugat la OpenSSL în jurul anului 1999, dar descris ca „nou” până în aproximativ 2015. Formatul PKCS8 gestionează mai mulți algoritmi criptografici (nu doar RSA) conținând un „AlgorithmIdentifier” (o sintaxă specifică ASN.1 împrumutată de la X.509/).PKIX=RFC5280 secțiunile 4.1.1.2, 4.1.2.3, 4.1.2.7 plus date împachetate specifice algoritmului, care pentru RSA sunt aceeași structură PKCS1 de mai sus.
Există, de asemenea, un formular PKCS8 criptat cu tip PEM [BEGIN/END] CHIE PRIVATĂ CRIPTATA
-- consultați secțiunile din RFC7468 și RFC5208 imediat după linkurile de mai sus. Această formă criptată este acceptată și în DER, dar nu este relevant pentru Q.
Formatul tradițional poate fi convertit în PKCS8 necriptat prin
openssl pkey -in vechi -out nou # în 1.0.0 în sus
openssl pkcs8 -topk8 -nocrypt -in vechi -out nou # în toate versiunile
și formatul PKCS8 poate fi convertit în PKCS1 necriptat prin
openssl rsa -in nou -out vechi
Există, de asemenea, conversii la formularele criptate, care genrsa
și genpkey
poate produce, de asemenea, dar nu o face implicit.