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 />

пълни права.<br />

Имплементация Java аплета<br />

Аплетът следва твърдо описаната преди малко поредица от стъпки за<br />

подписване на документи в клиентския уеб браузър и представлява сам по<br />

себе си един бутон, който се поставя в HTML формата за изпращане на<br />

файлове. Като параметри му се подават името на полето, от което се взима<br />

файлът за подписване и имената на полетата, в които се записват изчислената<br />

сигнатура и използваният цифров сертификат, заедно с цялата му<br />

сертификационна верига.<br />

Сорс кодът на аплета DigitalSignerApplet<br />

Сорс кодът на аплета, който подписва документи в уеб браузъра на клиента<br />

със сертификат от PKCS#12 хранилище, се състои от няколко файла,<br />

достъпни от сайта на <strong>Nakov</strong>DocumentSigner. Ще ги разгледаме един по един.<br />

Да започнем с основния клас на аплета – DigitalSignerApplet:<br />

DigitalSignerApplet.java<br />

import java.applet.Applet;<br />

import java.awt.*;<br />

import java.awt.event.ActionEvent;<br />

import java.awt.event.ActionListener;<br />

import javax.swing.*;<br />

import java.io.File;<br />

import java.io.FileInputStream;<br />

import java.io.IOException;<br />

import java.util.Arrays;<br />

import java.util.Enumeration;<br />

import java.util.List;<br />

import java.security.GeneralSecurityException;<br />

import java.security.KeyStoreException;<br />

import java.security.KeyStore;<br />

import java.security.PrivateKey;<br />

import java.security.Signature;<br />

import java.security.cert.CertPath;<br />

import java.security.cert.Certificate;<br />

import java.security.cert.CertificateException;<br />

import java.security.cert.CertificateFactory;<br />

import netscape.javascript.JSException;<br />

import netscape.javascript.JSObject;<br />

/**<br />

* Applet for digital signing documents. The applet is intended to be placed in a<br />

* HTML document containing a single HTML form that is used for applet input/output.<br />

* The applet accepts several parameters - the name of the field in the HTML form<br />

* that contains the file name to be signed and the names of the fields in the HTML<br />

* form, where the certification chain and signature should be stored.<br />

*<br />

* If the signing process is sucecssfull, the signature and certification chain<br />

* fields in the HTML form are filled. Otherwise an error message explaining the<br />

* failure reason is shown to the user.<br />

*<br />

75

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

Saved successfully!

Ooh no, something went wrong!