]> git.codecow.com Git - nano25519.git/commitdiff
Start writing test for signing to output buffer.
authorChris Duncan <chris@zoso.dev>
Wed, 12 Aug 2026 08:51:12 +0000 (01:51 -0700)
committerChris Duncan <chris@zoso.dev>
Wed, 12 Aug 2026 08:51:12 +0000 (01:51 -0700)
test.mjs

index 3d8760c7a46e7aecbedcd24c324e568e42684b27..b5a792967f5df0429883803cbc561d84f67b8663 100644 (file)
--- 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