Adicionar assinaturas digitais a apresentações em JavaScript
Introdução
Certificado digital é usado para criar uma apresentação do PowerPoint protegida por senha, marcada como criada por uma organização ou pessoa específica. O certificado digital pode ser obtido entrando em contato com uma organização autorizada – uma autoridade certificadora. Depois de instalar o certificado digital no sistema, ele pode ser usado para adicionar uma assinatura digital à apresentação via Arquivo -> Informações -> Proteger Apresentação:
A apresentação pode conter mais de uma assinatura digital. Depois que a assinatura digital é adicionada à apresentação, uma mensagem especial aparecerá no PowerPoint:
Para assinar a apresentação ou verificar a autenticidade das assinaturas da apresentação, a Aspose.Slides API fornece a classe DigitalSignature, a classe DigitalSignatureCollection e o método Presentation.getDigitalSignatures . Atualmente, assinaturas digitais são suportadas apenas para o formato PPTX.
Adicionar Assinatura Digital a partir de Certificado PFX
O exemplo de código abaixo demonstra como adicionar uma assinatura digital a partir de um certificado PFX:
- Abra o arquivo PFX e passe a senha do PFX para o objeto DigitalSignature.
- Adicione a assinatura criada ao objeto da apresentação.
// Abrindo o arquivo de apresentação
var pres = new aspose.slides.Presentation();
try {
// Criar objeto DigitalSignature com arquivo PFX e senha PFX
var signature = new aspose.slides.DigitalSignature("testsignature1.pfx", "testpass1");
// Comentar nova assinatura digital
signature.setComments("Aspose.Slides digital signing test.");
// Adicionar assinatura digital à apresentação
pres.getDigitalSignatures().add(signature);
// Salvar apresentação
pres.save("SomePresentationSigned.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
Agora é possível verificar se a apresentação foi assinada digitalmente e não foi modificada:
// Abrir apresentação
var pres = new aspose.slides.Presentation("SomePresentationSigned.pptx");
try {
if (pres.getDigitalSignatures().size() > 0) {
var allSignaturesAreValid = true;
console.log("Signatures used to sign the presentation: ");
// Verificar se todas as assinaturas digitais são válidas
for (let i = 0; i < pres.getDigitalSignatures().size(); i++) {
let signature = pres.getDigitalSignatures().get_Item(i);
console.log((((signature.getComments() + ", ") + signature.getSignTime().toString()) + " -- ") + (signature.isValid() ? "VALID" : "INVALID"));
allSignaturesAreValid &= signature.isValid();
}
if (allSignaturesAreValid) {
console.log("Presentation is genuine, all signatures are valid.");
} else {
console.log("Presentation has been modified since signing.");
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
Perguntas Frequentes
Posso remover assinaturas existentes de um arquivo?
Sim. A coleção de assinaturas digitais suporta remover itens individuais e limpar completamente; após salvar o arquivo, a apresentação não terá assinaturas.
O arquivo se torna “somente leitura” após a assinatura?
Não. Uma assinatura preserva a integridade e a autoria, mas não bloqueia edições. Para restringir a edição, combine-a com “Somente leitura” ou uma senha.
A assinatura será exibida corretamente em diferentes versões do PowerPoint?
A assinatura é criada para o contêiner OOXML (PPTX). Versões modernas do PowerPoint que suportam assinaturas OOXML exibem o status dessas assinaturas corretamente.