Download - Svetlin Nakov
Download - Svetlin Nakov
Download - Svetlin Nakov
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
}<br />
}<br />
return data;<br />
}<br />
finally {<br />
fileStream.close();<br />
}<br />
/**<br />
* Signs given document with a given private key.<br />
*/<br />
private byte[] signDocument(byte[] aDocument, PrivateKey aPrivateKey)<br />
throws GeneralSecurityException {<br />
Signature signatureAlgorithm =<br />
Signature.getInstance(DIGITAL_SIGNATURE_ALGORITHM_NAME);<br />
signatureAlgorithm.initSign(aPrivateKey);<br />
signatureAlgorithm.update(aDocument);<br />
byte[] digitalSignature = signatureAlgorithm.sign();<br />
return digitalSignature;<br />
}<br />
/**<br />
* Data structure that holds a pair of private key and<br />
* certification chain corresponding to this private key.<br />
*/<br />
static class PrivateKeyAndCertChain {<br />
public PrivateKey mPrivateKey;<br />
public Certificate[] mCertificationChain;<br />
}<br />
/**<br />
* Data structure that holds a pair of Base64-encoded<br />
* certification chain and digital signature.<br />
*/<br />
static class CertificationChainAndSignatureInBase64 {<br />
public String mCertChain = null;<br />
public String mSignature = null;<br />
}<br />
/**<br />
* Exception class used for document signing errors.<br />
*/<br />
static class DocumentSignException extends Exception {<br />
public DocumentSignException(String aMessage) {<br />
super(aMessage);<br />
}<br />
}<br />
public DocumentSignException(String aMessage, Throwable aCause) {<br />
super(aMessage, aCause);<br />
}<br />
}<br />
Основният клас използва класа CertificateFileAndPasswordDialog за да<br />
предостави на потребителя възможност за избор на PFX файл и парола за<br />
достъп до него. Ето неговият сорс код:<br />
import java.awt.*;<br />
CertificateFileAndPasswordDialog.java<br />
81