PageSourceSearch

https://phasoric.com/assets/PrivateExchangeLandingPage-CEiyBeA8.js

js phasoric.com collected 2026-09-24 14:51:33 UTC 16,554 bytes, 1 lines download raw bytes

1import{o as p}from"./rolldown-runtime-BNNRdYrd.js";import{b as g,r as f,s}from"./react-vendor-BqQF_9sx.js";import{t as r}from"./circle-check-DnG-FWXS.js";import{t as b}from"./clock-3-DnV2tYUU.js";import{t as o}from"./file-check-corner-Cecwb8wm.js";import{n as u,t as j}from"./receipt-text-ChiOiLvz.js";import{t as d}from"./key-round-Cosw_hEX.js";import{t as c}from"./lock-keyhole--2C30OQC.js";import{t as y}from"./mail-check-DnjGlImh.js";import{t as v}from"./user-round-check-BcNagiLG.js";import{t as N}from"./users-round-BuYW1ETL.js";import{Ht as w,It as x,Vt as i}from"./index-BQuIkJiK.js";import{t as k}from"./SEO-BHkDYAr3.js";var m={name:"file-key",size:24,node:[["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M4 12v6",key:"bg1pfk"}],["path",{d:"M4 14h2",key:"1sf9f8"}],["path",{d:"M9.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v4",key:"d56i0q"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],aliases:["file-key-2"]};m.node;var n=w(m),_=p(g(),1),e=f(),P=[{icon:y,title:"Invite each participant separately",body:"Set the participants, deadline, and file policy. Each person receives a distinct invitation they can revisit through the exchange deadline."},{icon:d,title:"Create keys in each browser",body:"Each participant enrolls independently. Their browser creates the private key and keeps it out of the organizer’s hands."},{icon:c,title:"Encrypt, review, and commit",body:"The file and optional access code are encrypted before upload. Once committed, a package cannot be swapped for another."},{icon:o,title:"Reveal both packages together",body:"Neither side can retrieve early. The second commitment releases both encrypted packages, which are verified and decrypted locally."}],z=[["Reciprocal disclosures","Exchange two confidential disclosures without letting one participant inspect the other submission first."],["Sealed proposals","Hold both proposals behind the same commitment boundary until each party has deposited its final package."],["Protected document swaps","Require a password-protected PDF and carry the access code inside the locally encrypted package."],["Time-bounded handoffs","Set an expiration window, track lifecycle state, and export a portable receipt bundle before cleanup."]],E=[{question:"Can the organizer decrypt the exchanged files?",answer:"No. The organizer does not receive either participant’s private key or bearer credential. Files and optional access codes are encrypted in each participant’s browser."},{question:"Can one participant retrieve the other file first?",answer:"No. A participant can retrieve the peer package only after both immutable commitments are recorded and the exchange is released."},{question:"What happens if a participant loses the enrolled link?",answer:"Reopen the original invitation in any supported browser before the exchange expires. It recreates the same participant access, including after one side has committed and when returning later to retrieve the released document."},{question:"Does Private Exchange verify participant identity?",answer:"No. Invitation delivery is not identity proof. For consequential exchanges, participants should verify identity through an appropriate independent channel."}];function q(){return(0,e.jsxs)("div",{className:"relative overflow-hidden rounded-[28px] border border-white/[.09] bg-[#090e14]/95 p-5 shadow-[0_35px_100px_rgba(0,0,0,.45),0_0_70px_rgba(0, 210, 255,.04)] sm:p-7",children:[(0,e.jsx)("div",{className:"pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_50%_45%,rgba(0, 210, 255,.1),transparent_32%),radial-gradient(circle_at_90%_0%,rgba(167,139,250,.08),transparent_35%)]"}),(0,e.jsxs)("div",{className:"relative flex items-center justify-between border-b border-white/[.06] pb-4 text-[9px] font-bold uppercase tracking-[.16em] text-basalt-400",children:[(0,e.jsx)("span",{children:"Private exchange"}),(0,e.jsxs)("span",{className:"flex items-center gap-1.5 text-emerald-300",children:[(0,e.jsx)(x,{size:12})," Encrypted before upload"]})]}),(0,e.jsx)("div",{className:"relative mt-7 grid gap-4 sm:grid-cols-[1fr_auto_1fr] sm:items-center",children:[["Participant A","Browser-held key","Package committed"],["Participant B","Browser-held key","Package committed"]].map(([t,a,h],l)=>(0,e.jsxs)(_.Fragment,{children:[l===1?(0,e.jsxs)("div",{className:"order-2 flex flex-col items-center gap-2 sm:order-none",children:[(0,e.jsx)("div",{className:"flex h-14 w-14 items-center justify-center rounded-2xl border border-accent-cyan/20 bg-accent-cyan/[.07] text-accent-cyan shadow-[0_0_35px_rgba(0, 210, 255,.1)]",children:(0,e.jsx)(c,{size:23})}),(0,e.jsx)("span",{className:"text-center text-[9px] font-bold uppercase tracking-[.15em] text-accent-cyan",children:"Atomic release"})]}):null,(0,e.jsxs)("article",{className:`${l===0?"order-1":"order-3"} rounded-2xl border border-white/[.08] bg-black/20 p-5 sm:order-none`,children:[(0,e.jsxs)("div",{className:"flex items-center gap-3",children:[(0,e.jsx)("span",{className:"flex h-9 w-9 items-center justify-center rounded-xl border border-white/10 bg-white/[.035] text-violet-200",children:(0,e.jsx)(u,{size:17})}),(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{className:"block text-sm text-white",children:t}),(0,e.jsx)("span",{className:"text-[9px] text-basalt-400",children:"Independent enrollment"})]})]}),(0,e.jsxs)("div",{className:"mt-5 space-y-2 text-[10px] text-basalt-400",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(d,{size:12,className:"text-accent-cyan"}),a]}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(r,{size:12,className:"text-emerald-300"}),h]})]})]})]},t))}),(0,e.jsx)("div",{className:"relative mt-5 grid gap-3 sm:grid-cols-3",children:[[b,"No early retrieval"],[n,"Local decryption"],[j,"Signed re
1ceipt chain"]].map(([t,a])=>(0,e.jsxs)("div",{className:"flex items-center gap-2 rounded-xl border border-white/[.06] bg-white/[.02] px-3 py-3 text-[9px] text-basalt-400",children:[(0,e.jsx)(t,{size:13,className:"text-accent-cyan"}),a]},a))})]})}function U(){return(0,e.jsxs)("div",{className:"min-h-screen overflow-hidden bg-[#0B0F19] pb-24 pt-16 text-basalt-100",children:[(0,e.jsx)(k,{title:"Private Exchange Hub",description:"Exchange sensitive files through independent enrollment, browser-held keys, simultaneous release, local decryption, and signed receipts.",path:"/private-exchange",keywords:["secure file exchange","simultaneous file exchange","end-to-end encrypted document exchange","private document swap"],schemaType:"SoftwareApplication",faq:E,breadcrumbs:[{name:"Product",path:"/"},{name:"Private Exchange Hub",path:"/private-exchange"}]}),(0,e.jsxs)("section",{className:"relative px-4 pb-20 pt-20 sm:px-6 sm:pt-28",children:[(0,e.jsx)("div",{className:"landing-grid pointer-events-none absolute inset-0 opacity-60"}),(0,e.jsx)("div",{className:"landing-glow pointer-events-none absolute left-1/2 top-10 h-[520px] w-[900px] max-w-[120vw] -translate-x-1/2"}),(0,e.jsxs)("div",{className:"relative mx-auto grid max-w-6xl gap-12 lg:grid-cols-[.9fr_1.1fr] lg:items-center",children:[(0,e.jsxs)("div",{children:[(0,e.jsxs)("span",{className:"inline-flex items-center gap-2 rounded-full border border-accent-cyan/15 bg-accent-cyan/[.04] px-3 py-1.5 text-[10px] font-bold uppercase tracking-[.17em] text-accent-cyan",children:[(0,e.jsx)(x,{size:13})," Private Exchange Hub"]}),(0,e.jsxs)("h1",{className:"mt-7 max-w-2xl font-outfit text-5xl font-semibold leading-[1.02] tracking-[-.04em] text-white sm:text-6xl",children:["Commit first. ",(0,e.jsx)("span",{className:"landing-gradient-text",children:"Reveal together."})]}),(0,e.jsx)("p",{className:"mt-6 max-w-xl text-base leading-8 text-basalt-400 sm:text-lg",children:"Exchange confidential files without giving either participant an early look, or giving the organizer either private decryption key."}),(0,e.jsxs)("div",{className:"mt-8 flex flex-col gap-3 sm:flex-row",children:[(0,e.jsxs)(s,{to:"/app/vault-exchange?target=private-exchange",className:"landing-primary",children:["Open Exchange Hub ",(0,e.jsx)(i,{size:15})]}),(0,e.jsx)(s,{to:"/guides/private-exchange",className:"landing-secondary",children:"Read the security guide"})]}),(0,e.jsx)("p",{className:"mt-4 text-[10px] leading-5 text-basalt-400",children:"An account is required to organize an exchange. Invited participants enroll through their individual claim links."})]}),(0,e.jsx)(q,{})]})]}),(0,e.jsx)("section",{className:"border-y border-white/[.06] bg-white/[.012] px-4 py-20 sm:px-6",children:(0,e.jsxs)("div",{className:"mx-auto max-w-6xl",children:[(0,e.jsxs)("div",{className:"max-w-3xl",children:[(0,e.jsx)("span",{className:"landing-kicker",children:"A mutual commitment protocol"}),(0,e.jsx)("h2",{className:"landing-heading",children:"Four clear stages. No trust theater."}),(0,e.jsx)("p",{className:"landing-copy",children:"The exchange boundary is visible from invitation through receipt export, so both participants know what is fixed and when retrieval becomes possible."})]}),(0,e.jsx)("ol",{className:"mt-10 grid gap-4 md:grid-cols-2 lg:grid-cols-4",children:P.map((t,a)=>(0,e.jsxs)("li",{className:"feature-card",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsx)("span",{className:"feature-icon",children:(0,e.jsx)(t.icon,{size:18})}),(0,e.jsxs)("span",{className:"font-mono text-[10px] text-basalt-400",children:["0",a+1]})]}),(0,e.jsx)("h3",{className:"mt-5 font-outfit text-lg font-semibold text-white",children:t.title}),(0,e.jsx)("p",{className:"mt-3 text-xs leading-6 text-basalt-400",children:t.body})]},t.title))})]})}),(0,e.jsx)("section",{className:"px-4 py-24 sm:px-6",children:(0,e.jsxs)("div",{className:"mx-auto grid max-w-6xl gap-8 lg:grid-cols-2",children:[(0,e.jsxs)("article",{className:"rounded-3xl border border-emerald-300/15 bg-emerald-300/[.025] p-7 sm:p-9",children:[(0,e.jsx)(c,{className:"text-emerald-300",size:24}),(0,e.jsx)("span",{className:"mt-6 block text-[10px] font-bold uppercase tracking-[.17em] text-emerald-200",children:"Stays out of Phasoric’s hands"}),(0,e.jsx)("h2",{className:"mt-3 font-outfit text-3xl font-semibold text-white",children:"The secrets required for the exchange."}),(0,e.jsx)("ul",{className:"mt-7 space-y-4 text-sm leading-6 text-basalt-400",children:["Participant private decryption keys","Plaintext files","Packaged passwords or access codes","Finished participant bearer credentials"].map(t=>(0,e.jsxs)("li",{className:"flex gap-3",children:[(0,e.jsx)(r,{size:16,className:"mt-1 shrink-0 text-emerald-300"}),t]},t))})]}),(0,e.jsxs)("article",{className:"rounded-3xl border border-accent-cyan/15 bg-accent-cyan/[.025] p-7 sm:p-9",children:[(0,e.jsx)(N,{className:"text-accent-cyan",size:24}),(0,e.jsx)("span",{className:"mt-6 block text-[10px] font-bold uppercase tracking-[.17em] text-accent-cyan",children:"Phasoric coordinates"}),(0,e.jsx)("h2",{className:"mt-3 font-outfit text-3xl font-semibold text-white",children:"The shared state that makes the exchange fair."}),(0,e.jsx)("ul",{className:"mt-7 space-y-4 text-sm leading-6 text-basalt-400",children:["Participant names, email addresses, and public keys","The selected exchange policy and deadline","Encrypted packages, integrity hashes, and lifecycle state","A signed, exportable receipt chain"].map(t=>(0,e.jsxs)("li",{className:"flex gap-3",children:[(0,e.jsx)(r,{size:16,className:"mt-1 shrink-0 text-accent-cyan"}),t]},t))})]})]})}),(0,e.jsx)("section",{className:"border-y border-white/[.06] bg-white/[.012] px-4 py-24 sm:px-6",children:(0,e.jsxs)("div",{className:"mx-auto max-w-6xl",children:[(0,e.jsxs)("div",{className:"grid gap-10 lg:grid-cols-[.75fr_1.25fr] lg:items-end",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("span",{className:"landing-kicker",children:"Built for consequential handoffs"}),(0,e.jsx)("h2",{className:"landing-heading",children:"Use it when sequence matters as much as secrecy."})]}),(0,e.jsx)("p",{className:"landing-copy lg:mt-0",children:"Private Exchange is designed for two-party, one-package-each workflows. It is not a general collaboration folder, identity-verification service, or recoverable key escrow."})]}),(0,e.jsx)("div",{className:"mt-10 grid gap-4 sm:grid-cols-2",children:z.map(([t,a])=>(0,e.jsxs)("article",{className:"rounded-2xl border border-white/[.07] bg-black/15 p-6",children:[(0,e.jsxs)("h3",{className:"flex items-center gap-3 font-outfit text-lg font-semibold text-white",children:[(0,e.jsx)(n,{size:17,className:"text-violet-300"}),t]}),(0,e.jsx)("p",{className:"mt-3 text-xs leading-6 text-basalt-400",children:a})]},t))})]})}),(0,e.jsx)("section",{className:"px-4 py-24 sm:px-6",children:(0,e.jsxs)("div",{className:"mx-auto grid max-w-6xl gap-8 lg:grid-cols-[1fr_.8fr]",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("span",{className:"landing-kicker",children:"Policy choices"}),(0,e.jsx)("h2",{className:"landing-heading",children:"Set the file boundary before anyone commits."}),(0,e.jsxs)("div",{className:"mt-8 grid gap-4 sm:grid-cols-2",children:[(0,e.jsxs)("article",{className:"feature-card",children:[(0,e.jsx)(o,{size:20,className:"text-accent-cyan"}),(0,e.jsx)("h3",{className:"mt-5 font-outfit text-xl font-semibold text-white",children:"General exchange"}),(0,e.jsx)("p",{className:"mt-3 text-xs leading-6 text-basalt-400",children:"Use broader file types with the same independent enrollment, local encryption, atomic release, and receipt protocol."})]}),(0,e.jsxs)("article",{className:"feature-card feature-card-violet",children:[(0,e.jsx)(n,{size:20,className:"text-violet-300"}),(0,e.jsx)("h3",{className:"mt-5 font-outfit text-xl font-semibold text-white",children:"Protected PDF"}),(0,e.jsx)("p",{className:"mt-3 text-xs leading-6 text-basalt-400",children:"Require a PDF, a password that opens it, and an explicit final commitment confirmation in the participant browser."})]})]})]}),(0,e.jsxs)("aside",{className:"rounded-3xl border border-amber-300/15 bg-amber-300/[.025] p-7 sm:p-8",children:[(0,e.jsx)(v,{size:22,className:"text-amber-300"}),(0,e.jsx)("h2",{className:"mt-5 font-outfit text-2xl font-semibold text-white",children:"The important limits are part of the product."}),(0,e.jsxs)("ul",{className:"mt-6 space-y-4 text-xs leading-6 text-basalt-400",children:[(0,e.jsxs)("li",{children:[(0,e.jsx)("strong",{className:"text-white",children:"Identity:"})," an invitation email is not proof of who opened it. Verify identity independently when the exchange is consequential."]}),(0,e.jsxs)("li",{children:[(0,e.jsx)("strong",{className:"text-white",children:"Recovery:"})," keep the original invitation private and use it to return from any supp
1orted browser until the exchange expires."]}),(0,e.jsxs)("li",{children:[(0,e.jsx)("strong",{className:"text-white",children:"Cancellation:"})," after enrollment begins, unilateral organizer cancellation is restricted; committed exchanges require mutual cancellation or expiration."]}),(0,e.jsxs)("li",{children:[(0,e.jsx)("strong",{className:"text-white",children:"Policy evidence:"})," protected-PDF checks run in the participant browser because the server cannot decrypt the file."]})]}),(0,e.jsxs)(s,{to:"/guides/private-exchange",className:"mt-7 inline-flex items-center gap-2 text-xs font-semibold text-amber-200 hover:text-white",children:["Review the complete process and threat boundaries ",(0,e.jsx)(i,{size:13})]})]})]})}),(0,e.jsx)("section",{className:"px-4 sm:px-6",children:(0,e.jsx)("div",{className:"cta-panel mx-auto max-w-6xl overflow-hidden rounded-3xl p-9 text-center sm:p-14",children:(0,e.jsxs)("div",{className:"relative",children:[(0,e.jsx)("span",{className:"landing-kicker",children:"Ready when both sides are"}),(0,e.jsx)("h2",{className:"mx-auto mt-4 max-w-3xl font-outfit text-3xl font-semibold text-white sm:text-4xl",children:"Create the exchange. Let the protocol enforce the order."}),(0,e.jsx)("p",{className:"mx-auto mt-4 max-w-xl text-sm leading-7 text-basalt-400",children:"Invite two participants, choose a policy and deadline, then follow every enrollment, commitment, release, and receipt from one hub."}),(0,e.jsxs)("div",{className:"mt-8 flex flex-col justify-center gap-3 sm:flex-row",children:[(0,e.jsxs)(s,{to:"/app/vault-exchange?target=private-exchange",className:"landing-primary",children:["Open Exchange Hub ",(0,e.jsx)(i,{size:15})]}),(0,e.jsx)(s,{to:"/privacy",className:"landing-secondary",children:"Explore privacy architecture"})]})]})})})]})}export{U as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.