com.aspose.words
Class DigitalSignature

java.lang.Object
    extended by com.aspose.words.DigitalSignature

public class DigitalSignature 
extends java.lang.Object

Represents a digital signature on a document and the result of its verification.

Example:

Shows how to validate each signature in a document and display basic information about the signature.
// Load the document which contains signature
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
CertificateHoldergetCertificateHolder()
           Returns the certificate holder object that contains the certificate was used to sign the document.
java.lang.StringgetComments()
           Gets the signing purpose comment.
java.lang.StringgetIssuerName()
           Returns the subject distinguished name of the certificate isuuer.
booleanisValid()
           Returns true if this digital signature is valid and the document has not been tampered with.
intgetSignatureType()
           Gets the type of the digital signature. The value of the property is DigitalSignatureType integer constant.
java.util.DategetSignTime()
           Gets the time the document was signed.
java.lang.StringgetSubjectName()
           Returns the subject distinguished name of the certificate that was used to sign the document.
 
Method Summary
java.lang.StringtoString()
           Returns a user-friendly string that displays the value of this object.
 

Property Getters/Setters Detail

getCertificateHolder

public CertificateHolder getCertificateHolder()
Returns the certificate holder object that contains the certificate was used to sign the document.

Example:

Shows how to sign documents with X.509 certificates.
// Verify that a document isn't signed
Assert.assertFalse(FileFormatUtil.detectFileFormat(getMyDir() + "Document.docx").hasDigitalSignature());

// Create a CertificateHolder object from a PKCS #12 file, which we will use to sign the document
CertificateHolder certificateHolder = CertificateHolder.create(getMyDir() + "morzal.pfx", "aw", null);

// There are 2 ways of saving a signed copy of a document to the local file system
// 1: Designate unsigned input and signed output files by filename and sign with the passed CertificateHolder
SignOptions signOptions = new SignOptions();
signOptions.setSignTime(new Date());

DigitalSignatureUtil.sign(getMyDir() + "Document.docx", getArtifactsDir() + "Document.DigitalSignature.docx",
        certificateHolder, signOptions);

// 2: Create a stream for the input file and one for the output and create a file, signed with the CertificateHolder, at the file system location determine
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());

// Open the signed document and get its digital signature collection
Document signedDoc = new Document(getArtifactsDir() + "Document.DigitalSignature.docx");
DigitalSignatureCollection digitalSignatureCollection = signedDoc.getDigitalSignatures();

// Verify that all of the document's digital signatures are valid and check their details
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());

getComments

public java.lang.String getComments()
Gets the signing purpose comment.

Example:

Shows how to validate each signature in a document and display basic information about the signature.
// Load the document which contains signature
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();
}

getIssuerName

public java.lang.String getIssuerName()
Returns the subject distinguished name of the certificate isuuer.

Example:

Shows how to sign documents with X.509 certificates.
// Verify that a document isn't signed
Assert.assertFalse(FileFormatUtil.detectFileFormat(getMyDir() + "Document.docx").hasDigitalSignature());

// Create a CertificateHolder object from a PKCS #12 file, which we will use to sign the document
CertificateHolder certificateHolder = CertificateHolder.create(getMyDir() + "morzal.pfx", "aw", null);

// There are 2 ways of saving a signed copy of a document to the local file system
// 1: Designate unsigned input and signed output files by filename and sign with the passed CertificateHolder
SignOptions signOptions = new SignOptions();
signOptions.setSignTime(new Date());

DigitalSignatureUtil.sign(getMyDir() + "Document.docx", getArtifactsDir() + "Document.DigitalSignature.docx",
        certificateHolder, signOptions);

// 2: Create a stream for the input file and one for the output and create a file, signed with the CertificateHolder, at the file system location determine
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());

// Open the signed document and get its digital signature collection
Document signedDoc = new Document(getArtifactsDir() + "Document.DigitalSignature.docx");
DigitalSignatureCollection digitalSignatureCollection = signedDoc.getDigitalSignatures();

// Verify that all of the document's digital signatures are valid and check their details
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());

isValid

public boolean isValid()
Returns true if this digital signature is valid and the document has not been tampered with.

Example:

Shows how to validate each signature in a document and display basic information about the signature.
// Load the document which contains signature
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();
}

getSignatureType

public int getSignatureType()
Gets the type of the digital signature. The value of the property is DigitalSignatureType integer constant.

Example:

Shows how to validate each signature in a document and display basic information about the signature.
// Load the document which contains signature
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();
}

getSignTime

public java.util.Date getSignTime()
Gets the time the document was signed.

Example:

Shows how to validate each signature in a document and display basic information about the signature.
// Load the document which contains signature
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();
}

getSubjectName

public java.lang.String getSubjectName()
Returns the subject distinguished name of the certificate that was used to sign the document.

Example:

Shows how to sign documents with X.509 certificates.
// Verify that a document isn't signed
Assert.assertFalse(FileFormatUtil.detectFileFormat(getMyDir() + "Document.docx").hasDigitalSignature());

// Create a CertificateHolder object from a PKCS #12 file, which we will use to sign the document
CertificateHolder certificateHolder = CertificateHolder.create(getMyDir() + "morzal.pfx", "aw", null);

// There are 2 ways of saving a signed copy of a document to the local file system
// 1: Designate unsigned input and signed output files by filename and sign with the passed CertificateHolder
SignOptions signOptions = new SignOptions();
signOptions.setSignTime(new Date());

DigitalSignatureUtil.sign(getMyDir() + "Document.docx", getArtifactsDir() + "Document.DigitalSignature.docx",
        certificateHolder, signOptions);

// 2: Create a stream for the input file and one for the output and create a file, signed with the CertificateHolder, at the file system location determine
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());

// Open the signed document and get its digital signature collection
Document signedDoc = new Document(getArtifactsDir() + "Document.DigitalSignature.docx");
DigitalSignatureCollection digitalSignatureCollection = signedDoc.getDigitalSignatures();

// Verify that all of the document's digital signatures are valid and check their details
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());

Method Detail

toString

public java.lang.String toString()
Returns a user-friendly string that displays the value of this object.

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.