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 />
пълни права.<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