Realmente no entiendo esto:
según: http://www.madboa.com/geek/openssl/#key-rsa , Se puede generar una clave pública a partir de una clave privada.
openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
Mi pensamiento inicial era que se generan en un par juntos. ¿La clave privada RSA contiene la suma? o la clave pública?
openssl genrsa -out mykey.pem 1024
producirá realmente un par de claves públicas y privadas. El par se almacena en el archivo generado mykey.pem
.
openssl rsa -in mykey.pem -pubout > mykey.pub
extraerá la clave pública y la imprimirá. Aquí hay un enlace a una página que describe esto mejor.
EDIT: Revisa la sección de ejemplos aquí. Para imprimir sólo la parte pública de una clave privada:
openssl rsa -in key.pem -pubout -out pubkey.pem
Para obtener una clave pública utilizable para fines de SSH, utilice ssh-keygen:
ssh-keygen -y -f key.pem > key.pub
En la mayoría del software que genera claves privadas RSA, incluyendo openssl's, la clave privada se representa como un objeto PKCS#1 RSAPrivatekey o alguna variante del mismo:
A.1.2 Sintaxis de la clave privada RSA
Una clave privada RSA debe representarse con el tipo ASN.1 RSAPrivateKey:
RSAPrivateKey ::= SEQUENCE { versión Versión, modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- p prime2 INTEGER, -- q exponent1 INTEGER, -- d mod (p-1) exponente2 INTEGER, -- d mod (q-1) coeficiente INTEGER, -- (inverso de q) mod p otherPrimeInfos OtrosPrimeInfos OPTIONAL }
Como puede ver, este formato tiene una serie de campos que incluyen el módulo y el exponente público y, por lo tanto, es un superconjunto estricto de la información de una clave pública RSA.
Aquí en este código primero estamos creando la clave RSA que es privada pero tiene un par de su clave pública también así que para obtener su clave pública real simplemente hacemos esto
openssl rsa -in mykey.pem -pubout > mykey.pub
Espero que usted lo consigue para más información comprobar esto