Type hb: HBytes_Value @ Init hb hbytes_sentinel(&@); Type hbv: HBytes_Var @ Init hbv @.hb=0; init_somethingv(&@.sth); Fini hbv fini_somethingv(ip, rc, &@.sth); Type constv(Tcl_ObjType*): Tcl_Obj *@ Type maskmapv: MaskMap_Var @ Init maskmapv @.mm=0; init_somethingv(&@.sth); Fini maskmapv fini_somethingv(ip, rc, &@.sth); Type sockaddr: SockAddr_Value @ Init sockaddr sockaddr_clear(&@); Type iddata(IdDataTable *tab): void *@ Type ulong: uint32_t @ Type long: long @ Type string: const char *@ Type charfrom(const char *opts, const char *what): int H-Include "hbytes.h" Table toplevel TopLevel_Command hbytes subcmd enum(HBytes_SubCommand, "hbytes subcommand") ... obj dgram-socket subcmd enum(DgramSocket_SubCommand,"dgram-socket subcommand") ... obj tuntap-socket-raw subcmd enum(TunSocket_SubCommand,"tuntap-socket-raw subcommand") ... obj ulong subcmd enum(ULong_SubCommand,"ulong subcommand") ... obj Table maskmap MaskMap_SubCommand lookup map constv(&maskmap_type) addr hb ?def obj => obj amend map maskmapv prefix obj preflen obj data obj Table ulong ULong_SubCommand ul2int v ulong => 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 shift right charfrom("lr", "shift direction") v ulong bits int => ulong ul2bitfields value ulong ... obj => int bitfields2ul base ulong ... obj => ulong Table hbytes HBytes_SubCommand raw2h binary obj => hb h2raw hex hb => obj ushort2h value long => hb h2ushort hex hb => long length v hb => int compare a hb b hb => int range v hb start int size int => hb prepend v hbv ... str append v hbv ... str rep-info v obj => obj concat ... str => hb unprepend v hbv length int => hb unappend v hbv length int => hb chopto v hbv length int => hb overwrite v hbv start int sub hb trimleft v hbv zeroes length int => hb repeat v hb count int => hb xor v hbv d hb random length int => hb pad op enum(PadOp, "hbytes pad subcommand") v hbv blocksz obj meth enum(PadMethodInfo, "pad method") ... methargs blockcipher op enum(BlockCipherOp, "op") ... obj hash alg enum(HashAlgInfo, "hash alg") message hb => hb hmac alg enum(HashAlgInfo, "hash alg for hmac") message hb key obj ?maclen obj => hb hash-prop prop enum(HashAlgPropInfo, "prop") alg enum(HashAlgInfo, "alg") => int mask-map subcmd enum(MaskMap_SubCommand, "hbytes mask-map subcommand") ... obj Table padmethodinfo PadMethodInfo pkcs5 => int rfc2406 nxthdr obj => int Table dgram_socket DgramSocket_SubCommand create local sockaddr => iddata(&dgram_socks) close sock iddata(&dgram_socks) transmit sock iddata(&dgram_socks) data hb remote sockaddr on-receive sock iddata(&dgram_socks) ?script obj Table tuntap_socket_raw TunSocket_SubCommand create ?ifname string => iddata(&tuntap_socks) close sock iddata(&tuntap_socks) ifname sock iddata(&tuntap_socks) => string receive sock iddata(&tuntap_socks) data hb on-transmit sock iddata(&tuntap_socks) mtu long ?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;