key/key-io.c: Add low-level `key_mergeline' and `key_extractline' functions.
[catacomb] / utils / advmodes
index bee4e34..834771c 100755 (executable)
@@ -389,6 +389,15 @@ def gcmgen(bc):
           (bc.blksz - 4, bc.blksz + 3, 3*bc.blksz + 9),
           (bc.blksz - 1, 3*bc.blksz - 5, 3*bc.blksz + 5)]
 
+def gcm_mul_tests(nbits):
+  print 'gcm-mul%d {' % nbits
+  for i in xrange(64):
+    x = R.block(nbits/8)
+    y = R.block(nbits/8)
+    z = gcm_mul(x, y)
+    print '  %s\n    %s\n    %s;' % (hex(x), hex(y), hex(z))
+  print '}'
+
 ###--------------------------------------------------------------------------
 ### CCM.
 
@@ -975,6 +984,11 @@ MODEMAP = { 'eax-enc': (eaxgen, 3*[binarg] + [intarg], eaxenc),
             'pmac1': (pmacgen, [binarg], pmac1_pub) }
 
 mode = argv[1]
+if len(argv) == 3 and mode == 'gcm-mul':
+  VERBOSE = False
+  nbits = int(argv[2])
+  gcm_mul_tests(nbits)
+  exit(0)
 bc = None
 for d in CUSTOM, C.gcprps:
   try: bc = d[argv[2]]