Files
AnyPS5/docs/dev/debt/libSceSsl.md
T
8a7e1195d4 feat(exports): export the calls PPSA01317 imports
Gran Turismo 7 (PPSA01317) fails to load on unresolved imports and on
two needed libraries that AnyPS5 does not build (#4782).

- sceAppContentDownloadDataFormat empties /download0, as
  sceAppContentTemporaryDataFormat does for /temp0.
- sceNpAuthSetTimeout returns REQUEST_NOT_FOUND for an unknown request
  like the other request calls, and OK otherwise; no request reaches the
  network the timeouts would bound.
- sceNpWebApi2PushEventSetHandleTimeout throws for an unknown library
  context, like sceNpWebApi2GetMemoryPoolStats, and returns OK
  otherwise; push event handles are not tracked and nothing waits on
  one offline.
- sceSslDisableVerifyOption, sceSslGetAlpnSelected, sceSslSetAlpn,
  sceSslSetMinSslVersion, sceAudioOutDeviceIdOpen and the unnamed
  libScePsml NIDs xNZM9Y5lf-M and lcZD9tJraAw are declared without
  parameters and throw; their signatures are unknown.
- libSceUsbStorage and libSceUsbStorageDialog exist with no exports,
  like libSceXml: the title lists both as needed but imports nothing
  from them.

Each assumption is recorded in the library's technical debt file.

Co-authored-by: dawid-swiecicki <8942606+dawid-swiecicki@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 01:11:29 +02:00

2.7 KiB

libSceSsl technical debt

Unknown function info

  • sceSslClose (libSceSsl) - unknown signature
  • sceSslGetSerialNumber (libSceSsl) - unknown signature
  • sceSslGetCaList, sceSslFreeCaList, sceSslUnloadCert (libSceSsl) - signatures and the 16-byte SceSslCaList layout (an array of certificate handles and a 32-bit count) follow SharpProspero and shadPS4's OrbisSslCaList, not confirmed for the PS5. On the console the list holds the certificate authorities the SSL service has; shadPS4 returns a placeholder certificate from sceSslGetCaCerts because 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: sceSslGetCaList clears the list and returns NOT_FOUND, as sceSslGetCaCerts does, sceSslFreeCaList accepts only that cleared list, and sceSslUnloadCert (imported by PPSA15508) has nothing to drop and is assumed to return 0. A null list returns 0x8095177A, which sceSslGetCaCerts and KytyPS5 return for a null argument (shadPS4, PS4, returns 0x8095F007). An unknown context throws (KytyPS5 returns SSL_ERROR_INVALID_ID, 0x8095F006, from sceSslGetCaCerts), and so does a list sceSslGetCaList did not return
  • PPSA01317 imports declared without parameters, signatures unknown: sceSslDisableVerifyOption, sceSslGetAlpnSelected, sceSslSetAlpn, sceSslSetMinSslVersion (libSceSsl). They act on a connection, which sceSslCreateConnection does not create yet, so they throw until connections exist

Functional