elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Temas
Páginas: [1]
1  Programación / Programación General / Convertir formato PEM a Clave publica en: 22 Junio 2017, 19:04 pm
Hola.

Estoy tratando de convertir una clave publica en formato PEM a clave publica en JAVA.
Este es un chat simple para Android. El servidor está hecho en Go y el cliente, como no, en JAVA. El problema que se me plantea es el siguiente:
Yo envío la clave pública del cliente y luego recibo la del servidor en formato PEM. La función para generar la clave PEM en Go es esta:
Código:
func getPEMPublicKey(privateKey *rsa.PrivateKey) ([]byte, error) {
  publicKey := privateKey.PublicKey

  bytes, err := x509.MarshalPKIXPublicKey(&publicKey)
  if err != nil {
    return []byte(""), nil
  }

  block := &pem.Block{
    Type:  "PUBLIC KEY",
    Bytes: bytes,
  }

  return pem.EncodeToMemory(block), nil
}

Y la funcion en Java para recoger esa clave es esta:
Código
  1. private PublicKey getPEMFromString(String keystr) throws Exception {
  2.        StringReader in = new StringReader(keystr);
  3.        PEMParser reader = new PEMParser(in);
  4.        PemObject pemObject = reader.readPemObject();
  5.  
  6.        reader.close();
  7.  
  8.        X509EncodedKeySpec spec =
  9.                new X509EncodedKeySpec(pemObject.getContent());
  10.        java.security.KeyFactory kf = java.security.KeyFactory.getInstance("RSA");
  11.        return kf.generatePublic(spec);
  12.    }

Mi principal problema, como he dicho es la funcion en Java. Ya que he creado un cliente en Go que funciona a la perfección, y en Java puedo cifrar y descifrar perfectamente cuando genero con las claves propias generadas en el cliente.

El problema es que al cifrar con la clave publica del servidor, Go no puede descrifrar el contenido porque el bloque generado está mal.

Gracias de antemano.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines