Есть сертификат полученный от
http://cryptopro.ru/certsrv/certrmpn.asp с включенной опцией "Включить усиленную защиту закрытого ключа"
Пытаюсь им подписать xml примерно так:
Получаю ключ:
key = store.getKey(alias, keyPass);
Здесь все выполняется успешно, ключ получаю.
Далее формирую xml подпись
...
final XMLSignature sig = new XMLSignature(doc, "", signMethod);
...
sig.sign((PrivateKey) key);
И вот в этом месте вываливается ошибка:
java.security.SignatureException
at ru.CryptoPro.JCP.Sign.e.engineSign(Unknown Source)
at java.security.Signature.sign(Unknown Source)
at ru.CryptoPro.JCPxml.xmldsig.SignatureGostR34102001.engineSign(Unknown Source)
at org.apache.xml.security.algorithms.SignatureAlgorithm.sign(Unknown Source)
at org.apache.xml.security.signature.XMLSignature.sign(Unknown Source)
at signApplet.Processor.signXml(Processor.java:367)
at signApplet.SignApplet.signXml(SignApplet.java:145)
at signApplet.SignApplet.init(SignApplet.java:76)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: ru.CryptoPro.JCP.KeyStore.UserProtectedKeyException
at ru.CryptoPro.JCP.Key.PrivateKeySpec.e(Unknown Source)
at ru.CryptoPro.JCP.Key.PrivateKeySpec.signature(Unknown Source)
... 10 more
Если подписывать ключом без флага "Включить усиленную защиту закрытого ключа", то все выполняется корректною.