10 KiB
libSceLibreSsl3 technical debt
Unknown function info
- libSceLibreSsl3 pending exports - 81 named callable exports, excluding
CRYPTO_memcmp,MD5,SHA1,d2i_ASN1_INTEGER,EVP_PKEY_up_refandEC_KEY_up_ref, remain unimplemented from the PS5 3.20 export table, 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 throughNotImplemented_nid_no_patch.
Functional
-
ASN.1 integer decoding throws on rejected encodings/allocation failures instead of matching native NULL/error handling. Redundant-sign/empty-content rejection retains old output that the module frees and clears. The decoder does not populate the legacy queue; remaining LibreSSL3 ERR exports throw. 13.42 native-PC evidence, using a recording allocator, confirms tested replacement/free order, allocation cleanup and negative-length NULL returns. Nonnegative null input faults natively and throws here. Console/application-heap ABI and untested error-precedence/overflow combinations remain unverified. Contracts follow LibreSSL 4.0.0. Closes when: error/replacement semantics and console/allocator interoperability are verified.
-
CRYPTO_memcmp follows the public LibreSSL signature and equality contract, without PS5 verification. The exact nonzero result for unequal buffers is unspecified by that contract. Content-independent execution of its volatile byte reads still depends on the compiler; inspect optimized code when changing toolchains. Closes when: measured on a PS5 and the supported toolchains' generated code is checked.
-
MD5 and SHA1 (libSceLibreSsl3) - follow LibreSSL's md5.c, sha1.c and hash through libSceLibreSsl's
MD5_*andSHA1_*. A null digest buffer, which LibreSSL 4.0.0 does not check, throws. Nothing is checked on the console -
EVP_PKEY_up_ref and EC_KEY_up_ref - console layouts and retain/release interoperability are unverified. The 32-byte EVP and 64-byte EC layouts, with counters at offsets 4 and 48, follow LibreSSL 4.0.0
evp/evp_local.h,evp/p_lib.c,ec/ec_local.handec/ec_key.c. Atomic retains replace its internal mutex; future releases must synchronize with the same counters. With no key constructors/destructors in this module, tests use caller-owned objects without validating allocator or destruction compatibility. Null keys and signed-counter overflow, undefined upstream, throw without mutation. Closes when: console layouts and lifetime interoperability are measured. -
Parent export forwarding exposes 395 parent-library exports on Windows through IAT tail jumps without changing their ABI. Non-Windows hosts use their existing dependency lookup. Static COFF inspection verifies names, parent imports and tail jumps; Windows loading and runtime behavior remain unverified. Parent functions retain their existing implementation limitations.
Additional callable export inventory
- Additional exports declare 183 callable exports: 57 named and 126 known only by NID. Every entry throws. Parameterless
intdeclarations are unknown-signature placeholders, not verified ABI contracts. Names/NIDs match the 13.60 export table. No functional implementation or title unblock is claimed.
| Name | NID |
|---|---|
unknown |
++b0FizBrJk |
unknown |
+STC2BUY9vY |
unknown |
+Tu0gXSas9s |
unknown |
+bQfpiUHRVk |
unknown |
0BW+8jTsY54 |
unknown |
0IxWzLyU8PI |
SSL_SESSION_get_timeout |
0JcHkrKJ9iw |
unknown |
13BHMSblVyY |
unknown |
27Fuliv3Om8 |
unknown |
2bIZM-OfE8Y |
unknown |
2l+JidqxyZQ |
TLS_method |
31eWdro1jqs |
unknown |
3KZ-L4y1gak |
unknown |
3m4CmAyOXwQ |
BIO_clear_flags |
3sypCuBDdQs |
unknown |
3tGgkjBQ82A |
unknown |
3v2Omd4sqcU |
unknown |
3wlK0tLONvk |
unknown |
409ieWBMPUk |
unknown |
44M+SEbpNdQ |
unknown |
4Q3bvOy4LY8 |
unknown |
4pEl-5DmrrM |
EVP_CIPHER_iv_length |
4ryyfC3TknU |
SSL_set_accept_state |
5BoCLZK9mGk |
unknown |
5DhOJmgra8E |
unknown |
5NBoRJYLH0U |
unknown |
5PWK0cYOpHs |
i2d_SSL_SESSION |
5aSlVeVSKVc |
unknown |
5ex+694ri90 |
tls_read |
7RvDjfy4gUA |
unknown |
8A-gU2xQfjY |
unknown |
8AGfaSvdDq4 |
unknown |
8kct4CSWwOA |
tls_configure |
8pwP-7j5UZI |
X509_STORE_CTX_get0_param |
8wroYNJAQpo |
X509_VERIFY_PARAM_set_flags |
9E9Gr4FLIE4 |
unknown |
A-Hs-8mau+8 |
unknown |
A0lZtFjhcTw |
unknown |
A65b+ZhOt9k |
BN_clear_free |
ABcJv8S1KEM |
unknown |
AiNud8LR8B4 |
unknown |
Ax+Uu++rnrA |
SSL_CTX_set_timeout |
BBOgwZLvXHA |
tls_config_new |
BQNyLN2nA9w |
unknown |
BRjfzlGULmU |
unknown |
BS5yWv6X-hg |
unknown |
C7eFtWPfLdk |
unknown |
CFRaBB2+R+s |
unknown |
DZ6fywqpaik |
TLS_server_method |
EtM5Jwx4EFo |
unknown |
F7jknWesBTY |
tls_close |
Fqc0-3YCXjo |
tls_client |
GEK3LmjM9Q4 |
unknown |
GFEaREp1UFw |
EVP_PKEY_get0_EC_KEY |
GY2X+VHs568 |
unknown |
GjO5Ap3E-t4 |
EVP_MD_CTX_md |
H1dRCduUy+o |
unknown |
HE-vihq-KKw |
EVP_PKEY_verify |
HEuvmk+aHs4 |
unknown |
IOutZPRNNPo |
d2i_SSL_SESSION |
IiG4HLr+cOw |
unknown |
J437jVn9pjI |
unknown |
J5ZLHxWkT6k |
unknown |
JSqFTYGaWhU |
unknown |
JvoQz7GYOMo |
unknown |
Jzebx477Q3M |
SSL_CTX_add1_chain_cert |
L897DuAuXKk |
unknown |
LA1MlgDx80o |
tls_config_free |
LL8N+X6DA-4 |
HMAC_CTX_new |
LcxutSyn11o |
unknown |
LdGe2IfIlpI |
unknown |
M7ze0mz2jQM |
tls_error |
N+G3Gxequt0 |
unknown |
O9Thca3enw8 |
unknown |
OqtHJ7QUZg8 |
unknown |
PBYz0kpXwg8 |
unknown |
PNfwr3s6dEs |
unknown |
PcUZS7XHwHk |
unknown |
QKIOxHfZLh8 |
unknown |
QTV9Nyi7ryg |
unknown |
QYEjNnn6PT4 |
SSL_CIPHER_get_id |
QaiPrM-RrrM |
unknown |
QhYzE+Jdvuk |
unknown |
QnjD8S6Rgk4 |
unknown |
R3NyckUcClU |
BN_dup |
RMhEgJs6KLI |
EVP_sha512_256 |
Sea+FOS2GOI |
unknown |
Sqn+7yQmQWc |
unknown |
Ssfu1yw4Em4 |
unknown |
TKGJOgbeyuA |
unknown |
TpBvY92mrSM |
unknown |
U1dQZ1rXHdA |
unknown |
U3AsZ-9e2MI |
SSL_CTX_set0_chain |
UHkYqkyfwOs |
unknown |
UT6E1YgI8mw |
unknown |
UmAPG5bxYYk |
X509_STORE_load_locations |
V3JtebYui1A |
ERR_func_error_string |
VXuysR7ySzw |
EVP_get_digestbyname |
Wm24hhTLqWM |
SSL_SESSION_set_time |
XG3hIzt9VXY |
unknown |
XK3FmaTS6pg |
HMAC_CTX_free |
YAxGqtnKQFY |
unknown |
YJ7bfxMHniE |
unknown |
ZERQN8ewpgk |
unknown |
ZFeTGo4ybcw |
unknown |
ZQ3b6SakHkc |
unknown |
aKGUCnoiE+k |
unknown |
aLdgrI2jAF0 |
unknown |
aSO3Svp7umY |
unknown |
agQxMaXVE8o |
unknown |
as+t2ZOg5fw |
unknown |
ba4o0Ih6kSs |
unknown |
bpOQdoGE2es |
SSL_get_version |
dL2V0os4TZ4 |
unknown |
dQE7FIbNsUE |
i2d_X509 |
e2ReciVG21w |
unknown |
eyrIagsax0w |
unknown |
f6Pa2rYH-dw |
unknown |
fR2Wat3ssHs |
d2i_X509_CRL |
fVos2kAqfMI |
tls_write |
fZJr2OF+KGw |
unknown |
fdvZNUHm-dE |
unknown |
fq1vAGKJNrI |
unknown |
gavhu7SX2FI |
PEM_read_bio_PUBKEY |
gn7mRF71J4k |
EVP_PKEY_assign |
gp5dGS14-pI |
OPENSSL_init_ssl |
hGiyDq-l4AE |
unknown |
iFlkTGEbE9k |
unknown |
iHetf873n+4 |
unknown |
je-ydGAbgFg |
unknown |
k1AHUWet-oU |
sk_new |
kJ+Y+ppuuRg |
unknown |
kO-jQ3HS9kE |
unknown |
kPCJUQuguzE |
BIO_set_flags |
lLHlEb1nt5U |
unknown |
lTdt9OsPAV0 |
SSL_set_alpn_protos |
lyk0UDADPAc |
unknown |
mKlCMgWMU84 |
SSL_set_info_callback |
mOQe5RQATT4 |
unknown |
mXrusLhI3CI |
unknown |
mhAgol4ETgY |
tls_server |
nCOh70mg3K0 |
unknown |
o0dpw6ZZ6K0 |
unknown |
o3Q8yQAMT-k |
sk_push |
oXlgRDLB+w8 |
EVP_PKEY_derive_set_peer |
ovH4WphWIQQ |
unknown |
pW329hq95Hc |
unknown |
pdxCm9+CCc4 |
EVP_CIPHER_key_length |
qAG7o03bkkM |
unknown |
qGsc6uT6p1E |
EVP_PKEY_verify_init |
qseLIVbdvMQ |
sk_free |
rI4q1FM+0gQ |
unknown |
rJZ-aiNIYCA |
unknown |
s8WMaKNjwvE |
unknown |
sENJFZ7WbLU |
EVP_PKEY_bits |
ssruelYxprY |
SSL_do_handshake |
tJsbVTdWjT4 |
unknown |
tZG2VIefbX0 |
unknown |
uITUdhDDAg8 |
HKDF |
uJ2ZXq4z3As |
unknown |
uM9UnC8KFjY |
unknown |
uihDBp74nLI |
EVP_PKEY_CTX_free |
ulzAPWCIBkw |
tls_free |
uz3bWkbHZu4 |
unknown |
v1vHv4jOJxQ |
unknown |
vLuIwBfrxrk |
unknown |
vR0po3nBkBs |
unknown |
vnwZHU5FvBQ |
unknown |
vo-cv5gnPUA |
unknown |
vu4FgwGayHY |
unknown |
wHdymWL7CbE |
unknown |
wNQT6Zn4UG4 |
X509_EXTENSION_free |
wbJDMMsje6s |
unknown |
whL1IRBxFZA |
unknown |
xBkcXV1OqWQ |
unknown |
xVv3qlSRldc |
unknown |
xZ1BME5qDv0 |
unknown |
xf6anoZpWRM |
X509_get0_pubkey |
xj7cFYOV4+Y |
unknown |
xpB+BNkO2Z0 |
unknown |
yLm956jsJpc |
unknown |
z8fsXF8JuL0 |
unknown |
zCa75KLWWn4 |