snapkitty
agents
python
File size: 801 Bytes
662ceed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { createHash, timingSafeEqual } from 'node:crypto';

export function sha256(data: string): string {
  return createHash('sha256').update(data, 'utf-8').digest('hex');
}

export function verifyHash(data: string, expectedHash: string): boolean {
  const computed = sha256(data);
  const a = Buffer.from(computed, 'hex');
  const b = Buffer.from(expectedHash, 'hex');
  if (a.length !== b.length) return false;
  return timingSafeEqual(a, b);
}

export function computeEntryHash(entry: { seq: number; prev_hash: string; event_id: string; agent: string; action: string; verdict: string; timestamp: string }): string {
  const input = `${entry.seq}|${entry.prev_hash}|${entry.event_id}|${entry.agent}|${entry.action}|${entry.verdict}|${entry.timestamp}`;
  return sha256(input);
}