Files
AnyPS5/docs/dev/debt/libSceLibreSsl.md
T

2.0 KiB

libSceLibreSsl technical debt

Functional

  • ERR queues and strings have no PS5 equivalence verification. Contracts follow LibreSSL 3.4.1's err.c, err.h, crypto.h and err_all.c at that revision: LP64 error arguments/results, 15 queued errors and historical crypto strings. System reasons use guest libc's FreeBSD errno messages, truncated to 31 bytes; console wording is unverified. Explicit thread IDs in ERR_remove_thread_state throw because guest pthread identity mapping is unverified. Null IDs clear the calling thread. SSL-specific strings are not loaded; SSL initialization remains unimplemented.
  • Error publication has no implemented production callers on this branch. BIOs and the digest, AES, allocator/RAND, DES, BIGNUM and EVP/HMAC work in pending branches require separate integration. LibreSslPutError_nid_no_patch(int library, int function, int reason, const char* file, int line) has C linkage and the native host calling convention, accepts upstream numeric fields and publishes to the calling thread's queue. Three-argument source calls default file/line to null/zero. It stores file/line without taking ownership; producers must supply a filename with static lifetime. Guest ERR entry points use APS5_VABI. Unsupported producer exports continue throwing; the local tests publish through this helper.

Unknown function info

  • libSceLibreSsl pending exports - 399 named callable exports are listed in the PS5 3.20 export table and were cross-checked against the same module in PS5 firmware 13.60. Their signatures and behaviour are unverified; the declarations use the no-parameter unknown-signature convention and throw through NotImplemented_nid_no_patch.