C: 0x01 S: "E" 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 byte[X] = tamanho do valor, se menor ou igual a 255 (ou 127?) ou byte[X] << 8 | byte[X+1] = tamanho do valor, se maior que 255 (ou 127?) valor com numero de bytes igual ao tamanho chaves: a_comp = 0x00 0x00 0x00 0x00 (4) tp_arq = 0x00 0x00 0x08 0xfc (4) == 2300 em decimal, "Ajuste" (2321 - "Espolio", 2320 - "Saida") 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 = "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.5.0-gij;Free Software rnetclient pretending to be GNU Interpreter for Java" (versão do Java em ASCII; o ReceitaNet concatena as propriedades java.version e java.runtime.name, com ";" entre elas) origem = "JA2R" (melhor repetir!) so = "GNU" cliente = "201105" (identificador de versão do receitanet) dados_val = parte do cabeçalho do DEC (desde in_cert até vr_totpagamentos) bytes RNET_HEADER_HEAD_yyyy a RNET_HEADER_SIZE_yyyy - RNET_HEADER_TAIL_yyyy 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