Remove some useless statements and switches
This commit is contained in:
parent
ae23afdc0b
commit
356e95e70a
@ -9,8 +9,8 @@ import 'package:flutter/services.dart';
|
|||||||
import 'src/native_crypto.dart';
|
import 'src/native_crypto.dart';
|
||||||
import 'exceptions.dart';
|
import 'exceptions.dart';
|
||||||
|
|
||||||
const String TAG_ERROR = 'error.native_crypto.symmetric_crypto';
|
const String TAG_ERROR = 'error.native_crypto.symmetric_crypto';
|
||||||
const String TAG_DEBUG = 'debug.native_crypto.symmetric_crypto';
|
const String TAG_DEBUG = 'debug.native_crypto.symmetric_crypto';
|
||||||
|
|
||||||
/// Defines all available key sizes.
|
/// Defines all available key sizes.
|
||||||
enum KeySize { bits128, bits192, bits256 }
|
enum KeySize { bits128, bits192, bits256 }
|
||||||
@ -27,25 +27,15 @@ enum Cipher { AES }
|
|||||||
class KeyGenerator {
|
class KeyGenerator {
|
||||||
/// Generate a secret key.
|
/// Generate a secret key.
|
||||||
///
|
///
|
||||||
/// You can specify a `keySize`. Default is 256 bits.
|
/// You can specify a `keySize`. Default is **256 bits**.
|
||||||
/// It returns an `Uint8List`.
|
/// It returns an `Uint8List`.
|
||||||
Future<Uint8List> secretKey({KeySize keySize}) async {
|
Future<Uint8List> secretKey({KeySize keySize = KeySize.bits256}) async {
|
||||||
int size;
|
Map<KeySize, int> availableSizes = {
|
||||||
switch (keySize) {
|
KeySize.bits128: 128,
|
||||||
case KeySize.bits128:
|
KeySize.bits192: 192,
|
||||||
size = 128;
|
KeySize.bits256: 256
|
||||||
break;
|
};
|
||||||
case KeySize.bits192:
|
int size = availableSizes[keySize];
|
||||||
size = 192;
|
|
||||||
break;
|
|
||||||
case KeySize.bits256:
|
|
||||||
size = 256;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// Default size = 256 bits
|
|
||||||
size = 256;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Uint8List key;
|
Uint8List key;
|
||||||
try {
|
try {
|
||||||
@ -60,19 +50,25 @@ class KeyGenerator {
|
|||||||
|
|
||||||
/// PBKDF2.
|
/// PBKDF2.
|
||||||
///
|
///
|
||||||
/// `keyLength` is in Bytes.
|
/// `keyLength` is in Bytes.
|
||||||
/// It returns an `Uint8List`.
|
/// It returns an `Uint8List`.
|
||||||
Future<Uint8List> pbkdf2(String password, String salt, {int keyLength: 32, int iteration: 10000, Digest digest: Digest.sha256}) async {
|
Future<Uint8List> pbkdf2(String password, String salt,
|
||||||
|
{int keyLength: 32,
|
||||||
|
int iteration: 10000,
|
||||||
|
Digest digest: Digest.sha256}) async {
|
||||||
Uint8List key;
|
Uint8List key;
|
||||||
|
|
||||||
String algo;
|
Map<Digest, String> availableDigests = {
|
||||||
if (digest == Digest.sha1) algo = 'sha1';
|
Digest.sha1: 'sha1',
|
||||||
if (digest == Digest.sha256) algo = 'sha256';
|
Digest.sha256: 'sha256',
|
||||||
if (digest == Digest.sha512) algo = 'sha512';
|
Digest.sha512: 'sha512',
|
||||||
|
};
|
||||||
|
|
||||||
|
String algo = availableDigests[digest];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
key = await NativeCrypto().pbkdf2( password, salt, keyLength: keyLength, iteration: iteration, algorithm: algo);
|
key = await NativeCrypto().pbkdf2(password, salt,
|
||||||
log(key.toString());
|
keyLength: keyLength, iteration: iteration, algorithm: algo);
|
||||||
log("PBKDF2 KEY LENGTH: ${key.length} | DIGEST: $algo", name: TAG_DEBUG);
|
log("PBKDF2 KEY LENGTH: ${key.length} | DIGEST: $algo", name: TAG_DEBUG);
|
||||||
} on PlatformException catch (e) {
|
} on PlatformException catch (e) {
|
||||||
log(e.message, name: TAG_ERROR);
|
log(e.message, name: TAG_ERROR);
|
||||||
@ -185,16 +181,18 @@ class AES {
|
|||||||
///
|
///
|
||||||
/// Takes `Uint8List` **list** as parameter.
|
/// Takes `Uint8List` **list** as parameter.
|
||||||
/// And returns plain text data as `Uint8List`.
|
/// And returns plain text data as `Uint8List`.
|
||||||
///
|
///
|
||||||
/// You can pass a different key.
|
/// You can pass a different key.
|
||||||
Future<Uint8List> decrypt(List<Uint8List> encryptedPayload, {Uint8List key}) async {
|
Future<Uint8List> decrypt(List<Uint8List> encryptedPayload,
|
||||||
|
{Uint8List key}) async {
|
||||||
if (!this._isInitialized && key == null)
|
if (!this._isInitialized && key == null)
|
||||||
throw DecryptionException(
|
throw DecryptionException(
|
||||||
'Instance not initialized. You can pass a key directly in decrypt method.');
|
'Instance not initialized. You can pass a key directly in decrypt method.');
|
||||||
|
|
||||||
Uint8List decryptedPayload;
|
Uint8List decryptedPayload;
|
||||||
try {
|
try {
|
||||||
decryptedPayload = await NativeCrypto().symDecrypt(encryptedPayload, key ?? this.key);
|
decryptedPayload =
|
||||||
|
await NativeCrypto().symDecrypt(encryptedPayload, key ?? this.key);
|
||||||
} on DecryptionException catch (e) {
|
} on DecryptionException catch (e) {
|
||||||
log(e.message, name: TAG_ERROR);
|
log(e.message, name: TAG_ERROR);
|
||||||
throw e;
|
throw e;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user