Saltar al contenido

PKCS#12: excepción DerInputStream.getLength()

No olvides que en la informática un error casi siempre tiene diversas resoluciones, así que aquí te compartimos lo más óptimo y mejor.

Solución:

Tuve este problema y busqué en las profundidades de Google y todavía no pude encontrar la respuesta. Después de algunos días luchando con un código heredado de pésima calidad, encontré la causa de este error.

KeyStore.load(InputStream is, String pass);

este método toma un InputStream y si hay algún problema con dicho InputStream, se lanza esta excepción, algunos problemas que he encontrado:

  • El InputStream apunta al archivo incorrecto/en blanco/recién creado
  • El InputStream ya está abierto o algo más está reteniendo el recurso
  • El flujo de entrada ya fue usado y leídopor lo tanto, la posición del siguiente byte de InputStream es su final

El último fue el responsable de mi problema. El código estaba creando un InputStream a partir de un certificado y procediendo a usarlo en dos llamadas KeyStore.load(), la primera fue exitosa, la segunda siempre me dio este error.

Para otros con un problema similar:

"keystore load: DerInputStream.getLength(): lengthTag=109, too big."

Para mí, la solución fue eliminar el parámetro: -storetype pkcs12
ya que el tipo estándar es jks

Probablemente, el certificado que crea tiene un carácter adicional al final que se malinterpreta como otro certificado. Use una o más líneas en blanco al final.

Consulte: análisis de certificados de Java

Te mostramos las reseñas y valoraciones de los lectores

Recuerda que te brindamos la opción de valorar este tutorial si te fue preciso.

¡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 *