feat(tls): one Transport of TCP or TLS over TCP, upgradable in the middle #522
Loading…
Reference in a new issue
No description provided.
Delete branch "loop/115-tls-transport"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #115
What
Transportinstd/tls: plain TCP or TLS over TCP behindreceiveBuffer,sendBuffer,finish,remote, withplain,encrypted,isEncrypted,tls, and the middle upgrade:upgrade(client) andupgradeAccepting(server), with the semantics ofTlsStream.connect/TlsStream.accept.isClosed()), because the stream holds half a handshake.Readerbefore upgrading (STARTTLS injection, documented on the type).std/httpdrops its privatetransport.trband usesstd/tls'sTransport.Tests and docs
tests/conformance/tls-transport.trb: plain exchange, STARTTLS-style upgrade on both ends with ALPN, second upgrade refused, wrong name ->isCertificateRejected()thenisClosed(),Transport.encrypted.docs/standard-library/tls.md(and the skill mirror),docs/design/FIRST-PARTY.mdrow 17.Seed impact
None: no compiler, runtime or
seed/change.torb/postgres'sWirecopy is outside this repo and stays until it moves ontoTransport.Not run locally
No torb binary in the authoring environment: nothing was compiled or formatted before CI; tier A on the forge is the first run.
ff60cab1b62beb1bb50cNot mergeable on
2beb1bb: rebase onto main (da96427); no other blockers.2beb1bb50caed0424374Review of
aed0424(Closes #115):tests/conformance/tls-transport.trbcovers plain exchange, STARTTLS-style upgrade on both ends with ALPN, second upgrade refused (transport goes on), wrong name ->isCertificateRejected()thenisClosed(),Transport.encrypted. CI green on this head (tier A, bootstrap linux-x64, gates, pdisc).brokenis set only on a failed handshake and short-circuits all later operations withclosed();secureis set only on success; the already-encrypted refusal leaves state untouched. Same four operations as the removedstd/httpcopy, so the callers only change their import.std/httponto the type; no compiler/runtime/seed change.Readerbefore upgrading, close if bytes are left) is documented on the type; the test key/cert are the existing test fixtures.tls.md(+ skill mirror),FIRST-PARTY.mdrow 17,http.mdmention dropped.Non-blocking: