Problem
platformio/tool-esptoolpy currently requires cryptography ~= 45.0.3, which
has no pre-built wheels for Windows ARM64. This forces Windows ARM64 users
to compile cryptography from source, requiring Visual Studio Build Tools,
vcpkg, OpenSSL, and manual linker fixes.
cryptography >= 46.0.0 ships pre-built win_arm64 wheels — instant install.
Context
- esptool.py upstream (v5.2) specifies cryptography>=43.0.0 — 46.0.0 works
- cryptography 45.0.x: no win_arm64 wheels
- cryptography 46.0.0+: ships cp311-win_arm64 and cp314-win_arm64
Workaround I suffered through
- Install VS Build Tools (C++ workload) for link.exe
- Clone vcpkg, build OpenSSL for arm64-windows-static-md
- Patch vcpkg OpenSSL port: enable-capieng → no-capieng
- Create ~/.cargo/config.toml to inject advapi32.lib
- Manually build cryptography with --no-build-isolation
Proposed fix
Change cryptography ~= 45.0.3 to cryptography >= 43.0.0 (matching upstream)
or cryptography ~= 46.0.0 (pinning to a version with win_arm64 wheels).
References
Problem
platformio/tool-esptoolpy currently requires cryptography ~= 45.0.3, which
has no pre-built wheels for Windows ARM64. This forces Windows ARM64 users
to compile cryptography from source, requiring Visual Studio Build Tools,
vcpkg, OpenSSL, and manual linker fixes.
cryptography >= 46.0.0 ships pre-built win_arm64 wheels — instant install.
Context
Workaround I suffered through
Proposed fix
Change cryptography ~= 45.0.3 to cryptography >= 43.0.0 (matching upstream)
or cryptography ~= 46.0.0 (pinning to a version with win_arm64 wheels).
References