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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.