mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 08:33:12 -05:00
5.7 KiB
5.7 KiB
libSceSsl technical debt
Unknown function info
- sceSslCreateConnection, sceSslDeleteConnection, sceSslSetVerifyCallback, sceSslConnect, sceSslRead, sceSslWrite (libSceSsl) - imported by
ffmpeg.prx. The repository has no TLS client, so a connection only records its context, socket, host and verification callback, andsceSslConnect,sceSslReadandsceSslWritethrowNotImplemented_nid_no_patch(__func__)until there is a transport. Signatures follow SharpProspero, which also says the socket stays open aftersceSslDeleteConnection. An unknown context returnsSSL_ERROR_INVALID_ID(0x8095F006), assceSslGetMemoryPoolStatsdoes on the console and as KytyPS5 and sharpemu return for other context calls; for an unknown connection, a connection whose context was terminated and a null host the console's codes are unknown, so these throw. The socket is not checked when the connection is created,sceSslTermleaves the context's connections tosceSslDeleteConnection, andsceSslSetVerifyCallbackaccepts any callback, null included, and returns 0; none of this is verified on the console.SSL_ERROR_BEFORE_INIT(0x8095F001) is never returned, as the library keeps no state apart from its contexts - sceSslClose (libSceSsl) - unknown signature
- sceSslGetSerialNumber, sceSslGetSubjectName, sceSslGetIssuerName, sceSslGetNameEntryCount, sceSslGetNameEntryInfo, sceSslFreeSslCertName (libSceSsl) - signatures and context ownership follow SharpProspero. Operations take a context handle as their first argument and operate on certificate and name handles scoped to that context.
sceSslGetSerialNumbercopies into a caller-allocated output buffer or queries the required length when the buffer is null or capacity is zero; a buffer smaller than the serial number returnsSSL_ERROR_INVALID_ARG(0x8095177a). Mbed TLS parses the certificate's serial number and X.509 subject and issuer distinguished names, extracting OID attribute short names (or numeric strings) and value strings. An unknown context, unknown or expired certificate handle or invalid certificate name handle throws; null output pointers or out-of-range entry indices returnSSL_ERROR_INVALID_ARG(0x8095177a). The error codes, the zero-capacity length query, the NUL-terminated truncation of name entry strings with the full value length invalueLen, and the lifetime of name handles (released only bysceSslFreeSslCertNameor when the context is terminated) have not been measured on a PS5 - sceSslLoadCert, sceSslGetCaList, sceSslFreeCaList, sceSslGetCaCerts, sceSslFreeCaCerts, sceSslUnloadCert (libSceSsl) - signatures and layouts follow SharpProspero. PPSA15508/01.002.000 calls
sceSslLoadCertwith one 1,408-byte PEM CA and null client certificate/key arguments; this confirms that call shape, not console error behavior. Mbed TLS 3.6.7 parses DER/PEM chains and checks an optional client certificate/key pair. Imports are retained per context and committed together; a failed import preserves existing credentials. CA queries return independently owned snapshots; unload clears active credentials while outstanding snapshots remain valid. Appending repeated CA imports, snapshot lifetime across unload, memory overhead and error precedence have not been measured on a PS5. Invalid loads, malformed material, exhausted pools and unsupported keys throw rather than inventing console error codes. No root bundle is shipped; an empty context still returnsNOT_FOUND. The existing null-list error, unknown-context behavior and legacy clearing of foreign raw CA lists remain unchanged. Certificate reader queries reflect active certificates or outstanding snapshots. Loading credentials neither starts a TLS connection nor authenticates a peer - sceSslEnableVerifyOption, sceSslDisableVerifyOption, sceSslSetMinSslVersion, sceSslSetAlpn, sceSslGetAlpnSelected (libSceSsl) - imported by PPSA01317 and PPSA07411. Signatures follow SharpProspero, the source of the other connection signatures. The verify options, the minimum version and the ALPN protocol list are recorded on the connection; nothing reads them until
sceSslConnecthas a transport, and how the console applies them is unknown. The initial verify options are unknown and taken as 0.sceSslSetMinSslVersionaccepts theSceSslVersionvalues SharpProspero lists, 0 (none) to 5 (TLS 1.2), and throws for others; whether the console accepts a TLS 1.3 value is unknown.sceSslSetAlpnstores the string up to its terminator and throws for a null list; whether the console expects a comma-separated list or the TLS wire format is unknown.sceSslGetAlpnSelectedreturns null, as no handshake completes. An unknown connection and a connection whose context was terminated throw, as forsceSslSetVerifyCallback