From: Jose A. <j....@gm...> - 2017-02-11 00:54:59
|
Hi. I Use hsm utimaco and for ECDSA and use clientToolBox for generate example (ejbca): ejbcaClientToolBox.sh PKCS11HSMKeyTool generate /etc/utimaco/libcs_pkcs11_R2.so secp384r1 secp384r1Alias 0 where "secp384r1" is information provider for DOC of hsm. On Fri, Feb 3, 2017 at 9:52 AM, Blum, Jon <jon...@or...> wrote: > Hello all -- > > I'm able to generate RSA keys through the SignServer CLI, but I get > "Cannot load SunEC provider" errors if I try to generate an ECDSA key. > What should I check for in my setup? > > An example: > > [jon@localhost lib]$ bin/signserver generatekey CryptoTokenP11 -keyalg > ECDSA -keyspec prime192v3 -alias 2017_06 > (...) > Caused by: java.lang.RuntimeException: Cannot load SunEC provider > at sun.security.pkcs11.P11ECKeyFactory.getSunECProvider( > P11ECKeyFactory.java:55) > at sun.security.pkcs11.P11ECKeyFactory.getECParameterSpec( > P11ECKeyFactory.java:71) > at sun.security.pkcs11.P11KeyPairGenerator.initialize( > P11KeyPairGenerator.java:146) > at sun.security.pkcs11.P11KeyPairGenerator.<init>( > P11KeyPairGenerator.java:133) > at sun.security.pkcs11.SunPKCS11$P11Service.newInstance0( > SunPKCS11.java:1014) > at sun.security.pkcs11.SunPKCS11$P11Service.newInstance( > SunPKCS11.java:991) > at sun.security.jca.GetInstance.getInstance(GetInstance.java:236) > at sun.security.jca.GetInstance.getInstance(GetInstance.java:206) > at java.security.KeyPairGenerator.getInstance( > KeyPairGenerator.java:279) > at org.cesecore.keys.util.KeyStoreTools.generateEC( > KeyStoreTools.java:175) > at org.cesecore.keys.util.KeyStoreTools.generateKeyPair( > KeyStoreTools.java:320) > at org.cesecore.keys.token.PKCS11CryptoToken.generateKeyPair( > PKCS11CryptoToken.java:212) > at org.signserver.server.cryptotokens.PKCS11CryptoToken.generateKey( > PKCS11CryptoToken.java:515) > at org.signserver.server.cryptotokens.PKCS11CryptoToken.generateKey( > PKCS11CryptoToken.java:527) > at org.signserver.server.BaseProcessable.generateKey( > BaseProcessable.java:1059) > > For the record, this is SignServer 3.7.0, under JDK 8, running on Wildfly > 10, talking to a Luna SA HSM. The system's been functioning fine for > months with RSA keys. > > I've tried generating ECDSA with a variety of different keyspecs. I've > checked that sunec.jar exists on my system, in /usr/java/latest/jre/lib/ext/sunec.jar; > is it possible that SignServer could be running somehow without this in its > path? Do I need to copy it locally into my Wildfly installation? > > > I've also confirmed that SunEC is in the provider list in java.security: > security.provider.1=sun.security.provider.Sun > security.provider.2=sun.security.pkcs11.SunPKCS11 > ${java.home}/lib/security/luna.cfg > security.provider.3=sun.security.rsa.SunRsaSign > security.provider.4=sun.security.ec.SunEC > (etc) > > > Whatever the problem is, it appears to be P11CryptoToken-specific. If I > try running with a P12CryptoToken, I get a different error, which indicates > that it's apparently found the crypto provider it needs but not the named > curve I'm looking for: > > [jon@localhost signserver]$ bin/signserver generatekey CryptoTokenP12 > -keyalg ECDSA -keyspec P-224 -alias 2017_06 > (...) > Caused by: java.security.cert.CertificateParsingException: > java.io.IOException: Unknown named curve: 1.3.132.0.33 > at sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:169) > at sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1804) > at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:195) > at sun.security.provider.X509Factory.engineGenerateCertificate( > X509Factory.java:102) > at java.security.cert.CertificateFactory.generateCertificate( > CertificateFactory.java:339) > at org.bouncycastle.cert.jcajce.JcaX509CertificateConverter.getCertificate(Unknown > Source) > at org.signserver.server.cryptotokens.CryptoTokenHelper. > getSelfCertificate(CryptoTokenHelper.java:499) > at org.signserver.server.cryptotokens.CryptoTokenHelper. > createDummyCertificate(CryptoTokenHelper.java:471) > at org.signserver.server.cryptotokens.KeystoreCryptoToken.generateKey( > KeystoreCryptoToken.java:475) > at org.signserver.server.BaseProcessable.generateKey( > BaseProcessable.java:1059) > > > But that's a secondary issue; my actual solution has to use the > CryptoTokenP11. > > Any suggestions welcome! > > Cheers, > Jon Blum > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > SignServer-develop mailing list > Sig...@li... > https://lists.sourceforge.net/lists/listinfo/signserver-develop > > -- ############################# # Sistema Operativo: Debian # # Caracas, Venezuela # ############################# |