Saltar al contenido

Diferencias entre “BEGIN RSA PRIVATE KEY” y “BEGIN PRIVATE KEY”

Contamos con el arreglo a esta impedimento, o por lo menos eso esperamos. Si sigues con interrogantes coméntalo y sin dudarlo te responderemos

Solución:

Ver https://polarssl.org/kb/cryptography/asn1-key-structures-in-der-and-pem (busque en la página “BEGIN RSA PRIVATE KEY”) (enlace de archivo para la posteridad, por si acaso).

BEGIN RSA PRIVATE KEY es PKCS#1 y es solo un RSA key. Es esencialmente sólo el key objeto de PKCS#8, pero sin la versión o el identificador de algoritmo al frente. BEGIN PRIVATE KEY es PKCS#8 e indica que el key tipo está incluido en el key datos en sí. Desde el enlace:

Los datos codificados PKCS#8 sin cifrar comienzan y terminan con las etiquetas:

-----BEGIN PRIVATE KEY-----
BASE64 ENCODED DATA
-----END PRIVATE KEY-----

Dentro de los datos codificados en base64, está presente la siguiente estructura DER:

PrivateKeyInfo ::= SEQUENCE 
  version         Version,
  algorithm       AlgorithmIdentifier,
  PrivateKey      BIT STRING


AlgorithmIdentifier ::= SEQUENCE 
  algorithm       OBJECT IDENTIFIER,
  parameters      ANY DEFINED BY algorithm OPTIONAL

Entonces, para un RSA privado keyel OID es 1.2.840.113549.1.1.1 y hay una RSAPrivateKey como PrivateKey key cadena de bits de datos.

Opuesto a BEGIN RSA PRIVATE KEYque siempre especifica un RSA key y por lo tanto no incluye un key tipo OID. BEGIN RSA PRIVATE KEY es PKCS#1:

Archivo de clave privada RSA (PKCS#1)

La RSA privada key El archivo PEM es específico para RSA keys.

Comienza y termina con las etiquetas:

-----BEGIN RSA PRIVATE KEY-----
BASE64 ENCODED DATA
-----END RSA PRIVATE KEY-----

Dentro de los datos codificados en base64, está presente la siguiente estructura DER:

RSAPrivateKey ::= SEQUENCE 
  version           Version,
  modulus           INTEGER,  -- n
  publicExponent    INTEGER,  -- e
  privateExponent   INTEGER,  -- d
  prime1            INTEGER,  -- p
  prime2            INTEGER,  -- q
  exponent1         INTEGER,  -- d mod (p-1)
  exponent2         INTEGER,  -- d mod (q-1)
  coefficient       INTEGER,  -- (inverse of q) mod p
  otherPrimeInfos   OtherPrimeInfos OPTIONAL

Mira esto . Da posibles marcadores BEGIN.

Copiando el contenido del enlace anterior para una referencia rápida:

#define PEM_STRING_X509_OLD "X509 CERTIFICATE"
#define PEM_STRING_X509     "CERTIFICATE"
#define PEM_STRING_X509_PAIR    "CERTIFICATE PAIR"
#define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE"
#define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST"
#define PEM_STRING_X509_REQ "CERTIFICATE REQUEST"
#define PEM_STRING_X509_CRL "X509 CRL"
#define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY"
#define PEM_STRING_PUBLIC   "PUBLIC KEY"
#define PEM_STRING_RSA      "RSA PRIVATE KEY"
#define PEM_STRING_RSA_PUBLIC   "RSA PUBLIC KEY"
#define PEM_STRING_DSA      "DSA PRIVATE KEY"
#define PEM_STRING_DSA_PUBLIC   "DSA PUBLIC KEY"
#define PEM_STRING_PKCS7    "PKCS7"
#define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA"
#define PEM_STRING_PKCS8    "ENCRYPTED PRIVATE KEY"
#define PEM_STRING_PKCS8INF "PRIVATE KEY"
#define PEM_STRING_DHPARAMS "DH PARAMETERS"
#define PEM_STRING_DHXPARAMS    "X9.42 DH PARAMETERS"
#define PEM_STRING_SSL_SESSION  "SSL SESSION PARAMETERS"
#define PEM_STRING_DSAPARAMS    "DSA PARAMETERS"
#define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY"
#define PEM_STRING_ECPARAMETERS "EC PARAMETERS"
#define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY"
#define PEM_STRING_PARAMETERS   "PARAMETERS"
#define PEM_STRING_CMS      "CMS"

Te mostramos comentarios y calificaciones

Si conservas alguna duda y forma de perfeccionar nuestro reseña eres capaz de añadir una glosa y con deseo lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *