From 4273c6ef9923cbc34161ebdf441ce07e3a6bc4d1 Mon Sep 17 00:00:00 2001 From: Herbert Poul Date: Mon, 4 May 2020 12:07:34 +0200 Subject: [PATCH] use uint32 for length parameters. --- lib/src/crypto/argon2.dart | 23 +++++++++++------------ libargon2_ffi.dylib | Bin 67956 -> 58948 bytes libargon2_ffi.so | Bin 57920 -> 57920 bytes 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/lib/src/crypto/argon2.dart b/lib/src/crypto/argon2.dart index ac3df28..dc30d80 100644 --- a/lib/src/crypto/argon2.dart +++ b/lib/src/crypto/argon2.dart @@ -7,16 +7,15 @@ import 'package:ffi_helper/ffi_helper.dart'; import 'package:meta/meta.dart'; // ignore_for_file: non_constant_identifier_names - typedef Argon2HashNative = Pointer Function( Pointer key, - IntPtr keyLen, + Uint32 keyLen, Pointer salt, - Uint64 saltlen, + Uint32 saltlen, Uint32 m_cost, // memory cost Uint32 t_cost, // time cost (number iterations) Uint32 parallelism, - IntPtr hashlen, + Uint32 hashlen, Uint8 type, Uint32 version, ); @@ -61,10 +60,10 @@ abstract class Argon2Base extends Argon2 { @override Uint8List argon2(Argon2Arguments args) { final keyArray = Uint8Array.fromTypedList(args.key); -// final saltArray = Uint8Array.fromTypedList(salt); - final saltArray = allocate(count: args.salt.length); - final saltList = saltArray.asTypedList(args.length); - saltList.setAll(0, args.salt); + final saltArray = Uint8Array.fromTypedList(args.salt); +// final saltArray = allocate(count: args.salt.length); +// final saltList = saltArray.asTypedList(args.length); +// saltList.setAll(0, args.salt); // const memoryCost = 1 << 16; // _logger.fine('saltArray: ${ByteUtils.toHexList(saltArray.view)}'); @@ -72,8 +71,8 @@ abstract class Argon2Base extends Argon2 { final result = argon2hash( keyArray.rawPtr, keyArray.length, - saltArray, - args.salt.length, + saltArray.rawPtr, + saltArray.length, args.memory, args.iterations, args.parallelism, @@ -83,8 +82,8 @@ abstract class Argon2Base extends Argon2 { ); keyArray.free(); -// saltArray.free(); - free(saltArray); + saltArray.free(); +// free(saltArray); final resultString = Utf8.fromUtf8(result); return base64.decode(resultString); } diff --git a/libargon2_ffi.dylib b/libargon2_ffi.dylib index 4c38cd62fabfe43743c1e33c1f5a50c96925ca7d..7256edae314ef81b6c83532fc116a26d5abfdba7 100755 GIT binary patch delta 14068 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 ZkTxLw5BkUcA1c^$TkB`h(a??0{{w&l%Lf1e literal 67956 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 b&9HYgWq9C+lzvgKHtZ8g4fdTE-|F^1ZLr45 delta 6824 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 K_MI*7_W55aShT$W