From a6fbe2b4cc6332ebf3caf71c5bac2b73c1af9088 Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Thu, 13 Jun 2013 08:14:02 -0300 Subject: [PATCH] Fix size of field. tam_dados_val_chave is, in fact, only 4 bytes long. Due to a known bug in the decoder used during reverse engineering, the value of tam_dados_val was appended to the value of tam_dados_val_chave, since the two keys have the same prefix. --- doc/FORMATO | 2 +- rnet_encode.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/FORMATO b/doc/FORMATO index 3533068..270c3f4 100644 --- a/doc/FORMATO +++ b/doc/FORMATO @@ -39,7 +39,7 @@ C: (6 bytes) + deflate(hash) 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 0x00 0x00 0x00 0x00 (8 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 diff --git a/rnet_encode.c b/rnet_encode.c index e9e5bdb..369e059 100644 --- a/rnet_encode.c +++ b/rnet_encode.c @@ -87,7 +87,7 @@ int rnet_encode(struct rnet_decfile *decfile, struct rnet_message **msg) r = rnet_message_add_ascii(msg, "so", "GNU"); r = rnet_message_add_ascii(msg, "cliente", "201104"); r = rnet_message_add_u32(msg, "tam_dados_val", 0); - r = rnet_message_add_u64(msg, "tam_dados_val_chave", 0); + r = rnet_message_add_u32(msg, "tam_dados_val_chave", 0); r = rnet_message_add_u32(msg, "arquivos_restantes", 0); free(hash); -- 2.20.1