24.12.2014 Views

Download - Svetlin Nakov

Download - Svetlin Nakov

Download - Svetlin Nakov

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!