PKCS # 12 utilizza un formato generico e standard per le voci privatekey (PKCS # 8) che supporta ECC e RSA e altri algoritmi, quindi per il software che supporta ECC in primo luogo, l'equivalente di PKCS # 12 è PKCS # 12. PKCS # 12 è una buona soluzione per il trasferimento protetto da password e l'archiviazione. Formalmente PKCS # 12 può essere utilizzato senza password, ma né Java JCE né alcun altro software che conosca lo supporta. Tuttavia nulla ti impedisce di usare una password debole; se vuoi la sicurezza attuale, scegli bene la / e password.
JKS utilizza anche un formato generico per privatekey, ma (IME) la "protezione" della password può essere dipendente dal provider. Se JVM / JRE utilizza qualsiasi provider ECC, puoi creare una chiave privata (con almeno CERT fittizio, preferibilmente una vera catena di certificati) in JKS, o importare una chiave privata (con catena di certificazione) da PKCS # 12 a JKS, con keytool
standard. Tuttavia, se la tua applicazione utilizza un provider ECC diverso , ovvero flexiprovider, potrebbe non riuscire a utilizzare quella chiave. Se è così o per essere sicuro, crea o importa con keytool
specificando il particolare provider qui flexiprovider.
Nota che non puoi mai avere una chiave privata da sola in un JKS, deve avere una sorta di catena di certificati, anche se è un falso certificato autodefinito che nessuno si fida. Ovviamente, per una chiave asimmetrica che sia effettivamente utile per la protezione dei dati, è necessaria un'adeguata garanzia di integrità, come un certificato PKI o un Web-of-trust in stile PGP. FWIW, JKS utilizza anche un formato generico per i certificati, ovvero X.509.
AFAIK BKS è personalizzato da bouncycastle e supportato solo dal provider bouncycastle. Mi aspetto che probabilmente non puoi usare BKS con flexiprovider per qualsiasi chiave privata (e forse nemmeno per cert), anche se non sarebbe male testare. Tuttavia, il fornitore di bouncycastle è documentato per supportare ECIES, quindi dovresti essere in grado di utilizzare BC per ECIES con la chiave privata in BKS.