Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't attempt to pack structures with pointers - should fix aarch64 issues #283

Merged
merged 2 commits into from
Feb 17, 2022
Merged

Don't attempt to pack structures with pointers - should fix aarch64 issues #283

merged 2 commits into from
Feb 17, 2022

Conversation

bryan-hunt
Copy link
Contributor

Should resolve #281 but needs to be confirmed as being fully functional on the M1 platform. Confirmed to pass (cd, cio, & tng) tests on x86-64

…ssues

* These structures shouldn't be accessed by offsets anywhere in code anyway
@bryan-hunt
Copy link
Contributor Author

@rashedtalukder @DarkSector Do either of you mind testing this branch to see if it resolves the Apple M1 issues and functions properly?

@rashedtalukder
Copy link
Contributor

rashedtalukder commented Feb 11, 2022

@bryan-hunt - Just built on my M1 mac with no compile errors.

@DarkSector
Copy link

Builds on M1 Pro - Build log

CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- Configuring done
-- Generating done
-- Build files have been written to: /Users/pronoyc/Code/cryptoauthlib
❯ make clean
❯ make
[  1%] Building C object lib/CMakeFiles/cryptoauth.dir/atca_basic.c.o
[  2%] Building C object lib/CMakeFiles/cryptoauth.dir/atca_cfgs.c.o
[  4%] Building C object lib/CMakeFiles/cryptoauth.dir/atca_debug.c.o
[  5%] Building C object lib/CMakeFiles/cryptoauth.dir/atca_device.c.o
[  7%] Building C object lib/CMakeFiles/cryptoauth.dir/atca_helpers.c.o
[  8%] Building C object lib/CMakeFiles/cryptoauth.dir/atca_iface.c.o
[ 10%] Building C object lib/CMakeFiles/cryptoauth.dir/atca_utils_sizes.c.o
[ 11%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_aes.c.o
[ 12%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_aes_gcm.c.o
[ 14%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_basic.c.o
[ 15%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_checkmac.c.o
[ 17%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_command.c.o
[ 18%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_counter.c.o
[ 20%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_derivekey.c.o
[ 21%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_ecdh.c.o
[ 22%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_execution.c.o
[ 24%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_gendig.c.o
[ 25%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_genkey.c.o
[ 27%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_helpers.c.o
[ 28%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_hmac.c.o
[ 30%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_info.c.o
[ 31%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_kdf.c.o
[ 32%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_lock.c.o
[ 34%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_mac.c.o
[ 35%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_nonce.c.o
[ 37%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_privwrite.c.o
[ 38%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_random.c.o
[ 40%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_read.c.o
[ 41%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_secureboot.c.o
[ 42%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_selftest.c.o
[ 44%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_sha.c.o
[ 45%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_sign.c.o
[ 47%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_updateextra.c.o
[ 48%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_verify.c.o
[ 50%] Building C object lib/CMakeFiles/cryptoauth.dir/calib/calib_write.c.o
[ 51%] Building C object lib/CMakeFiles/cryptoauth.dir/host/atca_host.c.o
[ 52%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/api_206a/api_206a.c.o
[ 54%] Building C object lib/CMakeFiles/cryptoauth.dir/atcacert/atcacert_client.c.o
[ 55%] Building C object lib/CMakeFiles/cryptoauth.dir/atcacert/atcacert_date.c.o
[ 57%] Building C object lib/CMakeFiles/cryptoauth.dir/atcacert/atcacert_def.c.o
[ 58%] Building C object lib/CMakeFiles/cryptoauth.dir/atcacert/atcacert_der.c.o
[ 60%] Building C object lib/CMakeFiles/cryptoauth.dir/atcacert/atcacert_host_hw.c.o
[ 61%] Building C object lib/CMakeFiles/cryptoauth.dir/atcacert/atcacert_host_sw.c.o
[ 62%] Building C object lib/CMakeFiles/cryptoauth.dir/atcacert/atcacert_pem.c.o
[ 64%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/atca_crypto_hw_aes_cbc.c.o
[ 65%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/atca_crypto_hw_aes_cbcmac.c.o
[ 67%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/atca_crypto_hw_aes_ccm.c.o
[ 68%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/atca_crypto_hw_aes_cmac.c.o
[ 70%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/atca_crypto_hw_aes_ctr.c.o
[ 71%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/atca_crypto_pbkdf2.c.o
[ 72%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/atca_crypto_sw_ecdsa.c.o
[ 74%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/atca_crypto_sw_rand.c.o
[ 75%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/atca_crypto_sw_sha1.c.o
[ 77%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/atca_crypto_sw_sha2.c.o
[ 78%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/hashes/sha1_routines.c.o
[ 80%] Building C object lib/CMakeFiles/cryptoauth.dir/crypto/hashes/sha2_routines.c.o
[ 81%] Building C object lib/CMakeFiles/cryptoauth.dir/jwt/atca_jwt.c.o
[ 82%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/tng/tflxtls_cert_def_4_device.c.o
[ 84%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/tng/tng_atca.c.o
[ 85%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/tng/tng_atcacert_client.c.o
[ 87%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/tng/tng_root_cert.c.o
[ 88%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/tng/tnglora_cert_def_1_signer.c.o
[ 90%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/tng/tnglora_cert_def_2_device.c.o
[ 91%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/tng/tnglora_cert_def_4_device.c.o
[ 92%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/tng/tngtls_cert_def_1_signer.c.o
[ 94%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/tng/tngtls_cert_def_2_device.c.o
[ 95%] Building C object lib/CMakeFiles/cryptoauth.dir/__/app/tng/tngtls_cert_def_3_device.c.o
[ 97%] Building C object lib/CMakeFiles/cryptoauth.dir/hal/atca_hal.c.o
[ 98%] Building C object lib/CMakeFiles/cryptoauth.dir/hal/hal_linux.c.o
[100%] Linking C shared library libcryptoauth.dylib
[100%] Built target cryptoauth

@bryan-hunt
Copy link
Contributor Author

@rashedtalukder @DarkSector Thanks for confirming that compilation is successful - I'm hoping that it may be possible to get confirmation that your usecases are functioning properly still in this environment as well?

@bryan-hunt bryan-hunt merged commit 7c76e1a into MicrochipTech:main Feb 17, 2022
@rashedtalukder
Copy link
Contributor

@bryan-hunt, it does part way. Since this is only compatible with Python 3.7, I cannot run the tests. Additionally, I can't use the simple pip install cryptoauthlib since that points to the release version 20211006 as listed in https://pypi.org/project/cryptoauthlib/.

I was able to install the latest without errors by using the command pip3 install git+https://github.com/MicrochipTech/cryptoauthlib.git@main#subdirectory=python. This led me to believe it would work, however ARM M1 Macs only support Python 3.9+ so the tests fail.

@rashedtalukder
Copy link
Contributor

Additionally for sanity:
pip3 install git+https://github.com/MicrochipTech/cryptoauthlib.git@releases/tag/v3.3.3#subdirectory=python does result in the pointer failure.

@bryan-hunt
Copy link
Contributor Author

I was a bit confused about the only support 3.7 - I see that the metadata in setup.py is out of date. I've been doing my tests in 3.8 and 3.10 but I can see where things that check the package metadata would fail downstream. Do you have a link to which tests your running?

@rashedtalukder
Copy link
Contributor

Get public key and sign/verify. I don't have a sharable link to them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Apple M1 arm64 support
3 participants