phxql / argon2-jvm

Argon2 Binding for the JVM
GNU Lesser General Public License v3.0
330 stars 32 forks source link

Support Mac M1 #78

Closed re-thc closed 3 years ago

re-thc commented 3 years ago

Hi, please add binaries to support Mac M1, i.e. Darwin aarch64.

Thank you.

phxql commented 3 years ago

I don't have access to an M1 machine to compile the binaries needed.

If you like to help, please build the binaries on a M1 machine and send them to me.

cricketsamya commented 3 years ago

Yes.. I need the library working on M1 mac too. Can you please help? I ready to help you with binaries.. Please let me know. @phxql

cricketsamya commented 3 years ago

Let me know the steps to generate the binaries and what ever you need from M1 mac. @phxql

cricketsamya commented 3 years ago

@hc-codersatlas were you able to solve this?

re-thc commented 3 years ago

@cricketsamya no, currently using bouncycastle as a workaround. I originally thought the native libraries were built from Travis, Github Actions or similar. I do see something like this currently committed - is that not able to cross compile it?

cricketsamya commented 3 years ago

@hc-codersatlas There must be a way to do it.. I use Argon2 , recently shifted to M1 mac. For me its difficult switch the library. Cross compiling should be possible. But I need input from @phxql

phxql commented 3 years ago

Sure, here's the documentation: https://github.com/phxql/argon2-jvm/blob/master/docs/compile-argon2.md

cricketsamya commented 3 years ago

@phxql compiled on m1 https://github.com/phxql/argon2-jvm/pull/81

phxql commented 3 years ago

Merged the PR, now we have to wait until JNA releases a new version (JNA PR for M1: https://github.com/java-native-access/jna/pull/1297)

re-thc commented 3 years ago

JNA 5.7.0 has been released.

phxql commented 3 years ago

Hey @cricketsamya , could you please run the latest master from https://github.com/phxql/jna-info on your M1 Mac again and post the output? Thanks!

cricketsamya commented 3 years ago

@phxql Have a look! it returns same output!

➜  jna-info git:(master) git pull
Already up to date.
➜  jna-info git:(master) ./gradlew run

Configure project :
The compile configuration has been deprecated for dependency declaration. This will fail with an error in Gradle 7.0. Please use the implementation configuration instead. Consult the upgrading guide for further information: https://docs.gradle.org/6.8.2/userguide/upgrading_version_5.html#dependencies_should_no_longer_be_declared_using_the_compile_and_runtime_configurations
        at build_8tbbvgm48i7x9dgaeqweqbvrq$_run_closure2.doCall(/Users/sam/Developement/workspaces/jna-info/build.gradle:17)
        (Run with --stacktrace to get the full stack trace of this deprecation warning.)

Task :run
nativeLibraryResourcePrefix: darwin
Testing JNA... success

BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date
➜  jna-info git:(master)
phxql commented 3 years ago

Thanks! Huh, this is very strange. I expected the resource prefix to be something like darwin-aarch64. The argon2 lib for OSX x64 is stored in darwin subfolder, i can't put the M1 version in the same folder, as it would overwrite the x64 one. I will open a ticket on the JNA project and ask for clarification.

phxql commented 3 years ago

From the jna ticket:

Darwin uses libraries, that support multiple architectures in a single library. Apple has a strange way to support this, but IMHO that is one of the the few very nice things mac OS has to offer.

Have a look at the libjnidispatch.jnilib file in the jna.jar. It contains the dispatch library for amd64 and aarch64. In the past darwin binaries contained ppc and x86 code, or x86 and x64. The tool you are looking for is lipo - as a final hint, the main build script of JNA holds the necessary commands to merge the native libraries.

It seems that handling darwin isn't that simple as i thought. I have to look into it, if i find the time. I hope this works without access to a mac.

cricketsamya commented 3 years ago

Thats really sad😥 I hope there is a solution..

phxql commented 3 years ago

If you want to help, there's apparently a tool which can merge the x64 and the m1 version of the darwin library into a single multi-arch library. The JNA developers are using it, and it is called lipo (?)

phxql commented 3 years ago

Ah, JNA team has reopened my ticket (https://github.com/java-native-access/jna/issues/1313) and they consider adding the architecture into the platform prefix. This would solve our problem without merging the libraries - but i have no idea how long this will take.

cricketsamya commented 3 years ago

https://github.com/java-native-access/jna/issues/1313#issuecomment-780135242

Someone replied on your PR. Please check comments

cricketsamya commented 3 years ago

If you want to help, there's apparently a tool which can merge the x64 and the m1 version of the darwin library into a single multi-arch library. The JNA developers are using it, and it is called lipo (?)

I can try but it may take some time. I hope JNA team will help us quickly.

cricketsamya commented 3 years ago

Hey @cricketsamya , could you please run the latest master from https://github.com/phxql/jna-info on your M1 Mac again and post the output? Thanks!


➜  jna-info git:(master) ./gradlew run
Task :compileJava UP-TO-DATE
Task :processResources NO-SOURCE
Task :classes UP-TO-DATE

Task :run
JNA version: 5.7.0
Prefix: darwin
Arch: aarch64

Testing JNA... success

BUILD SUCCESSFUL in 1s 2 actionable tasks: 1 executed, 1 up-to-date ➜ jna-info git:(master)



May be some success finally!
phxql commented 3 years ago

Hey @cricketsamya , thanks for your tests.

I added the JNA snapshot from the PR (https://github.com/java-native-access/jna/pull/1316) and built a small CLI tool to test it. Could you run this on your M1 machine (with M1 native JVM and a JVM going through rosetta)? And if you have access to a x64 Mac, run it there too? I hope this works now :)

Thanks for your time!

Here's the runner: https://github.com/phxql/argon2-jvm/tree/test/jna-pr-1316/argon2-jvm-runner (it's on the test/jna-pr-1316 branch).

cricketsamya commented 3 years ago
➜  argon2-jvm1 git:(test/jna-pr-1316) java -version
openjdk version "16" 2020-11-11
OpenJDK Runtime Environment Microsoft (build 16+10-20201111)
OpenJDK 64-Bit Server VM Microsoft (build 16+10-20201111, mixed mode)
➜  argon2-jvm1 git:(test/jna-pr-1316) ./gradlew argon2-jvm-runner:run

> Task :argon2-jvm-nolibs:compileJava FAILED
error: Source option 6 is no longer supported. Use 7 or later.
error: Target option 6 is no longer supported. Use 7 or later.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':argon2-jvm-nolibs:compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 560ms
1 actionable task: 1 executed
➜  argon2-jvm1 git:(test/jna-pr-1316)

@phxql ERROR while building

cricketsamya commented 3 years ago

On Rosetta:

➜  argon2-jvm1 git:(test/jna-pr-1316) java -version
openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment Zulu11.45+27-CA (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM Zulu11.45+27-CA (build 11.0.10+9-LTS, mixed mode)
➜  argon2-jvm1 git:(test/jna-pr-1316) ./gradlew argon2-jvm-runner:run
> Task :argon2-jvm-nolibs:compileJava UP-TO-DATE
> Task :argon2-jvm:compileJava NO-SOURCE
> Task :argon2-jvm:processResources UP-TO-DATE
> Task :argon2-jvm:classes UP-TO-DATE
> Task :argon2-jvm:jar UP-TO-DATE
> Task :argon2-jvm-nolibs:processResources NO-SOURCE
> Task :argon2-jvm-nolibs:classes UP-TO-DATE
> Task :argon2-jvm-nolibs:jar UP-TO-DATE
> Task :argon2-jvm-runner:compileJava UP-TO-DATE
> Task :argon2-jvm-runner:processResources NO-SOURCE
> Task :argon2-jvm-runner:classes UP-TO-DATE

> Task :argon2-jvm-runner:run FAILED
10:16:59.724 [main] INFO de.mkammerer.argon2.runner.Runner - Starting...
10:16:59.725 [main] INFO de.mkammerer.argon2.runner.Runner - System properties:
10:16:59.725 [main] INFO de.mkammerer.argon2.runner.Runner -   VM vendor: Azul Systems, Inc.
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner -   VM version: 11.0.10+9-LTS
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner -   Runtime version: 11.0.10+9-LTS
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner -   Java version: 11.0.10
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system: Mac OS X
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system version: 11.2
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system architecture: aarch64
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner -   Library path: /Users/sameer.kulkarni/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner - JNA info:
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner -   Version: 5.8.0-SNAPSHOT
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner -   Resource prefix: darwin-aarch64
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner -   Architecture: aarch64
10:16:59.726 [main] INFO de.mkammerer.argon2.runner.Runner - Creating Argon2 instance
10:16:59.899 [main] INFO de.mkammerer.argon2.runner.Runner - Hashing password...
10:16:59.909 [main] INFO de.mkammerer.argon2.runner.Runner - Wiping confidential data...
Exception in thread "main" 10:16:59.909 [main] INFO de.mkammerer.argon2.runner.Runner - Stopped
java.lang.UnsatisfiedLinkError: dlopen(/Users/sameer.kulkarni/Library/Caches/JNA/temp/jna11967995974991726704.tmp, 9): no suitable image found.  Did find:
    /Users/sameer.kulkarni/Library/Caches/JNA/temp/jna11967995974991726704.tmp: mach-o, but wrong architecture
    /Users/sameer.kulkarni/Library/Caches/JNA/temp/jna11967995974991726704.tmp: mach-o, but wrong architecture
    at com.sun.jna.Native.open(Native Method)
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:277)
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:461)
    at com.sun.jna.Library$Handler.<init>(Library.java:192)
    at com.sun.jna.Native.load(Native.java:596)
    at com.sun.jna.Native.load(Native.java:570)
    at de.mkammerer.argon2.jna.Argon2Library.<clinit>(Argon2Library.java:13)
    at de.mkammerer.argon2.BaseArgon2.hashBytes(BaseArgon2.java:310)
    at de.mkammerer.argon2.BaseArgon2.hashBytes(BaseArgon2.java:302)
    at de.mkammerer.argon2.BaseArgon2.hash(BaseArgon2.java:74)
    at de.mkammerer.argon2.BaseArgon2.hash(BaseArgon2.java:57)
    at de.mkammerer.argon2.runner.Runner.testArgon2(Runner.java:69)
    at de.mkammerer.argon2.runner.Runner.run(Runner.java:38)
    at de.mkammerer.argon2.runner.Runner.main(Runner.java:25)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':argon2-jvm-runner:run'.
> Process 'command '/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
6 actionable tasks: 1 executed, 5 up-to-date
➜  argon2-jvm1 git:(test/jna-pr-1316)

@phxql issue here!

phxql commented 3 years ago
➜  argon2-jvm1 git:(test/jna-pr-1316) java -version
openjdk version "16" 2020-11-11
OpenJDK Runtime Environment Microsoft (build 16+10-20201111)
OpenJDK 64-Bit Server VM Microsoft (build 16+10-20201111, mixed mode)
➜  argon2-jvm1 git:(test/jna-pr-1316) ./gradlew argon2-jvm-runner:run

> Task :argon2-jvm-nolibs:compileJava FAILED
error: Source option 6 is no longer supported. Use 7 or later.
error: Target option 6 is no longer supported. Use 7 or later.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':argon2-jvm-nolibs:compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 560ms
1 actionable task: 1 executed
➜  argon2-jvm1 git:(test/jna-pr-1316)

@phxql ERROR while building

Okay, i've updated it to use Java 11, please try again.

cricketsamya commented 3 years ago

@phxql

➜  argon2-jvm1 git:(test/jna-pr-1316) msjdk16
➜  argon2-jvm1 git:(test/jna-pr-1316) ./gradlew argon2-jvm-runner:run

> Task :argon2-jvm-nolibs:compileJava
Note: /Users/sameer.kulkarni/workspaces/argon2-jvm1/argon2-jvm-nolibs/src/main/java/de/mkammerer/argon2/BaseArgon2.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :argon2-jvm:compileJava NO-SOURCE
> Task :argon2-jvm:processResources UP-TO-DATE
> Task :argon2-jvm:classes UP-TO-DATE
> Task :argon2-jvm:jar UP-TO-DATE
> Task :argon2-jvm-nolibs:processResources NO-SOURCE
> Task :argon2-jvm-nolibs:classes
> Task :argon2-jvm-nolibs:jar
> Task :argon2-jvm-runner:compileJava
> Task :argon2-jvm-runner:processResources NO-SOURCE
> Task :argon2-jvm-runner:classes

> Task :argon2-jvm-runner:run FAILED
11:53:58.756 [main] INFO de.mkammerer.argon2.runner.Runner - Starting...
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner - System properties:
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner -   VM vendor: jdk-16+10-Microsoft-2020.11.0.15924-ci
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner -   VM version: 16+10-20201111
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner -   Runtime version: 16+10-20201111
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner -   Java version: 16
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system: Mac OS X
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system version: Version 11.2 (Build 20D64)
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system architecture: aarch64
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner -   Library path: /Users/sameer.kulkarni/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner - JNA info:
11:53:58.757 [main] INFO de.mkammerer.argon2.runner.Runner -   Version: 5.8.0-SNAPSHOT
11:53:58.758 [main] INFO de.mkammerer.argon2.runner.Runner -   Resource prefix: darwin-aarch64
11:53:58.758 [main] INFO de.mkammerer.argon2.runner.Runner -   Architecture: aarch64
11:53:58.758 [main] INFO de.mkammerer.argon2.runner.Runner - Creating Argon2 instance
11:53:59.010 [main] INFO de.mkammerer.argon2.runner.Runner - Hashing password...
Exception in thread "main" java.lang.UnsatisfiedLinkError: dlopen(/Users/sameer.kulkarni/Library/Caches/JNA/temp/jna17048461656914046408.tmp, 9): no suitable image found.  Did find:
    /Users/sameer.kulkarni/Library/Caches/JNA/temp/jna17048461656914046408.tmp: mach-o, but wrong architecture
    /Users/sameer.kulkarni/Library/Caches/JNA/temp/jna17048461656914046408.tmp: mach-o, but wrong architecture
    at com.sun.jna.Native.open(Native Method)
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:277)
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:461)
11:53:59.021 [main] INFO de.mkammerer.argon2.runner.Runner - Wiping confidential data...
    at com.sun.jna.Library$Handler.<init>(Library.java:192)
11:53:59.022 [main] INFO de.mkammerer.argon2.runner.Runner - Stopped
    at com.sun.jna.Native.load(Native.java:596)
    at com.sun.jna.Native.load(Native.java:570)
    at de.mkammerer.argon2.jna.Argon2Library.<clinit>(Argon2Library.java:13)
    at de.mkammerer.argon2.BaseArgon2.hashBytes(BaseArgon2.java:310)
    at de.mkammerer.argon2.BaseArgon2.hashBytes(BaseArgon2.java:302)
    at de.mkammerer.argon2.BaseArgon2.hash(BaseArgon2.java:74)
    at de.mkammerer.argon2.BaseArgon2.hash(BaseArgon2.java:57)
    at de.mkammerer.argon2.runner.Runner.testArgon2(Runner.java:69)
    at de.mkammerer.argon2.runner.Runner.run(Runner.java:38)
    at de.mkammerer.argon2.runner.Runner.main(Runner.java:25)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':argon2-jvm-runner:run'.
> Process 'command '/Library/Java/JavaVirtualMachines/jdk-16+10/Contents/Home/bin/java'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
6 actionable tasks: 4 executed, 2 up-to-date
➜  argon2-jvm1 git:(test/jna-pr-1316)
phxql commented 3 years ago

Okay, it at least seams that it picks up the right library but this library is in the wrong format.

file libargon2.dylib 
libargon2.dylib: Mach-O 64-bit x86_64 dynamically linked shared library, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|NO_REEXPORTED_DYLIBS>

this doesn't look right, it should be a aarch64 binary. It's the file from https://github.com/phxql/argon2-jvm/pull/81/files, maybe the rosetta emulation kicked in while building this on the M1 mac and now it's x86-64.

Could you try to recompile this for aarch64?

cricketsamya commented 3 years ago

https://github.com/phxql/argon2-jvm/pull/82

@phxql Please check and rebuild the runner for me.. I will test again..

cricketsamya commented 3 years ago

This is the output after I replaced the library in the branch you passed me to test.. here are the results :

➜  argon2-jvm1 git:(test/jna-pr-1316) ✗ msjdk16
➜  argon2-jvm1 git:(test/jna-pr-1316) ✗ ./gradlew argon2-jvm-runner:run
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details

> Task :argon2-jvm-nolibs:compileJava
Note: /Users/sameer.kulkarni/workspaces/argon2-jvm1/argon2-jvm-nolibs/src/main/java/de/mkammerer/argon2/BaseArgon2.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :argon2-jvm:compileJava NO-SOURCE
> Task :argon2-jvm:processResources UP-TO-DATE
> Task :argon2-jvm:classes UP-TO-DATE
> Task :argon2-jvm:jar UP-TO-DATE
> Task :argon2-jvm-nolibs:processResources NO-SOURCE
> Task :argon2-jvm-nolibs:classes
> Task :argon2-jvm-nolibs:jar
> Task :argon2-jvm-runner:compileJava
> Task :argon2-jvm-runner:processResources NO-SOURCE
> Task :argon2-jvm-runner:classes

> Task :argon2-jvm-runner:run
19:31:09.380 [main] INFO de.mkammerer.argon2.runner.Runner - Starting...
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner - System properties:
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner -   VM vendor: jdk-16+10-Microsoft-2020.11.0.15924-ci
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner -   VM version: 16+10-20201111
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner -   Runtime version: 16+10-20201111
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner -   Java version: 16
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system: Mac OS X
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system version: Version 11.2 (Build 20D64)
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system architecture: aarch64
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner -   Library path: /Users/sameer.kulkarni/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner - JNA info:
19:31:09.381 [main] INFO de.mkammerer.argon2.runner.Runner -   Version: 5.8.0-SNAPSHOT
19:31:09.382 [main] INFO de.mkammerer.argon2.runner.Runner -   Resource prefix: darwin-aarch64
19:31:09.382 [main] INFO de.mkammerer.argon2.runner.Runner -   Architecture: aarch64
19:31:09.382 [main] INFO de.mkammerer.argon2.runner.Runner - Creating Argon2 instance
19:31:09.912 [main] INFO de.mkammerer.argon2.runner.Runner - Hashing password...
19:31:10.583 [main] INFO de.mkammerer.argon2.runner.Runner - Hash: $argon2id$v=19$m=65536,t=10,p=1$buK6A+kiZ50lpIXbKpLN7g$AuET9Gk3oRtbOOS6VOKQnGg+PgPSHeDl3djJMq72zYw
19:31:10.583 [main] INFO de.mkammerer.argon2.runner.Runner - Verifying password...
19:31:10.885 [main] INFO de.mkammerer.argon2.runner.Runner - Verification successful!
19:31:10.885 [main] INFO de.mkammerer.argon2.runner.Runner - Wiping confidential data...
19:31:10.885 [main] INFO de.mkammerer.argon2.runner.Runner - Stopped

BUILD SUCCESSFUL in 4s
6 actionable tasks: 4 executed, 2 up-to-date
➜  argon2-jvm1 git:(test/jna-pr-1316) ✗ 

I think we are good to go! @phxql

phxql commented 3 years ago

Great work, many thanks! I merged the PR into develop, and updated the PR-1316 branch, it should now work out of the box.

Does this stuff works on your M1 mac when using a JVM via rosetta?

cricketsamya commented 3 years ago
➜  argon2-jvm1 git:(test/jna-pr-1316) ✗ ./gradlew argon2-jvm-runner:run

> Task :argon2-jvm-runner:run
09:14:05.991 [main] INFO de.mkammerer.argon2.runner.Runner - Starting...
09:14:05.993 [main] INFO de.mkammerer.argon2.runner.Runner - System properties:
09:14:05.993 [main] INFO de.mkammerer.argon2.runner.Runner -   VM vendor: Azul Systems, Inc.
09:14:05.995 [main] INFO de.mkammerer.argon2.runner.Runner -   VM version: 11.0.8+10-LTS
09:14:05.995 [main] INFO de.mkammerer.argon2.runner.Runner -   Runtime version: 11.0.8+10-LTS
09:14:05.995 [main] INFO de.mkammerer.argon2.runner.Runner -   Java version: 11.0.8
09:14:05.995 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system: Mac OS X
09:14:05.995 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system version: 10.16
09:14:05.995 [main] INFO de.mkammerer.argon2.runner.Runner -   Operating system architecture: x86_64
09:14:05.995 [main] INFO de.mkammerer.argon2.runner.Runner -   Library path: /Users/sameer.kulkarni/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
09:14:05.995 [main] INFO de.mkammerer.argon2.runner.Runner - JNA info:
09:14:05.995 [main] INFO de.mkammerer.argon2.runner.Runner -   Version: 5.8.0-SNAPSHOT
09:14:05.999 [main] INFO de.mkammerer.argon2.runner.Runner -   Resource prefix: darwin-x86-64
09:14:05.999 [main] INFO de.mkammerer.argon2.runner.Runner -   Architecture: x86-64
09:14:05.999 [main] INFO de.mkammerer.argon2.runner.Runner - Creating Argon2 instance
09:14:06.528 [main] INFO de.mkammerer.argon2.runner.Runner - Hashing password...
09:14:07.308 [main] INFO de.mkammerer.argon2.runner.Runner - Hash: $argon2id$v=19$m=65536,t=10,p=1$d02vpuF5wCI6WUwK5BuKow$0Zy1zOChJJzTvfwxN1a82hK5oGvoneifvFXb7JTX/nE
09:14:07.308 [main] INFO de.mkammerer.argon2.runner.Runner - Verifying password...
09:14:07.827 [main] INFO de.mkammerer.argon2.runner.Runner - Verification successful!
09:14:07.827 [main] INFO de.mkammerer.argon2.runner.Runner - Wiping confidential data...
09:14:07.827 [main] INFO de.mkammerer.argon2.runner.Runner - Stopped

BUILD SUCCESSFUL in 6s
6 actionable tasks: 1 executed, 5 up-to-date
➜  argon2-jvm1 git:(test/jna-pr-1316) ✗

@phxql Sorry I forgot to add the test result! 😄

phxql commented 3 years ago

Yeah, great work!

Then i guess we just have to wait for a new JNA release and we're ready to go on the M1!

As soon as JNA releases a new version with the changes, i will release a new argon2-jvm version.

Thanks a ton for your support!

cricketsamya commented 3 years ago

@phxql

I am not sure, why my code is not working with the snapshot.

Screenshot 2021-02-23 at 11 14 18

This is stack trace during startup.

Screenshot 2021-02-23 at 11 16 29
cricketsamya commented 3 years ago

Yeah, great work!

Then i guess we just have to wait for a new JNA release and we're ready to go on the M1!

As soon as JNA releases a new version with the changes, i will release a new argon2-jvm version.

Thanks a ton for your support!

@phxql Thanks to you and your quick resolution.

phxql commented 3 years ago

@phxql

I am not sure, why my code is not working with the snapshot.

Screenshot 2021-02-23 at 11 14 18

This is stack trace during startup.

Screenshot 2021-02-23 at 11 16 29

I guess you are still using the old (non-patched) JNA version, which is looking for universal binaries in darwin. I used the patched one, see here: https://github.com/phxql/argon2-jvm/blob/test/jna-pr-1316/argon2-jvm-runner/build.gradle#L15

cricketsamya commented 3 years ago

@phxql I am not sure, why my code is not working with the snapshot.

Screenshot 2021-02-23 at 11 14 18

This is stack trace during startup.

Screenshot 2021-02-23 at 11 16 29

I guess you are still using the old (non-patched) JNA version, which is looking for universal binaries in darwin. I used the patched one, see here: https://github.com/phxql/argon2-jvm/blob/test/jna-pr-1316/argon2-jvm-runner/build.gradle#L15

I missed that! Thanks! @phxql

jurmous commented 3 years ago

It seems It seems the fix was already released for JNA on February 8th in 5.7.0. When will a new version of argon2-jvm be released? https://github.com/java-native-access/jna/pull/1297/commits/2be4198489d26400a40bda337ca2fccd6982a42c

phxql commented 3 years ago

This PR in JNA (https://github.com/java-native-access/jna/pull/1316) was merged on 26 Feb. JNA 5.7.0 was released on 8 Feb. I don't get how this can be included?

phxql commented 3 years ago

But it seems the changes are included in 5.8.0 - i will release a new version soon!

phxql commented 3 years ago

Just released 2.10.1, which uses JNA 5.8.0 - M1 should now work out of the box. Please give it some time to propagate to Maven central.

jurmous commented 3 years ago

This PR in JNA (java-native-access/jna#1316) was merged on 26 Feb. JNA 5.7.0 was released on 8 Feb. I don't get how this can be included?

Ah I was ending up at this commit https://github.com/java-native-access/jna/commit/2be4198489d26400a40bda337ca2fccd6982a42c for Darwin arm64 support which landed in 5.7.0. But it seems more was needed, sorry for the confusion.

Thanks for the release! 🎉❤️

cricketsamya commented 3 years ago

@phxql finally! Thanks! Great work!

phxql commented 3 years ago

I somehow missed the JNA 5.8.0 release, sorry for the delay and thanks for the ping, @jurmous.