Aspose::Words::DigitalSignatures::DigitalSignatureUtil класс

DigitalSignatureUtil class

Предоставляет методы для подписи документа. Чтобы узнать больше, посетите статью документации Work with Digital Signatures.

class DigitalSignatureUtil

Методы

МетодОписание
DigitalSignatureUtil()
static LoadSignatures(const System::String&)Загружает цифровые подписи из документа.
static LoadSignatures(const System::SharedPtr<System::IO::Stream>&)Загружает цифровые подписи из документа, используя поток.
static LoadSignatures(std::basic_istream<CharType, Traits>&)
static RemoveAllSignatures(const System::String&, const System::String&)Удаляет все цифровые подписи из исходного файла и записывает неподписанный файл в целевой файл. Следующие форматы совместимы с удалением цифровой подписи: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.
static RemoveAllSignatures(const System::SharedPtr<System::IO::Stream>&, const System::SharedPtr<System::IO::Stream>&)Удаляет все цифровые подписи из документа в исходном потоке и записывает неподписанный документ в целевой поток. **Вывод будет записан в начало потока, и размер потока будет обновлен в соответствии с длиной содержимого.**Следующие форматы совместимы с удалением цифровой подписи: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.
static RemoveAllSignatures(std::basic_istream<CharType, Traits>&, std::basic_ostream<CharType, Traits>&)
static 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>&)Подписывает исходный документ, используя указанные CertificateHolder и SignOptions с цифровой подписью и записывает подписанный документ в целевой поток. Поддерживаемые форматы: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.Вывод будет записан в начало потока, и размер потока будет обновлен в соответствии с длиной содержимого.
static Sign(const System::String&, const System::String&, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>&, const System::SharedPtr<Aspose::Words::DigitalSignatures::SignOptions>&)Подписывает исходный документ, используя указанные CertificateHolder и SignOptions с цифровой подписью и записывает подписанный документ в целевой файл. Поддерживаемые форматы: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.
static Sign(const System::SharedPtr<System::IO::Stream>&, const System::SharedPtr<System::IO::Stream>&, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>&)Подписывает исходный документ, используя указанный CertificateHolder с цифровой подписью и записывает подписанный документ в целевой поток. Поддерживаемые форматы: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.Вывод будет записан в начало потока, и размер потока будет обновлен в соответствии с длиной содержимого.
static Sign(const System::String&, const System::String&, const System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>&)Подписывает исходный документ, используя указанный CertificateHolder с цифровой подписью и записывает подписанный документ в целевой файл. Поддерживаемые форматы: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.
static Sign(std::basic_istream<CharType, Traits>&, std::basic_ostream<CharType, Traits>&, System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>, System::SharedPtr<Aspose::Words::DigitalSignatures::SignOptions>)
static Sign(std::basic_istream<CharType, Traits>&, std::basic_ostream<CharType, Traits>&, System::SharedPtr<Aspose::Words::DigitalSignatures::CertificateHolder>)

Примечания

Поскольку цифровая подпись работает с содержимым файла, а не с объектной моделью Document, эти методы помещены в отдельный класс.

Поддерживаемые форматы: Doc, Dot, Docx, Dotx, Docm, Dotm, Odt, Ott.

Примеры

Показывает, как загрузить подписи из цифрово подписанного документа.

// Существует два способа загрузки коллекции цифровых подписей подписанного документа с использованием класса DigitalSignatureUtil.
// 1 -  Загрузка документа из локальной файловой системы по имени файла:
System::SharedPtr<Aspose::Words::DigitalSignatures::DigitalSignatureCollection> digitalSignatures = Aspose::Words::DigitalSignatures::DigitalSignatureUtil::LoadSignatures(get_MyDir() + u"Digitally signed.docx");

// Если эта коллекция не пуста, то мы можем проверить, что документ цифрово подписан.
ASSERT_EQ(1, digitalSignatures->get_Count());

// 2 -  Загрузка документа из FileStream:
{
    System::SharedPtr<System::IO::Stream> stream = System::MakeObject<System::IO::FileStream>(get_MyDir() + u"Digitally signed.docx", System::IO::FileMode::Open);
    digitalSignatures = Aspose::Words::DigitalSignatures::DigitalSignatureUtil::LoadSignatures(stream);
    ASSERT_EQ(1, digitalSignatures->get_Count());
}

Показывает, как удалить цифровые подписи из цифрово подписанного документа.

// Существует два способа использования класса DigitalSignatureUtil для удаления цифровых подписей
// из подписанного документа, сохранив его неподписанную копию в другом месте локальной файловой системы.
// 1 - Определите расположения как подписанного документа, так и его неподписанной копии по строкам имён файлов:
Aspose::Words::DigitalSignatures::DigitalSignatureUtil::RemoveAllSignatures(get_MyDir() + u"Digitally signed.docx", get_ArtifactsDir() + u"DigitalSignatureUtil.LoadAndRemove.FromString.docx");

// 2 - Определите расположения как подписанного документа, так и его неподписанной копии по файловым потокам:
{
    System::SharedPtr<System::IO::Stream> streamIn = System::MakeObject<System::IO::FileStream>(get_MyDir() + u"Digitally signed.docx", System::IO::FileMode::Open);
    {
        System::SharedPtr<System::IO::Stream> streamOut = System::MakeObject<System::IO::FileStream>(get_ArtifactsDir() + u"DigitalSignatureUtil.LoadAndRemove.FromStream.docx", System::IO::FileMode::Create);
        Aspose::Words::DigitalSignatures::DigitalSignatureUtil::RemoveAllSignatures(streamIn, streamOut);
    }
}

// Проверьте, что оба наших выходных документа не содержат цифровых подписей.
ASSERT_EQ(0, Aspose::Words::DigitalSignatures::DigitalSignatureUtil::LoadSignatures(get_ArtifactsDir() + u"DigitalSignatureUtil.LoadAndRemove.FromString.docx")->get_Count());
ASSERT_EQ(0, Aspose::Words::DigitalSignatures::DigitalSignatureUtil::LoadSignatures(get_ArtifactsDir() + u"DigitalSignatureUtil.LoadAndRemove.FromStream.docx")->get_Count());

См. также