From: Chris Duncan Date: Wed, 12 Aug 2026 08:51:12 +0000 (-0700) Subject: Start writing test for signing to output buffer. X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=0dcec0f978a01997a1834047700949d9c6d6117a;p=nano25519.git Start writing test for signing to output buffer. --- diff --git a/test.mjs b/test.mjs index 3d8760c..b5a7929 100644 --- a/test.mjs +++ b/test.mjs @@ -29,7 +29,7 @@ function overlaps (a, b) { && a.byteLength !== 0 } -let result, test, passes = 0, failures = 0 +let outbuf, result, test, passes = 0, failures = 0 // Check string input validation try { @@ -288,27 +288,34 @@ failures += +!test // Check sync imports with byte inputs result = derive(NANO_ORG_VECTOR.privateKeyBytes) test = [...result].map(b => b.toString(16).padStart(2, '0')).join('').toLowerCase() === NANO_ORG_VECTOR.publicKey.toLowerCase() -check(`derive from private key string ${NANO_ORG_VECTOR.privateKey}`, test) +check(`derive from private key bytes ${NANO_ORG_VECTOR.privateKey}`, test) passes += +test failures += +!test result = sign(NANO_ORG_VECTOR.blockHashBytes, NANO_ORG_VECTOR.secretKeyBytes) test = [...result].map(b => b.toString(16).padStart(2, '0')).join('').toLowerCase() === NANO_ORG_VECTOR.signature.toLowerCase() -check(`sign message string ${NANO_ORG_VECTOR.blockHash}`, test) +check(`sign message bytes ${NANO_ORG_VECTOR.blockHash}`, test) passes += +test failures += +!test result = verify(NANO_ORG_VECTOR.signatureBytes, NANO_ORG_VECTOR.blockHashBytes, NANO_ORG_VECTOR.publicKeyBytes) test = result === true -check(`verify signature string ${NANO_ORG_VECTOR.signature}`, test) +check(`verify signature bytes ${NANO_ORG_VECTOR.signature}`, test) passes += +test failures += +!test // Check sync imports with byte inputs and preallocated output buffer -const output = new Uint8Array(32) -result = derive(NANO_ORG_VECTOR.privateKeyBytes, output) -test = overlaps(result, output) && [...result].map(b => b.toString(16).padStart(2, '0')).join('').toLowerCase() === NANO_ORG_VECTOR.publicKey.toLowerCase() -check(`derive from private key string ${NANO_ORG_VECTOR.privateKey}`, test) +outbuf = new Uint8Array(32) +result = derive(NANO_ORG_VECTOR.privateKeyBytes, outbuf) +test = overlaps(result, outbuf) && [...result].map(b => b.toString(16).padStart(2, '0')).join('').toLowerCase() === NANO_ORG_VECTOR.publicKey.toLowerCase() +check(`derive from private key bytes ${NANO_ORG_VECTOR.privateKey} and allocate result to output buffer`, test) +passes += +test +failures += +!test + +outbuf = new Uint8Array(64) +result = sign(NANO_ORG_VECTOR.blockHashBytes, NANO_ORG_VECTOR.secretKeyBytes, outbuf) +test = overlaps(result, outbuf) && [...result].map(b => b.toString(16).padStart(2, '0')).join('').toLowerCase() === NANO_ORG_VECTOR.signature.toLowerCase() +check(`sign message bytes ${NANO_ORG_VECTOR.blockHash} and allocate result to output buffer`, test) passes += +test failures += +!test