chiark / gitweb /
better core algorithm selection and new core alg suites
[chiark-tcl.git] / hbytes / hbytes.h
index 383eb53..06c98fc 100644 (file)
  *  hbytes pkcs5 pn|un VAR BLOCKSIZE             => worked?  (always 1 for p)
  *  hbytes blockcipher d|e VAR ALG KEY MODE [IV] => IV
  *  hbytes blockcipher mac MSG ALG KEY MODE IV   => final block
  *  hbytes pkcs5 pn|un VAR BLOCKSIZE             => worked?  (always 1 for p)
  *  hbytes blockcipher d|e VAR ALG KEY MODE [IV] => IV
  *  hbytes blockcipher mac MSG ALG KEY MODE IV   => final block
+ *  hbytes blockcipher prop PROPERTY ALG         => property value
  *
  *  hbytes hash ALG MESSAGE                      => hash
  *  hbytes hmac ALG MESSAGE KEY [MACLENGTH]      => mac
  *
  *  hbytes hash ALG MESSAGE                      => hash
  *  hbytes hmac ALG MESSAGE KEY [MACLENGTH]      => mac
+ *  hbytes hash-prop PROPERTY ALG                => property value
  *
  *  ulong ul2int ULONG    => INT           can fail if >INT_MAX
  *  ulong int2ul INT      => ULONG         can fail if <0
  *
  *  ulong ul2int ULONG    => INT           can fail if >INT_MAX
  *  ulong int2ul INT      => ULONG         can fail if <0
@@ -243,6 +245,11 @@ extern Tcl_ObjType blockcipherkey_type;
 
 typedef struct {
   const char *name;
 
 typedef struct {
   const char *name;
+  int int_offset;
+} BlockCipherPropInfo, HashAlgPropInfo;
+
+typedef struct {
+  const char *name;
   int hashsize, blocksize, statesize;
   void (*init)(void *state);
   void (*update)(void *state, const void *data, int len);
   int hashsize, blocksize, statesize;
   void (*init)(void *state);
   void (*update)(void *state, const void *data, int len);