Gera hash do CPF no cabeçalho.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Mon, 27 Feb 2017 22:07:47 +0000 (19:07 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Mon, 27 Feb 2017 22:07:47 +0000 (19:07 -0300)
Um dos campos do cabeçalho apresenta um hash que é apenas um CRC32 do CPF. Se
uma nova versão do IRPF remover tal campo, basta reverter este commit junto com
a provável atualização do campo de versão.

lib/gera.c

index bfd1aa1..bd70fdc 100644 (file)
@@ -127,7 +127,10 @@ static void gera_header(struct declaracao *dec, FILE *f)
        fprintf(f, "%-11.11s", ""); /* CPF inventariante */
        fprintf(f, "%-40.40s", dec->contribuinte.municipio);
        fprintf(f, "%-60.60s", dec->nome);
-       fprintf(f, "%-11.11s", ""); /* CPF empregada */
+       if (dec->ano == 2017)
+               fprintf(f, "%010u ", crc32(0, dec->cpf, 11)); /* hash CPF */
+       else
+               fprintf(f, "%-11.11s", ""); /* CPF empregada, FILLER */
        fprintf(f, "%-12.12s", sistema_get_mac(dec));
        fprintf(f, "%08d", 0); /* Data saída */
        fprintf(f, "%-11.11s", ""); /* CPF procurador */