2009-08-18 19 views
8

Estoy usando el proveedor de castillo hinchable para el cifrado AES. Necesito crear un frasco gordo de bc y mi jar, pero tan pronto como lo hago obtengo la excepción Algorithm not found. ¿Es posible deshacerse del letrero y crear jar regular de él?Un firmar un jar firmado

Mi proceso de construcción es ..

  • i descomprimir todos los frascos en mi directorio de construcción.
  • continuación, eliminar el directorio META-INF
  • compilar mi aplicación
  • frasco usando hormiga

iGet el error cuando intento utilizar el

SecretKeyFactory.getInstance (algoritmo);

algoritmo es PBEWITHSHA256AND128BITAES-CBC-BC del castillo hinchable.

+0

No hay suficiente información. * Exactamente * ¿Cuándo obtiene el error? * Exactamente * ¿cuál es el mensaje de error? Martin tiene razón acerca de los archivos de SF/DSA, además, es posible que también deba eliminar los resúmenes de MANIFEST.MF. No es una buena idea eliminar el directorio META-INF por completo (no estoy seguro de que sea un JAR válido sin manifiesto) –

+0

por favor cierre su pregunta –

Respuesta

9

Cuando firma un archivo jar, los archivos nuevos se agregan al directorio META-INF, p. "MKSIGN.SF" y "MKSIGN.DSA". Solo retírelos del archivo jar (con cualquier utilidad de compresión), y lo tiene sin firmar.

+0

Elimino por completo el directorio META-INF; aún así no obtengo excepción de algoritmo –

+3

Esto no es práctico. Cuando su certificado caduque y necesite volver a firmar 40 jar en esa carpeta "lib" haciendo esto, uno a uno sería un problema. –

+0

cherio, esta sigue siendo la respuesta, puede automatizarla programáticamente si tiene 40 para anular la firma. Pero en lugar de volver a firmar un contenedor en su lugar, fírmalo a un directorio diferente para evitar este problema. – jzd

0

Debe eliminar los archivos de firma del archivo firmado. Cambie su extensión a zip, elimine archivos de firma y vuelva a cambiar a jar. Desde ahora ese jar ya no está sin firmar.

6

Para retirar la firma de un archivo JAR, eliminar el directorio META-INF de ella. Un archivo jar es un archivo zip, por lo que en Linux puede hacer esto:

zip -d file.jar 'META-INF/*.SF' 'META-INF/*.RSA' 
+0

Genial, ¡exactamente lo que necesitaba! Si hay varios archivos para anular la firma, uno puede usar 'for i in * .jar; do zip -d "$ i" 'META-INF/*. SF' 'META-INF/*. RSA'; hecho' ... – tohuwawohu

Cuestiones relacionadas