fast_rsa 1.1.4

  • Readme
  • Changelog
  • Example
  • Installing
  • 78

Fast RSA #

Library for use RSA with support for android, ios, macos, linux, web and hover

Contents #

Usage #

Encrypt methods #

import 'package:fast_rsa/rsa.dart';

var result = await RSA.encryptOAEP(message, label, RSAHash.sha512, publicKey)
var result = await RSA.encryptPKCS1v15(message, publicKey)

var result = await RSA.encryptOAEPBytes(messageBytes, label, RSAHash.sha512, publicKey)
var result = await RSA.encryptPKCS1v15Bytes(messageBytes, publicKey)

Decrypt methods #

import 'package:fast_rsa/rsa.dart';

var result = await RSA.decryptOAEP(message, label, RSAHash.sha512, privateKey)
var result = await RSA.decryptPKCS1v15(message, privateKey)

var result = await RSA.decryptOAEPBytes(messageBytes, label, RSAHash.sha512, privateKey)
var result = await RSA.decryptPKCS1v15Bytes(messageBytes, privateKey)

Sign methods #

import 'package:fast_rsa/rsa.dart';

var result = await RSA.signPSS(message, RSAHash.sha512, RSASaltLength.auto, privateKey)
var result = await RSA.signPKCS1v15(message, RSAHash.sha512, privateKey)

var result = await RSA.signPSSBytes(messageBytes, RSAHash.sha512, RSASaltLength.auto, privateKey)
var result = await RSA.signPKCS1v15Bytes(messageBytes, RSAHash.sha512, privateKey)

Verify methods #

import 'package:fast_rsa/rsa.dart';

var result = await RSA.verifyPSS(signature, message, RSAHash.sha512, RSASaltLength.auto, publicKey)
var result = await RSA.verifyPKCS1v15(signature, message, RSAHash.sha512, publicKey)

var result = await RSA.verifyPSSBytes(signatureBytes, messageBytes, RSAHash.sha512, RSASaltLength.auto, publicKey)
var result = await RSA.verifyPKCS1v15Bytes(signatureBytes, messageBytes, RSAHash.sha512, publicKey)

Generate Methods #

import 'package:fast_rsa/rsa.dart';

var result = await RSA.generate(2048)

Convert Methods #

import 'package:fast_rsa/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, RSAPEMCipher.aes256)
var result = await RSA.decryptPrivateKey(privateKeyEncrypted, password)

Util Methods #

import 'package:fast_rsa/rsa.dart';

var result = await RSA.hash(message, RSAHash.sha512)
var result = await RSA.base64(message)

Setup #

Android #

ProGuard

Add this lines to android/app/proguard-rules.pro for proguard support

-keep class go.** { *; }
-keep class rsa.** { *; }

iOS #

no additional setup required

Web #

add to you pubspec.yaml

assets:
  - 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

and in you web/index.html

<script
  src="assets/packages/fast_rsa/web/assets/wasm_exec.js"
  type="application/javascript"
></script>

ref: https://github.com/jerson/flutter-rsa/blob/master/example/web/index.html

Linux #

add to you linux/app_configuration.mk

EXTRA_LDFLAGS=-lrsa

ref: https://github.com/jerson/flutter-rsa/blob/master/example/linux/app_configuration.mk

MacOS #

no additional setup required

Hover #

just update your plugins

hover plugins get

Example #

Inside example folder

cd example && flutter run

Native Code #

the native library is made in Golang and build with gomobile for faster performance

https://github.com/jerson/rsa-mobile

1.1.4 #

  • Updated onAttachedToEngine now using getBinaryMessenger

1.1.3 #

  • Added integration test and fixed some broken methods

1.1.2 #

  • Fixed macos bytes methods

1.1.1 #

  • Fixed publish notes

1.1.0 #

  • Added bytes methods for encrypt, decrypt and sign to web, macos, linux and hover

1.0.1 #

  • Added bytes methods for encrypt, decrypt and sign

1.0.0 #

  • Updated Methods, now using public key and private key for methods instead of PKCS12
  • Added support for JWK
  • Added methods for convert keys

0.9.3 #

  • Merge conflicts

0.9.2 #

  • Updated docs

0.9.1 #

  • Implemented registerWith for android

0.9.0 #

  • Fixed linux support and hover support

0.8.0 #

  • Support for Linux, macOS and web in a single package

0.6.1 #

  • Updated ignore

0.6.0 #

  • Single instance for ios

0.5.0 #

  • Now run on background on ios

0.4.0 #

  • Fixed android, now running on background

0.2.0 #

  • Fixed ios

0.1.0 #

  • Initial release

example/lib/main.dart

import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:fast_rsa/rsa.dart';
import 'package:rsa_example/base64.dart';
import 'package:rsa_example/convert_jwt.dart';
import 'package:rsa_example/convert_keypair.dart';
import 'package:rsa_example/convert_private.dart';
import 'package:rsa_example/convert_public.dart';
import 'package:rsa_example/encrypt_decrypt_oaep.dart';
import 'package:rsa_example/encrypt_decrypt_oaep_bytes.dart';
import 'package:rsa_example/encrypt_decrypt_pkcs.dart';
import 'package:rsa_example/encrypt_decrypt_pkcs_bytes.dart';
import 'package:rsa_example/encrypt_sign_pkcs.dart';
import 'package:rsa_example/encrypt_sign_pkcs_bytes.dart';
import 'package:rsa_example/encrypt_sign_pss.dart';
import 'package:rsa_example/encrypt_sign_pss_bytes.dart';
import 'package:rsa_example/generate.dart';
import 'package:rsa_example/hash.dart';

const password = '123456789';
const pkcs12 =
    '''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''';

void main() {
  if (!kIsWeb && (Platform.isLinux || Platform.isWindows)) {
    debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
  }

  runApp(new MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  PKCS12KeyPair _pkcs12KeyPair = PKCS12KeyPair(
    privateKey: "",
    publicKey: "",
    certificate: "",
  );

  @override
  void initState() {
    super.initState();
    convertKey();
  }

  void convertKey() async {
    var data = await RSA.convertPKCS12ToKeyPair(pkcs12, password);
    setState(() {
      _pkcs12KeyPair = data;
    });
  }

  @override
  void dispose() {
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('RSA example app'),
        ),
        body: ListView(
          key: Key("list"),
          children: <Widget>[
            EncryptAndDecryptOAEP(
              title: "Encrypt and Decrypt OAEP",
              keyPair: _pkcs12KeyPair,
              key: Key("encrypt-oaep"),
            ),
            EncryptAndDecryptOAEPBytes(
              title: "Encrypt and Decrypt OAEP Bytes",
              keyPair: _pkcs12KeyPair,
              key: Key("encrypt-oaep-bytes"),
            ),
            EncryptAndDecryptPKCS(
              title: "Encrypt and Decrypt PKCS1v15",
              keyPair: _pkcs12KeyPair,
              key: Key("encrypt-pkcs"),
            ),
            EncryptAndDecryptPKCSBytes(
              title: "Encrypt and Decrypt PKCS1v15 Bytes",
              keyPair: _pkcs12KeyPair,
              key: Key("encrypt-pkcs-bytes"),
            ),
            SignAndVerifyPSS(
              title: "Sign and Verify PSS",
              keyPair: _pkcs12KeyPair,
              key: Key("sign-pss"),
            ),
            SignAndVerifyPSSBytes(
              title: "Sign and Verify PSS Bytes",
              keyPair: _pkcs12KeyPair,
              key: Key("sign-pss-bytes"),
            ),
            SignAndVerifyPKCS(
              title: "Sign and Verify PKCS",
              keyPair: _pkcs12KeyPair,
              key: Key("sign-pkcs"),
            ),
            SignAndVerifyPKCSBytes(
              title: "Sign and Verify PKCS Bytes",
              keyPair: _pkcs12KeyPair,
              key: Key("sign-pkcs-bytes"),
            ),
            Base64(
              title: "Base64",
              keyPair: _pkcs12KeyPair,
              key: Key("base64"),
            ),
            Hash(
              title: "Hash",
              keyPair: _pkcs12KeyPair,
              key: Key("hash"),
            ),
            Generate(
              title: "Generate",
              keyPair: _pkcs12KeyPair,
              key: Key("generate"),
            ),
            ConvertPrivate(
              title: "Convert PrivateKey",
              keyPair: _pkcs12KeyPair,
              key: Key("convert-private"),
            ),
            ConvertPublic(
              title: "Convert PublicKey",
              keyPair: _pkcs12KeyPair,
              key: Key("convert-public"),
            ),
            ConvertJWT(
              title: "Convert JWT",
              keyPair: _pkcs12KeyPair,
              key: Key("convert-jwt"),
            ),
            ConvertKeyPair(
              title: "Convert KeyPair",
              keyPair: _pkcs12KeyPair,
              key: Key("convert-keypair"),
            ),
          ],
        ),
      ),
    );
  }
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  fast_rsa: ^1.1.4

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:fast_rsa/rsa.dart';
import 'package:fast_rsa/web/js/go.dart';
import 'package:fast_rsa/web/js/promise.dart';
import 'package:fast_rsa/web/js/rsa.dart';
import 'package:fast_rsa/web/js/wasm.dart';
import 'package:fast_rsa/web/rsa_web.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
70
Health:
Code health derived from static analysis. [more]
85
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
90
Overall:
Weighted score of the above. [more]
78
Learn more about scoring.

We analyzed this package on Jul 2, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.8.4
  • pana: 0.13.13
  • Flutter: 1.17.5

Analysis suggestions

Package does not support Flutter platform windows

Because of import path [package:fast_rsa/rsa.dart] that declares support for platforms: android, ios, linux, macos, web

Package not compatible with SDK dart

because of import path [fast_rsa] that is in a package requiring null.

Package not compatible with runtime flutter-native on android

Because of the import of dart:js via the import chain package:fast_rsa/web/js/go.dartpackage:js/js.dartdart:js

Package not compatible with runtime flutter-native on ios

Because of the import of dart:js via the import chain package:fast_rsa/web/js/go.dartpackage:js/js.dartdart:js

Package not compatible with runtime flutter-native on linux

Because of the import of dart:js via the import chain package:fast_rsa/web/js/go.dartpackage:js/js.dartdart:js

Package not compatible with runtime flutter-native on macos

Because of the import of dart:js via the import chain package:fast_rsa/web/js/go.dartpackage:js/js.dartdart:js

Health suggestions

Fix lib/web/js/rsa.dart. (-14.82 points)

Analysis of lib/web/js/rsa.dart reported 32 hints, including:

line 7 col 10: Name non-constant identifiers using lowerCamelCase.

line 14 col 10: Name non-constant identifiers using lowerCamelCase.

line 21 col 10: Name non-constant identifiers using lowerCamelCase.

line 29 col 10: Name non-constant identifiers using lowerCamelCase.

line 36 col 10: Name non-constant identifiers using lowerCamelCase.

Fix lib/web/js/promise.dart. (-0.50 points)

Analysis of lib/web/js/promise.dart reported 1 hint:

line 5 col 1: The @JS() annotation can only be used if it is also declared on the library directive.

Maintenance issues and suggestions

Make sure dartdoc successfully runs on your package's source files. (-10 points)

exitCode: 255 stdout: Documenting fast_rsa... Initialized dartdoc with 520 libraries in 97.3 seconds Generating docs for library go from package:fast_rsa/web/js/go.dart... Generating docs for library promise from package:fast_rsa/web/js/promise.dart... Generating docs for library rsa from package:fast_rsa/rsa.dart... Generating docs for library rsa from package:fast_rsa/web/js/rsa.dart... Generating docs for library rsa_web from package:fast_rsa/web/rsa_web.dart... Generating docs for library wasm from package:fast_rsa/web/js/wasm.dart... Validating docs... Documented 6 public libraries in 15.2 seconds stderr: warning: go has no library level documentation comments, from go: (file:///tmp/pub-dartlang-dartdocJEQAMD/pkg/lib/web/js/go.dart:2:9) warning: rsa has no library level documentation comments, from rsa: (file:///tmp/pub-dartlang-dartdocJEQAMD/pkg/lib/web/js/rsa.dart:2:9) error: failed to write file at: rsa/rsa-library.html for symbol rsa: (file:///tmp/pub-dartlang-dartdocJEQAMD/pkg/lib/web/js/rsa.dart:2:9) conflicting with file already generated by rsa: (file:///tmp/pub-dartlang-dartdocJEQAMD/pkg/lib/rsa.dart:1:1) Dartdoc generates a path and filename to write to for each symbol. rsa conflicts with another symbol in the generated path, and therefore can not be written out. Changing the name, library name, or class name (if appropriate) of one of the conflicting items can resolve the conflict. Alternatively, use the @nodoc tag in one symbol's documentation comments to hide it. warning: wasm has no library level documentation comments, from wasm: (file:///tmp/pub-dartlang-dartdocJEQAMD/pkg/lib/web/js/wasm.dart:2:9) warning: dartdoc generated a broken link to: rsa/KeyPair-class.html (from index.json) warning: dartdoc generated a broken link to: rsa/KeyPair/KeyPair.html (from index.json) warning: dartdoc generated a broken link to: rsa/KeyPair/privateKey.html (from index.json) warning: dartdoc generated a broken link to: rsa/KeyPair/publicKey.html (from index.json) warning: dartdoc generated a broken link to: rsa/PKCS12KeyPair-class.html (from index.json) warning: dartdoc generated a broken link to: rsa/PKCS12KeyPair/PKCS12KeyPair.html (from index.json) warning: dartdoc generated a broken link to: rsa/PKCS12KeyPair/certificate.html (from index.json) warning: dartdoc generated a broken link to: rsa/PKCS12KeyPair/privateKey.html (from index.json) warning: dartdoc generated a broken link to: rsa/PKCS12KeyPair/publicKey.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA-class.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/RSA.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/base64.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertJWKToPrivateKey.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertJWKToPublicKey.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertKeyPairToPKCS12.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertPKCS12ToKeyPair.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertPrivateKeyToJWK.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertPrivateKeyToPKCS1.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertPrivateKeyToPKCS8.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertPrivateKeyToPublicKey.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertPublicKeyToJWK.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertPublicKeyToPKCS1.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/convertPublicKeyToPKIX.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/decryptOAEP.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/decryptOAEPBytes.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/decryptPKCS1v15.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/decryptPKCS1v15Bytes.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/decryptPrivateKey.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/encryptOAEP.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/encryptOAEPBytes.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/encryptPKCS1v15.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/encryptPKCS1v15Bytes.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/encryptPrivateKey.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/generate.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/hash.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/signPKCS1v15.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/signPKCS1v15Bytes.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/signPSS.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/signPSSBytes.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/verifyPKCS1v15.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/verifyPKCS1v15Bytes.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/verifyPSS.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSA/verifyPSSBytes.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSAHash-class.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSAHash/toString.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSAPEMCipher-class.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSAPEMCipher/toString.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSASaltLength-class.html (from index.json) warning: dartdoc generated a broken link to: rsa/RSASaltLength/toString.html (from index.json) found 52 warnings and 1 error Unhandled exception: dartdoc encountered 1 errors while processing. #0 Dartdoc.generateDocs (package:dartdoc/dartdoc.dart:225:9)

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
flutter_web_plugins 0.0.0
js ^0.6.0 0.6.2
Transitive dependencies
collection 1.14.12 1.14.13
meta 1.1.8
sky_engine 0.0.99
typed_data 1.1.6 1.2.0
vector_math 2.0.8
Dev dependencies
flutter_test