Download - Svetlin Nakov
Download - Svetlin Nakov
Download - Svetlin Nakov
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
}<br />
}<br />
return mResult;<br />
/**<br />
* File filter class, intended to accept only .dll and .so files.<br />
*/<br />
private static class LibraryFileFilter extends FileFilter {<br />
public boolean accept(File aFile) {<br />
if (aFile.isDirectory()) {<br />
return true;<br />
}<br />
}<br />
String fileName = aFile.getName().toLowerCase();<br />
boolean accepted =<br />
(fileName.endsWith(".dll") || fileName.endsWith(".so"));<br />
return accepted;<br />
}<br />
public String getDescription() {<br />
return "PKCS#11 v2.0 ot later implementation library (.dll, .so)";<br />
}<br />
}<br />
Аплетът използва и класа Base64Utils, който е същият като в аплета за<br />
подписване с PFX файл.<br />
Как работи аплетът за подписване със смарт карта<br />
Аплетът за подписване на документи със смарт карта в уеб браузъра на<br />
потребителя работи по абсолютно същия начин като аплета за подписване с<br />
PFX файл, който вече разгледахме в детайли.<br />
Първоначално чрез класа netscape.javascript.JSObject от HTML формата<br />
се извлича името на файла за подписване и този файл се зарежда в паметта.<br />
Това е възможно, защото аплетът е подписан и има достъп до локалната<br />
файлова система.<br />
След това на потребителя се показва диалогът за избор на PKCS#11 библиотека<br />
и PIN код за достъп до смарт картата. След като той посочи<br />
библиотеката с PKCS#11 имплементацията и си въведе PIN кода, от смарт<br />
картата се извличат сертификатът заедно със сертификационната му верига<br />
(ако е начина) и интерфейс за достъп до личния ключ от картата.<br />
Сертификационната верига се кодира в ASN.1 DER формат и се записва в<br />
текстов вид (с BASE64 кодиране) в съответното текстово поле на HTML<br />
формата. За достъп до уеб браузъра отново се използва класа JSObject.<br />
Прочетеният в паметта файл се подписва с личния ключ от смарт картата и<br />
получената цифрова сигнатура се кодира в текстов вид с Base64 кодиране и<br />
се записва в поле от HTML формата.<br />
Ако възникване грешка на някоя от описаните стъпки, на потребителя се<br />
показва подходящо съобщение за грешка. Грешка може да възникне при<br />
106