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 KEY
que 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.