PKCS # 12 utiliza un formato genérico y estándar para las entradas de clave privada (PKCS # 8) que admite ECC, así como RSA y otros algoritmos, así que para el software que admite ECC en primer lugar, el El equivalente de PKCS # 12 es PKCS # 12. PKCS # 12 es una buena solución para la transferencia protegida por contraseña, así como para el almacenamiento. Formalmente, PKCS # 12 puede usarse sin contraseña, pero ni Java JCE ni ningún otro software que conozca lo admite. Sin embargo, nada le impide usar una contraseña débil; Si desea seguridad real, elija bien la (s) contraseña (s).
JKS también usa un formato genérico para clave privada, pero (IME) la "protección" de la contraseña puede depender del proveedor. Si su JVM / JRE utiliza algún proveedor de ECC, puede crear una clave privada (con al menos un certificado ficticio, y preferiblemente una cadena de certificados reales) en JKS, o importar una clave privada (con cadena de certificados) de PKCS # 12 a JKS, con keytool
estándar. Sin embargo, si su aplicación utiliza un proveedor de ECC diferente , es decir, flexiprovider, es posible que no pueda usar esa clave. Si es así o para estar seguro, cree o importe con keytool
especificando el proveedor particular aquí flexiprovider.
Tenga en cuenta que nunca puede tener una clave privada sola en un JKS, debe tener algún tipo de cadena de certificados, incluso es un certificado autofirmado ficticio en el que nadie confía. Por supuesto, para que una clave asimétrica sea realmente útil para asegurar los datos, necesita una garantía de integridad adecuada, como un certificado PKI o una web de confianza estilo PGP. FWIW, JKS también utiliza un formato genérico para certificados, a saber, X.509.
AFAIK BKS es personalizado para bouncycastle y solo es compatible con el proveedor de bouncycastle. Espero que probablemente no pueda usar BKS con flexiprovider para ninguna clave privada (y tal vez ni siquiera cert), aunque no estaría mal probar. Sin embargo, se ha documentado que el proveedor de bouncycastle es compatible con ECIES, por lo que debería poder utilizar BC para ECI con la clave privada en BKS.