You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gary D. Gregory (Jira)" <ji...@apache.org> on 2023/10/21 18:54:00 UTC

[jira] [Comment Edited] (CRYPTO-169) Unable to load native library on Apple Silicon (M1 Mac)

    [ https://issues.apache.org/jira/browse/CRYPTO-169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17778190#comment-17778190 ] 

Gary D. Gregory edited comment on CRYPTO-169 at 10/21/23 6:53 PM:
------------------------------------------------------------------

We do not support Apple silicon yet. The issue is that GCC does not support it yet either:

[https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96168]


was (Author: garydgregory):
We do not support Apple silicone yet. The issue is that GCC does not support it yet either:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96168

> Unable to load native library on Apple Silicon (M1 Mac)
> -------------------------------------------------------
>
>                 Key: CRYPTO-169
>                 URL: https://issues.apache.org/jira/browse/CRYPTO-169
>             Project: Commons Crypto
>          Issue Type: Bug
>            Reporter: L. C. Hsieh
>            Priority: Major
>         Attachments: image-2023-10-21-17-51-41-260.png, image-2023-10-21-17-52-02-237.png, image-2023-10-21-17-53-16-898.png, image-2023-10-21-17-59-13-866.png
>
>
> Recently as trying to upgrade commons-crypto from 1.1.0 to 1.2.0 in Spark (SPARK-45617), got the following error in one test:
> ```
> [info]   Cause: java.security.GeneralSecurityException: Native library is not loaded
> [info]   at org.apache.commons.crypto.random.OpenSslCryptoRandom.checkNative(OpenSslCryptoRandom.java:79)
> [info]   at org.apache.commons.crypto.random.OpenSslCryptoRandom.<clinit>(OpenSslCryptoRandom.java:65)       
> [info]   at java.base/java.lang.Class.forName0(Native Method)                         
> [info]   at java.base/java.lang.Class.forName(Class.java:467)               
> [info]   at org.apache.commons.crypto.utils.ReflectionUtils.getClassByNameOrNull(ReflectionUtils.java:93)
> [info]   at org.apache.commons.crypto.utils.ReflectionUtils.getClassByName(ReflectionUtils.java:64)
> [info]   at org.apache.commons.crypto.random.CryptoRandomFactory.getCryptoRandom(CryptoRandomFactory.java:189)
> [info]   at org.apache.spark.security.CryptoStreamUtils$.createInitializationVector(CryptoStreamUtils.scala:138)
> [info]   at org.apache.spark.security.CryptoStreamUtils$.createCryptoOutputStream(CryptoStreamUtils.scala:56)
> [info]   at org.apache.spark.serializer.SerializerManager.$anonfun$wrapForEncryption$3(SerializerManager.scala:151) 
> ```
> I did a quick check. commons-crypto-1.2.0.jar only contain x86_64 Mac native library, it doesn't provide pre-built native library for Apple Silicon.
> But I also checked commons-crypto-1.1.0.jar which Spark uses currently. It also doesn't provide native library for Apple Silicon.
> Since they both don't contain native library for Apple Silicon, why commons-crypto-1.2.0 doesn't work and what makes the difference between commons-crypto-1.1.0 and commons-crypto-1.2.0?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)