Re: GnuTLS | lib: add support for Hygon Genuine CPUs in x86 acceleration (!2053)
Read-only notification of GnuTLS library development activities <[email protected]>
| Newsgroups | gmane.comp.encryption.gpg.gnutls.devel |
|---|---|
| Message-ID | <[email protected]> |
Merge request https://gitlab.com/gnutls/gnutls/-/merge_requests/2053 was reviewed by xinpeng wang -- xinpeng wang commented on a discussion: https://gitlab.com/gnutls/gnutls/-/merge_requests/2053#note_3007000934 Hi Alexander, thanks for your feedback. Here is the elaboration on the hardware compatibility and the crash scenario: 1. Hardware Compatibility Evidence I’ve verified that Hygon CPUs are fully instruction-compatible with the paths enabled in register_x86_intel_crypto. Below is the raw output from a test program on a Hygon Dhyana processor mimicking GnuTLS's read_cpuid_vals(): Vendor ID: HygonGenuine ECX (vals[1]): 0x7ed8320b → Bit 25 (AES-NI) is 1; Bit 9 (SSSE3) is 1. EBX (vals[2]): 0x209c01a9 → Bit 29 (SHA-NI) is 1; Bit 5 (AVX2) is 1. The lscpu flags also confirm the presence of aes, ssse3, pclmulqdq, and sha_ni. Once identified, the existing feature-detection logic works perfectly for Hygon. 2. Elaboration on the Crash (0xc0000094) The issue was observed while running Windows versions of Photoshop via Wine on Linux. The Trigger: The application calls BCryptDecrypt for AES decryption. The Failure: When Hygon is identified as VENDOR_OTHER, GnuTLS bypasses hardware acceleration and falls back to the generic Nettle wrapper. Observation: IDA Pro analysis of the execution flow in this environment suggests that the generic software path triggers an Integer Divide-by-Zero (0xc0000094). The Fix: By enabling this patch, GnuTLS correctly initializes the _gnutls_aesni_x86 path. This uses hardware instructions directly, bypassing the problematic software division logic and resolving the crash. -- Reply to this email directly or view it on GitLab: https://gitlab.com/gnutls/gnutls/-/merge_requests/2053 You're receiving this email because of your account on gitlab.com. _______________________________________________ Gnutls-devel mailing list [email protected] http://lists.gnupg.org/mailman/listinfo/gnutls-devel