fast_rsa
library for use RSA with support for android and ios, macOS, linux, windows and web
RSA for flutter made with golang for fast performance with support for android, ios, macos, linux, windows and web
{"sdk":"flutter"}{"sdk":"flutter"}^2.1.3^23.5.26^1.9.0>=0.5.0 <2.0.0^2.0.2^5.0.0{"sdk":"flutter"}English project snapshot. Visit GitHub for the latest content.
Library for use RSA with support for android, ios, macos, windows, linux and web
import 'package:fast_rsa/fast_rsa.dart';
var result = await RSA.encryptOAEP(message, label, Hash.HASH_SHA256, publicKey)
var result = await RSA.encryptPKCS1v15(message, publicKey)
var result = await RSA.encryptOAEPBytes(messageBytes, label, Hash.SHA256, publicKey)
var result = await RSA.encryptPKCS1v15Bytes(messageBytes, publicKey)
import 'package:fast_rsa/fast_rsa.dart';
var result = await RSA.decryptOAEP(message, label, Hash.HASH_SHA256, privateKey)
var result = await RSA.decryptPKCS1v15(message, privateKey)
var result = await RSA.decryptOAEPBytes(messageBytes, label, Hash.SHA256, privateKey)
var result = await RSA.decryptPKCS1v15Bytes(messageBytes, privateKey)
import 'package:fast_rsa/fast_rsa.dart';
var result = await RSA.signPSS(message, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, privateKey)
var result = await RSA.signPKCS1v15(message, Hash.SHA256, privateKey)
var result = await RSA.signPSSBytes(messageBytes, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, privateKey)
var result = await RSA.signPKCS1v15Bytes(messageBytes, Hash.SHA256, privateKey)
import 'package:fast_rsa/fast_rsa.dart';
var result = await RSA.verifyPSS(signature, message, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, publicKey)
var result = await RSA.verifyPKCS1v15(signature, message, Hash.SHA256, publicKey)
var result = await RSA.verifyPSSBytes(signatureBytes, messageBytes, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, publicKey)
var result = await RSA.verifyPKCS1v15Bytes(signatureBytes, messageBytes, Hash.SHA256, publicKey)
import 'package:fast_rsa/fast_rsa.dart';
var result = await RSA.generate(2048)
import 'package:fast_rsa/fast_rsa.dart';
var result = await RSA.convertJWKToPrivateKey(data, keyId);
var result = await RSA.convertJWKToPublicKey(data, keyId);
var result = await RSA.convertKeyPairToPKCS12(privateKey, certificate, password);
var result = await RSA.convertPKCS12ToKeyPair(pkcs12, password);
var result = await RSA.convertPrivateKeyToPKCS8(privateKey);
var result = await RSA.convertPrivateKeyToPKCS1(privateKey);
var result = await RSA.convertPrivateKeyToJWK(privateKey);
var result = await RSA.convertPrivateKeyToPublicKey(privateKey);
var result = await RSA.convertPublicKeyToPKIX(publicKey);
var result = await RSA.convertPublicKeyToPKCS1(publicKey);
var result = await RSA.convertPublicKeyToJWK(publicKey);
var result = await RSA.encryptPrivateKey(privateKey, password, PEMCipher.PEMCIPHER_AES256);
var result = await RSA.decryptPrivateKey(privateKeyEncrypted, password);
import 'package:fast_rsa/fast_rsa.dart';
var result = await RSA.hash(message, Hash.SHA256);
var result = await RSA.base64(message);
import 'package:fast_rsa/fast_rsa_sync.dart';
var result = RSASync.encryptOAEP(message, label, Hash.HASH_SHA256, publicKey);
var result = RSASync.encryptPKCS1v15(message, publicKey);
var result = RSASync.encryptOAEPBytes(messageBytes, label, Hash.SHA256, publicKey);
var result = RSASync.encryptPKCS1v15Bytes(messageBytes, publicKey);
import 'package:fast_rsa/fast_rsa_sync.dart';
var result = RSASync.decryptOAEP(message, label, Hash.HASH_SHA256, privateKey);
var result = RSASync.decryptPKCS1v15(message, privateKey);
var result = RSASync.decryptOAEPBytes(messageBytes, label, Hash.SHA256, privateKey);
var result = RSASync.decryptPKCS1v15Bytes(messageBytes, privateKey);
import 'package:fast_rsa/fast_rsa_sync.dart';
var result = RSASync.signPSS(message, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, privateKey);
var result = RSASync.signPKCS1v15(message, Hash.SHA256, privateKey);
var result = RSASync.signPSSBytes(messageBytes, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, privateKey);
var result = RSASync.signPKCS1v15Bytes(messageBytes, Hash.SHA256, privateKey);
import 'package:fast_rsa/fast_rsa_sync.dart';
var result = RSASync.verifyPSS(signature, message, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, publicKey);
var result = RSASync.verifyPKCS1v15(signature, message, Hash.SHA256, publicKey);
var result = RSASync.verifyPSSBytes(signatureBytes, messageBytes, Hash.SHA256, SaltLength.SALTLENGTH_AUTO, publicKey);
var result = RSASync.verifyPKCS1v15Bytes(signatureBytes, messageBytes, Hash.SHA256, publicKey);
import 'package:fast_rsa/fast_rsa_sync.dart';
var result = RSASync.generate(2048)
import 'package:fast_rsa/fast_rsa_sync.dart';
var result = RSASync.convertJWKToPrivateKey(data, keyId);
var result = RSASync.convertJWKToPublicKey(data, keyId);
var result = RSASync.convertKeyPairToPKCS12(privateKey, certificate, password);
var result = RSASync.convertPKCS12ToKeyPair(pkcs12, password);
var result = RSASync.convertPrivateKeyToPKCS8(privateKey);
var result = RSASync.convertPrivateKeyToPKCS1(privateKey);
var result = RSASync.convertPrivateKeyToJWK(privateKey);
var result = RSASync.convertPrivateKeyToPublicKey(privateKey);
var result = RSASync.convertPublicKeyToPKIX(publicKey);
var result = RSASync.convertPublicKeyToPKCS1(publicKey);
var result = RSASync.convertPublicKeyToJWK(publicKey);
var result = RSASync.encryptPrivateKey(privateKey, password, PEMCipher.PEMCIPHER_AES256);
var result = RSASync.decryptPrivateKey(privateKeyEncrypted, password);
import 'package:fast_rsa/fast_rsa_sync.dart';
var result = RSASync.hash(message, Hash.SHA256);
var result = RSASync.base64(message);
No additional setup required.
No additional setup required.
add to you pubspec.yaml
assets:
- packages/fast_rsa/web/assets/worker.js
- packages/fast_rsa/web/assets/wasm_exec.js
- packages/fast_rsa/web/assets/rsa.wasm
ref: https://github.com/jerson/flutter-rsa/blob/master/example/pubspec.yaml
no additional setup required
No additional setup required.
No additional setup required.
Inside example folder
cd example && flutter run
check our web demo: [https://flutter-rsa.jerson.dev/]
the native library is made in Golang and build with gomobile for faster performance
https://github.com/jerson/rsa-mobile