Add packaged DLP broker and protected Windows service foundation
This commit is contained in:
1 parent
95d23f4e0b
commit
7b5057901a
140 files changed
+11215
-60
No files matched your search
@@ -0,0 +1,23 @@
|
||||
'use strict';
|
||||
const {app,session}=require('electron');
|
||||
const {createBrokerCertificatePins}=require('../../apps/browser/broker-certificate-pins.cjs');
|
||||
app.disableHardwareAcceleration();
|
||||
let initialized=false;
|
||||
process.once('disconnect',()=>app.exit(0));
|
||||
process.on('message',async input=>{
|
||||
if(input?.type==='stop'){app.exit(0);return;}
|
||||
if(initialized||input?.type!=='start')return;initialized=true;
|
||||
try{
|
||||
app.setPath('userData',input.profile);await app.whenReady();
|
||||
const partition=session.fromPartition('certificate-pin-native',{cache:false});
|
||||
const pins=createBrokerCertificatePins({generation:'synthetic-generation',policyVersion:4,current:()=>true,authorizedAuthority:authority=>authority===input.leaf.authority});
|
||||
pins.accept({...input.leaf,generation:'synthetic-generation',policyVersion:4});
|
||||
partition.setCertificateVerifyProc((request,callback)=>pins.verify(request,callback));
|
||||
await partition.setProxy({mode:'direct'});
|
||||
const allowed=await partition.fetch(input.publicURL,{signal:AbortSignal.timeout(10000)});
|
||||
const publicBody=await allowed.text();let denied=false;
|
||||
try{await partition.fetch(input.untrustedURL,{signal:AbortSignal.timeout(10000)});}catch{denied=true;}
|
||||
await partition.closeAllConnections();pins.revoke();
|
||||
process.send({type:'proof',publicStatus:allowed.status,publicBody,untrustedRejected:denied,electron:process.versions.electron,chromium:process.versions.chrome});
|
||||
}catch{process.send({type:'fault',reason:'certificate-native-proof-failed'});}
|
||||
});
|
||||
Reference in new issue
Block a user