diff --git a/src/KeePassLib2Android/Cryptography/KeyDerivation/Argon2Kdf.cs b/src/KeePassLib2Android/Cryptography/KeyDerivation/Argon2Kdf.cs
index 7b0d1183..a00bef12 100644
--- a/src/KeePassLib2Android/Cryptography/KeyDerivation/Argon2Kdf.cs
+++ b/src/KeePassLib2Android/Cryptography/KeyDerivation/Argon2Kdf.cs
@@ -17,6 +17,7 @@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+using Java.Lang;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@@ -179,6 +180,7 @@ namespace KeePassLib.Cryptography.KeyDerivation
Marshal.Copy(pbSalt, 0, saltPtr, pbSalt.Length);
const UInt32 Argon2_d = 0;
+ JavaSystem.LoadLibrary("argon2");
int ret = argon2_hash(
(UInt32)uIt, (UInt32)(uMem / 1024), uPar,
@@ -189,7 +191,7 @@ namespace KeePassLib.Cryptography.KeyDerivation
if (ret != 0)
{
- throw new Exception("argon2_hash failed with " + ret);
+ throw new System.Exception("argon2_hash failed with " + ret);
}
pbRet = new byte[32];
@@ -214,8 +216,9 @@ namespace KeePassLib.Cryptography.KeyDerivation
return p;
}
- [DllImport("argon2")]
- static extern int argon2_hash(
+ [LibraryImport("argon2")]
+ [return: MarshalAs(UnmanagedType.I4)]
+ public static partial int argon2_hash(
UInt32 t_cost, UInt32 m_cost, UInt32 parallelism,
IntPtr pwd, IntPtr pwdlen,
IntPtr salt, IntPtr saltlen,
diff --git a/src/KeePassLib2Android/KeePassLib2Android.csproj b/src/KeePassLib2Android/KeePassLib2Android.csproj
index ad11f66b..17b69210 100644
--- a/src/KeePassLib2Android/KeePassLib2Android.csproj
+++ b/src/KeePassLib2Android/KeePassLib2Android.csproj
@@ -4,6 +4,7 @@
21
enable
enable
+ True
diff --git a/src/keepass2android-app/keepass2android-app.csproj b/src/keepass2android-app/keepass2android-app.csproj
index 8e3b25ba..0190d54f 100644
--- a/src/keepass2android-app/keepass2android-app.csproj
+++ b/src/keepass2android-app/keepass2android-app.csproj
@@ -9,6 +9,7 @@
keepass2android.keepass2android
1
1.0
+ true
@@ -712,9 +713,6 @@
-
-
-
Designer
@@ -728,6 +726,12 @@
+
+
+
+
+
+