Remove some useless statements and switches

This commit is contained in:
Hugo Pointcheval 2020-12-17 22:07:35 +01:00
parent ae23afdc0b
commit 356e95e70a

View File

@ -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 {
@ -62,17 +52,23 @@ class KeyGenerator {
/// ///
/// `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);
@ -187,14 +183,16 @@ class AES {
/// 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;