Use auto-version machinery for building.
[u/mdw/catacomb] / ectab.in
index 4436b7e..238accb 100644 (file)
--- a/ectab.in
+++ b/ectab.in
@@ -242,7 +242,6 @@ curve sect283k1 binpoly
   h 4
   gx 0x0503213f78ca44883f1a3b8162f188e553cd265f23c1567a16876913b0c2ac2458492836
   gy 0x01ccda380f1c9e318d90f95d07e5426fe87e45c0e8184698e45962364e34116177dd2259
-
 curve sect283r1 binpoly
   p 0x800000000000000000000000000000000000000000000000000000000000000000010a1
   a 1
@@ -287,8 +286,11 @@ curve sect571r1 binpoly
   gy 0x037bf27342da639b6dccfffeb73d69d78c6c27a6009cbbca1980f8533921e8a684423e43bab08a576291af8f461bb2a8b3531d2f0485c19b16e2f1516e23dd3c1a4827af1b8ac15b
 
 #----- Curves from ANSI X9.62 -----------------------------------------------
+#
+# The conversion factors for the normal basis representations were generated
+# because none were given in the document.
 
-curve ansi-b163-1 binpoly
+curve ansi-c2pnb163v1 binpoly
   p 0x080000000000000000000000000000000000000107
   a 0x072546b5435234a422e0789675f432c89435de5242
   b 0x00c9517d06d5240d3cff38c74b20b6cd4d6f9dd4d9
@@ -296,7 +298,7 @@ curve ansi-b163-1 binpoly
   h 2
   gx 0x07af69989546103d79329fcc3d74880f33bbe803cb
   gy 0x01ec23211b5966adea1d3f87f7ea5848aef0b7ca9f
-curve ansi-b163-2 binpoly
+curve ansi-c2pnb163v2 binpoly
   p 0x080000000000000000000000000000000000000107
   a 0x0108b39e77c4b108bed981ed0e890e117c511cf072
   b 0x0667aceb38af4e488c407433ffae4f1c811638df20
@@ -304,7 +306,7 @@ curve ansi-b163-2 binpoly
   h 2
   gx 0x0024266e4eb5106d0a964d92c4860e2671db9b6cc5
   gy 0x079f684ddf6684c5cd258b3890021b2386dfd19fc5
-curve ansi-b163-3 binpoly
+curve ansi-c2pnb163v3 binpoly
   p 0x080000000000000000000000000000000000000107
   a 0x07a526c63d3e25a256a007699f5447e32ae456b50e
   b 0x03f7061798eb99e238fd6f1bf95b48feeb4854252b
@@ -312,9 +314,8 @@ curve ansi-b163-3 binpoly
   h 2
   gx 0x02f9f87b7c574d0bdecf8a22e6524775f98cdebdcb
   gy 0x05b935590c155e17ea48eb3ff3718b893df59a05d0
-# ansi-b176 has an unacceptable cofactor
 
-curve ansi-b191-1 binpoly
+curve ansi-c2tnb191v1 binpoly
   p 0x800000000000000000000000000000000000000000000201
   a 0x2866537b676752636a68f56554e12640276b649ef7526267
   b 0x2e45ef571f00786f67b0081b9495a3d95462f5de0aa185ec
@@ -322,7 +323,7 @@ curve ansi-b191-1 binpoly
   h 2
   gx 0x36b3daf8a23206f9c4f299d7b21a9c369137f2c84ae1aa0d
   gy 0x765be73433b3f95e332932e70ea245ca2418ea0ef98018fb
-curve ansi-b191-2 binpoly
+curve ansi-c2tnb191v2 binpoly
   p 0x800000000000000000000000000000000000000000000201
   a 0x401028774d7777c7b7666d1366ea432071274f89ff01e718
   b 0x0620048d28bcbd03b6249c99182b7c8cd19700c362c46a01
@@ -330,12 +331,34 @@ curve ansi-b191-2 binpoly
   h 4
   gx 0x3809b2b7cc1b28cc5a87926aad83fd28789e81e2c9e3bf10
   gy 0x17434386626d14f3dbf01760d9213a3e1cf37aec437d668a
-# ansi-b191-3 has an unacceptable cofactor
-# ansi-b191n-{1,2} don't include conversion factors
-
-# ansi-b208 has an unacceptable cofactor; and 208 isn't prime anyway
-
-curve ansi-b239-1 binpoly
+curve ansi-c2tnb191v3 binpoly
+  p 0x800000000000000000000000000000000000000000000201
+  a 0x6c01074756099122221056911c77d77e77a777e7e7e77fcb
+  b 0x71fe1af926cf847989efef8db459f66394d90f32ad3f15e8
+  r 0x155555555555555555555555610c0b196812bfb6288a3ea3
+  h 6
+  gx 0x375d4ce24fde434489de8746e71786015009e66e38a926dd
+  gy 0x545a39176196575d985999366e6ad34ce0a77cd7127b06be
+curve ansi-c2onb191v1 binnorm
+  p 0x800000000000000000000000000000000000000000000201
+  beta 0x19c409a7f85383bf0ef72b097a5c7398013a2dba6269292d
+  a 0x65903e04e1e4924253e26a3c9ac28c758bd8184a3fb680e8
+  b 0x54678621b190cfce282ade219d5b3a065e3f4b3ffdebb29b
+  r 0x4000000000000000000000009cf2d6e3901dac4c32eec65d
+  h 2
+  gx 0x5a2c69a32e8638e51ccefaad05350a978457cb5fb6df994a
+  gy 0x0f32fe0fa0e902f19b17d363c269f4f5cfe8087618569954
+curve ansi-c2onb191v2 binnorm
+  p 0x800000000000000000000000000000000000000000000201
+  beta 0x19c409a7f85383bf0ef72b097a5c7398013a2dba6269292d
+  a 0x25f8d06c97c822536d469cd5170cdd7bb9f500bd6db110fb
+  b 0x75ff570e35ca94fb3780c2619d081c17aa59fbd5e591c1c4
+  r 0x0fffffffffffffffffffffffeeb354b7270b2992b7818627
+  h 8
+  gx 0x2a16910e8f6c4b199be24213857abc9c992edfb2471f3c68
+  gy 0x1592dbfebeb81a7c071b744d5e2f9e242ea65b81138a3468  
+
+curve ansi-c2tnb239v1 binpoly
   p 0x800000000000000000000000000000000000000000000000001000000001
   a 0x32010857077c5431123a46b808906756f543423e8d27877578125778ac76
   b 0x790408f2eedaf392b012edefb3392f30f4327c0ca3f31fc383c422aa8c16
@@ -343,21 +366,73 @@ curve ansi-b239-1 binpoly
   h 4
   gx 0x57927098fa932e7c0a96d3fd5b706ef7e5f5c156e16b7e7c86038552e91d
   gy 0x61d8ee5077c33fecf6f1a16b268de469c3c7744ea9a971649fc7a9616305
-# ansi-b239-{2,3} have unacceptable cofactors
-# ansi-b239n-{1,2} don't include conversion factors
-
-# ansi-b272-1 has an unacceptable cofactor; and 272 isn't prime anyway
-
-# ansi-b304-1 has an unacceptable cofactor; and 304 isn't prime anyway
-
-# ansi-b359-1 has an unacceptable cofactor
-
-# ansi-b368-1 has an unacceptable cofactor; and 368 isn't prime anyway
-
-# ansi-b431-1 has an unacceptable cofactor
-
-alias ansi-p192-1 secp192r1
-curve ansi-p192-2 niceprime
+curve ansi-c2tnb239v2 binpoly
+  p 0x800000000000000000000000000000000000000000000000001000000001
+  a 0x4230017757a767fae42398569b746325d45313af0766266479b75654e65f
+  b 0x5037ea654196cff0cd82b2c14a2fcf2e3ff8775285b545722f03eacdb74b
+  r 0x1555555555555555555555555555553c6f2885259c31e3fcdf154624522d
+  h 6
+  gx 0x28f9d04e900069c8dc47a08534fe76d2b900b7d7ef31f5709f200c4ca205
+  gy 0x5667334c45aff3b5a03bad9dd75e2c71a99362567d5453f7fa6e227ec833
+curve ansi-c2tnb239v3 binpoly
+  p 0x800000000000000000000000000000000000000000000000001000000001
+  a 0x01238774666a67766d6676f778e676b66999176666e687666d8766c66a9f
+  b 0x6a941977ba9f6a435199acfc51067ed587f519c5ecb541b8e44111de1d40
+  r 0x0cccccccccccccccccccccccccccccac4912d2d9df903ef9888b8a0e4cff
+  h 10
+  gx 0x70f6e9d04d289c4e89913ce3530bfde903977d42b146d539bf1bde4e9c92
+  gy 0x2e5a0eaf6e5e1305b9004dce5c0ed7fe59a35608f33837c816d80b79f461
+curve ansi-c2onb239v1 binnorm
+  p 0x800000000000000000000000000000000000000000000000001000000001
+  beta 0x3b5ce9846911b248f9347018a7ac8cce3662cee952ba45becd02d4b903ec
+  a 0x182dd45f5d470239b8983fea47b8b292641c57f9bf84baecde8bb3adce30
+  b 0x147a9c1d4c2ce9be5d34ec02797f76667ebad5a3f93fa2a524bfde91ef28
+  r 0x200000000000000000000000000000474f7e69f42fe430931d0b455aae8b
+  h 4
+  gx 0x4912ad657f1d1c6b32edb9942c95e226b06fb012cd40fdea0d72197c8104
+  gy 0x01f1fbc3d21168fd3f66c441c2b5c6cfdcd9ed3e13646b7a4db9a3b0c286
+curve ansi-c2onb239v2 binnorm
+  p 0x800000000000000000000000000000000000000000000000001000000001
+  beta 0x3b5ce9846911b248f9347018a7ac8cce3662cee952ba45becd02d4b903ec
+  a 0x1ecf1b9d28d8017505e17475d3df2982e243ca5cb5e9f94a3f36124a486e
+  b 0x3ee257250d1a2e66cef23aa0f25b12388de8a10ff9554f90afbaa9a08b6d
+  r 0x1555555555555555555555555555558cf77a5d0589d2a9340d963b7ad703
+  h 6
+  gx 0x5f949ccb694f26b96d191e8925205a719929e93c37174cb6c7f659a37b85
+  gy 0x2d788d605ac81069e9964fd6edbae8bbf582a5c409a1078cf487a147ceb2
+  ## The spec seems bogus: the suggested base point G isn't in the
+  ## subgroup!  The point above is h G.
+  ##gx 0x193279fc543e9f5f7119189785b9c60b249be4820baf6c24bdfa2813f8b8
+  ##gy 0x5da021e5af77604051fc5c38da8293c1eeeaa00f046eeb93b6c8b774bb9b
+
+curve ansi-c2tnb359v1 binpoly
+  p 0x800000000000000000000000000000000000000000000000000000000000000000000000100000000000000001
+  a 0x5667676a654b20754f356ea92017d946567c46675556f19556a04616b567d223a5e05656fb549016a96656a557
+  b 0x2472e2d0197c49363f1fe7f5b6db075d52b6947d135d8ca445805d39bc345626089687742b6329e70680231988
+  r 0x01af286bca1af286bca1af286bca1af286bca1af286bc9fb8f6b85c556892c20a7eb964fe7719e74f490758d3b
+  h 76
+  gx 0x3c258ef3047767e7ede0f1fdaa79daee3841366a132e163aced4ed2401df9c6bdcde98e8e707c07a2239b1b097
+  gy 0x53d7e08529547048121e9c95f3791dd804963948f34fae7bf44ea82365dc7868fe57e4ae2de211305a407104bd
+
+curve ansi-c2tnb431v1 binpoly
+  p 0x800000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000001
+  a 0x1a827ef00dd6fc0e234caf046c6a5d8a85395b236cc4ad2cf32a0cadbdc9ddf620b0eb9906d0957f6c6feacd615468df104de296cd8f
+  b 0x10d9b4a3d9047d8b154359abfb1b7f5485b04ceb868237ddc9deda982a679a5a919b626d4e50a8dd731b107a9962381fb5d807bf2618
+  r 0x000340340340340340340340340340340340340340340340340340340323c313fab50589703b5ec68d3587fec60d161cc149c1ad4a91
+  h 10080
+  gx 0x120fc05d3c67a99de161d2f4092622feca701be4f50f4758714e8a87bbf2a658ef8c21e7c5efe965361f6c2999c0c247b0dbd70ce6b7
+  gy 0x20d0af8903a96f8d5fa2c255745d3c451b302c9346d9b7e485e7bce41f6b591f3e8f6addcbb0bc4c2f947a7de1a89b625d6a598b3760
+
+# These curves aren't included because their degree isn't prime (so they
+# may be vulnerable to Weil descent)
+# ansi-c2pnb176w1 is bad: 176 isn't prime
+# ansi-c2pnb208v1 is bad: 208 isn't prime
+# ansi-c2pnb272w1 is bad: 272 isn't prime
+# ansi-c2pnb304w1 is bad: 304 isn't prime
+# ansi-c2pnb368w1 is bad: 368 isn't prime
+
+alias ansi-prime192v1 secp192r1
+curve ansi-prime192v2 niceprime
   p 0xfffffffffffffffffffffffffffffffeffffffffffffffff
   a 0xfffffffffffffffffffffffffffffffefffffffffffffffc
   b 0xcc22d6dfb95c6b25e49c0d6364a4e5980c393aa21668d953
@@ -365,7 +440,7 @@ curve ansi-p192-2 niceprime
   h 1
   gx 0xeea2bae7e1497842f2de7769cfe9c989c072ad696f48034a
   gy 0x6574d11d69b6ec7a672bb82a083df2f2b0847de970b2de15
-curve ansi-p192-3 niceprime
+curve ansi-prime192v3 niceprime
   p 0xfffffffffffffffffffffffffffffffeffffffffffffffff
   a 0xfffffffffffffffffffffffffffffffefffffffffffffffc
   b 0x22123dc2395a05caa7423daeccc94760a7d462256bd56916
@@ -374,7 +449,7 @@ curve ansi-p192-3 niceprime
   gx 0x7d29778100c65a1da1783716588dce2b8b4aee8e228f1896
   gy 0x38a90f22637337334b49dcb66a6dc8f9978aca7648a943b0
 
-curve ansi-p239-1 niceprime
+curve ansi-prime239v1 niceprime
   p 0x7fffffffffffffffffffffff7fffffffffff8000000000007fffffffffff
   a 0x7fffffffffffffffffffffff7fffffffffff8000000000007ffffffffffc
   b 0x6b016c3bdcf18941d0d654921475ca71a9db2fb27d1d37796185c2942c0a
@@ -382,7 +457,7 @@ curve ansi-p239-1 niceprime
   h 1
   gx 0x0ffa963cdca8816ccc33b8642bedf905c3d358573d3f27fbbd3b3cb9aaaf
   gy 0x7debe8e4e90a5dae6e4054ca530ba04654b36818ce226b39fccb7b02f1ae
-curve ansi-p239-2 niceprime
+curve ansi-prime239v2 niceprime
   p 0x7fffffffffffffffffffffff7fffffffffff8000000000007fffffffffff
   a 0x7fffffffffffffffffffffff7fffffffffff8000000000007ffffffffffc
   b 0x617fab6832576cbbfed50d99f0249c3fee58b94ba0038c7ae84c8c832f2c
@@ -390,7 +465,7 @@ curve ansi-p239-2 niceprime
   h 1
   gx 0x38af09d98727705120c921bb5e9e26296a3cdcf2f35757a0eafd87b830e7
   gy 0x5b0125e4dbea0ec7206da0fc01d9b081329fb555de6ef460237dff8be4ba
-curve ansi-p239-3 niceprime
+curve ansi-prime239v3 niceprime
   p 0x7fffffffffffffffffffffff7fffffffffff8000000000007fffffffffff
   a 0x7fffffffffffffffffffffff7fffffffffff8000000000007ffffffffffc
   b 0x255705fa2a306654b1f4cb03d6a750a30c250102d4988717d9ba15ab6d3e
@@ -399,26 +474,51 @@ curve ansi-p239-3 niceprime
   gx 0x6768ae8e18bb92cfcf005c949aa2c6d94853d0e660bbf854b1c9505fe95a
   gy 0x1607e6898f390c06bc1d552bad226f3b6fcfe48b6e818499af18e3ed6cf3
 
-alias ansi-p256-1 secp256r1
+alias ansi-prime256v1 secp256r1
 
-#----- Curves from RFC2414 (Oakley) -----------------------------------------
+#----- Curves from ANSI X9.63 -----------------------------------------------
 #
-# oakley155 has too large a cofactor
-# oakley185's group has composite order; we double the generator to
-#   produce a group of composite order
+# These are just duplicates of the SEC curves.
+
+alias ansit163k1 sect163k1
+alias ansit163r1 sect163r1
+alias ansit163r2 sect163r2
+alias ansit193r1 sect193r1
+alias ansit193r2 sect193r2
+alias ansit233k1 sect233k1
+alias ansit233r1 sect233r1
+alias ansit239k1 sect239k1
+alias ansit283k1 sect283k1
+alias ansit283r1 sect283r1
+alias ansit409k1 sect409k1
+alias ansit409r1 sect409r1
+alias ansit571k1 sect571k1
+alias ansit571r1 sect571r1
+
+alias ansip160k1 secp160k1
+alias ansip160r1 secp160r1
+alias ansip160r2 secp160r2
+alias ansip192k1 secp192k1
+alias ansip192r1 secp192r1
+alias ansip224k1 secp224k1
+alias ansip224r1 secp224r1
+alias ansip256k1 secp256k1
+alias ansip256r1 secp256r1
+alias ansip384r1 secp384r1
+alias ansip521r1 secp521r1
 
-curve oakley185 binpoly
-  p 0x020000000000000000000000000000200000000000000001
-  a 0
-  b 0x1ee9
-  r 0x007ffffffffffffffffffffff6fcbe226dcf92105d7e53af
-  h 4
-  gx 0x1bd555555555555555555555555554e8000000000000158
-  gy 0x14e999999999999999999999999998d7000000000001fe6
+#----- Curves from RFC2414 (Oakley) -----------------------------------------
+#
+# The Oakley curves are not good:
+#   oakley155 has too large a cofactor
+#   oakley185's field has composite degree
+# Hence, we include neither here.
 
 #----- NIST curves from FIPS186-2 -------------------------------------------
 #
-# Most of these are duplicates of SEC2 curves.
+# These are duplicates of SEC2 curves.  However, the normal basis
+# representations aren't in SEC, so we give them here.  (Conversion factors
+# from FIPS186-2.
 
 alias nist-p192 secp192r1
 alias nist-p224 secp224r1
@@ -447,7 +547,6 @@ curve nist-k163n binnorm
   h 2
   gx 0x05679b353caa46825fea2d3713ba450da0c2a4541
   gy 0x235b7c6710050689906bac3d9dec76a835591edb2
-
 curve nist-b163n binnorm
   p 0x800000000000000000000000000000000000000c9
   beta 0x715169c109c612e390d347c748342bcd3b02a0bef
@@ -467,7 +566,6 @@ curve nist-k233n binnorm
   h 4
   gx 0x0fde76d9dcd26e643ac26f1aa901aa129784b71fc0722b2d05614d650b3
   gy 0x0643e317633155c9e0447ba8020a3c43177450ee036d633501434cac978
-
 curve nist-b233n binnorm
   p 0x20000000000000000000000000000000000000004000000000000000001
   beta 0x1499e398ac5d79e368559b35ca49bb7305da6c0390bcf9e2300253203c9
@@ -476,7 +574,7 @@ curve nist-b233n binnorm
   r 0x01000000000000000000000000000013e974e72f8a6922031d2603cfe0d7
   h 2
   gx 0x18b863524b3cdfefb94f2784e0b116faac54404bc9162a363bab84a14c5
-  gy 0x04925df77bd8b8ff1a5ff519417822bfedf2bbd752644292c98c7af6e02 
+  gy 0x04925df77bd8b8ff1a5ff519417822bfedf2bbd752644292c98c7af6e02
 
 curve nist-k283n binnorm
   p 0x800000000000000000000000000000000000000000000000000000000000000000010a1
@@ -487,9 +585,8 @@ curve nist-k283n binnorm
   h 4
   gx 0x3ab9593f8db09fc188f1d7c4ac9fcc3e57fcd3bdb15024b212c70229de5fcd92eb0ea60
   gy 0x2118c4755e7345cd8f603ef93b98b106fe8854ffeb9a3b304634cc83a0e759f0c2686b1
-
 curve nist-b283n binnorm
-  p 0x800000000000000000000000000000000000000000000000000000000000000000010a1 
+  p 0x800000000000000000000000000000000000000000000000000000000000000000010a1
   beta 0x31e0ed791c3282dc5624a720818049d053e8c7ab8663792bc1d792eba9867fc7b317a99
   a 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
   b 0x157261b894739fb5a13503f55f0b3f10c5601166633102201138cc180c0206bdafbc951
@@ -507,7 +604,6 @@ curve nist-k409n binnorm
   h 4
   gx 0x1b559c7cba2422e3affe13343e808b55e012d726ca0b7e6a63aeafbc1e3a98e10ca0fcf98350c3b7f89a9754a8e1dc0713cec4a
   gy 0x16d8c42052f07e7713e7490eff318ba1abd6fef8a5433c894b24f5c817aeb79852496fbee803a47bc8a203878ebf1c499afd7d6
-
 curve nist-b409n binnorm
   p 0x2000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000001
   beta 0x0dfa06be206aa97b7a41fffb9b0c55f8f048062fbe8381b4248adf92912ccc8e3f91a24e1cfb3950532b988971c23042e85708d
@@ -527,13 +623,11 @@ curve nist-k571n binnorm
   h 4
   gx 0x04bb2dba418d0db107adae003427e5d7cc139acb465e5934f0bea2ab2f3622bc29b3d5b9aa7a1fdfd5d8be66057c1008e71e484bcd98f22bf8476423767367429ef2ec5bc3ebcf7
   gy 0x44cbb57de20788d2c952d7b56cf39bd3e89b18984bd124e751ceff4369dd8dac6a59e6e745df44d8220ce22aa2c852cfcbbef49ebaa98bd2483e33180e04286feaa253050caff60
-
 curve nist-b571n binnorm
   p 0x80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425
   beta 0x452186bbf5840a0bcf8c9f02a54efa04e813b43c3d4149606c4d27b487bf107393c8907f79d9778beb35ee87467d3288274caebda6ce05aeb4ca5cf3c3044bd4372232f2c1a27c4
   a 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
   b 0x3762d0d47116006179da35688eeaccf591a5cdea75000118d9608c59132d43426101a1dfb3774115f586623f75f00001ce611983c1275fa31f5bc9f4be1a0f467f01ca885c74777
-
   r 0x03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe661ce18ff55987308059b186823851ec7dd9ca1161de93d5174d66e8382e9bb2fe84e47
   h 2
   gx 0x0735e035def5925cc33173eb2a8ce7767522b466d278b650a2916127dfea9d2d361089f0a7a0247a184e1c70d417866e0fe0feb0ff8f2f3f9176418f97d117e624e2015df1662a8