test: add ed25519 vectors

This commit is contained in:
lukechampine 2020-02-05 12:12:05 -05:00
parent a14d73874a
commit b300a97ca4

View File

@ -0,0 +1,156 @@
:: tests for the ed25519 signature algorithm
::
/+ *test
=, ed:crypto
::
|%
::
:: Test vectors from Section 7.1 of RFC 8032:
:: https://tools.ietf.org/html/rfc8032#section-7.1
::
+$ vector [seed=@ux pk=@ux msg=@ux sig=@ux]
::
++ test-vectors
^- tang
|^ ;: weld
%+ category "puck"
(zing (turn vectors check-puck))
%+ category "sign"
(zing (turn vectors check-sign))
%+ category "veri"
(zing (turn vectors check-veri))
==
::
++ check-puck
|= vector
%+ expect-eq
!> pk
!> `@ux`(puck seed)
::
++ check-sign
|= vector
%+ expect-eq
!> sig
!> `@ux`(sign msg seed)
::
++ check-veri
|= vector
%- expect
!> (veri sig msg pk)
::
++ vectors
^~ (turn vectors-raw swp-vec)
++ swp-vec
|= vector
:^ (swp 3 seed)
(swp 3 pk)
(swp 3 msg)
(swp 3 sig)
++ vectors-raw
:~
:^ 0x9d61.b19d.effd.5a60.ba84.4af4.92ec.2cc4.
4449.c569.7b32.6919.703b.ac03.1cae.7f60
0xd75a.9801.82b1.0ab7.d54b.fed3.c964.073a.
0ee1.72f3.daa6.2325.af02.1a68.f707.511a
0x0
0xe556.4300.c360.ac72.9086.e2cc.806e.828a.
8487.7f1e.b8e5.d974.d873.e065.2249.0155.
5fb8.8215.90a3.3bac.c61e.3970.1cf9.b46b.
d25b.f5f0.595b.be24.6551.4143.8e7a.100b
::
:^ 0x4ccd.089b.28ff.96da.9db6.c346.ec11.4e0f.
5b8a.319f.35ab.a624.da8c.f6ed.4fb8.a6fb
0x3d40.17c3.e843.895a.92b7.0aa7.4d1b.7ebc.
9c98.2ccf.2ec4.968c.c0cd.55f1.2af4.660c
0x72
0x92a0.09a9.f0d4.cab8.720e.820b.5f64.2540.
a2b2.7b54.1650.3f8f.b376.2223.ebdb.69da.
085a.c1e4.3e15.996e.458f.3613.d0f1.1d8c.
387b.2eae.b430.2aee.b00d.2916.12bb.0c00
::
:^ 0xc5aa.8df4.3f9f.837b.edb7.442f.31dc.b7b1.
66d3.8535.076f.094b.85ce.3a2e.0b44.58f7
0xfc51.cd8e.6218.a1a3.8da4.7ed0.0230.f058.
0816.ed13.ba33.03ac.5deb.9115.4890.8025
0xaf82
0x6291.d657.deec.2402.4827.e69c.3abe.01a3.
0ce5.48a2.8474.3a44.5e36.80d7.db5a.c3ac.
18ff.9b53.8d16.f290.ae67.f760.984d.c659.
4a7c.15e9.716e.d28d.c027.bece.ea1e.c40a
::
:^ 0xf5e5.767c.f153.3195.1763.0f22.6876.b86c.
8160.cc58.3bc0.1374.4c6b.f255.f5cc.0ee5
0x2781.17fc.144c.7234.0f67.d0f2.316e.8386.
ceff.bf2b.2428.c9c5.1fef.7c59.7f1d.426e
0x8.b8b2.b733.4242.4376.0fe4.26a4.b549.
0863.2110.a66c.2f65.91ea.bd33.45e3.e4eb.
98fa.6e26.4bf0.9efe.12ee.50f8.f54e.9f77.
b1e3.55f6.c505.44e2.3fb1.433d.df73.be84.
d879.de7c.0046.dc49.96d9.e773.f4bc.9efe.
5738.829a.db26.c81b.37c9.3a1b.270b.2032.
9d65.8675.fc6e.a534.e081.0a44.3282.6bf5.
8c94.1efb.65d5.7a33.8bbd.2e26.640f.89ff.
bc1a.858e.fcb8.550e.e3a5.e199.8bd1.77e9.
3a73.63c3.44fe.6b19.9ee5.d02e.82d5.22c4.
feba.1545.2f80.288a.821a.5791.16ec.6dad.
2b3b.310d.a903.401a.a621.00ab.5d1a.3655.
3e06.203b.3389.0cc9.b832.f79e.f805.60cc.
b9a3.9ce7.6796.7ed6.28c6.ad57.3cb1.16db.
efef.d754.99da.96bd.68a8.a97b.928a.8bbc.
103b.6621.fcde.2bec.a123.1d20.6be6.cd9e.
c7af.f6f6.c94f.cd72.04ed.3455.c68c.83f4.
a41d.a4af.2b74.ef5c.53f1.d8ac.70bd.cb7e.
d185.ce81.bd84.359d.4425.4d95.629e.9855.
a94a.7c19.58d1.f8ad.a5d0.532e.d8a5.aa3f.
b2d1.7ba7.0eb6.248e.594e.1a22.97ac.bbb3.
9d50.2f1a.8c6e.b6f1.ce22.b3de.1a1f.40cc.
2455.4119.a831.a9aa.d607.9cad.8842.5de6.
bde1.a918.7ebb.6092.cf67.bf2b.13fd.65f2.
7088.d78b.7e88.3c87.59d2.c4f5.c65a.db75.
5387.8ad5.75f9.fad8.78e8.0a0c.9ba6.3bcb.
cc27.32e6.9485.bbc9.c90b.fbd6.2481.d908.
9bec.cf80.cfe2.df16.a2cf.65bd.92dd.597b.
0707.e091.7af4.8bbb.75fe.d413.d238.f555.
5a7a.569d.80c3.414a.8d08.59dc.65a4.6128.
bab2.7af8.7a71.314f.318c.782b.23eb.fe80.
8b82.b0ce.2640.1d2e.22f0.4d83.d125.5dc5.
1add.d3b7.5a2b.1ae0.7845.04df.543a.f896.
9be3.ea70.82ff.7fc9.888c.144d.a2af.5842.
9ec9.6031.dbca.d3da.d9af.0dcb.aaaf.268c.
b8fc.ffea.d94f.3c7c.a495.e056.a9b4.7acd.
b751.fb73.e666.c6c6.55ad.e829.7297.d07a.
d1ba.5e43.f1bc.a323.0165.1339.e229.04cc.
8c42.f58c.30c0.4aaf.db03.8dda.0847.dd98.
8dcd.a6f3.bfd1.5c4b.4c45.2500.4aa0.6eef.
f8ca.6178.3aac.ec57.fb3d.1f92.b0fe.2fd1.
a85f.6724.517b.65e6.14ad.6808.d6f6.ee34.
dff7.310f.dc82.aebf.d904.b01e.1dc5.4b29.
2709.4b2d.b68d.6f90.3b68.401a.debf.5a7e.
08d7.8ff4.ef5d.6365.3a65.040c.f9bf.d4ac.
a798.4a74.d371.4598.6780.fc0b.16ac.4516.
49de.6188.a7db.df19.1f64.b5fc.5e2a.b47b.
57f7.f727.6cd4.19c1.7a3c.a8e1.b939.ae49.
e488.acba.6b96.5610.b548.0109.c8b1.7b80.
e1b7.b750.dfc7.598d.5d50.11fd.2dcc.5600.
a32e.f5b5.2a1e.cc82.0e30.8aa3.4272.1aac.
0943.bf66.86b6.4b25.7937.6504.ccc4.93d9.
7e6a.ed3f.b0f9.cd71.a43d.d497.f01f.17c0.
e2cb.3797.aa2a.2f25.6656.168e.6c49.6afc.
5fb9.3246.f6b1.1163.98a3.46f1.a641.f3b0.
41e9.89f7.914f.90cc.2c7f.ff35.7876.e506.
b50d.334b.a77c.225b.c307.ba53.7152.f3f1.
610e.4eaf.e595.f6d9.d90d.11fa.a933.a15e.
f136.9546.868a.7f3a.45a9.6768.d40f.d9d0.
3412.c091.c631.5cf4.fde7.cb68.6069.3738.
0db2.eaaa.707b.4c41.85c3.2edd.cdd3.0670.
5e4d.c1ff.c872.eeee.475a.64df.ac86.aba4.
1c06.1898.3f87.41c5.ef68.d3a1.01e8.a3b8.
cac6.0c90.5c15.fc91.0840.b94c.00a0.b9d0
::
0xaab.4c90.0501.b3e2.4d7c.df46.6332.6a3a.
87df.5e48.43b2.cbdb.67cb.f6e4.60fe.c350.
aa53.71b1.508f.9f45.28ec.ea23.c436.d94b.
5e8f.cd4f.681e.30a6.ac00.a970.4a18.8a03
==
--
--