| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -7,16 +7,15 @@ import 'package:ffi_helper/ffi_helper.dart'; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import 'package:meta/meta.dart'; | 
					 | 
					 | 
					 | 
					import 'package:meta/meta.dart'; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// ignore_for_file: non_constant_identifier_names | 
					 | 
					 | 
					 | 
					// ignore_for_file: non_constant_identifier_names | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					typedef Argon2HashNative = Pointer<Utf8> Function( | 
					 | 
					 | 
					 | 
					typedef Argon2HashNative = Pointer<Utf8> Function( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Pointer<Uint8> key, | 
					 | 
					 | 
					 | 
					  Pointer<Uint8> key, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  IntPtr keyLen, | 
					 | 
					 | 
					 | 
					  Uint32 keyLen, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Pointer<Uint8> salt, | 
					 | 
					 | 
					 | 
					  Pointer<Uint8> salt, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Uint64 saltlen, | 
					 | 
					 | 
					 | 
					  Uint32 saltlen, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Uint32 m_cost, // memory cost | 
					 | 
					 | 
					 | 
					  Uint32 m_cost, // memory cost | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Uint32 t_cost, // time cost (number iterations) | 
					 | 
					 | 
					 | 
					  Uint32 t_cost, // time cost (number iterations) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Uint32 parallelism, | 
					 | 
					 | 
					 | 
					  Uint32 parallelism, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  IntPtr hashlen, | 
					 | 
					 | 
					 | 
					  Uint32 hashlen, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Uint8 type, | 
					 | 
					 | 
					 | 
					  Uint8 type, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Uint32 version, | 
					 | 
					 | 
					 | 
					  Uint32 version, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					); | 
					 | 
					 | 
					 | 
					); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -61,10 +60,10 @@ abstract class Argon2Base extends Argon2 { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  @override | 
					 | 
					 | 
					 | 
					  @override | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Uint8List argon2(Argon2Arguments args) { | 
					 | 
					 | 
					 | 
					  Uint8List argon2(Argon2Arguments args) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    final keyArray = Uint8Array.fromTypedList(args.key); | 
					 | 
					 | 
					 | 
					    final keyArray = Uint8Array.fromTypedList(args.key); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//    final saltArray = Uint8Array.fromTypedList(salt); | 
					 | 
					 | 
					 | 
					    final saltArray = Uint8Array.fromTypedList(args.salt); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    final saltArray = allocate<Uint8>(count: args.salt.length); | 
					 | 
					 | 
					 | 
					//    final saltArray = allocate<Uint8>(count: args.salt.length); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    final saltList = saltArray.asTypedList(args.length); | 
					 | 
					 | 
					 | 
					//    final saltList = saltArray.asTypedList(args.length); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    saltList.setAll(0, args.salt); | 
					 | 
					 | 
					 | 
					//    saltList.setAll(0, args.salt); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//    const memoryCost = 1 << 16; | 
					 | 
					 | 
					 | 
					//    const memoryCost = 1 << 16; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//    _logger.fine('saltArray: ${ByteUtils.toHexList(saltArray.view)}'); | 
					 | 
					 | 
					 | 
					//    _logger.fine('saltArray: ${ByteUtils.toHexList(saltArray.view)}'); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -72,8 +71,8 @@ abstract class Argon2Base extends Argon2 { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    final result = argon2hash( | 
					 | 
					 | 
					 | 
					    final result = argon2hash( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      keyArray.rawPtr, | 
					 | 
					 | 
					 | 
					      keyArray.rawPtr, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      keyArray.length, | 
					 | 
					 | 
					 | 
					      keyArray.length, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      saltArray, | 
					 | 
					 | 
					 | 
					      saltArray.rawPtr, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      args.salt.length, | 
					 | 
					 | 
					 | 
					      saltArray.length, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      args.memory, | 
					 | 
					 | 
					 | 
					      args.memory, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      args.iterations, | 
					 | 
					 | 
					 | 
					      args.iterations, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      args.parallelism, | 
					 | 
					 | 
					 | 
					      args.parallelism, | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -83,8 +82,8 @@ abstract class Argon2Base extends Argon2 { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    ); | 
					 | 
					 | 
					 | 
					    ); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    keyArray.free(); | 
					 | 
					 | 
					 | 
					    keyArray.free(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//    saltArray.free(); | 
					 | 
					 | 
					 | 
					    saltArray.free(); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    free(saltArray); | 
					 | 
					 | 
					 | 
					//    free(saltArray); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    final resultString = Utf8.fromUtf8(result); | 
					 | 
					 | 
					 | 
					    final resultString = Utf8.fromUtf8(result); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    return base64.decode(resultString); | 
					 | 
					 | 
					 | 
					    return base64.decode(resultString); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |