Sobre o projeto
tc_rust é um workspace de criptografia em Rust puro, portado da biblioteca Bouncy Castle C#. Serve como um projeto de aprendizado pessoal para estudar Rust, algoritmos de criptografia e design de API. O projeto é explicitamente marcado como uma reimplementação independente e não oficial, não afiliada nem endossada pela Legion of the Bouncy Castle Inc. Devido ao seu status de trabalho em progresso com APIs instáveis e sem auditoria de segurança, não é adequado para produção ou aplicações de segurança do mundo real.
A biblioteca fornece um conjunto abrangente de primitivos de criptografia organizados em crates modulares. O suporte a cifras de bloco inclui 28 engines públicos, como AES, ARIA, Camellia, DES e SM4, com testes de resposta conhecida. As engines de cifra de fluxo cobrem RC4, ChaCha, Salsa20 e HC-128/256. O projeto também implementa oito famílias de modos de cifra de bloco, incluindo ECB, CBC, CTR e GCTR, embora o preenchimento e a autenticação não sejam fornecidos. O suporte a digest é extenso, com 45 tipos exportados, incluindo SHA-2/3, BLAKE2/3, MD5 e variantes RIPEMD.
As bases matemáticas incluem inteiros de precisão arbitrária, aritmética de campo binário e operações de curva elíptica para curvas SEC e SM2. Suporta troca de chaves X25519/X448 e assinaturas Ed25519/Ed448 com modos de verificação rigorosa. As implementações de wrapping de chave seguem os padrões RFC 3394, RFC 5649 e DSTU 7624. A arquitetura enfatiza a compatibilidade com `no_std`, com crates que vão desde apenas core até aqueles que requerem `alloc` ou `std` para otimizações de desempenho, como aceleração AES-NI e AVX2. O gráfico de dependências é projetado para ser acíclico, permitindo que os usuários selecionem apenas as camadas necessárias. O projeto é licenciado sob MIT ou Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.