Página 1 de 1

MDFe QRcode - assinatura RSA_SHA1

Enviado: 01 Nov 2019 13:50
por Devair
Por favor alguém tem a função para assinar a chave do MDFe no padrão RSA-SHA1, para usar no QRcode quando envia o MDFe em contingência.
Conforme o manual do MDFe.
3ª parte – sign assinatura digital no padrão RSA SHA-1 (Base64) do valor do parâmetro chMDFe
(chave de acesso com 44 caracteres) a partir do certificado digital que assina o MDF-e, este
parâmetro deve ser adicionado aos demais usando um caractere “&” como separador.

1ª parte: URL http://dfe-portal.svrs.rs.gov.br/mdfe/QRCode

2ª parte : parâmetros chMDFe=43181207312871000190580010000334041421310776&tpAmb=1

3ª parte: assinatura &sign=ZZSKiypy7fkg22MUv6TUh71EI+wLYWr/fUHJy3PyWnL7d5mzEqtxu6bVbhE7AeNiDTirh1u9
gVfC2Hw+Lsno2XNL5FRUc5NcuMTT2hA6E9HYC9gryvtWAIgiCZUNG5cWWLCh0G62QdnNe8iSr
lSooQu9Z5g1vbGaTFMxaugzzvo=

Gerar o QR Code com as concatenações das três partes (URL + parâmetros + assinatura):
Ou se tem como usar a própria função AssinaXML e de forma faria isso.
Agradeço se alguem puder ajudar.

MDFe QRcode - assinatura RSA_SHA1

Enviado: 01 Nov 2019 17:37
por JoséQuintas
A assinaXml() é pra assinar o XML, mas lá dentro tem a rotina onde a Capicom faz a assinatura.

Se não me engano, usa uma assinatura parecida com essa pra nota de serviço.

Não conseguimos chegar a uma conclusão sobre como é feita essa assinatura, porque qualquer tentativa acaba gerando uma assinatura muito maior, talvez porque está com o certificado junto.

MDFe QRcode - assinatura RSA_SHA1

Enviado: 01 Nov 2019 20:41
por Devair
Acho tambem que tem alguma semelhança com a NFS, porque no caso do MDFe, é somente a chave que será assinada.
Eu utilizo a DLL da flexdoc, e o MDFe em contingência funciona normal. Só que eu tenho tbem sistemas desenvolvidos com a HBNFE, tbem sempre funcionou normal, agora que me deparei com esse obstáculo. De qualquer forma o envio normal esta funcionando, e neste tempo que utilizo a HBNFE, nunca foi utilizado em contingência, então vai ser possivel utiliza-la sem desenvolver por enquanto a contingência.
Vamos aguardar e ver no futuro se aparece um solução.

De qualquer forma agradeço sua resposta.