Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign method
DigitalSignatureUtil::Sign(const System::SharedPtr<System::IO::Stream>&, const System::SharedPtr<System::IO::Stream>&, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>&) method
Signs source document using given CertificateHolder with digital signature and writes signed document to destination stream. Supported formats are: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.Output will be written to the start of stream and stream size will be updated with content length.
static void Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(const System::SharedPtr<System::IO::Stream> &srcStream, const System::SharedPtr<System::IO::Stream> &dstStream, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder> &certHolder)
Parameter | Type | Description |
---|---|---|
srcStream | const System::SharedPtr<System::IO::Stream>& | The stream which contains the document to sign. |
dstStream | const System::SharedPtr<System::IO::Stream>& | The stream that signed document will be written to. |
certHolder | const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>& | CertificateHolder object with certificate that used to sign file. The certificate in holder MUST contain private keys. |
Examples
Shows how to sign documents with X.509 certificates.
// Verify that a document is not signed.
ASSERT_FALSE(Aspose::Words::FileFormatUtil::DetectFileFormat(get_MyDir() + u"Document.docx")->get_HasDigitalSignature());
// Create a CertificateHolder object from a PKCS12 file, which we will use to sign the document.
System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder> certificateHolder = Aspose::Words::DigitalSignatures::CertificateHolder::Create(get_MyDir() + u"morzal.pfx", u"aw", nullptr);
// 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.
auto signOptions = System::MakeObject<Aspose::Words::DigitalSignatures::SignOptions>();
signOptions->set_SignTime(System::DateTime::get_Now());
Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(get_MyDir() + u"Document.docx", get_ArtifactsDir() + u"Document.DigitalSignature.docx", certificateHolder, signOptions);
ASSERT_TRUE(Aspose::Words::FileFormatUtil::DetectFileFormat(get_ArtifactsDir() + u"Document.DigitalSignature.docx")->get_HasDigitalSignature());
// 2 - Take a document from a stream and save a signed copy to another stream.
{
auto inDoc = System::MakeObject<System::IO::FileStream>(get_MyDir() + u"Document.docx", System::IO::FileMode::Open);
{
auto outDoc = System::MakeObject<System::IO::FileStream>(get_ArtifactsDir() + u"Document.DigitalSignature.docx", System::IO::FileMode::Create);
Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(inDoc, outDoc, certificateHolder);
}
}
ASSERT_TRUE(Aspose::Words::FileFormatUtil::DetectFileFormat(get_ArtifactsDir() + u"Document.DigitalSignature.docx")->get_HasDigitalSignature());
// Please verify that all of the document's digital signatures are valid and check their details.
auto signedDoc = System::MakeObject<Aspose::Words::Document>(get_ArtifactsDir() + u"Document.DigitalSignature.docx");
System::SharedPtr<Aspose::Words::DigitalSignatures::DigitalSignatureCollection> digitalSignatureCollection = signedDoc->get_DigitalSignatures();
ASSERT_TRUE(digitalSignatureCollection->get_IsValid());
ASSERT_EQ(1, digitalSignatureCollection->get_Count());
ASSERT_EQ(Aspose::Words::DigitalSignatures::DigitalSignatureType::XmlDsig, digitalSignatureCollection->idx_get(0)->get_SignatureType());
ASSERT_EQ(u"CN=Morzal.Me", signedDoc->get_DigitalSignatures()->idx_get(0)->get_IssuerName());
ASSERT_EQ(u"CN=Morzal.Me", signedDoc->get_DigitalSignatures()->idx_get(0)->get_SubjectName());
See Also
- Class CertificateHolder
- Class DigitalSignatureUtil
- Namespace Aspose::Words::DigitalSignatures
- Library Aspose.Words for C++
DigitalSignatureUtil::Sign(const System::SharedPtr<System::IO::Stream>&, const System::SharedPtr<System::IO::Stream>&, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>&, const System::SharedPtr<Aspose::Words::DigitalSignatures::SignOptions>&) method
Signs source document using given CertificateHolder and SignOptions with digital signature and writes signed document to destination stream. Supported formats are: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.Output will be written to the start of stream and stream size will be updated with content length.
static void Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(const System::SharedPtr<System::IO::Stream> &srcStream, const System::SharedPtr<System::IO::Stream> &dstStream, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder> &certHolder, const System::SharedPtr<Aspose::Words::DigitalSignatures::SignOptions> &signOptions)
Parameter | Type | Description |
---|---|---|
srcStream | const System::SharedPtr<System::IO::Stream>& | The stream which contains the document to sign. |
dstStream | const System::SharedPtr<System::IO::Stream>& | The stream that signed document will be written to. |
certHolder | const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>& | CertificateHolder object with certificate that used to sign file. The certificate in holder MUST contain private keys. |
signOptions | const System::SharedPtr<Aspose::Words::DigitalSignatures::SignOptions>& | SignOptions object with various signing options. |
Examples
Shows how to digitally sign documents.
// Create an X.509 certificate from a PKCS#12 store, which should contain a private key.
System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder> certificateHolder = Aspose::Words::DigitalSignatures::CertificateHolder::Create(get_MyDir() + u"morzal.pfx", u"aw");
// Create a comment and date which will be applied with our new digital signature.
auto signOptions = System::MakeObject<Aspose::Words::DigitalSignatures::SignOptions>();
signOptions->set_Comments(u"My comment");
signOptions->set_SignTime(System::DateTime::get_Now());
// Take an unsigned document from the local file system via a file stream,
// then create a signed copy of it determined by the filename of the output file stream.
{
System::SharedPtr<System::IO::Stream> streamIn = System::MakeObject<System::IO::FileStream>(get_MyDir() + u"Document.docx", System::IO::FileMode::Open);
{
System::SharedPtr<System::IO::Stream> streamOut = System::MakeObject<System::IO::FileStream>(get_ArtifactsDir() + u"DigitalSignatureUtil.SignDocument.docx", System::IO::FileMode::OpenOrCreate);
Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(streamIn, streamOut, certificateHolder, signOptions);
}
}
See Also
- Class CertificateHolder
- Class SignOptions
- Class DigitalSignatureUtil
- Namespace Aspose::Words::DigitalSignatures
- Library Aspose.Words for C++
DigitalSignatureUtil::Sign(const System::String&, const System::String&, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>&) method
Signs source document using given CertificateHolder with digital signature and writes signed document to destination file. Supported formats are: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.
static void Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(const System::String &srcFileName, const System::String &dstFileName, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder> &certHolder)
Parameter | Type | Description |
---|---|---|
srcFileName | const System::String& | The file name of the document to sign. |
dstFileName | const System::String& | The file name of the signed document output. |
certHolder | const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>& | CertificateHolder object with certificate that used to sign file. The certificate in holder MUST contain private keys. |
Examples
Shows how to sign documents with X.509 certificates.
// Verify that a document is not signed.
ASSERT_FALSE(Aspose::Words::FileFormatUtil::DetectFileFormat(get_MyDir() + u"Document.docx")->get_HasDigitalSignature());
// Create a CertificateHolder object from a PKCS12 file, which we will use to sign the document.
System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder> certificateHolder = Aspose::Words::DigitalSignatures::CertificateHolder::Create(get_MyDir() + u"morzal.pfx", u"aw", nullptr);
// 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.
auto signOptions = System::MakeObject<Aspose::Words::DigitalSignatures::SignOptions>();
signOptions->set_SignTime(System::DateTime::get_Now());
Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(get_MyDir() + u"Document.docx", get_ArtifactsDir() + u"Document.DigitalSignature.docx", certificateHolder, signOptions);
ASSERT_TRUE(Aspose::Words::FileFormatUtil::DetectFileFormat(get_ArtifactsDir() + u"Document.DigitalSignature.docx")->get_HasDigitalSignature());
// 2 - Take a document from a stream and save a signed copy to another stream.
{
auto inDoc = System::MakeObject<System::IO::FileStream>(get_MyDir() + u"Document.docx", System::IO::FileMode::Open);
{
auto outDoc = System::MakeObject<System::IO::FileStream>(get_ArtifactsDir() + u"Document.DigitalSignature.docx", System::IO::FileMode::Create);
Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(inDoc, outDoc, certificateHolder);
}
}
ASSERT_TRUE(Aspose::Words::FileFormatUtil::DetectFileFormat(get_ArtifactsDir() + u"Document.DigitalSignature.docx")->get_HasDigitalSignature());
// Please verify that all of the document's digital signatures are valid and check their details.
auto signedDoc = System::MakeObject<Aspose::Words::Document>(get_ArtifactsDir() + u"Document.DigitalSignature.docx");
System::SharedPtr<Aspose::Words::DigitalSignatures::DigitalSignatureCollection> digitalSignatureCollection = signedDoc->get_DigitalSignatures();
ASSERT_TRUE(digitalSignatureCollection->get_IsValid());
ASSERT_EQ(1, digitalSignatureCollection->get_Count());
ASSERT_EQ(Aspose::Words::DigitalSignatures::DigitalSignatureType::XmlDsig, digitalSignatureCollection->idx_get(0)->get_SignatureType());
ASSERT_EQ(u"CN=Morzal.Me", signedDoc->get_DigitalSignatures()->idx_get(0)->get_IssuerName());
ASSERT_EQ(u"CN=Morzal.Me", signedDoc->get_DigitalSignatures()->idx_get(0)->get_SubjectName());
See Also
- Class CertificateHolder
- Class DigitalSignatureUtil
- Namespace Aspose::Words::DigitalSignatures
- Library Aspose.Words for C++
DigitalSignatureUtil::Sign(const System::String&, const System::String&, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>&, const System::SharedPtr<Aspose::Words::DigitalSignatures::SignOptions>&) method
Signs source document using given CertificateHolder and SignOptions with digital signature and writes signed document to destination file. Supported formats are: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.
static void Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(const System::String &srcFileName, const System::String &dstFileName, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder> &certHolder, const System::SharedPtr<Aspose::Words::DigitalSignatures::SignOptions> &signOptions)
Parameter | Type | Description |
---|---|---|
srcFileName | const System::String& | The file name of the document to sign. |
dstFileName | const System::String& | The file name of the signed document output. |
certHolder | const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>& | CertificateHolder object with certificate that used to sign file. The certificate in holder MUST contain private keys. |
signOptions | const System::SharedPtr<Aspose::Words::DigitalSignatures::SignOptions>& | SignOptions object with various signing options. |
See Also
- Class CertificateHolder
- Class SignOptions
- Class DigitalSignatureUtil
- Namespace Aspose::Words::DigitalSignatures
- Library Aspose.Words for C++
DigitalSignatureUtil::Sign(std::basic_istream<CharType, Traits>&, std::basic_ostream<CharType, Traits>&, System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>) method
template<typename CharType,typename Traits> static void Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(std::basic_istream<CharType, Traits> &srcStream, std::basic_ostream<CharType, Traits> &dstStream, System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder> certHolder)
See Also
- Class CertificateHolder
- Class DigitalSignatureUtil
- Namespace Aspose::Words::DigitalSignatures
- Library Aspose.Words for C++
DigitalSignatureUtil::Sign(std::basic_istream<CharType, Traits>&, std::basic_ostream<CharType, Traits>&, System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>, System::SharedPtr<Aspose::Words::DigitalSignatures::SignOptions>) method
template<typename CharType,typename Traits> static void Aspose::Words::DigitalSignatures::DigitalSignatureUtil::Sign(std::basic_istream<CharType, Traits> &srcStream, std::basic_ostream<CharType, Traits> &dstStream, System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder> certHolder, System::SharedPtr<Aspose::Words::DigitalSignatures::SignOptions> signOptions)
See Also
- Class CertificateHolder
- Class SignOptions
- Class DigitalSignatureUtil
- Namespace Aspose::Words::DigitalSignatures
- Library Aspose.Words for C++