From b300a97ca444c8d0f8d626935c265fbbc2b94213 Mon Sep 17 00:00:00 2001 From: lukechampine Date: Wed, 5 Feb 2020 12:12:05 -0500 Subject: [PATCH] test: add ed25519 vectors --- pkg/arvo/tests/sys/zuse/crypto/ed25519.hoon | 156 ++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 pkg/arvo/tests/sys/zuse/crypto/ed25519.hoon diff --git a/pkg/arvo/tests/sys/zuse/crypto/ed25519.hoon b/pkg/arvo/tests/sys/zuse/crypto/ed25519.hoon new file mode 100644 index 0000000000..81d05a910a --- /dev/null +++ b/pkg/arvo/tests/sys/zuse/crypto/ed25519.hoon @@ -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 + == + -- +--