rsfn-file

Crates.iorsfn-file
lib.rsrsfn-file
version0.2.0
created_at2025-10-27 04:29:33.075546+00
updated_at2025-11-28 21:39:23.878604+00
descriptionUtilitário para arquivos que trafegam na RSFN (Rede do Sistema Financeiro Nacional)
homepage
repositoryhttps://github.com/eduardoklosowski/rsfn-file
max_upload_size
id1902238
size170,191
Eduardo Klosowski (eduardoklosowski)

documentation

README

RSFN File

Esse projeto é uma ferramenta para validar e inspecionar arquivos trafegados na RSFN (Rede do Sistema Financeiro Nacional). Por também possibilitar a criptografia e descriptografia de arquivos, ele se torna uma opção para gerar arquivos visando testar sistemas que interagem na RSFN e validar o conteúdo dos arquivos gerados por esses sistemas.

Atualmente essa ferramenta implementa suporte apenas a versão 3 do cabeçalho de segurança (última versão publicada até então) com os algoritmos de criptografia AES, RSA e de hash SHA-256. Sua implementação é baseada nas documentações disponibilizadas pelo Banco Cental do Brasil e Núclea para serviços como STR e SLC.

Exemplos de Uso

Vídeo no asciicast

Mostrar e Validar o Cabeçalho de Segurança de um Arquivo

$ rsfnfile header arquivo-criptografado
================================ BEGIN HEADER ================================
C01 Tamanho do cabeçalho                     : 0x024c [588]
C02 Versão do protocolo                      : 0x03 [Terceira versão]
C03 Código de erro                           : 0x00 [Sem erros]
C04 Tratamento especial                      : 0x08 [Arquivo compactado]
C05 Reservado                                : 0x00 [-]
C06 Algoritmo da chave assimétrica do destino: 0x02 [RSA com 2048 bits]
C07 Algoritmo da chave simétrica             : 0x02 [AES com 256 bits]
C08 Algoritmo da chave assimétrica local     : 0x02 [RSA com 2048 bits]
C09 Algoritmo de hash                        : 0x03 [SHA-256]
C10 PC do certificado do destino             : 0x01 [SPB-Serpro]
C11 Série do certificado do destino          : 0x3030303030303030303030303030303030303030303030303030313233343536 [0x123456]
C12 PC do certificado da instituição         : 0x01 [SPB-Serpro]
C13 Série do certificado da instituição      : 0x3030303030303030303030303030303030303030303030303030414243444546 [0xabcdef]
C14 Buffer da chave simétrica                : blob [len=256]
C15 Buffer da autenticação da mensagem       : blob [len=256]
================================ END HEADER ================================

Criptografa Arquivo

$ make certs
$ echo "Exemplo de teste" | rsfnfile enc data/part-a.crt data/part-a.key data/part-b.crt --gzip -o arquivo-criptografado

Descriptografa Arquivo

$ rsfnfile dec data/part-a.crt data/part-b.crt data/part-b.key arquivo-criptografado
Exemplo de teste
Commit count: 0

cargo fmt