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 addrmapv: AddrMap_Var @ Init addrmapv @.am=0; init_somethingv(&@.sth); Fini addrmapv fini_somethingv(ip, rc, &@.sth); Type sockaddr: SockAddr_Value @ Init sockaddr sockaddr_clear(&@); 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 adns subcmd enum(Adns_SubCommand,"adns subcommand") ... 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 addr-map subcmd enum(AddrMap_SubCommand, "hbytes addr-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;