A Dart library for encryption and decryption. As of today, most of the classes are ports of Bouncy Castle from Java to Dart. The porting is almost always direct except for some classes that had been added to ease the use of low level data.
To make sure nothing fails, tests and benchmarks for every algorithm are provided. The expected results are taken from the Bouncy Castle Java version and also from standards, and matched against the results got from cipher.
As of the last release, the following algorithms are implemented:
Asymmetric block ciphers:
Block cipher modes of operation:
Password based key derivators:
Asymmetric key generators:
Entropy sources (true RNGs):
[enh 15] Implement stream cipher benchmarks.
[enh 64] Benchmark and optimize digests.
[enh 74] Make SHA-3 usable in terms of speed.
[bug 67] Removed some unused code.
[bug 68] Fix process() method of PaddedBlockCipher.
[bug 75] Remove a registry dependency in the Scrypt algorithm.
Add this to your package's pubspec.yaml file:
dependencies: cipher: "^0.7.1"
You can install packages from the command line:
$ pub get
$ flutter packages get
Alternatively, your editor might support
pub get or
Check the docs for your editor to learn more.
Now in your Dart code, you can use:
|0.7.1||May 11, 2014|
|0.7.0||Mar 22, 2014|
|0.6.0||Feb 24, 2014|
|0.5.1||Jan 20, 2014|
|0.5.0||Jan 15, 2014|
|0.4.0||Nov 18, 2013|
|0.3.1||Nov 11, 2013|
|0.3.0||Nov 1, 2013|
|0.2.0||Oct 13, 2013|
|0.1.0||Oct 12, 2013|
We analyzed this package, and provided a score, details, and suggestions below.
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Detected platforms: Flutter, web, other
No platform restriction found in primary library
Strong-mode analysis of
lib/src/ufixnum.dartfailed with the following error:
line: 196 col: 3
Invalid override. The type of 'Register64.==' ('(Register64) → bool') isn't a subtype of 'Object.==' ('(dynamic) → bool').
Strong-mode analysis of
lib/signers/rsa_signer.dartfailed with the following error:
line: 76 col: 3
Invalid override. The type of 'RSASigner.verifySignature' ('(Uint8List, RSASignature) → bool') isn't a subtype of 'Signer.verifySignature' ('(Uint8List, Signature) → bool').
Fix further 15 Dart files.
Similar analysis of the following files failed:
Fix issues reported by
dartanalyzerreported 3 error(s) and 0 warning(s).
The description is too short.
Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.
Package is pre-v1 release.
While there is nothing inherently wrong with versions of
0.*.*, it usually means that the author is still experimenting with the general direction API.
Maintain an example.
Create a short demo in the
example/directory to show how to use this package. Common file name patterns include:
example.dartor you could also use