2012-09-06 20 views
7

Estoy intentando crear un almacén de claves usando keytool con un keyalg ECC.Java 7 keytool Cifrado de curva elíptica

Esto debería ser posible según Oracle. cito:

área: Herramientas

Sinopsis: Los keytool y jarsigner herramientas ahora son compatibles con el algoritmo ECC en la generación de par de claves y firma frasco.

RFE: 6870812

estoy usando la versión de 32 bits 1.7.0_07, y he intentado herramienta de claves con -keyalg ECC, ECIES, ECDSA, ... pero siempre me Cannot derive signature algorithm.

¿Estoy utilizando la versión de Java incorrecta? ¿Estoy usando el nombre incorrecto para ECC?

Respuesta

8

Aquí está el source para la selección del algoritmo. Los valores permitidos son DSA, RSA y EC. Estos valores no están documentados en ninguna parte hasta donde yo sé.

4

Creo que tiene que instalar la política de fuerza ilimitada para que JCE funcione con todos los algoritmos. Si aún no lo ha hecho, está en la parte inferior de esta página: http://www.oracle.com/technetwork/java/javase/downloads/index.html

+0

Lo siento, pero ya los había instalado (y probado mediante la creación de un almacén de claves RSA), por lo que debe haber algo más que me falta. –

+0

Bien, encontré el problema, pero es extraño. Cuando hago "java -version", obtengo la versión de Java "1.7.0_07", pero aparentemente, cuando uso keytool, estoy usando keytool desde un JDK diferente en mi máquina. Descubrí cambiando "keytool" en "./keytool.exe". Extraño ... El comando correcto es: keytool -genkeypair -keyalg EC -keysize 160 -keystore .keystore –

+0

En general, ECC es seguro de usar con tamaños de clave más pequeños, pero 160 bits lo está presionando. Prefiero ir por 256, ECC es lo suficientemente rápido de todos modos. –