chiark / gitweb /
hbytes xor
[chiark-tcl.git] / base / tables-examples.tct
index f2146a552c6dc23b1c3518ce7604a415c27ca09a..2e1e573d62ec546b69081dad820feed1c25c8279 100644 (file)
@@ -2,14 +2,15 @@ Type hb:                      HBytes_Value @
 Init hb                                hbytes_sentinel(&@);
 
 Type hbv:                      HBytes_Var @
-Init hbv                       @.hb=0; @.obj=0; @.var=0;
+Init hbv                       @.hb=0; @.obj=0; @.var=0; @.copied=0;
 Fini hbv                       fini_hbv(ip, rc, &@);
 
 Type sockaddr:                 SockAddr_Value @
 Init sockaddr                  sockaddr_clear(&@);
 
 Type sockid:                   DgramSockID @
-Type ulong:                    unsigned long @
+Type ulong:                    uint32_t @
+Type long:                     long @
 
 H-Include      "hbytes.h"
 
@@ -25,24 +26,36 @@ Table toplevel TopLevel_Command
                ...     obj
 
 Table ulong ULong_SubCommand
-       shift
-               right   charfrom("lr", "shift direction")
+       ul2int
                v       ulong
-               bits    int
+               =>      int
+       int2ul
+               v       int
                =>      ulong
        mask
                a       ulong
                b       ulong
                =>      ulong
+       add
+               a       ulong
+               b       ulong
+               =>      ulong
+       multiply
+               a       ulong
+               b       ulong
+               =>      ulong
+       subtract
+               a       ulong
+               b       ulong
+               =>      ulong
        compare
                a       ulong
                b       ulong
                =>      int
-       ul2int
+       shift
+               right   charfrom("lr", "shift direction")
                v       ulong
-               =>      int
-       int2ul
-               v       int
+               bits    int
                =>      ulong
        ul2bitfields
                value   ulong
@@ -60,18 +73,12 @@ Table hbytes HBytes_SubCommand
        h2raw
                hex     hb
                =>      obj
-       ulong2h
-               value   ulong
-               =>      hb
-       h2ulong
-               hex     hb
-               =>      ulong
        ushort2h
-               value   ulong
+               value   long
                =>      hb
        h2ushort
                hex     hb
-               =>      ulong
+               =>      long
        length
                v       hb
                =>      int
@@ -112,6 +119,8 @@ Table hbytes HBytes_SubCommand
                v       hbv
                start   int
                sub     hb
+       trimleft
+               v       hbv
        zeroes
                length  int
                =>      hb
@@ -119,22 +128,21 @@ Table hbytes HBytes_SubCommand
                v       hb
                count   int
                =>      hb
+       xor
+               v       hbv
+               d       hb
        random
                length  int
                =>      hb
-       pkcs5
-               meth    enum(PadMethod, "hbytes pad subcommand")
+       pad
+               op      enum(PadOp, "hbytes pad subcommand")
                v       hbv
-               block   obj
-               =>      int
+               blocksz obj
+               meth    enum(PadMethodInfo, "pad method")
+               ...     methargs
        blockcipher
-               encrypt charfrom("de","encrypt/decrypt")
-               v       hbv
-               alg     enum(BlockCipherAlgInfo, "alg")
-               key     obj
-               mode    enum(BlockCipherModeInfo, "mode")
-               ?iv     hb
-               =>      hb
+               op      enum(BlockCipherOp, "op")
+               ...     obj
        hash
                alg     enum(HashAlgInfo, "hash alg")
                message hb
@@ -145,6 +153,17 @@ Table hbytes HBytes_SubCommand
                key     obj
                ?maclen obj
                =>      hb
+       hash-prop
+               prop    enum(HashAlgPropInfo, "prop")
+               alg     enum(HashAlgInfo, "alg")
+               =>      int
+
+Table padmethodinfo PadMethodInfo
+       pkcs5
+               =>      int
+       rfc2406
+               nxthdr  obj
+               =>      int
 
 Table dgram_socket DgramSocket_SubCommand
        create
@@ -159,3 +178,33 @@ Table dgram_socket DgramSocket_SubCommand
        on-receive
                sock    sockid
                ?script obj
+
+Table blockcipherop BlockCipherOp
+       e       1
+               v       hbv
+               alg     enum(BlockCipherAlgInfo, "alg")
+               key     obj
+               mode    enum(BlockCipherModeInfo, "mode")
+               ?iv     hb
+               =>      hb
+       d       0
+               v       hbv
+               alg     enum(BlockCipherAlgInfo, "alg")
+               key     obj
+               mode    enum(BlockCipherModeInfo, "mode")
+               ?iv     hb
+               =>      hb
+       mac     -1
+               msg     hb
+               alg     enum(BlockCipherAlgInfo, "alg")
+               key     obj
+               mode    enum(BlockCipherModeInfo, "mode")
+               iv      hb
+               =>      hb
+       prop    -1
+               prop    enum(BlockCipherPropInfo, "prop")
+               alg     enum(BlockCipherAlgInfo, "alg")
+               =>      int
+
+EntryExtra BlockCipherOp
+       int encrypt;