Quickstart
Installation
# npm (recommended)
npm i ulda-sign
# or (scoped alias if you publish under your org)
npm i @zeroam/ulda-sign
Note: The library has no mandatory runtime deps. Optional hash functions can be provided via CDN or direct JS functions.
One-minute test (Browser)
<script src="https://cdn.jsdelivr.net/npm/ulda-sign@1.0.6/dist/ulda-sign.cjs.min.js"></script>
<script>
const signer = new UldaSign({
fmt : { export : 'hex' }, // hex | base64 | bytes
sign: { N: 5, mode: 'X', hash: 'SHA-256', originSize: 256 }
});
(async () => {
const origin0 = await signer.New(); // generation 0
const sig0 = await signer.sign(origin0);
const origin1 = await signer.stepUp(origin0);
const sig1 = await signer.sign(origin1);
console.log('verifies?', await signer.verify(sig0, sig1)); // → true
})();
</script>
One-minute test (Node.js, ESM)
import UldaSign from 'ulda-sign';
const signer = new UldaSign({ sign: { N: 5, mode: 'S' } });
const origin0 = await signer.New();
const sig0 = await signer.sign(origin0);
const origin1 = await signer.stepUp(origin0);
const sig1 = await signer.sign(origin1);
console.log(await signer.verify(sig0, sig1)); // true
Typical config (recommended defaults)
new UldaSign({
fmt : { export: 'bytes' }, // bytes | hex | base64
sign: {
N: 5, // ladder height (≥ 2)
mode: 'S', // 'S' or 'X'
hash: 'SHA-256', // built-ins or custom
originSize: 256 // bits; in X-mode = digest length
}
});