X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=base%2Fchiark-tcl.h;h=ff5220b886912f98ba0789969a1ee8f854cf1de4;hb=fa11284b9469c1c79af7f8f129da934c1ebcf594;hp=7b66932a2eb87c45ba4bcb8809a29d03f9b76582;hpb=f9ddca2f19d966e0d64d5bc6de023dbc3764552c;p=chiark-tcl.git diff --git a/base/chiark-tcl.h b/base/chiark-tcl.h index 7b66932..ff5220b 100644 --- a/base/chiark-tcl.h +++ b/base/chiark-tcl.h @@ -28,20 +28,27 @@ * +1 A is B plus a nonempty suffix (ie, A has B as a prefix) * +2 A is lexically later than B and does not have B as a prefix * - * hbytes pkcs5 pa|ua VAR ALG => worked? (always 1 for p) - * hbytes pkcs5 pn|un VAR BLOCKSIZE => worked? (always 1 for p) + * hbytes pad pa|ua VAR ALG METH [METHARGS] => worked? (always 1 for p) + * hbytes pad pn|un VAR BS METH [METHARGS] => worked? (always 1 for p) + * hbytes pad pa|pn VAR ALG|BS pkcs5 => 1 + * hbytes pad ua|un VAR ALG|BS pkcs5 => worked? + * hbytes pad pa|pn VAR ALG|BS rfc2406 NXTHDR => 1 + * hbytes pad ua|un VAR ALG|BS rfc2406 NXTHDRVAR => worked? + * * 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-prop PROPERTY ALG => property value * * ulong ul2int ULONG => INT can fail if >INT_MAX * ulong int2ul INT => ULONG can fail if <0 * ulong mask A B => A & B * ulong add A B => A + B (mod 2^32) * ulong subtract A B => A - B (mod 2^32) - * ulong compare A B => 0/-1/1 + * ulong compare A B => 0 -1 (AB) * ulong shift l|r ULONG BITS fails if BITS >32 * * ulong ul2bitfields VALUE [SIZE TYPE [TYPE-ARG...] ...] => 0/1 @@ -235,12 +242,17 @@ void memxor(Byte *dest, const Byte *src, int l); typedef struct { const char *name; int pad, use_algname; -} PadMethod; +} PadOp; extern Tcl_ObjType blockcipherkey_type; /* from algtables.c */ +typedef struct { + const char *name; + int int_offset; +} BlockCipherPropInfo, HashAlgPropInfo; + typedef struct { const char *name; int hashsize, blocksize, statesize; @@ -262,7 +274,6 @@ typedef struct { typedef struct { const char *name; int blocksize, schedule_size, key_min, key_max; - void (*byteswap)(void *block); BlockCipherPerDirectionInfo encrypt, decrypt; } BlockCipherAlgInfo;