mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-05 13:20:11 +00:00
4.2 KiB
4.2 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 (libSceSsl) - unknown signature
- sceSslGetCaList, sceSslFreeCaList, sceSslUnloadCert (libSceSsl) - signatures and the 16-byte
SceSslCaListlayout (an array of certificate handles and a 32-bit count) follow SharpProspero and shadPS4'sOrbisSslCaList, not confirmed for the PS5. On the console the list holds the certificate authorities the SSL service has; shadPS4 returns a placeholder certificate fromsceSslGetCaCertsbecause Rise of the Tomb Raider fails its initialization checks without one. No root certificate bundle is shipped and no loaded certificate is kept, so here a context holds none:sceSslGetCaListclears the list and returnsNOT_FOUND, assceSslGetCaCertsdoes,sceSslFreeCaListaccepts only that cleared list, andsceSslUnloadCert(imported by PPSA15508) has nothing to drop and is assumed to return 0. A null list returns0x8095177A, whichsceSslGetCaCertsand KytyPS5 return for a null argument (shadPS4, PS4, returns0x8095F007). An unknown context throws (KytyPS5 returnsSSL_ERROR_INVALID_ID,0x8095F006, fromsceSslGetCaCerts), and so does a listsceSslGetCaListdid not return - PPSA01317 imports declared without parameters, signatures unknown: sceSslDisableVerifyOption, sceSslGetAlpnSelected, sceSslSetAlpn, sceSslSetMinSslVersion (libSceSsl). They act on a connection, which
sceSslCreateConnectiondoes not create yet, so they throw until connections exist
Functional
- PPSA07411 imports declared without parameters, signatures unknown, added without an implementation because the title fails to load without them: sceSslEnableVerifyOption (libSceSsl), four sce::Json::Value members (setElementAccessFailureHandler, setSpecialFloatHandler, setTypeMismatchHandler, operator bool) (libSceJson2), sceConvertKeycodeGetCharacter (libSceConvertKeycode) and sceNpSessionSignalingGetGroupFromSessionId (libSceNpSessionSignaling)