AnyPS5/docs/dev/debt/libSceSsl.md

2.8 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