Верификация в Java без токена
Какие есть способы верификации подписи SHAwithRSA (подписанной токеном ЭЦП), без использования самого токена и не применяя MSCApi?
Пробовал след-ие варианты:
1. SunMSCAPI - работает, подпись проходит верификацию, но этот вар-нт не годится, ибо мне нужна работа под unix'ами;
2. BouncyCastle - подпись проверку не проходит;
3. SunPKCS11 + rtPKCS11/rtPKCS11ECP - вообще чудеса: на запрос любого алгоритма отвечает NoSuchAlgorithmException.
Provider.getServices() возвращает пустой список, то есть получающийся провайдер вообще не понимает никакие алгоритмы;
3. JRT11Provider - не поддерживает SHAwithRSA
Пример того, что я пытаюсь делать с SunPKCS11:
String pkcs11config = "name = ruToken\n"
+ "library = c:\\windows\\system32\\rtPKCS11ECP.dll";
ByteArrayInputStream configStream = new ByteArrayInputStream(pkcs11config.getBytes());
Provider provider = new SunPKCS11(configStream);
Signature signature = Signature.getInstance("SHA1withRSA", provider); // NoSuchAlgorithmException, WTF?
Что я делаю не так? Буду очень признателен за любую помощь.