sharenet/frontend/test_wasm_node.js
continuist dc050d5e34
Some checks failed
Podman Rootless Demo / test-backend (push) Has been skipped
Podman Rootless Demo / test-frontend (push) Has been skipped
Podman Rootless Demo / build-backend (push) Failing after 1s
Podman Rootless Demo / deploy-prod (push) Has been skipped
Podman Rootless Demo / build-frontend (push) Has been skipped
Add self-sovereign passports
2025-10-20 21:15:11 -04:00

47 lines
No EOL
1.6 KiB
JavaScript

const fs = require('fs');
const path = require('path');
// Read the SPF file
const spfPath = path.join(process.env.HOME, 'sharenet_passport_creator', 'Test.spf');
const spfData = fs.readFileSync(spfPath);
console.log('Testing SPF file parsing with WASM...');
console.log('File size:', spfData.length, 'bytes');
// This would require loading the WASM module in Node.js
// For now, let's just verify the file structure
const cbor = require('cbor');
try {
const parsed = cbor.decode(spfData);
console.log('\n✅ CBOR structure is valid');
// Check required fields
const requiredFields = [
'enc_seed', 'kdf', 'cipher', 'salt', 'nonce',
'public_key', 'did', 'univ_id', 'created_at',
'version', 'enc_user_profiles'
];
const missingFields = requiredFields.filter(field => !(field in parsed));
if (missingFields.length > 0) {
console.log('❌ Missing fields:', missingFields);
} else {
console.log('✅ All required fields present');
console.log('\nField types and sizes:');
for (const [key, value] of Object.entries(parsed)) {
if (Array.isArray(value)) {
console.log(` ${key}: array[${value.length}]`);
} else if (typeof value === 'string') {
console.log(` ${key}: string("${value}")`);
} else if (typeof value === 'number') {
console.log(` ${key}: number(${value})`);
} else {
console.log(` ${key}: ${typeof value}`);
}
}
}
} catch (error) {
console.log('❌ Failed to parse CBOR:', error.message);
}