cancel
Showing results for 
Search instead for 
Did you mean: 

Algoritmo de assinatura - certificado digital

RafaelVieira
Active Participant
0 Kudos

Pessoal, o certificado digital que estava sendo usado em ambiente de dev/qas expirou e o novo .pfx está gerando erros quando o pessoal de basis tenta gerar o PSE para importar na STRUST do GRC.

SAPCryptoLibrary retorna:

ERROR in import_p12: (9/0x0009) af_verify_Certificates failed.

ERROR in af_verify_Certificates: Invalid Algorithm

Verificando o arquivo .pfx antigo (que estava funcionando), na aba de detalhes do certificado, o Signature Algorithm é sha1RSA.

Já no arquivo novo (que não funciona), o Signature Algorithm é sha256RSA.

Fiz a importação do arquivo na minha máquina e consigo acessar os webservices da Sefaz, mas o problema parece ser com a assinatura das notas, e não apenas com a comunicação com o governo. Eu poderia, então, concluir que o arquivo está errado, que foi gerado com um algoritmo inválido, mas o mesmo arquivo que está gerando esse erro, segundo informações, está sendo usado na outra solução (Mastersaf) e está conectando na Sefaz e também assinando/autorizando notas notmalmente.

Alguém saberia dizer qual é o problema?

Muito obrigado.

Rafael.

Accepted Solutions (1)

Accepted Solutions (1)

RafaelVieira
Active Participant
0 Kudos

Talvez esta thread respondida pelo já responda parte da minha questão.

http://scn.sap.com/thread/2141885

Dei uma olhada lá no manual do contribuinte versão 5.0 e na sessão 3.2.6 - Resumo dos Padrões Técnicos

"Algorithm message digest SHA-1."

Seria possível então estar usando SHA-256 (na outra solução) sem a recusa da Sefaz?

E, o mais importante, queria saber se posso assumir que SHA-1 é o único algoritmo que pode ser usado no certificado pra PSE do GRC NF-e 10.0 e solicitar a correção ou nova emissão deste arquivo? Ou haveria alguma forma de o SAPCryptoLibrary trabalhar com esse certificado de algoritmo SHA-256?

Muito obrigado,

Rafael Vieira.

former_member182114
Active Contributor
0 Kudos

Bom dia Rafael,

Nem sempre o .pfx do jeito que chega da CA consegue ser usado.

Uma dica é instalar no Windows, colocar todos os certificados dependentes e exportar a cadeia completa gerando um novo .pfx. Aí você parte para gerar o PSE.

SAP Note 1524196, verifique o anexo Generate_Certificate_Chain.pdf.

Atenciosamente, Fernando Da Rós

RafaelVieira
Active Participant
0 Kudos

Fernando, obrigado pela ajuda!

Já fiz os passos de exportar o certificado com a cadeia completa:

Root ICP

-->Certisign G3

----->AC Sincor G6

-------->Company

Essa questão do algoritmo (sha-1 e sha-256, ou ainda 512) diferente não tem nenhuma influencia?

O SAP CryptoLibrary retornava erro de algoritmo inválido, foi então atualizado para a sua ultima versão, acho que a 34, e a mensagem de erro mudou mas continua não aceitando este novo certificado pra gerar PSE.

Basis tentou fazer importando cada certificado separadamente usando um append, usando ICP Brasil v2, Certisign G3, AC Sincor G6, Company, mas também não rolou.

O que pode estar faltando?

former_member182114
Active Contributor
0 Kudos

Bom dia Rafael,

Que erros está recebendo após o upgrade do SAP CryptoLib?

Atenciosamente, Fernando Da Rós

RafaelVieira
Active Participant
0 Kudos

Bom dia Fernando!

Segue a msg de erro:

PKCS#12/PFX file contains 1 keypair:

  1. FriendlyName = "{38BCBD2E-DD7D-4F40-B8D4-32C3C140D3E6}"

     X.509v3 (type=Both) RSA-2048 (signed with sha256WithRsaEncryption)

     Subject="EMAIL=email@gmail.com, CN=COMPANY LTDA, OU=ID - 362510, OU=Assinatura Tipo A1, OU=Autenticado por AR Kaminskas, O=ICP-B

rasil, C=BR"

     Issuer ="CN=AC SINCOR G3, OU=SINCOR-SP - Sindicato dos Corretores de Seguros no Estado de SP, O=ICP-Brasil, C=BR"

ERROR in import_p12: (9/0x0009) af_verify_Certificates failed

ERROR in af_verify_Certificates: (12851/0x3233) Verification of one certificate of path failed

ERROR in sec_decrypt_Digest: (12848/0x3230) verification failed, see decrypted digest

      0  01FFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     10  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     20  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     30  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     40  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     50  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     60  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     70  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     80  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     90  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     A0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     B0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     C0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     D0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     E0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     F0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    100  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    110  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    120  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    130  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    140  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    150  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    160  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    170  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    180  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    190  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    1A0  FFFFFFFF FFFFFFFF  FFFFFF00 3051300D

    1B0  06096086 48016503  04020305 00044032

    1C0  B97E7AE4 62EC1983  4362C885 0135F832

    1D0  2518D061 76A564AE  628B43A4 9D2BB586

    1E0  6E1614FD 3F0728FA  1078AB6C 930E52C2

    1F0  A57E0DBC 00FB0CB0  180F47F1 287C38

ERROR in sec_decrypt_Digest: (12848/0x3230) verification failed, see decrypted digest

      0  01FFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     10  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     20  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     30  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     40  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     50  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     60  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     70  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     80  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     90  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     A0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     B0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     C0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     D0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     E0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

     F0  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    100  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    110  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    120  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    130  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    140  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    150  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    160  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    170  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    180  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    190  FFFFFFFF FFFFFFFF  FFFFFFFF FFFFFFFF

    1A0  FFFFFFFF FFFFFFFF  FFFFFF00 3051300D

    1B0  06096086 48016503  04020305 00044032

    1C0  B97E7AE4 62EC1983  4362C885 0135F832

    1D0  2518D061 76A564AE  628B43A4 9D2BB586

    1E0  6E1614FD 3F0728FA  1078AB6C 930E52C2

    1F0  A57E0DBC 00FB0CB0  180F47F1 287C38

Obrigado pelo help!

rhviana
Active Contributor
0 Kudos

Rafael bom dia,

Você saberia dizer se o Basis extraiu o certificado digital e converteu ele para .PSE ?

Provavelmente o certificado esteja no Visual Admin, extrai o .PFX ou .P12 e solicite para basis baixar o SAPCtrypalib e utilizar o código abaixo para conversão.

sapgenpse import_p12 –p <filename>.pse <filename>.pfx

Após a conversão vai na SICF, cria um SFF aplication Z , exemplo ZNFE00, e suba o certificado nesse ZNFE00 via STRUST.

Associe o certificado na SPRO.

Acho que é isso amigo.

Atenciosamente,

Viana.

RafaelVieira
Active Participant
0 Kudos

Fala Ricardo, blz?

O erro está acontecendo justamente no momento de gerar o .pse.

Eu mesmo fiz o export do .pfx do meu windows de acordo com a nota 1524196 e enviei pro basis gerar o .pse

Para o .pfx antigo funcionou direitinho e as notas estavam sendo assinadas. Para o novo .pfx não funciona, conforme os detalhes acima.

Agradeço a ajuda!

rhviana
Active Contributor
0 Kudos

Rafael bom dia,

Se vocês estão criando um novo .PSE, significa que o antigo já expirou, correto ?

Não é simplesmente baixar o .PFX do visual administrator, modificar a extenção do arquivo para .PSE, vai dar erro com certeza.

O basis utilizou essa nota para instalar o SAPCryptolib ?

  • Note 662340 - SSF Encryption Using the SAPCryptolib

Basicamente é deploy do SAPCryptolib no ambiente da maquina do PI, baixar o certificado atual que está no VADM e utilizar o código abaixo para conversão.


sapgenpse import_p12 –p <filename>.pse <filename>.pfx

Feito isso criar um SSFApplication (T SICF - Procura pelo caminho *XNFE* e ativa e testa o serviço [ssf_maintenance] ) Z, e associar o certificado aos SSFA via Strust.

Estou achando que algum passo não foi feito, pois aqui, eu fiz exatamente isso e está funcionando.

Atenciosamente,

Ricardo Viana

RafaelVieira
Active Participant
0 Kudos

É isso aí mesmo Ricardo, a ferramenta já está instalada e o procedimento pra geração do .pse está sendo feito via linha de comando, exatamente como vc descreveu, aliás, exatamente como a nota sap descreve.

Por isso que eu disse que o mesmo processo funcionou com o certificado anterior e não funciona com este novo.

Já existe também o SSF criado no GRC e então seria apenas atualizar o .pse que está nele (NFESIGN).

SAPCryptLib foi atualizado pra versão mais atual e dá esse erro que comentei acima.

O problema está em como trabalhar com esse .pfx com o algoritmo sha-256 ao invés do sha-1. O erro que está dando, aparentemente, é com relação ao algoritmo. O processo todo já está de acordo com a nota e já gerou .pse várias vezes então não deve ter erro nisso (acredito eu).

former_member182114
Active Contributor
0 Kudos

Bom dia Rafael,

Pois é, desconheço esta questão do sha-256/sha-1. Melhor abrir um chamado em BC-SSF-SEC, para dirimir esta dúvida de conversão (se necessário).

Atenciosamente, Fernando Da Rós

RafaelVieira
Active Participant
0 Kudos

E ai Fernando, bom dia!

Foi preciso um chamado mesmo. Ainda não tenho muitos detalhes mas a solução sugerida pela SAP, segundo equipe basis, foi de utilizar apenas as pastas x86_64 que vêm como parte do sap cryptolibrary PL34 (se não me engano é a última versão). Alterado isso, foi possível fazer o import do .pfx e export pra .pse.

Mas, depois de configurar STRUST e Visual Admin com esse certificado, as notas enviadas chegam na Sefaz e no monitor PI, a interface BATSR retorna:

<ns2:cStat>225</ns2:cStat>

<ns2:xMotivo>Rejeição: Falha no Schema XML do lote de NFe</ns2:xMotivo>

<ns2:cUF>52</ns2:cUF>

Verificando este XML na Sefaz virtual RS, além de erros de regras de negócio, a NF-e exibe sinal verde pra Certificado Digital do Titular, depois um erro Assinatura Digital inválida e então os erros de regra de negócio.


A definição do certificado na STRUST está assim:

Posso criar uma outra thread pra esse assunto, mas queria verificar se não está relacionado ao problema original desta thread, sobre import/export do certificado.

O certificado digital em questão (utilizado na STRUST do GRC e no VA do PI) é um recém comprado e está sendo utilizado pra emissão de notas em produção, mas com o Mastersaf.

Agradeço se opinarem algo.

Abraço!

RafaelVieira
Active Participant
0 Kudos

O problema (este último) era apenas questão de cache refresh mesmo.

O problema principal, relacionado com o algoritmo de assinatura, foi resolvido com a atualização do componente SAPCryptLib e o procedimento acima.

Muito obrigado pela ajuda !

Rafael.

former_member182114
Active Contributor
0 Kudos

Bom dia Rafael,

Muito obrigado pelo feedback com suas excelentes informações.

Atenciosamente, Fernando Da Rós

Answers (0)