Repository navigation
feat(libSceSsl): implement certificate validity period and fingerprint queries - #5969
Conversation
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
jotitadev
left a comment
There was a problem hiding this comment.
Linux run, full build. The description covers only Windows 10.
Machine: Ubuntu 26.04, Intel i7-8700, GCC 15.2, Release, full build (-DBUILD_TESTING=ON), non-GPU tests. Head 490ced064 merged onto main 03c4cb5e7 (clean merge).
guest_sslandguest_ssl_loadpass, including the new PEM, validity-period and fingerprint cases.- Test only (Export.cpp and SslTypes.hpp from main):
GuestSslLoad.cppdoes not compile (SceSsl::RtcTickis undeclared), so the test cannot run against main. It only covers the change together with the new types. - Full non-GPU suite: 668/670. The two failures,
file_writer_binaryandfile_writer_text, also fail on plain main on this machine.
Written with AI assistance (Claude Code). I ran the builds and tests above on my machine.
|
Cross-validation on Windows 11 Pro 26220, NVIDIA RTX 4070 (596.21), MinGW GCC 15.2. This PR contains #5953's commit, so I built the stack main
The ABI question raised on #5953 applies here as well: the SharpProspero lines this PR cites ( Not checked: any TLS connection, Linux/macOS, a title that actually calls these functions. Written with Claude Code assistance (validation by a subagent, reviewed in this session). |
490ced0 to
4c06a6e
Compare
|
Rebased onto PR #5953's updated head (
|
4c06a6e to
7f78558
Compare
7f78558 to
9686fb0
Compare
adriadam10
left a comment
There was a problem hiding this comment.
Checked on the PR merged onto current main: build + ctest in scope pass (guest_ssl_load included), and the new test no longer compiles without the Export.cpp/SslTypes.hpp change. sceSslGetNotBefore/sceSslGetNotAfter/sceSslGetFingerprint match SharpProspero's Http.cs (context id first, ulong* ticks, hash types 0..5 as in SceSslFingerprintHashAlgorithm), and the 0001-01-01 epoch arithmetic is right. One thing to fix:
core/libs/prx/libSceSsl/Export.cpp:687sceSslGetPem(int, void*, char*, size_t, size_t*)has no source. SharpProspero'sHttp.cshas nosceSslGetPem, shadPS4's is an empty stub, and no reference gives the parameter order, the length semantics or the error for a too-small buffer (ErrorInvalidArgat line 699 is a guess).docs/dev/debt/libSceSsl.mdsays the signatures "follow SharpProspero", which is false for this one. Either keepsceSslGetPemthrowingNotImplemented_nid_no_patchand drop it (and its tests) from this PR, or cite a source for the signature and behaviour and list the unmeasured parts under "Unknown function info" in the debt line.
Everything else can stay as is.
9686fb0 to
fd5eb84
Compare
|
Picking this up while @adriadam10 is away. The code now leaves |
|
Updated the PR title and body to match (validity period and fingerprint queries only). Thanks! |
Stale: sceSslGetPem now stays a throwing stub and the title/body match (checked while @adriadam10 is away).
What
Implements
sceSslGetNotBefore,sceSslGetNotAfter,sceSslGetFingerprint, and updatessceSslClosesignature.sceSslGetNotBeforeandsceSslGetNotAfterconvert Mbed TLS certificate validity times (valid_fromandvalid_to) into microsecondRtcTickvalues (microseconds since civil year 0001 epoch) matchinglibSceRtc.sceSslGetFingerprintcomputes certificate digests (MD5,SHA-1,SHA-224,SHA-256,SHA-384,SHA-512) over the raw DER certificate payload using Mbed TLS message digest API.sceSslClosesignature is updated to takeint sslConnectionIdin line with SharpProspero, resolving its unknown signature technical debt entry.Tested
guest_ssl_load_testsverifying:sceSslGetNotBeforeandsceSslGetNotAftertick calculations against known fixture timestampssceSslGetFingerprintMD5, SHA-1, and SHA-256 digests against known hashessceSslClosethrows until transport is implementedctest -R guest_ssl(100% passed)python tools/check_conventions.py --base origin/mainChecklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)