shithub: mc

Download patch

ref: 32fd9ebd1835ebb788ddf8555dab777e32ee3f97
parent: c80d62a29435e75e476a93f0d7da3deb20e1204a
author: Ori Bernstein <ori@eigenstate.org>
date: Sat Apr 7 21:45:11 EDT 2018

Make constant time ints package local.

	They're rather specialized, and a bit tricky to use.

--- a/lib/crypto/ctbig.myr
+++ b/lib/crypto/ctbig.myr
@@ -11,33 +11,33 @@
 
 	generic mkctbign 	: (v : @a, nbit : std.size -> ctbig#) :: numeric,integral @a
 
-	const ctzero	: (nbit : std.size -> ctbig#)
-	const mkctbigle	: (v : byte[:], nbit : std.size -> ctbig#)
+	pkglocal const ctzero	: (nbit : std.size -> ctbig#)
+	pkglocal const mkctbigle	: (v : byte[:], nbit : std.size -> ctbig#)
 	//const mkctbigbe	: (v : byte[:], nbit : std.size -> ctbig#)
 
-	const ctfree	: (v : ctbig# -> void)
-	const ctbigdup	: (v : ctbig# -> ctbig#)
-	const ctlike	: (v : ctbig# -> ctbig#)
-	const ct2big	: (v : ctbig# -> std.bigint#)
-	const big2ct	: (v : std.bigint#, nbit : std.size -> ctbig#)
+	pkglocal const ctfree	: (v : ctbig# -> void)
+	pkglocal const ctbigdup	: (v : ctbig# -> ctbig#)
+	pkglocal const ctlike	: (v : ctbig# -> ctbig#)
+	pkglocal const ct2big	: (v : ctbig# -> std.bigint#)
+	pkglocal const big2ct	: (v : std.bigint#, nbit : std.size -> ctbig#)
 
 	/* arithmetic */
-	const ctadd	: (r : ctbig#, a : ctbig#, b : ctbig# -> void)
-	const ctsub	: (r : ctbig#, a : ctbig#, b : ctbig# -> void)
-	const ctmul	: (r : ctbig#, a : ctbig#, b : ctbig# -> void)
-	//const ctdivmod	: (q : ctbig#, u : ctbig#, a : ctbig#, b : ctbig# -> void)
-	const ctmodpow	: (r : ctbig#, a : ctbig#, b : ctbig#, m : ctbig# -> void)
+	pkglocal const ctadd	: (r : ctbig#, a : ctbig#, b : ctbig# -> void)
+	pkglocal const ctsub	: (r : ctbig#, a : ctbig#, b : ctbig# -> void)
+	pkglocal const ctmul	: (r : ctbig#, a : ctbig#, b : ctbig# -> void)
+	//pkglocal const ctdivmod	: (q : ctbig#, u : ctbig#, a : ctbig#, b : ctbig# -> void)
+	pkglocal const ctmodpow	: (r : ctbig#, a : ctbig#, b : ctbig#, m : ctbig# -> void)
 
-	const ctiszero	: (v : ctbig# -> bool)
-	const cteq	: (a : ctbig#, b : ctbig# -> bool)
-	const ctne	: (a : ctbig#, b : ctbig# -> bool)
-	const ctgt	: (a : ctbig#, b : ctbig# -> bool)
-	const ctge	: (a : ctbig#, b : ctbig# -> bool)
-	const ctlt	: (a : ctbig#, b : ctbig# -> bool)
-	const ctle	: (a : ctbig#, b : ctbig# -> bool)
+	pkglocal const ctiszero	: (v : ctbig# -> bool)
+	pkglocal const cteq	: (a : ctbig#, b : ctbig# -> bool)
+	pkglocal const ctne	: (a : ctbig#, b : ctbig# -> bool)
+	pkglocal const ctgt	: (a : ctbig#, b : ctbig# -> bool)
+	pkglocal const ctge	: (a : ctbig#, b : ctbig# -> bool)
+	pkglocal const ctlt	: (a : ctbig#, b : ctbig# -> bool)
+	pkglocal const ctle	: (a : ctbig#, b : ctbig# -> bool)
 
 	/* for testing */
-	const growmod	: (r : ctbig#, a : ctbig#, k : uint32, m : ctbig# -> void)
+	pkglocal const growmod	: (r : ctbig#, a : ctbig#, k : uint32, m : ctbig# -> void)
 
 	impl std.equatable ctbig#
 ;;