Commit Graph
42 Commits
Author SHA1 Message Date
JaceTheBlu 918b7792b9 Merge feat/libressl-verify-param-ip into feat/libressl-x509-lookup
# Conflicts:
#	core/libs/prx/libSceLibreSsl/include/Api.hpp
#	docs/dev/debt/libSceLibreSsl.md
2026-10-28 08:51:21 +00:00
JaceTheBlu 6886f61ade Merge feat/libressl-x509-store into feat/libressl-verify-param-ip
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-28 08:32:48 +00:00
JaceTheBlu 3b43b785e4 Merge upstream/main into feat/libressl-x509-store
# Conflicts:
#	core/libs/prx/libSceLibreSsl/CMakeLists.txt
#	core/libs/prx/libSceLibreSsl/include/Api.hpp
#	docs/dev/debt/libSceLibreSsl.md
2026-10-28 08:32:47 +00:00
Dean 7d2136c9c6 Merge pull request #10447 from alvaroelpob/feat/libscelibressl-x509-store-ctx-error
feat(libSceLibreSsl): implement the X509_STORE_CTX error, depth, current certificate and chain accessors
2026-10-28 12:03:34 +13:00
Adrià 771d8b5bf7 Merge pull request #11340 from harisibrar1/feat/libressl-ex-data-indices
feat(libSceLibreSsl): implement the SSL and SSL_CTX ex_data index registry as LibreSSL 2.5.4 does
2026-10-27 21:34:00 +01:00
Adrià 9de9c6efd0 Merge pull request #11261 from JaceTheBlu/feat/libressl-object-text
feat(libSceLibreSsl): add the LibreSSL object table and implement i2t_ASN1_OBJECT
2026-10-27 14:07:27 +01:00
JaceTheBlu 07de66a1a3 Merge feat/libressl-x509-store into feat/libressl-x509-lookup
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-27 08:48:03 +00:00
JaceTheBlu 884dbd5f45 Merge feat/libressl-x509-store into feat/libressl-verify-param-ip
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-27 08:48:02 +00:00
JaceTheBlu b9ec709d47 Merge upstream/main into feat/libressl-x509-store
# Conflicts:
#	core/libs/prx/libSceLibreSsl/CMakeLists.txt
#	docs/dev/debt/libSceLibreSsl.md
2026-10-27 08:48:01 +00:00
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 Galvin 70b3dc8467 merge: main into feat/libscelibressl-x509-store-ctx-error 2026-10-27 20:55:58 +13:00
JaceTheBluandClaude Opus 5.5 c6522d4bce feat(libSceLibreSsl): add the LibreSSL object table and implement i2t_ASN1_OBJECT
i2t_ASN1_OBJECT threw and was declared without parameters. It now
prints an object's long name, or its short name, or its dotted OID, as
OBJ_obj2txt does in LibreSSL 2.5.4, the version string the module
holds: the NID is the object's own or found by the same binary search
over the same order, an unassigned NID reports OBJ_R_UNKNOWN_NID for
each name lookup, a truncated subidentifier returns 0 after the parts
already written, and arcs past 64 bits are printed exactly.

The 956 objects (short and long names, NID, OID) and their search order
are generated from 2.5.4's objects.txt and obj_mac.num with its own
objects.pl and obj_dat.pl, so d2i code can later hand out the same
static objects LibreSSL does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 08:30:25 +01:00
harisibrar1 63ef393ee9 Merge remote-tracking branch 'origin/main' into feat/libressl-ex-data-indices
# Conflicts:
#	core/libs/prx/libSceLibreSsl/include/Api.hpp
2026-10-26 19:14:39 -04:00
Alvaro d0927e2302 refactor(libSceLibreSsl): declare the X509_STORE_CTX exports in the public header 2026-10-26 22:16:17 +01:00
Alvaro 5ecedd2d01 refactor(libSceLibreSsl): declare the EVP_PKEY_type exports in the public header 2026-10-26 22:16:14 +01:00
Alvaro 7477b90ecb refactor(libSceLibreSsl): declare the RSA exports in the public header 2026-10-26 20:17:48 +01:00
Alvaro 515c0f56ba refactor(libSceLibreSsl): declare the UI_METHOD exports in the public header 2026-10-26 19:23:56 +01:00
Santhosh Kumar 809350e09c chore: sync current main for PR 9785 2026-10-26 22:34:44 +05:30
Alvaro 353463adc0 refactor(libSceLibreSsl): declare the stack exports in the public header 2026-10-26 18:02:20 +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
harisibrar1andClaude Opus 5.5 a0b14febf9 fix(libSceLibreSsl): declare the ex_data callbacks as LibreSSL's function pointer types
SSL_get_ex_new_index and SSL_CTX_get_ex_new_index took the new, dup and
free callbacks as void*, which a caller passing real callbacks can't
convert to. They now take LibreSslExNew, LibreSslExDup and
LibreSslExFree, the guest-ABI forms of CRYPTO_EX_new, CRYPTO_EX_dup and
CRYPTO_EX_free from LibreSSL 2.5.4's ossl_typ.h. Reported by @MarcZX10.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 09:50:54 -04:00
harisibrar1 a6a5834b05 Merge remote-tracking branch 'origin/main' into feat/libressl-ex-data-indices 2026-10-26 09:50:11 -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 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
JaceTheBlu fb1b33078d Merge feat/libressl-verify-param-ip into feat/libressl-x509-lookup
# Conflicts:
#	core/libs/prx/libSceLibreSsl/CMakeLists.txt
#	docs/dev/debt/libSceLibreSsl.md
2026-10-26 07:58:53 +00:00
harisibrar1andClaude Opus 5.5 d77777a94b feat(libSceLibreSsl): implement the SSL and SSL_CTX ex_data index registry as LibreSSL 2.5.4 does
SSL_get_ex_new_index and SSL_CTX_get_ex_new_index number their indices
per class from 0, SSL_get_ex_data_X509_STORE_CTX_idx allocates its
class-5 index once, and CRYPTO_cleanup_all_ex_data releases every class.
An allocation failure returns -1 with ERR_R_MALLOC_FAILURE queued.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 00:24:32 -04:00
JaceTheBlu 6cd2bc3b3f Merge feat/libressl-x509-store into feat/libressl-x509-lookup
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-25 21:25:44 +00:00
JaceTheBlu ff70c457ca Merge feat/libressl-x509-store into feat/libressl-verify-param-ip
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-25 21:25:43 +00:00
JaceTheBlu 6fb65fe2f2 Merge upstream/main into feat/libressl-x509-store 2026-10-25 21:25:42 +00:00
JaceTheBluandClaude Opus 5.5 e8d6c3fb47 feat(libSceLibreSsl): implement X509_LOOKUP_file and X509_STORE_add_lookup
Both exports threw and were declared without parameters. They follow
LibreSSL 2.5.4, unchanged in 2.7: X509_LOOKUP_file returns the static
80-byte file method, and X509_STORE_add_lookup returns the store's
lookup for a method, or mallocs a 32-byte lookup owned by the store and
pushes it on the store's methods, growing the stack the way sk_insert
does. X509_STORE_free now frees the store's lookups.

The file method's ctrl, which loads PEM files, throws: there is no
certificate model yet. Callbacks of guest-supplied methods throw
instead of being called.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:37:22 +00:00
JaceTheBluandClaude Opus 5.5 2bafc417cc feat(libSceLibreSsl): implement X509_VERIFY_PARAM_set_hostflags and X509_VERIFY_PARAM_set1_ip_asc
Both exports threw and were declared without parameters. They follow
LibreSSL 2.5.4, unchanged in 2.7: set_hostflags stores the host
matching flags in the verify parameters' identity, and set1_ip_asc
parses an IPv4 or IPv6 address the way a2i_ipadd does, copies the 4 or
16 bytes into a guest malloc block that replaces the previous address,
and returns 0 without touching it for text the parser rejects. IPv4
parts are read with the guest sscanf, as the module would.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:37:05 +00:00
JaceTheBluandClaude Opus 5.5 a2d4d38a15 feat(libSceLibreSsl): implement X509_STORE_new, X509_STORE_free and X509_STORE_set_flags
The three exports threw and were declared without parameters. They now
follow LibreSSL 2.5.4, the version the firmware 13.40 measurements
identify: X509_STORE_new allocates the 136-byte store with an empty
object cache, an empty lookup method stack and 64-byte verify
parameters at depth -1, X509_STORE_free drops a reference and frees the
store with its stacks, verify parameters and their host names, peer
name, email and IP, and X509_STORE_set_flags ORs the flags into the
verify parameters and adds the policy check for any policy flag.

No export adds certificates, CRLs or lookup methods yet, so freeing a
store that holds them, or verify parameters holding policy objects,
throws instead of freeing objects with no model.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 17:37:05 +00:00
Dean Galvin 00843ba7d2 Merge branch 'main' into pr9949 2026-10-26 05:48:30 +13: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
wrocketdevandClaude Opus 5.5 41eb9b983c refactor(libSceLibreSsl): declare the OCSP string functions in the public header
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
AZLisme 6098cf2e64 fix(libSceLibreSsl): share public ASN.1 declarations 2026-10-25 10:19:22 +08:00
SwagandClaude Opus 5.5 927b9f6fe6 refactor(libSceLibreSsl): declare the error queue exports in the public header
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 20:33:12 -04:00
SwagandClaude Opus 5.5 fe8520917a Merge upstream/main into feat/libressl-error-queue
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 20:29:59 -04:00
boykopovar f38d29fd08 refactor(sdk): add canonical headers for remaining libraries 2026-10-24 23:17:42 +03:00
SwagandClaude Opus 5.5 ca32e706e8 feat(libSceLibreSsl): implement the per-thread error queue
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 20:15:46 -04:00