microsoft / openssl

A cross-platform cryptographic library
133 stars 57 forks source link

Adding support to produce ARM64 binaries for Windows 10. #60

Closed khouzam closed 6 years ago

khouzam commented 6 years ago

This is a first pass at adding ARM64 support.

The instructions remain the same, a new target platform is now added to the project that can probably be ignored if you don't need ARM64 binaries.

I did make it build and ran all the tests on an ARM64 device.

Please try and comment.

MouriNaruto commented 6 years ago

Compiled successfully, here are the static library binaries which I used. https://github.com/Project-Nagisa/Nagisa/tree/master/ThirdParty/OpenSSL

noloader commented 6 years ago

@khouzam,

Ping @randombit. Jack will probably want to know this for Botan security library.

Forgive my ignorance... I've been trying to add ARM64 support for Windows to Crypto++ for about 2 years now. That dates back to around the time Microsoft announced the hardware support. Confer, Detect ARM-64 in preprocessor?

I looked through the changes in this patch but I did not see platform specific preprocessor macros so we can do things like enable ARM64/Aarch64 intrinsics for AES, SHA, PMUL, CRC32, etc.

What are the preprocessor macros Microsoft sets to indicate an ARM64/Aarch64 build?

khouzam commented 6 years ago

Hi @noloader,

This build of OpenSSL doesn't include intrinsics or assembly, that's why you don't see any code change.

Looking through the headers _M_ARM64 is the way to detect ARM64 for Microsoft.

I can probably help getting your coded adapted.