public class DigitalSignature
Example:
Document doc = new Document(getMyDir() + "Digitally signed.docx");
for (DigitalSignature signature : doc.getDigitalSignatures()) {
System.out.println("*** Signature Found ***");
System.out.println("Is valid: " + signature.isValid());
// This property is available in MS Word documents only
System.out.println("Reason for signing: " + signature.getComments());
System.out.println("Signature type: " + signature.getSignatureType());
System.out.println("Time of signing: " + signature.getSignTime());
System.out.println("Subject name: " + signature.getSubjectName());
System.out.println("Issuer name: " + signature.getIssuerName());
System.out.println();
}
Property Getters/Setters Summary | ||
---|---|---|
CertificateHolder | getCertificateHolder() | |
Returns the certificate holder object that contains the certificate was used to sign the document.
|
||
java.lang.String | getComments() | |
Gets the signing purpose comment.
|
||
java.lang.String | getIssuerName() | |
Returns the subject distinguished name of the certificate isuuer.
|
||
boolean | isValid() | |
Returns true if this digital signature is valid and the document has not been tampered with.
|
||
int | getSignatureType() | |
Gets the type of the digital signature.
The value of the property is DigitalSignatureType integer constant. |
||
java.util.Date | getSignTime() | |
Gets the time the document was signed.
|
||
java.lang.String | getSubjectName() | |
Returns the subject distinguished name of the certificate that was used to sign the document.
|
Method Summary | ||
---|---|---|
java.lang.String | toString() | |
Returns a user-friendly string that displays the value of this object.
|
public CertificateHolder getCertificateHolder()
Example:
Shows how to sign documents with X.509 certificates.// Verify that a document is not signed. Assert.assertFalse(FileFormatUtil.detectFileFormat(getMyDir() + "Document.docx").hasDigitalSignature()); // Create a CertificateHolder object from a PKCS12 file, which we will use to sign the document. CertificateHolder certificateHolder = CertificateHolder.create(getMyDir() + "morzal.pfx", "aw", null); SignOptions signOptions = new SignOptions(); signOptions.setSignTime(new Date()); // There are two ways of saving a signed copy of a document to the local file system: // 1 - Designate a document by a local system filename, and save a signed copy at a location specified by another filename. DigitalSignatureUtil.sign(getMyDir() + "Document.docx", getArtifactsDir() + "Document.DigitalSignature.docx", certificateHolder, signOptions); Assert.assertTrue(FileFormatUtil.detectFileFormat(getArtifactsDir() + "Document.DigitalSignature.docx").hasDigitalSignature()); // 2 - Take a document from a stream, and save a signed copy to another stream. InputStream inDoc = new FileInputStream(getMyDir() + "Document.docx"); try { OutputStream outDoc = new FileOutputStream(getArtifactsDir() + "Document.DigitalSignature.docx"); try { DigitalSignatureUtil.sign(inDoc, outDoc, certificateHolder); } finally { if (outDoc != null) outDoc.close(); } } finally { if (inDoc != null) inDoc.close(); } Assert.assertTrue(FileFormatUtil.detectFileFormat(getArtifactsDir() + "Document.DigitalSignature.docx").hasDigitalSignature()); // Please verify that all of the document's digital signatures are valid, and check their details. Document signedDoc = new Document(getArtifactsDir() + "Document.DigitalSignature.docx"); DigitalSignatureCollection digitalSignatureCollection = signedDoc.getDigitalSignatures(); Assert.assertTrue(digitalSignatureCollection.isValid()); Assert.assertEquals(1, digitalSignatureCollection.getCount()); Assert.assertEquals(DigitalSignatureType.XML_DSIG, digitalSignatureCollection.get(0).getSignatureType()); Assert.assertEquals("CN=Morzal.Me", signedDoc.getDigitalSignatures().get(0).getIssuerName()); Assert.assertEquals("CN=Morzal.Me", signedDoc.getDigitalSignatures().get(0).getSubjectName());
public java.lang.String getComments()
Example:
Shows how to validate and display information about each signature in a document.Document doc = new Document(getMyDir() + "Digitally signed.docx"); for (DigitalSignature signature : doc.getDigitalSignatures()) { System.out.println("*** Signature Found ***"); System.out.println("Is valid: " + signature.isValid()); // This property is available in MS Word documents only System.out.println("Reason for signing: " + signature.getComments()); System.out.println("Signature type: " + signature.getSignatureType()); System.out.println("Time of signing: " + signature.getSignTime()); System.out.println("Subject name: " + signature.getSubjectName()); System.out.println("Issuer name: " + signature.getIssuerName()); System.out.println(); }
public java.lang.String getIssuerName()
Example:
Shows how to sign documents with X.509 certificates.// Verify that a document is not signed. Assert.assertFalse(FileFormatUtil.detectFileFormat(getMyDir() + "Document.docx").hasDigitalSignature()); // Create a CertificateHolder object from a PKCS12 file, which we will use to sign the document. CertificateHolder certificateHolder = CertificateHolder.create(getMyDir() + "morzal.pfx", "aw", null); SignOptions signOptions = new SignOptions(); signOptions.setSignTime(new Date()); // There are two ways of saving a signed copy of a document to the local file system: // 1 - Designate a document by a local system filename, and save a signed copy at a location specified by another filename. DigitalSignatureUtil.sign(getMyDir() + "Document.docx", getArtifactsDir() + "Document.DigitalSignature.docx", certificateHolder, signOptions); Assert.assertTrue(FileFormatUtil.detectFileFormat(getArtifactsDir() + "Document.DigitalSignature.docx").hasDigitalSignature()); // 2 - Take a document from a stream, and save a signed copy to another stream. InputStream inDoc = new FileInputStream(getMyDir() + "Document.docx"); try { OutputStream outDoc = new FileOutputStream(getArtifactsDir() + "Document.DigitalSignature.docx"); try { DigitalSignatureUtil.sign(inDoc, outDoc, certificateHolder); } finally { if (outDoc != null) outDoc.close(); } } finally { if (inDoc != null) inDoc.close(); } Assert.assertTrue(FileFormatUtil.detectFileFormat(getArtifactsDir() + "Document.DigitalSignature.docx").hasDigitalSignature()); // Please verify that all of the document's digital signatures are valid, and check their details. Document signedDoc = new Document(getArtifactsDir() + "Document.DigitalSignature.docx"); DigitalSignatureCollection digitalSignatureCollection = signedDoc.getDigitalSignatures(); Assert.assertTrue(digitalSignatureCollection.isValid()); Assert.assertEquals(1, digitalSignatureCollection.getCount()); Assert.assertEquals(DigitalSignatureType.XML_DSIG, digitalSignatureCollection.get(0).getSignatureType()); Assert.assertEquals("CN=Morzal.Me", signedDoc.getDigitalSignatures().get(0).getIssuerName()); Assert.assertEquals("CN=Morzal.Me", signedDoc.getDigitalSignatures().get(0).getSubjectName());
public boolean isValid()
Example:
Shows how to validate and display information about each signature in a document.Document doc = new Document(getMyDir() + "Digitally signed.docx"); for (DigitalSignature signature : doc.getDigitalSignatures()) { System.out.println("*** Signature Found ***"); System.out.println("Is valid: " + signature.isValid()); // This property is available in MS Word documents only System.out.println("Reason for signing: " + signature.getComments()); System.out.println("Signature type: " + signature.getSignatureType()); System.out.println("Time of signing: " + signature.getSignTime()); System.out.println("Subject name: " + signature.getSubjectName()); System.out.println("Issuer name: " + signature.getIssuerName()); System.out.println(); }
public int getSignatureType()
Example:
Shows how to validate and display information about each signature in a document.Document doc = new Document(getMyDir() + "Digitally signed.docx"); for (DigitalSignature signature : doc.getDigitalSignatures()) { System.out.println("*** Signature Found ***"); System.out.println("Is valid: " + signature.isValid()); // This property is available in MS Word documents only System.out.println("Reason for signing: " + signature.getComments()); System.out.println("Signature type: " + signature.getSignatureType()); System.out.println("Time of signing: " + signature.getSignTime()); System.out.println("Subject name: " + signature.getSubjectName()); System.out.println("Issuer name: " + signature.getIssuerName()); System.out.println(); }
public java.util.Date getSignTime()
Example:
Shows how to validate and display information about each signature in a document.Document doc = new Document(getMyDir() + "Digitally signed.docx"); for (DigitalSignature signature : doc.getDigitalSignatures()) { System.out.println("*** Signature Found ***"); System.out.println("Is valid: " + signature.isValid()); // This property is available in MS Word documents only System.out.println("Reason for signing: " + signature.getComments()); System.out.println("Signature type: " + signature.getSignatureType()); System.out.println("Time of signing: " + signature.getSignTime()); System.out.println("Subject name: " + signature.getSubjectName()); System.out.println("Issuer name: " + signature.getIssuerName()); System.out.println(); }
public java.lang.String getSubjectName()
Example:
Shows how to sign documents with X.509 certificates.// Verify that a document is not signed. Assert.assertFalse(FileFormatUtil.detectFileFormat(getMyDir() + "Document.docx").hasDigitalSignature()); // Create a CertificateHolder object from a PKCS12 file, which we will use to sign the document. CertificateHolder certificateHolder = CertificateHolder.create(getMyDir() + "morzal.pfx", "aw", null); SignOptions signOptions = new SignOptions(); signOptions.setSignTime(new Date()); // There are two ways of saving a signed copy of a document to the local file system: // 1 - Designate a document by a local system filename, and save a signed copy at a location specified by another filename. DigitalSignatureUtil.sign(getMyDir() + "Document.docx", getArtifactsDir() + "Document.DigitalSignature.docx", certificateHolder, signOptions); Assert.assertTrue(FileFormatUtil.detectFileFormat(getArtifactsDir() + "Document.DigitalSignature.docx").hasDigitalSignature()); // 2 - Take a document from a stream, and save a signed copy to another stream. InputStream inDoc = new FileInputStream(getMyDir() + "Document.docx"); try { OutputStream outDoc = new FileOutputStream(getArtifactsDir() + "Document.DigitalSignature.docx"); try { DigitalSignatureUtil.sign(inDoc, outDoc, certificateHolder); } finally { if (outDoc != null) outDoc.close(); } } finally { if (inDoc != null) inDoc.close(); } Assert.assertTrue(FileFormatUtil.detectFileFormat(getArtifactsDir() + "Document.DigitalSignature.docx").hasDigitalSignature()); // Please verify that all of the document's digital signatures are valid, and check their details. Document signedDoc = new Document(getArtifactsDir() + "Document.DigitalSignature.docx"); DigitalSignatureCollection digitalSignatureCollection = signedDoc.getDigitalSignatures(); Assert.assertTrue(digitalSignatureCollection.isValid()); Assert.assertEquals(1, digitalSignatureCollection.getCount()); Assert.assertEquals(DigitalSignatureType.XML_DSIG, digitalSignatureCollection.get(0).getSignatureType()); Assert.assertEquals("CN=Morzal.Me", signedDoc.getDigitalSignatures().get(0).getIssuerName()); Assert.assertEquals("CN=Morzal.Me", signedDoc.getDigitalSignatures().get(0).getSubjectName());