Keystore из электронной подписи электронной подписи с использованием Java

Как создать хранилище ключей из электронной подписи e-token? Как создать путь хранилища ключей? Как подписать с хранилищем ключей в любом документе, используя приложение Java?

1 ответ

Решение

Криптографические аппаратные устройства обычно могут быть связаны через API PKCS#11. Вам понадобится библиотека PKCS#11 (.dll в Windows или.so в Unix), выступающая в роли "драйвера устройства", который обычно устанавливается вместе с программным обеспечением, предоставляемым поставщиком устройства (обратитесь к документации электронного токена для точного расположения библиотеки). Вы упомянули "хранилище ключей" в своем вопросе, поэтому я полагаю, что вы используете язык JAVA, и вы можете использовать провайдера SunPKCS11 для доступа к PKCS#11-совместимому криптографическому хранилищу. Вот быстрый пример:

// Create instance of SunPKCS11 provider
String pkcs11Config = "name=eToken\nlibrary=C:\\path\\to\\your\\pkcs11.dll";
java.io.ByteArrayInputStream pkcs11ConfigStream = new java.io.ByteArrayInputStream(pkcs11Config.getBytes());
sun.security.pkcs11.SunPKCS11 providerPKCS11 = new sun.security.pkcs11.SunPKCS11(pkcs11ConfigStream);
java.security.Security.addProvider(providerPKCS11);

// Get provider KeyStore and login with PIN
String pin = "11111111";
java.security.KeyStore keyStore = java.security.KeyStore.getInstance("PKCS11", providerPKCS11);
keyStore.load(null, pin.toCharArray());

// Enumerate items (certificates and private keys) in the KeyStore
java.util.Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
    String alias = aliases.nextElement();
    System.out.println(alias);
}
Другие вопросы по тегам