L. C. Hsieh created CRYPTO-169:
----------------------------------

             Summary: 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


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)

Reply via email to