Ir para conteúdo
  • Cadastre-se

dev botao

Assinatura Fora Do Padrão Informado


  • Este tópico foi criado há 1281 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia a todos.

 

Estou, pela primeira vez, ativando um SAT da Dimep para produção.

 

Realizei o processo de ativação e correu tudo sem problemas. No entanto, ao tentar fazer a associação de assinatura (onde passo o código de vinculação) recebo a seguinte mensagem: "13003 - Assinatura fora do padrão informado"

 

O código de vinculação está sendo gerado utilizando o exemplo disponibilizado no site da Sefaz, com certificado A3. 

 

Caso eu altere o CNPJ informado da software house ou do contribuinte e não mude o código de vinculação, ele dá outro erro falando que os CNPJ's não conferem com o código de vinculação.

 

Alguém já se deparou com esse problema ? 

 

Obrigado, 

Editado por marcio.bonfim
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Oi João.

 

Estou utilizando o mesmo certificado.

 

O que mais me intriga é que se eu mudo um CNPJ sem alterar o código, ele consegue identificar que o código de vinculação não corresponde aos CNPJ's informados. 

 

Você utilizou certificado A1 ou A3 para a assinatura ? 

Utilizo o certificado A3.

Quantos bytes a sua assinatura esta retornando?

João Paulo F. Bellucci

Analista e Programador

Link para o comentário
Compartilhar em outros sites

Pois é .. o tamanho está ok ... e pela diferença na msg de acordo com os cnpjs q passo como parâmetro, imagino que ele esteja conseguindo verificar a assinatura ... 

 

pior q já não tenho mais nenhuma ideia do que fazer para tentar solucionar esse problema ... :< 

Você esta fazendo a associação pelo software da Dimep ou pelo seu?

Já tentou enviar novamente a chave publica do seu certificado para a Sefaz?

João Paulo F. Bellucci

Analista e Programador

Link para o comentário
Compartilhar em outros sites

estou fazendo pelo software da Dimep.

 

não tentei enviar novamente a chave pública pq não achei um lugar para substituir. O q eu fiz foi baixar a q consta no meu cadastro lá, exportar novamente e comparar os dados. Estão rigorosamente iguais ... 

Acredito eu que você terá que falar om o Marlus da Dimep ele já deve ter passado por esse problema.

Infelizmente não sei mais o que pode ser.

Assim que você conseguir resolver o problema poste aqui para ficar registrado.

 

[]s

João Paulo F. Bellucci

Analista e Programador

Link para o comentário
Compartilhar em outros sites

Marcio, o exemplo disponibilizado no site do SEFAZ está gerando a chave fora do padrão. 

 

Tenta gerar utilizando o seguinte código e comparar com o seu.

 

 

 

 

 

String assinatura = "";
 
String cnpjAC = "Informar o CNPJ da Software House";
String cnpjEC = "Informar o CNPJ do Contribuinte";
string cnpj   = cnpjAC + cnpjEC;
 
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
 
CspParameters csp = new CspParameters(1, "eToken Base Cryptographic Provider");
 
csp.Flags = CspProviderFlags.UseDefaultKeyContainer;
 
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
 
byte[] sig = rsa.SignData(encoding.GetBytes(cnpj), "SHA256");
 
string base64sign = Convert.ToBase64String(sig);
 
assinatura = base64sign;
 
bool verificado = rsa.VerifyData(encoding.GetBytes(cnpj), "SHA256", sig);
 
if (verificado)
  assinatura = base64sign;
else
  assinatura = "Não foi possível validar a assinatura gerada";
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

 

Marcio, o exemplo disponibilizado no site do SEFAZ está gerando a chave fora do padrão. 

 

Tenta gerar utilizando o seguinte código e comparar com o seu.

 

 

 

 

 

String assinatura = "";
 
String cnpjAC = "Informar o CNPJ da Software House";
String cnpjEC = "Informar o CNPJ do Contribuinte";
string cnpj   = cnpjAC + cnpjEC;
 
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
 
CspParameters csp = new CspParameters(1, "eToken Base Cryptographic Provider");
 
csp.Flags = CspProviderFlags.UseDefaultKeyContainer;
 
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
 
byte[] sig = rsa.SignData(encoding.GetBytes(cnpj), "SHA256");
 
string base64sign = Convert.ToBase64String(sig);
 
assinatura = base64sign;
 
bool verificado = rsa.VerifyData(encoding.GetBytes(cnpj), "SHA256", sig);
 
if (verificado)
  assinatura = base64sign;
else
  assinatura = "Não foi possível validar a assinatura gerada";

 

 

Cara, esse código aí funcionou pra mim.

 

Mas eu só fiquei com uma dúvida, ele tá sempre pegando o único certificado que tá plugado na máquina? Se tiver mais que um tem como selecionar?

 

Valeu.

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...

Boa noite, 
Tentei compilar o código acima mas da erro na linha.

CspParameters csp = new CspParameters(1, "eToken Base Cryptographic Provider");

[ Error    CS0116    A namespace cannot directly contain members such as fields or methods ]

Alguem poderia me dar uma luz de como posso resolver isto.

Agradeço desde já,

Muito Obrigado.

Julio Cesar Chiaretto.

 

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois ...
Em 14/05/2015 at 11:16, julioaguilar disse:

Marcio, o exemplo disponibilizado no site do SEFAZ está gerando a chave fora do padrão. 

 

Tenta gerar utilizando o seguinte código e comparar com o seu.

 

 

 

 

 

String assinatura = "";
 
String cnpjAC = "Informar o CNPJ da Software House";
String cnpjEC = "Informar o CNPJ do Contribuinte";
string cnpj   = cnpjAC + cnpjEC;
 
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
 
CspParameters csp = new CspParameters(1, "eToken Base Cryptographic Provider");
 
csp.Flags = CspProviderFlags.UseDefaultKeyContainer;
 
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
 
byte[] sig = rsa.SignData(encoding.GetBytes(cnpj), "SHA256");
 
string base64sign = Convert.ToBase64String(sig);
 
assinatura = base64sign;
 
bool verificado = rsa.VerifyData(encoding.GetBytes(cnpj), "SHA256", sig);
 
if (verificado)
  assinatura = base64sign;
else
  assinatura = "Não foi possível validar a assinatura gerada";

Cara, salvou minha vida, merece um oscar....

Em 04/09/2015 at 21:20, jcchiaretto disse:

Boa noite, 
Tentei compilar o código acima mas da erro na linha.

CspParameters csp = new CspParameters(1, "eToken Base Cryptographic Provider");

[ Error    CS0116    A namespace cannot directly contain members such as fields or methods ]

Alguem poderia me dar uma luz de como posso resolver isto.

Agradeço desde já,

Muito Obrigado.

Julio Cesar Chiaretto.

 

Tem que subistituir o "new CspParameters(1, "eToken Base Cryptographic Provider"); de acordo com seu certificado.

Verifica no registro do windows:

 

         // The 1st parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider Types.
         // The 2nd parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider
Att, 
 
Vinicius Gonçalves | Engenheiro de Software 
LogoEmail.png [email protected] 
  

LogoMs.png 

 

Antes de imprimir, pense na sua responsabilidade e compromisso com o Meio Ambiente.
        Já imprimiu? Utilize o verso. 
Link para o comentário
Compartilhar em outros sites

  • 4 anos depois...
  • Este tópico foi criado há 1281 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...