Repository navigation
Conversation
|
FYI: Making Changes |
Progress report (029463c → a36ec48)📈 System libraries: 26.06% (+0.08%, +29 implemented, +2 declared functions) ✅ 29 implemented
⚪ 2 behaviourally empty (constant return or throw)
🆕 2 declared as stubs
Changed libraries (implemented exports)
|
Review follow-up — interoperability fixesPushed follow-up commit Changes made:
Regression coverage added:
Validation:
The original 100-export scope is unchanged. No new dependencies, proprietary firmware artifacts or additional NID implementations were introduced. Remaining firmware-equivalence limitations are documented in Full runtime validation of the follow-up remains pending the Windows CI result. |
|
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.
|
|
@xdCloudy thanks for this, and for building on the mbedTLS and SHA code already in the tree. Reviewed at 53d00fe. There are a few correctness problems, and a large overlap with open PRs that decides how this can land. Correctness
Overlap and size
Count, sources and tests
|
9b55867 to
1e6c1f6
Compare
|
@oneandonlydean Thanks for the detailed review. I've re-scoped #12928 in response to the correctness, overlap and review-size concerns. Changes madeThe original broad cryptographic implementation has been replaced with a focused BIO follow-up containing only three new exports:
This now builds on the guest-compatible BIO implementation from #9536 rather than maintaining a separate BIO object representation. The file adapter uses AnyPS5's guest File/socket ownership and cleanup follow the caller's close flag. Overlap resolutionThe previously proposed BIGNUM, digest, HMAC, CMAC, EVP cipher, ERR, OBJ and PKEY implementations have been removed from this PR's scope. This also removes the CBC padding, EVP cipher layout, CFB8 identifier, PKEY lifecycle and HMAC paths identified in your review. The existing memory BIO implementation is inherited from #9536. Dependency: #9536, with #9535 as its prerequisite. TestsAdded regression coverage for:
Validation completed:
Full compilation and runtime CTest execution remain outstanding and are not claimed as passing. DocumentationThe PR description now separates implementation provenance, dependencies, validation and known limitations. The technical-debt entry documents unsupported socket retry behaviour, pending-byte queries and extended BIO controls. Thanks again for identifying these issues. The revised scope is intended to preserve the genuinely new functionality while respecting the older reviewed implementations. |
|
Windows run of this head (
AI-assisted: yes (Claude Code). |
|
@xdCloudy Reviewed at bb735ca. Thanks for narrowing this to the three BIO adapters and building on #9536/#9535; that removes the earlier crypto-family blockers. Two file BIO result mappings still need fixing in core/libs/prx/libSceLibreSsl/src/BioFileSocket.cpp:
The adapter path uses the existing guest file/socket interfaces and the narrower scope is welcome. Please retain the prerequisite landing/reconciliation note and post the focused adapter tests on the revised head. No request to restore the removed crypto batch. |
|
@oneandonlydean Thanks for the follow-up review. I've pushed the requested corrections to #12928. Updated head: Changes made
Regression coverageExtended
The existing file reset assertion was also updated to match the corrected return convention. ValidationThe latest GitHub Build workflow is queued: https://github.com/boykopovar/AnyPS5/actions/runs/40944881454 Full compilation and runtime CTest results are therefore still pending. I'm not claiming those tests have passed. Scope and dependenciesThe PR remains limited to the original three BIO exports:
Depends on: #9536 (which depends on #9535). The prerequisite landing/reconciliation requirement remains unchanged. This branch must be reconciled with No removed cryptographic implementations have been restored, and no additional exports or third-party dependencies have been introduced. |
Validation and dependency updateThe latest Build workflow for head The change-selected runtime CTest stage was skipped, so this is not a fresh runtime pass for the latest head. The previously reported Windows BIO tests were run against an earlier revision; the subsequent file-read and reset regression tests still require runtime confirmation. Dependency order
The PR remains scoped to The stacked branch must be reconciled against the final merged prerequisite implementations before this PR can land. No unsupported claim of independent merge readiness is being made. |
What
Implement three previously stubbed
libSceLibreSslBIO exports:BIO_s_fileBIO_new_fpBIO_new_socketThis PR is now a focused follow-up to #9536, which implements the underlying memory BIO framework and guest-compatible BIO structures.
The previous 100-export implementation has been removed from this PR's proposed scope following maintainer review.
Implementation
File BIO
FileStreamobjects.Socket BIO
sceNetSendandsceNetRecvfor socket I/O.sceNetSocketClosefor owned socket cleanup.Integration
Both adapters use the
LibreSsl::BioandLibreSsl::BioMethodABI defined by the prerequisite BIO implementation.They use the existing BIO allocation, callback dispatch, reference handling and cleanup machinery.
No independent, incompatible BIO object representation is introduced.
Dependencies
Depends on: #9536
PR #9536 provides the underlying BIO implementation and itself builds on the earlier ERR work in #9535.
This branch is prepared against the #9536 implementation at:
07516032a788a3a3d294b00342ea7b51f502b9ffOnce the prerequisite PRs merge, this branch must be reconciled against the resulting
mainbefore merging.Sources and implementation provenance
The three adapter implementations are original compatibility code based on:
libSceNetsocket interfaces.The implementation does not copy LibreSSL or OpenSSL source code.
No proprietary firmware binaries, extracted code or decompiler output are included.
The original PS5 13.60 export identification remains the basis for selecting these three functions.
The adapter behaviour has not been independently verified through firmware execution or console testing.
Behaviour and limitations
These limitations are documented in
docs/dev/debt/libSceLibreSsl.md.Tested
Static validation
-Wall -Wextra -Werrorpassed.python3 tools/check_conventions.py --base HEADpassed.git diff --checkpassed.Regression tests added
The added tests passed syntax validation.
Not tested
Runtime test results must be supplied before this PR is considered merge-ready.
Checklist
main; no other open PR implements these three new exports. Reconcile withmainafter feat(libSceLibreSsl): implement memory BIOs #9536 merges.NotImplemented_nid_no_patch; remaining BIO limitations are documented.mdfiles or images added to the repositoryMaintainer review follow-up
This revision addresses the scope and overlap concerns raised in the review of the original implementation.
The previously proposed BIGNUM, digest, HMAC, CMAC, EVP cipher, ERR, OBJ and PKEY implementations are no longer part of this PR's proposed changes.
Consequently, the reported CBC padding, EVP cipher layout, CFB8 identifier, PKEY and HMAC issues are outside the revised scope.
The memory BIO implementation is inherited from #9536 rather than independently reimplemented.
The remaining work is limited to the three file/socket BIO exports above.
The prerequisite dependency and outstanding runtime validation are explicitly disclosed.