[noise] Test vector format

Alex alex at centromere.net
Wed Apr 6 23:24:11 PDT 2016


On Wed, 6 Apr 2016 22:38:53 -0700
Trevor Perrin <trevp at trevp.net> wrote:

>  - Error testing might be better handled by specifying which
> particular ciphertext should trigger an error.  For example, have a
> "payload": "ERROR" special value, instead of "should_fail".  The test
> framework will expect decrypting the corresponding ciphertext to fail.
> 

I tend to dislike special values. What about a '"fail": true' key?

>  - I think I agree with Jonathan that pattern / cipher / hash /
> curve-type can be specified once, outside the party-specific blocks.
> 

The handshakes and keys can be defined outside of the vector array
entirely. I've attached an updated schema. What do you think?

> About JSON:  I worry about JSON files with large numbers of tests,
> since I think streaming APIs for JSON are less common than
> document-based APIs.  Also, I worry about someone developing for
> embedded systems, or smartcards, or IoT or something, who doesn't have
> JSON tools lying around.
> 

Given the ubiquity of JSON tools, I don't suspect it would be difficult
to convert the vectors in to a format more suitable for embedded work.

> Would it be reasonable to make the format JSON-compatible but more
> restrictive, to make it easier to consume for dumb streaming parsers,
> but still allow consumers to use JSON?  This would make it harder for
> producing, but I think the tests will be consumed more than produced.
> Also, these restrictions could make the tests more human-readable.
> 

JSON "pretty-printing" would definitely make the tests more human
readable, although I realize that's not what you've proposed below.

Would it be reasonable to commit full JSON documents to the repository
as "master" copies, but also include a small script which can
auto-generate new documents in the format you're after?

-- 
Alex
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: vector_schema.txt
URL: <http://moderncrypto.org/mail-archive/noise/attachments/20160406/b9b3dce0/attachment.txt>


More information about the Noise mailing list