Implement managed browser security, individual agents and observability
This commit is contained in:
1 parent
ff482ebe23
commit
ea448de2d4
172 files changed
+5404
-347
No files matched your search
@@ -1,10 +1,9 @@
|
||||
import {generateKeyPairSync} from 'node:crypto';
|
||||
import {managementIdentity} from './channel-identity.mjs';
|
||||
import channel from '../../packages/core/policy-channel.cjs';
|
||||
|
||||
export function installPolicyChannel(app,store,device){
|
||||
let keys=store.get('channelSigningKeys');
|
||||
if(!keys){const pair=generateKeyPairSync('ml-dsa-87');keys={privateKey:pair.privateKey.export({type:'pkcs8',format:'pem'}),publicKey:pair.publicKey.export({type:'spki',format:'pem'})};store.put('channelSigningKeys',keys);}
|
||||
const ed=store.get('keys').privateKey,identity=channel.identity(ed,keys.privateKey,keys.publicKey),pending=new Map();
|
||||
const shared=managementIdentity(store),keys={privateKey:shared.pqPrivate,publicKey:shared.publicKey};
|
||||
const ed=shared.edPrivate,identity=shared.identity,pending=new Map();
|
||||
app.get('/api/device/channel/identity',device,(_req,res)=>res.json(identity));
|
||||
app.post('/api/device/channel/challenge',device,(req,res)=>{
|
||||
for(const [id,item] of pending)if(item.bundle.expiresAt<=Date.now()||item.bundle.deviceId===req.device.id)pending.delete(id);
|
||||
|
||||
Reference in new issue
Block a user