Цифровая подпись в PowerPoint
Цифровой сертификат используется для создания презентации в PowerPoint с защитой паролем, помеченной как созданная определенной организацией или лицом. Цифровой сертификат можно получить, обратившись в уполномоченную организацию - удостоверяющий центр. После установки цифрового сертификата в систему его можно использовать для добавления цифровой подписи в презентацию через Файл -> Сведения -> Защитить презентацию:
Презентация может содержать более одной цифровой подписи. После добавления цифровой подписи в презентацию в PowerPoint появится специальное сообщение:
Для подписания презентации или проверки подлинности подписи презентации Aspose.Slides API предоставляет интерфейс IDigitalSignature, интерфейс IDigitalSignatureCollection и метод IPresentation.getDigitalSignatures. В настоящее время цифровые подписи поддерживаются только для формата PPTX.
Добавление цифровой подписи из сертификата PFX
Ниже приведен пример кода, который демонстрирует, как добавить цифровую подпись из сертификата PFX:
- Откройте файл PFX и передайте пароль PFX в объект DigitalSignature.
- Добавьте созданную подпись в объект презентации.
// Открытие файла презентации
Presentation pres = new Presentation();
try {
// Создание объекта DigitalSignature с файлом PFX и паролем PFX
DigitalSignature signature = new DigitalSignature("testsignature1.pfx", "testpass1");
// Комментарий к новой цифровой подписи
signature.setComments("Тест цифровой подписи Aspose.Slides.");
// Добавление цифровой подписи в презентацию
pres.getDigitalSignatures().add(signature);
// Сохранение презентации
pres.save("SomePresentationSigned.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Теперь можно проверить, была ли презентация цифровым образом подписана и не была ли изменена:
// Открытие презентации
Presentation pres = new Presentation("SomePresentationSigned.pptx");
try {
if (pres.getDigitalSignatures().size() > 0)
{
boolean allSignaturesAreValid = true;
System.out.println("Подписи, использованные для подписания презентации: ");
// Проверка, являются ли все цифровые подписи действительными
for (IDigitalSignature signature : pres.getDigitalSignatures())
{
System.out.println(signature.getComments() + ", "
+ signature.getSignTime().toString() + " -- " + (signature.isValid() ? "ДОПУСТИМО" : "НЕДОПУСТИМО"));
allSignaturesAreValid &= signature.isValid();
}
if (allSignaturesAreValid)
System.out.println("Презентация подлинная, все подписи действительны.");
else
System.out.println("Презентация была изменена с момента подписания.");
}
} finally {
if (pres != null) pres.dispose();
}