Paulo de Souza Lima escreveu:
Eu acho que o grande segredo é o receitanet, que verifica e manda a
declaração p/ receita. Mas mesmo assim, nada de mto extraordinário...
Da página http://www.sintegra.gov.br/info5.html :
"Foi desenvolvido o programa VALIDADOR
SINTEGRA, que verifica a consistência dos
dados informados pelos
contribuintes e prepara os arquivos para entrega às repartições
fazendárias estaduais, com uso de algoritmos de integridade e
criptografia. O programa
evita o fornecimento de dados incorretos, como
Inscrições Estaduais e CNPJ inválidos,
registros inexistentes,
inconsistência entre e nos registros informados, etc. Deve-se
destacar
que o programa Validador obedece estritamente o disposto no leiaute do
Convênio ICMS 57/95 e na legislação do ICMS para os documentos fiscais,
isto é, as
regras de validação são decorrências de disposições legais."
Ou seja, o programa validador só verifica o formato e a consistência dos dados
e os
criptografa para a transmissão. As informações para a verificação dos dados e do
formato do arquivo já são públicas, portanto, nada impede que se desenvolva um
programa open source para fazer a mesma coisa, utilizando-se métodos e
algorítmos
de criptografia open source.
Muito provavelmente, os algorítmos de criptografia utilizados pela Receita
Federal sejam
proprietários.
Paulo de Souza Lima
Curitiba - PR
Olá Paulo,
Exatamente e correto, e mesmo que os algoritmos de criptografia sejam
proprietários, nada impede a receita de laçar um objeto (tipo como fazem
para as placas de vídeo), com uma única função: criptografar.
Venho há um ano mexendo com Sintegra e esse validador, tirando a
criptografia, simplesmente verifica se cada valor está coerente com as
especificações, que são abertas, como por exemplo se há caracteres
inválidos onde somente é permitido números e preenchimento, neste caso,
à esquerda com zeros e o alinhamento à esquerda com espaços à direita,
pois cada campo tem seu tamanho definido e especificado, bem como CNPJ
válido e números de registros lidos iguais aos informados, dentre outras
restrições. Ainda verifica e adverte se um campo onde se espera um valor
diferente de zero está com zeros, onde se espera algo alfanumérico
contendo puramente espaços, se os códigos de produtos que compõe uma
nota não tem sua descrição listada, dentre outras firulas. Se tiver algo
realmente errado, ele dá erro e não permite gerar o arquivo
criptografado. Se tiver algo advertido, mesmo assim gera o arquivo
criptografado.
Creio que essa criptografia é apenas para que alguém não abra ou
altere o arquivo no seu caminho, algo que uma chave pública também
resolve, nada de espetacular também. Estou então engatinhando fazendo
esse validador aberto em duas partes: o núcleo e a interface. O núcleo
faz exatamente o que descrevi acima, uma biblioteca, que a princípio
pode ter apenas uma função: int validar_arquivo(char* nome_do_arquivo,
int* num_erros, char** erros, int* num_advertencias, char**
advertencias). Já a interface é para tornar amigável o processo, seja em
linha de comando ou de forma gráfica.
Analisei o programa do IR e é, aparentemente, a mesma coisa. Por que
não liberar, se já não são, não verifiquei isso, de forma oficial as
especificações então?
--
Atenciosamente,
Junior Polegato
Um peregrino de problemas; Um pergaminho de soluções!
Página Profissional: http://www.juniorpolegato.com.br
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]