Commit Graph
57 Commits
Author SHA1 Message Date
Dean f95b794ff1 Merge pull request #9785 from santhoshkumar-dev/codex/libressl-protocol-selection
feat(libSceLibreSsl): select advertised application protocols
2026-10-27 21:06:22 +13:00
Dean cf652ca76e Merge pull request #10398 from alvaroelpob/feat/libscelibressl-evp-pkey-type
feat(libSceLibreSsl): implement EVP_PKEY_type
2026-10-27 20:52:31 +13:00
Adrià dd6d71ba13 Merge pull request #11050 from harisibrar1/feat/libressl-asn1-string-to-utf8
feat(libSceLibreSsl): report ASN1_STRING_to_UTF8 errors through the ASN.1 error queue
2026-10-27 08:38:38 +01:00
Alvaro 1e88908181 fix(libSceLibreSsl): resolve the DH, DSA and GOST types in EVP_PKEY_type 2026-10-26 22:16:15 +01:00
Alvaro 93738dfbe9 feat(libSceLibreSsl): implement EVP_PKEY_type 2026-10-26 22:16:14 +01:00
Alvaro ddb51767c0 feat(libSceLibreSsl): implement RSA_size 2026-10-26 20:17:36 +01:00
Alvaro d7928af60f feat(libSceLibreSsl): implement RSA_flags 2026-10-26 20:17:27 +01:00
Alvaro 36a766229b feat(libSceLibreSsl): implement UI_method_get_closer 2026-10-26 19:23:44 +01:00
Alvaro 3ac4a78a0f feat(libSceLibreSsl): implement UI_method_set_closer 2026-10-26 19:23:43 +01:00
Alvaro 9802f33370 feat(libSceLibreSsl): implement UI_method_get_reader 2026-10-26 19:23:43 +01:00
Alvaro 13e48800eb feat(libSceLibreSsl): implement UI_method_set_reader 2026-10-26 19:23:42 +01:00
Alvaro aa5c431bb0 feat(libSceLibreSsl): implement UI_method_get_writer 2026-10-26 19:23:42 +01:00
Alvaro bf6c1458f3 feat(libSceLibreSsl): implement UI_method_set_writer 2026-10-26 19:23:41 +01:00
Alvaro 18a1ec5ca0 feat(libSceLibreSsl): implement UI_method_get_opener 2026-10-26 19:23:41 +01:00
Alvaro a35721aae7 feat(libSceLibreSsl): implement UI_method_set_opener 2026-10-26 19:23:40 +01:00
Alvaro 80104778fe feat(libSceLibreSsl): implement UI_destroy_method 2026-10-26 19:23:39 +01:00
Alvaro 8736ee5a82 feat(libSceLibreSsl): implement UI_create_method 2026-10-26 19:23:36 +01:00
Santhosh Kumar 809350e09c chore: sync current main for PR 9785 2026-10-26 22:34:44 +05:30
Alvaro 649c7f97fc feat(libSceLibreSsl): implement sk_pop_free 2026-10-26 18:02:19 +01:00
Alvaro 836b583e90 feat(libSceLibreSsl): implement sk_pop 2026-10-26 18:02:19 +01:00
Alvaro 5efedeeeb3 feat(libSceLibreSsl): implement sk_value 2026-10-26 18:02:18 +01:00
Alvaro 30cdaa7085 feat(libSceLibreSsl): implement sk_num 2026-10-26 18:02:17 +01:00
mantavisual ad31835a6e Merge remote-tracking branch 'upstream/main' into feat/libressl-crypto-locking-callbacks
# Conflicts:
#	core/libs/prx/libSceLibreSsl/CMakeLists.txt
#	docs/dev/debt/libSceLibreSsl.md
2026-10-26 17:52:59 +02:00
harisibrar1 c51456ab71 Merge remote-tracking branch 'origin/main' into feat/libressl-asn1-string-to-utf8
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-26 09:53:00 -04:00
KernelPanicNT 601226da9c feat(libSceLibreSsl): return the measured version from SSLeay
SSLeay() returns 0x20000000, the value measured on a PS5 with firmware
13.40 and the SSLEAY_VERSION_NUMBER of LibreSSL 2.5.4, which the module
is. The guest_libressl_version test checks it.
2026-10-26 14:46:30 +01:00
Santhosh Kumar 14807c4628 docs(libSceLibreSsl): distinguish reported and unmeasured gaps 2026-10-26 14:58:51 +05:30
Santhosh Kumar 1e03c7c5f2 fix(libSceLibreSsl): address public API and test review feedback 2026-10-26 14:34:31 +05:30
lost9409 9a848d0b99 feat(libSceLibreSsl): implement TLS alert descriptions 2026-10-26 09:31:37 +01:00
Dean Galvin 00843ba7d2 Merge branch 'main' into pr9949 2026-10-26 05:48:30 +13:00
harisibrar1andClaude Opus 5.5 42a02f54f0 feat(libSceLibreSsl): report ASN1_STRING_to_UTF8 errors through the ASN.1 error queue as LibreSSL 2.5.4 does
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 10:58:50 -04:00
mantavisualandClaude Opus 5.5 c15dce440a feat(libSceLibreSsl): implement the CRYPTO locking and thread id callbacks
CRYPTO_num_locks, CRYPTO_set_locking_callback, CRYPTO_set_add_lock_callback,
CRYPTO_THREADID_set_callback and CRYPTO_THREADID_set_numeric threw. They
now follow LibreSSL 2.5.4's cryptlib.c, the version identified in the
firmware 13.40 measurements: CRYPTO_num_locks returns 41, the setters
store their callbacks, CRYPTO_THREADID_set_callback keeps the first
non-null one and returns 0 once one is set, and
CRYPTO_THREADID_set_numeric clears the {ptr, val} structure and stores a
64-bit value. The callbacks are never called, because the module exports
none of CRYPTO_lock, CRYPTO_add_lock or CRYPTO_THREADID_current; the debt
entry records it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:03:25 +02:00
jacob6769 69405e15f9 Merge remote-tracking branch 'origin/main' into fix/libressl-digest-version-paths
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-25 21:11:02 +09:00
wrocketdevandClaude Opus 5.5 7f295d046b feat(libSceLibreSsl): implement the OCSP status and reason strings
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:08:49 +01:00
atharvjairath 0390178ba0 feat(libressl): implement cipher metadata queries 2026-10-25 15:41:30 +05:30
jacob6769 e56245a42c Merge remote-tracking branch 'origin/main' into fix/libressl-digest-version-paths
# Conflicts:
#	core/libs/prx/libSceLibreSsl3/src/Digest.cpp
#	core/libs/tests/GuestLibreSslDigest.cpp
#	docs/dev/debt/libSceLibreSsl.md
2026-10-25 15:13:36 +09:00
AZLisme 931efc838c fix(libSceLibreSsl): handle minimum signed ASN.1 integer 2026-10-25 10:19:22 +08:00
AZLisme caa81ac8e7 test(libSceLibreSsl): pin legacy integer length behavior 2026-10-25 10:19:15 +08:00
AZLisme abd16e771d feat(libSceLibreSsl): implement ASN.1 integer and string helpers 2026-10-25 10:19:06 +08:00
Swag 1d2d3d2a5d Merge upstream/main into feat/libressl-error-queue
Co-Authored-By: Claude Opus 5.5 <[email protected]>

# Conflicts:
#	core/libs/prx/libSceLibreSsl/CMakeLists.txt
#	docs/dev/debt/libSceLibreSsl.md
2026-10-24 15:40:11 -04:00
jacob6769 e599306514 Merge remote-tracking branch 'origin/main' into fix/libressl-digest-version-paths
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-24 18:18:03 +09:00
jacob6769andClaude Opus 5.5 0fed30252a fix(libSceLibreSsl): follow LibreSSL 2.5.4 and 4.0.0 for null digest buffers and SHA-512/t lengths
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 12:01:56 +09:00
Swag 43315af395 Merge upstream/main into feat/libressl-error-queue
Co-Authored-By: Claude Opus 5.5 <[email protected]>

# Conflicts:
#	core/libs/prx/libSceLibreSsl/CMakeLists.txt
#	docs/dev/debt/libSceLibreSsl.md
2026-10-23 15:27:06 -04:00
Claude 24bbc6d5f8 fix(libSceLibreSsl): leave the AES key untouched when key setup fails
AES_set_encrypt_key zeroed the whole schedule and set rounds before it
checked the key length, so a refused call changed the AES_KEY. As in
LibreSSL 2.5.4's aes_core.c, it now returns -1 or -2 before writing
anything and writes only the 44, 52 or 60 words the key length needs.

The test fills the key with a sentinel and checks, for both setup
functions, that refused calls leave all 244 bytes unchanged, that
AES-128 and AES-192 keep the 16 and 8 unused words, and that every
written word matches the FIPS-197 appendix A schedules and the
decryption schedules computed independently and with OpenSSL 3.0.13.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-23 18:56:08 +00:00
HQasperandClaude Opus 5.5 c17591d425 feat(libSceLibreSsl): implement the low-level AES functions
AES_set_encrypt_key, AES_set_decrypt_key, AES_encrypt, AES_decrypt,
AES_ecb_encrypt, AES_cbc_encrypt, AES_cfb128_encrypt and
AES_ctr128_encrypt threw. They now follow LibreSSL's aes.h and its CBC,
CFB-128 and CTR mode code on the caller's 244-byte AES_KEY: key setup
returns -1 for null arguments and -2 for a key length other than 128,
192 or 256 bits, CBC pads a partial final block with the IV and writes
the whole block, CFB and CTR resume from *num, and the CTR counter
carries across all 128 bits.

The test checks the FIPS-197 appendix A and C vectors and the SP 800-38A
CBC, CFB-128 and CTR vectors, split across calls, in place and with
partial blocks.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-23 18:48:20 +00:00
Claude 687e7d637e fix(libSceLibreSsl): return null from CRYPTO_malloc for sizes of zero or less
CRYPTO_malloc threw for a size of zero or less. LibreSSL 2.5.4, 3.4.1
and 3.4.3 all take an int size and return null there, so it now does
the same, and the test checks for null instead of a throw.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-23 13:15:04 +00:00
Swag a015208694 Merge upstream/main into feat/libressl-error-queue
Co-Authored-By: Claude Opus 5.5 <[email protected]>

# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-23 08:51:42 -04:00
HQasperandClaude Opus 5.5 eb9491b194 feat(libSceLibreSsl): implement RAND and the CRYPTO allocator functions
RAND_add, RAND_bytes, RAND_status, RAND_load_file, RAND_file_name,
CRYPTO_malloc, CRYPTO_free and CRYPTO_set_mem_functions threw. They now
behave as in LibreSSL 2.6.5 through 3.4.3, where these functions did not
change: RAND_bytes fills the buffer from host entropy and returns 1,
RAND_add ignores its input, RAND_status returns 1, RAND_load_file returns
123456 for -1 and the requested count otherwise, RAND_file_name copies
"/dev/urandom" with strlcpy semantics, CRYPTO_malloc and CRYPTO_free use
the guest heap, and CRYPTO_set_mem_functions refuses with 0.

CRYPTO_malloc of zero or a negative size throws because later LibreSSL
versions take a size_t and call malloc instead of returning null.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-23 12:49:06 +00:00
Swag 235612ab83 Merge upstream/main into feat/libressl-error-queue
Co-Authored-By: Claude Opus 5.5 <[email protected]>

# Conflicts:
#	core/libs/prx/libSceLibreSsl/CMakeLists.txt
#	docs/dev/debt/libSceLibreSsl.md
2026-10-23 08:03:05 -04:00
Santhosh Kumar 68b616640a chore: sync current main for PR 9785 2026-10-23 16:46:34 +05:30
atharv-honestly 30ab85a8db feat(libressl): implement certificate verification error strings 2026-10-23 16:33:43 +05:30