supercop.ts

cross-compiled javascript implementation of ed25519 based on supercop-ref10
git clone git://git.finwo.net/lib/supercop.ts
Log | Files | Refs | README | LICENSE

commit 7b4342d46052d439f408380afc9c7d82ea46bff7
parent bf63c98616337735eb3380c9522b9a74cc105d22
Author: finwo <finwo@pm.me>
Date:   Wed, 11 Aug 2021 23:39:16 +0200

Added test specific to issue #4

Diffstat:
Atest/0007-message-size-limit.js | 25+++++++++++++++++++++++++
1 file changed, 25 insertions(+), 0 deletions(-)

diff --git a/test/0007-message-size-limit.js b/test/0007-message-size-limit.js @@ -0,0 +1,25 @@ +// This test was built based on a user-submitted bug: https://github.com/finwo/supercop/issues/4 + +const isBuffer = require('is-buffer'); +const crypto = require('crypto'); +const test = require('tape'); +const lib = require('../index'); + +test('Message size limit',async t => { + t.plan(32); + + const seed = crypto.randomBytes(32); + const keypair = await lib.createKeyPair(seed); + + // Generates 8 loops, from 800..1500 + for(let size = 800; size <= 1500; size += 100) { + const message = Buffer.alloc(size); + const signature_kp = await keypair.sign(message); + const signature_lib = await lib.sign(message, keypair.publicKey, keypair.secretKey); + + t.ok(isBuffer(signature_kp) , `kp.sign(${size}) returns buffer`); + t.ok(isBuffer(signature_lib) , `lib.sign(${size}) returns buffer`); + t.is(signature_kp.length , 64, `kp.sign(${size}) returns buffer of 64 bytes`); + t.is(signature_lib.length, 64, `lib.sign(${size}) returns buffer of 64 bytes`); + } +});