rsa_oaep_dart 0.1.4 copy "rsa_oaep_dart: ^0.1.4" to clipboard
rsa_oaep_dart: ^0.1.4 copied to clipboard

Pure Dart implementation of RSAES-OAEP (PKCS#1 v2.2)

RSA OAEP Dart Library #

License: MIT Pub Version Test Dart SDK codecov

Implementação completa e pura de RSAES-OAEP (PKCS#1 v2.2) em Dart, com suporte a SHA-256.
Ideal para projetos que precisam de criptografia assimétrica segura, sem dependências nativas.

📦 Compatibilidade #

Esta biblioteca é compatível com Dart SDK 3.0.0 ou superior.

Dart 3.0.0 foi lançado em maio de 2023, junto com Flutter 3.10.
Portanto, este pacote é compatível com projetos que utilizam:

  • Dart: >=3.0.0 <4.0.0
  • Flutter: >=3.10.0

Se o seu projeto ainda utiliza uma versão anterior do Dart ou Flutter, será necessário atualizá-lo para utilizar este pacote.

🚀 Funcionalidades #

✅ Suporte ao esquema RSAES-OAEP com MGF1.
✅ Compatível com SHA-256 (default).
✅ Interoperável com OpenSSL (criptografia e descriptografia).
✅ Testes automatizados e exemplos práticos.
✅ Código puro Dart, ideal para Flutter e backend.

🛠️ Como usar #

Instalar #

Adicione ao pubspec.yaml:

dependencies:
  rsa_oaep_dart: ^0.1.4

Disponível no pub.dev.

Importar #

import 'package:rsa_oaep_dart/rsa_oaep_dart.dart';

Veja mais detalhes na documentação oficial.

💻 Exemplos #

Executar exemplos completos #

cd lib/example
make
make

Inclui:

  • Geração de chaves
  • Criptografia com Dart e OpenSSL
  • Descriptografia com Dart e OpenSSL

🧪 Testes #

dart test

✅ Conformidade #

  • RFC 8017 — PKCS#1 v2.2
  • MGF1 com SHA-256
  • Compatível com openssl pkeyutl para interoperabilidade.

🔒 Segurança #

Esta implementação segue as boas práticas de segurança para operações criptográficas:

  • Geração segura de chaves
  • Uso correto de OAEP e MGF1
  • Tratamento de mensagens inválidas

📚 Interoperabilidade & Boas Práticas #

Conversão de mensagens #

Para garantir interoperabilidade com sistemas externos (KMS, OpenSSL, etc.):

  • Sempre converta sua mensagem para bytes usando UTF-8 ANTES de criptografar:

    Uint8List messageBytes = Uint8List.fromList(utf8.encode('Sua mensagem aqui'));
    
  • Para descriptografar, o resultado será Uint8List (bytes).

    • Para converter de volta para String:
    String mensagem = utf8.decode(decryptedBytes);
    

Transmissão e armazenamento #

  • Se precisar transmitir ou armazenar o ciphertext, use Base64:

    String ciphertextB64 = base64.encode(ciphertextBytes);
    Uint8List ciphertextBytes = base64.decode(ciphertextB64);
    

Sobre Base64 #

  • Use base64.decode() apenas se a entrada foi originalmente codificada em Base64.
  • Não converta a mensagem original para Base64 antes de criptografar — utilize sempre bytes UTF-8.

Resumo #

  • Entrada e saída dos métodos são sempre em Uint8List (bytes).
  • O usuário é responsável pela conversão adequada da mensagem e do ciphertext, conforme a necessidade da aplicação.

Veja exemplos completos na documentação oficial.

⚠️ Aviso de Segurança #

Esta biblioteca é uma implementação pura em Dart dos algoritmos RSA OAEP com MGF1 e SHA-256.
Ela não foi auditada por especialistas em segurança para uso em ambientes críticos ou produção sensível.

Recomenda-se:
✅ Revisão do código por especialistas antes de uso em sistemas de segurança sensível.
✅ Utilização consciente das limitações de uma implementação em linguagem de alto nível como Dart.

Esta biblioteca é ideal para:

  • Prototipagem
  • Estudos
  • Aplicações não críticas

Mas pode não ser adequada para casos onde segurança formalmente auditada é obrigatória.

📊 Integração com Codecov #

Este projeto utiliza Codecov para monitoramento de cobertura de testes.

A cada push ou pull request para a branch main, o GitHub Actions executa automaticamente:

  • Análise de código
  • Testes automatizados
  • Geração de relatório de cobertura (lcov.info)
  • Upload para o Codecov

O badge no topo deste README exibe a cobertura atualizada.

Para visualizar o relatório completo, acesse:
https://codecov.io/gh/gabrielscota/rsa_oaep_dart

✅ Roadmap #

  • ❌ Suporte a SHA-1, SHA-512
  • ❌ Suporte a labels customizados
  • ❌ Automatização com CI/CD

📄 Licença #

MIT — veja o arquivo LICENSE.

3
likes
0
points
53
downloads

Publisher

unverified uploader

Weekly Downloads

Pure Dart implementation of RSAES-OAEP (PKCS#1 v2.2)

Repository (GitHub)
View/report issues

Documentation

Documentation

License

unknown (license)

Dependencies

asn1lib, basic_utils, pointycastle

More

Packages that depend on rsa_oaep_dart