Sixth byte in some messages are not always 1.
[cascardo/libreceita.git] / doc / FORMATO
index 5c8c914..ddede18 100644 (file)
@@ -4,6 +4,7 @@ C: "00000000000000" (14)
 S: "DDMMYYYYHHmmss"
 TLS handshake
 C: (6 bytes) + deflate(hash)
+       header: 0x01 0xII 0xII 0xOO 0xOO 0x01, II é o tamanho da entrada, OO é o tamanho da saída do deflate
        hash: 0x40 + sequencia de chave/valor no formato
                byte 0: tamanho da chave | 0x80 se tamanho do valor maior que 255 (ou 127?)
                chave com numero de bytes igual ao tamanho
@@ -15,4 +16,41 @@ C: (6 bytes) + deflate(hash)
                id_dec = 0xXX 0xXX 0xXX 0xXX (4) == "hash" da declaracao com 10 digitos decimais
                        exemplo: se "hash" == 1000000000, id_dec == 0x3b 0x9a 0xca 0x00
                exercicio = "2012"
-               exercico_pgd = "20122013"
+               exercico_pgd = "2013"
+               hash_arq = 16 bytes
+               hash_trans = 16 bytes == hash_arq
+               ni = "00000000000" (CPF em ascii)
+               tp_ni = "CPF"
+               num_ass = 0x00 (assinatura e-CPF?)
+               p_comp = 0x00 0x00 0x00 0x00
+               ret = 0x00
+               tam_arq = 8 bytes
+               tam_assinado = 8 bytes == tam_arq
+               tam_trans = 8 bytes == tam_arq
+               uf = "SP" (UF)
+               vrs_des_pa = 0x00 (versão de desenvolvimento?)
+               versao_pgd = 0x00 0x78 (120, mesmo que nr_versao no DEC, segundo arquivo de leiaute)
+               critica_validador = 0x06 (??)
+               ip_loc = "127.0.0.1" (endereço IP local)
+               versao_java = "1.7.0_03-icedtea;OpenJDK Runtime Environment" (versão do Java em ASCII)
+                       será que rola uma versão do GCC?
+               origem = "JA2R" (melhor repetir!)
+               so = "Linux"
+               cliente = "201104" (será a versão do receitanet?)
+               dados_val = parte do cabeçalho do DEC (desce in_cert até vr_totpagamentos) bytes 112 a 750
+               tam_dados_val = 0x00 0x00 0x00 0x00 (4 bytes)
+               tam_dados_val_chave = 0x00 0x00 0x00 0x00 (4 bytes)
+               arquivos_restantes = 0x00 0x00 0x00 0x00 (4 bytes)
+S: (6 bytes) + deflate(hash)
+       header: 0x01 0xII 0xII 0xOO 0xOO 0x01, II é o tamanho da entrada, OO é o tamanho da saída do deflate
+       hash: 0xXX + sequencia de chave/valor no formato descrito acima (onde 0XX é um código)
+               0x01 - Sucesso
+                       chave POS_INICIO - ??
+               0x03 - Erro
+                       chave SUBTIPO
+                       chave TEXTO: "XXXX.Erro xxxxxxxx", onde XXXX é o código de erro
+                       chaves *ARQ*
+C: (6 bytes) + deflate(hash)
+       header: 0x01 0xII 0xII 0xOO 0xOO 0x00, II é o tamanho da entrada, OO é o tamanho da saída do deflate
+       conteúdo: arquivo DEC, com apenas os registros de declaração, ou seja, excluídos os registros de recibo, removido o número de controle (últimos 10 bytes) de todos os registros
+       O tamanho e o hash da mensagem anterior do cliente são o tamanho e o hash MD5 do conteúdo desta transmissão