como verificar manualmente a assinatura PDF (campo de conteúdo: rsaEncryption) [closed]


1

Gostaria de validar manualmente o documento PDF assinado da RSA, mas não estou recebendo assinatura diferente de um codificado dentro do PDF. Aqui estão os passos que eu segui, qualquer ajuda / dicas realmente apreciadas.

  1. Eu fiz um simples texto em PDF (~ 1Kb)
  2. Eu tenho gerado o arquivo pfx openssl com a chave RSA de 2048 bits
  3. Eu fiz um upload da chave mencionada no usuário do Windows certmgr
  4. Eu usei chave mencionada para assinar PDF via JSignPdf 1.6.3 (algoritmo de hash sha-256)

A saída das etapas acima é documento PDF devidamente assinado (barra superior verde). Em seguida, usei o notepad ++ para remover o campo contents conforme descrito na documentação da Adobe para receber o arquivo bruto para calcular se o hash corresponde à estrutura de conteúdo interno incorporado. Este passo foi bem sucedido no meu SHA-256.

Aqui está a saída do decodificador ASN.1 para o valor do campo de conteúdo do PDF:

2.16.840.1.101.3.4.2.1sha-256 (Algoritmo NIST)

1.2.840.113549.1.9.3contentType (PKCS # 9)

1.2.840.113549.1.7.1data (PKCS # 7)

1.2.840.113549.1.9.4messageDigest (PKCS # 9) 32 bytes

E271FBADC18080C7E8BD5F0FFBCA0BD77E488309E450D28B79B720D08F69F3FC

1.2.840.113549.1.1.1rsaEncryption (PKCS # 1) 256 bytes

6547B3C9658AA8C1C259A97F1B336A099677013EDABE315F9C18C4CE6B6341CAA7054…

Eu sou capaz de obter o mesmo valor calculando SHA-256 neste arquivo modificado manualmente como aquele incorporado em PDF (E271FB *).

O problema que estou enfrentando é que não consigo obter o último valor rsaEncryption manualmente no mesmo arquivo compatível com o sha-256 ou apenas com base no hash mencionado.

Aqui está o que eu tentei ..

  1. openssl dgst -sign ./domain.key file_hash.pdf> signature.bin
  2. openssl dgst -sha256 -sign ./domain.key -out signature.bin file_hash.pdf

Onde file_hash.pdf é o arquivo que sha-256 corresponde ao PDF em verde de JSignPDF e domain.key é a mesma chave importada para o Windows (com texto --- begin private key ---).

Você pode me dizer o que estou fazendo errado no final ou como posso alcançar esse valor 6547B *?

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.