Protocol++® (Protocolpp®)  v5.6.2
ProtocolPP Namespace Reference

Classes

class  aead_chacha_poly1305
 
class  chacha20
 
class  ciphers
 
class  EnumStringBase
 
struct  EnumString
 
class  jarray
 
class  jbuffacc
 
class  jbuffer
 
class  jbuffman
 
class  jconfident
 
class  jconfidentsa
 
class  jcrc
 
class  jdata
 
class  jdsa
 
class  jdsasa
 
class  jdtls13
 
class  jdtlsa13
 
class  jecdsaed
 
class  jecdsaedsa
 
class  jecdsaf2m
 
class  jecdsaf2msa
 
class  jecdsafp
 
class  jecdsafpsa
 
class  jgre
 
class  jgresa
 
class  jicmp
 
class  jicmpsa
 
class  jintegrity
 
class  jintegritysa
 
class  jip
 
class  jipsa
 
class  jipsec
 
class  jipsecsa
 
class  jlicense
 
class  jlog
 
class  jlte
 
class  jltesa
 
class  jmacsec
 
class  jmacsecsa
 
class  jmemblob
 
class  jmemblobsa
 
class  jmodes
 
class  jpacket
 
class  jpoly1305
 
class  jprotocol
 
class  jprotocolpp
 
class  jrand
 
class  jreplay
 
class  jrsa
 
class  jrsasa
 
class  jsecass
 
class  jsnow3g
 
class  jsnowv
 
class  jsrtp
 
class  jsrtpsa
 
class  jstream
 
class  jtcp
 
class  jtcpsa
 
class  jtestcfg
 
class  jtls
 
class  jtls13
 
class  jtlsa
 
class  jtlsa13
 
class  judp
 
class  judpsa
 
class  jwifi
 
class  jwifisa
 
class  jwimax
 
class  jwimaxsa
 
class  jzuc
 
struct  jpoly1305_state_internal_t
 
union  W128_T
 
class  sfmt
 
class  wasp
 
class  jikencrypt
 
class  jikeparse
 
class  jikeprf
 
class  jikev2
 
class  jikev2dh
 
class  jikev2sa
 
class  jwots
 
class  jxmss
 
class  jxmssa
 
class  jxmssaddr
 
class  jlmots
 
class  jlms
 
class  jlmsa
 
class  jkyber
 
class  jkybersa
 
class  jdilithium
 
class  jdilithiumsa
 
class  jfalcon
 
class  jfalconsa
 

Typedefs

typedef struct ProtocolPP::jpoly1305_state_internal_t jpoly1305_state_internal_t
 
typedef union W128_T w128_t
 

Enumerations

enum  field_t {
  DIRECTION , VERSION , MODE , SPI ,
  SEQNUM , EXTSEQNUM , ARLEN , ARWIN ,
  CIPHER , CKEYLEN , CIPHERKEY , AUTH ,
  AKEYLEN , AUTHKEY , IVLEN , IV ,
  SALTLEN , SALT , BYTECNT , LIFETIME ,
  SEQNUMOVRFLW , STATEFULFRAG , BYPASSDF , BYPASSDSCP ,
  NAT , NCHK , DSECN , TTLHOP ,
  FLAGS , NATSRC , NATDST , ID ,
  LABEL , FRAGOFFSET , MOREFRAG , FRAGID ,
  MTU , SOURCE , DESTINATION , EXTHDR ,
  NH , AADLEN , ICVLEN , HDRLEN ,
  TFCLEN , USEXT , RANDIV , NODEJUMBO ,
  AUDIT , AUDITLOG , CHECKSUM , LENGTH ,
  TYPE , CODE , POINTER , IDENTIFIER ,
  GATEWAY , ORIGTIMESTAMP , RXTIMESTAMP , TXTIMESTAMP ,
  MESSAGE , ICMPCODE , DATACTRL , PDUTYPE ,
  POLLBIT , EXTENSION , RSN , SNLEN ,
  HDREXT , LENGTHIND , HFNI , SUFI ,
  FMS , BITMAPLEN , BITMAP , PGKINDEX ,
  PTKINDENT , SDUTYPE , KDID , NMP ,
  HRW , BEARER , FRESH , COUNT ,
  ETHERTYPE , SL , TCIAN , PN ,
  XPN , SCI , SSCI , SAKEY ,
  ENRECEIVE , ENTRANSMIT , PROTECTFRAMES , INUSE ,
  CREATETIME , STARTTIME , STOPTIME , PADDING ,
  CC , MARKER , PT , ROC ,
  TIMESTAMP , SSRC , CSRC , BLKSIZE ,
  MKI , MKILEN , MKIDATA , ACKNUM ,
  OFFSET , RCVWINDOW , URGENT , STATE ,
  OPTIONS , SEGLEN , PRECEDENCE , SNDUNA ,
  SNDNXT , SNDWND , SNDUP , SNDW1 ,
  SNDW2 , ISS , RCVNXT , RCVWND ,
  RCVUP , IRS , TCPTIMEOUT , EPOCH ,
  CIPHERSUITE , ENCTHENMAC , IVEX , FRAMECTL ,
  CTLEXT , PROTVER , SUBTYPE , TDS ,
  FDS , MFRAG , RETRY , PWRMGMT ,
  MDATA , WEP , ORDER , KDFALG ,
  ADDR1 , ADDR2 , ADDR3 , SEQCTL ,
  ADDR4 , QOSCTL , HTCTL , EXTIV ,
  KEYID , SPPCAP , FCS , HT ,
  EC , ESF , CI , EKS ,
  CID , FID , EH , HCS ,
  IKECNXT , EXCHG , NXTPYLD , MAJOR_VERSION ,
  MINOR_VERSION , MSGIDINIT , MSGIDRESP , SPIi ,
  SPIr , Ni , Nr , SKd ,
  SKei , SKer , SKsi , SKsr ,
  INTEG , SKai , SKar , PRF ,
  PRFLEN , SKpi , SKpr , DH ,
  IKEAUTH , IKEHASH , BITSIZE , RSAPAD ,
  RSAENC , KEYPAIR , PRVKEY , PUBKEY ,
  PRIME , SUBPRIME , GENERATOR , GX ,
  GY , CURVE , ECHASH , SIGNER ,
  VERIFIER , VLANTAG1 , VLANTAG2 , POSTPROCESS ,
  SETUP , STREAMSIZE , NAME , OUTADDR ,
  OUTLEN , INLEN , OUTPUTLEN , EXPLEN ,
  STREAM , PREVIOUS , STATUS , INPUT ,
  OUTPUT , EXPECT , BLOCKSIZE , ZEROINIT ,
  SWAPIN , SWAPOUT , COMPOUT , POLYNOMIAL ,
  SEED , USE_CRYPTO , ERRORS , FLOWS ,
  PACKETS , IBYTES , OBYTES , LOGLVL ,
  PTRSIZE , SGTSIZE , BUFSIZE , BUFWIDTH ,
  BUFNUM , STDOUT , ENDIAN , BURSTLEN ,
  PLATFORM , DEBUGCLR , INFOCLR , WARNCLR ,
  ERRCLR , FATALCLR , PASSCLR , BKEK ,
  BKEKLEN , BLOBKEY , BLOBKEYLEN , WOTSALGO ,
  LAYERADDR , TREEADDR , TREEHEIGHT , TYPEVAL ,
  ADDRORPAD , CHAINHEIGHT , HASHORIDX , KEYNMASK ,
  BYTEARRAY , SIGLEN , WINTZ , STACK ,
  XMSSALG , STACKPUSH , STACKPOP , STACKTOP ,
  STACKIDX , STACKLEN , PARAMS , LMOTSQ ,
  LMOTSN , LMOTSP , LMOTSW , LMOTSLS ,
  LMOTSIGLEN , LMOTSI , LMOTSEED , LMOTSC ,
  LMOTS , LMSALGVAL , LMOTSALGVAL , LMTREELVLS ,
  PRVKEYLEN , PUBKEYLEN , CBIT , KBIT ,
  SBIT , LBIT , AUTHFAIL , KEY ,
  FLOWID , PROTYPE , VNI , APP_TRAFFIC_SECRET ,
  PRVIKEYLEN , PUBIKEYLEN , SYMBYTES , KYBERK ,
  KYBERN , KYBERQ , POLYBYTES , POLYVECBYTES ,
  SSBYTES , PCBYTES , PVCBYTES , MSGIBYTES ,
  ILENGTH , QINV , KYBERETA1 , KYBERETA2
}
 
enum  endian_t { BIG , LITTLE }
 
enum  platform_t { WASP , WASPDUT , SEC }
 
enum  pad_t {
  RANDOM , INCREMENT , ZERO , SIZE ,
  UNKNWN
}
 
enum  protocol_t {
  ERRNONE , PROTOCOL , MACSEC , WIFI ,
  WIGIG , WIMAX , LTE , RLC ,
  TLS , SRTP , UDPP , TCPP ,
  ICMPP , IP , IPSEC , XMLPARSER ,
  RINGDRIVER , DIRECTDRIVER , DRIVER , LOOPBACK ,
  ETHERNET , RSA , DSA , ECDSAFP ,
  ECDSAF2M , ECDSAED , IKEV2 , INTEGRITY ,
  CONFIDENT , BLOB , XMSS , LMS ,
  TLS13 , DTLS13 , EGRE , NVGRE ,
  VXLAN , KYBER , DILITHIUM , FALCON ,
  SPHINCS , NOPROTO
}
 
enum  ethid_t {
  ETH_P_LOOP = 0x0060 , ETH_P_PUP = 0x0200 , ETH_P_PUPAT = 0x0201 , ETH_P_IP = 0x0800 ,
  ETH_P_X25 = 0x0805 , ETH_P_ARP = 0x0806 , ETH_P_BPQ = 0x08FF , ETH_P_IEEEPUP = 0x0a00 ,
  ETH_P_IEEEPUPAT = 0x0a01 , ETH_P_BATMAN = 0x4305 , ETH_P_DEC = 0x6000 , ETH_P_DNA_DL = 0x6001 ,
  ETH_P_DNA_RC = 0x6002 , ETH_P_DNA_RT = 0x6003 , ETH_P_LAT = 0x6004 , ETH_P_DIAG = 0x6005 ,
  ETH_P_CUST = 0x6006 , ETH_P_SCA = 0x6007 , ETH_P_TEB = 0x6558 , ETH_P_RARP = 0x8035 ,
  ETH_P_ATALK = 0x809B , ETH_P_AARP = 0x80F3 , ETH_P_8021Q = 0x8100 , ETH_P_IPX = 0x8137 ,
  ETH_P_IPV6 = 0x86DD , ETH_P_PAUSE = 0x8808 , ETH_P_SLOW = 0x8809 , ETH_P_WCCP = 0x883E ,
  ETH_P_PPP_DISC = 0x8863 , ETH_P_PPP_SES = 0x8864 , ETH_P_MPLS_UC = 0x8847 , ETH_P_MPLS_MC = 0x8848 ,
  ETH_P_ATMMPOA = 0x884c , ETH_P_LINK_CTL = 0x886c , ETH_P_ATMFATE = 0x8884 , ETH_P_PAE = 0x888E ,
  ETH_P_AOE = 0x88A2 , ETH_P_8021AD = 0x88A8 , ETH_P_802_EX1 = 0x88B5 , ETH_P_TIPC = 0x88CA ,
  ETH_P_MACSEC = 0x88E5 , ETH_P_8021AH = 0x88E7 , ETH_P_MVRP = 0x88F5 , ETH_P_1588 = 0x88F7 ,
  ETH_P_FCOE = 0x8906 , ETH_P_IBOE = 0x8915 , ETH_P_TDLS = 0x890D , ETH_P_FIP = 0x8914 ,
  ETH_P_80221 = 0x8917 , ETH_P_NSH = 0x894F , ETH_P_8021I = 0x8E87 , ETH_P_LOOPBACK = 0x9000 ,
  ETH_P_QINQ1 = 0x9100 , ETH_P_QINQ2 = 0x9200 , ETH_P_QINQ3 = 0x9300 , ETH_P_EDSA = 0xDADA ,
  ETH_P_IFE = 0xED3E , ETH_P_AF_IUCV = 0xFBFB , ETH_P_802_3_MIN = 0x0600 , ETH_P_802_3 = 0x0001 ,
  ETH_P_AX25 = 0x0002 , ETH_P_ALL = 0x0003 , ETH_P_802_2 = 0x0004 , ETH_P_SNAP = 0x0005 ,
  ETH_P_DDCMP = 0x0006 , ETH_P_WAN_PPP = 0x0007 , ETH_P_PPP_MP = 0x0008 , ETH_P_LOCALTALK = 0x0009 ,
  ETH_P_CAN = 0x000C , ETH_P_CANFD = 0x000D , ETH_P_PPPTALK = 0x0010 , ETH_P_TR_802_2 = 0x0011 ,
  ETH_P_MOBITEX = 0x0015 , ETH_P_CONTROL = 0x0016 , ETH_P_IRDA = 0x0017 , ETH_P_ECONET = 0x0018 ,
  ETH_P_HDLC = 0x0019 , ETH_P_ARCNET = 0x001A , ETH_P_DSA = 0x001B , ETH_P_TRAILER = 0x001C ,
  ETH_P_PHONET = 0x00F5 , ETH_P_IEEE802154 = 0x00F6 , ETH_P_CAIF = 0x00F7 , ETH_P_XDSA = 0x00F8 ,
  ETH_P_NONE = 0xFFFF
}
 
enum  direction_t {
  ENCAP , DECAP , ENC , DEC ,
  DOWNLINK , UPLINK , NODIR
}
 
enum  cipher_t {
  NULL_CIPHER , DES_ECB , DES_CBC , DES40_CBC ,
  TDES_ECB , TDES_CBC , AES_ECB , AES_CBC ,
  AES_CTR , AES_CCM , AES_GCM , AES_XTS ,
  SERPENT_ECB , SERPENT_CBC , SERPENT_CTR , SERPENT_CCM ,
  SERPENT_GCM , CHACHA20 , CHACHA20_POLY1305 , CAMELLIA_ECB ,
  CAMELLIA_CBC , CAMELLIA_CTR , CAMELLIA_CCM , CAMELLIA_GCM ,
  ARIA_ECB , ARIA_CBC , ARIA_CTR , ARIA_CCM ,
  ARIA_GCM , SEED_ECB , SEED_CBC , SEED_CTR ,
  SEED_CCM , SEED_GCM , SM4_ECB , SM4_CBC ,
  SM4_CTR , SM4_CCM , SM4_GCM , ARC4 ,
  SNOWE , SNOWV , SNOWV_GCM , ZUCE ,
  NONE_ENC
}
 
enum  auth_t {
  NULL_AUTH , MD5 , SHA1 , SHA224 ,
  SHA256 , SHA384 , SHA512 , SHA3_224 ,
  SHA3_256 , SHA3_384 , SHA3_512 , SHAKE128 ,
  SHAKE256 , HMAC_MD5 , HMAC_SHA1 , HMAC_SHA2_224 ,
  HMAC_SHA2_256 , HMAC_SHA2_384 , HMAC_SHA2_512 , HMAC_SHA3_224 ,
  HMAC_SHA3_256 , HMAC_SHA3_384 , HMAC_SHA3_512 , AES_XCBC_MAC ,
  POLY1305 , AES_CMAC , AES_GMAC , SM3 ,
  SNOWA , SNOWVA , ZUCA , CRC5_USB ,
  CRC7_UTMS , CRC8_LTE , CRC11_UTMS , CRC12_UTMS ,
  CRC16_IBM , CRC16_CCITT , CRC24_LTE_A , CRC24_LTE_B ,
  CRC32_IETF , CRC32_IEEE , CRC64_ISO , CRC64_ECMA ,
  CRC_POLY , NONE_AUTH
}
 
enum  iana_t {
  HOPOPT , ICMP , IGMP , GGP ,
  IPV4 , ST , TCP , CBT ,
  EGP , IGP , BBN_RCC_MON , NVP_II ,
  PUP , ARGUS , EMCON , XNET ,
  CHAOS , UDP , MUX , DCN_MEAS ,
  HMP , PRM , XNS_IDP , TRUNK_1 ,
  TRUNK_2 , LEAF_1 , LEAF_2 , RDP ,
  IRTP , ISO_TP4 , NETBLT , MFE_NSP ,
  MERIT_INP , DCCP , THREE_PC , IDPR ,
  XTP , DDP , IDPR_CMTP , TP_PLUS ,
  IL , IPV6 , SDRP , IPV6_ROUTE ,
  IPV6_FRAG , IDRP , RSVP , GRE ,
  DSR , BNA , ESP , AH ,
  I_NLSP , SWIPE , NARP , MOBILE ,
  TLSP , SKIP , ICMPV6 , IPV6_NONXT ,
  IPV6_OPTS , HOST_INT_PROT , CFTP , LOCAL_NET ,
  SAT_EXPAK , KRYPTOLAN , RVD , IPPC ,
  DFS , SAT_MON , VISA , IPCV ,
  CPNX , CPHB , WSN , PVP ,
  BR_SAT_MON , SUN_ND , WB_MON , WB_EXPAK ,
  ISO_IP , VMTP , SECURE_VMTP , VINES ,
  TTP , IPTM , NSFNET_IGP , DGP ,
  TCF , EIGRP , OSPFIGP , SPRITE_RPC ,
  LARP , MTP , AX_25 , MICP ,
  SCC_SP , ETHERIP , IENCAP , PRIV_ENCRYPT ,
  GMTP , IFMP , PNNI , PIM ,
  ARIS , SCPS , QNX , A_N ,
  IPCOMP , SNP , COMPAQ_PEER , IPX_IN_IP ,
  VRRP , PGM , ZERO_HOP_PROT , L2TP ,
  DDX , IATP , STP , SRP ,
  UTI , SMP , SM , PTP ,
  ISIS_OVER_IPV4 , FIRE , CRTP , CRUDP ,
  SSCOPMCE , IPLT , SPS , PIPE ,
  SCTP , FC , RSVP_E2E_IGNORE , MOBILITY_HEADER ,
  UDPLITE , MPLS_IN_IP , MANET , HIP ,
  SHIM6 , WESP , ROHC , JUMBOGRAM =194
}
 
enum  err_t {
  ERR_NONE , ERR_LATE , ERR_REPLAY , ERR_ROLLOVER ,
  ERR_ROLLUNDER , ERR_PROGRAM , ERR_ICV , ERR_CRC ,
  ERR_READ_ENDOFILE , ERR_READ_FAILFILE , ERR_READ_BADFILE , ERR_WRITE_FAILFILE ,
  ERR_WRITE_BADFILE , ERR_CHECKSUM , ERR_LISTEN , ERR_ACKNUM ,
  ERR_CLOSED , ERR_BITS , ERR_TTL , ERR_JUMBOGRAM_FORMAT ,
  WARN_DUMMY , WARN_IPV6_ROUTE , WARN_ZERO_DATA , ERR_ICMP_HDR_EXT_LEN ,
  ERR_ICMP_SEGMENTS_LEFT , ERR_MULTICAST_EXT_HDR , ERR_UNKNOWN_ROUTE_TYPE , ERR_CIPHER_KEY_SIZE ,
  ERR_AUTH_KEY_SIZE , ERR_IV_SIZE , ERR_SALT_SIZE , ERR_ICV_SIZE ,
  ERR_UNKNOWN_NXTHDR , ERR_FORMAT_ERROR , WARN_INPUT_QUEUE_FULL , WARN_OUTPUT_QUEUE_EMPTY ,
  ERR_SA_NOT_FOUND , ERR_KEY_NOKEY , ERR_KEY_EXPIRED , ERR_KEY_REVOKED ,
  ERR_KEY_ACCESS , ERR_KEY_NOT_SUPP , ERR_KEY_QUOTA , ERR_KEY_INVALID ,
  ERR_KEY_REJECTED , ERR_KEY_NOMEM , ERR_KEY_INTR , ERR_RSA_INVALID_CODING ,
  ERR_RSA_MESSAGE_LENGTH , ERR_INVALID_SIGNATURE , ERR_INVALID_XMSS_TYPE , ERR_PDU_LEN ,
  ERR_NVGRE_KEY_ID , WARN_NO_VLAN , WARN_NO_VNI , ERR_ICVFAIL_LIMIT ,
  ERR_PADDING , ERR_EPOCH_DTLS13 , ERR_UNKNOWN
}
 
enum  replay_t {
  NORMAL , SHIFT , WINDOW , REPLAY ,
  LATE , ROLLOVER , ROLLUNDER
}
 
enum  ipmode_t { TRANSPORT , TUNNEL }
 
enum  icmpmsg_t {
  ECHORPLYMSG , RSVD1 , RSVD2 , DESTUNRCH ,
  SRCQNCH , RDIRMSG , ALTHOST , RSVD ,
  ECHORQST , RTRADVERT , RTRSOLCIT , TIMEXCEED ,
  BADIPHDR , TIMESTMP , TIMERPLY , INFORQST ,
  INFORPLY , ADMSKRQST , ADMSKRPLY , TRACERTE ,
  NODEST , PKTBIG , TIMEOUT , PARAM ,
  PRVTE1 , PRVTE2 , RSVDE , ECHORQSTV6 ,
  ECHORPLYV6 , PRVTI1 , PRVTI2 , RSVDI
}
 
enum  icmpcode_t {
  ECHORPLY , NONETWRK , NOHOST , NOPROT ,
  NOPORT , FRAGRQD , RTEFAIL , DSTUNKNWN ,
  DSTHSTUNKNWN , SRCHSTISOLT , NETWKPROHIB , HOSTPROHIB ,
  NETWKNOTOS , HOSTNOTOS , COMMPROHIB , HOSTVILATE ,
  CUTOFF , REDIRNETWK , REDIRHOST , REDIRTOSN ,
  REDIRTOSH , TTLEXPIRE , FRAGEXPIRE , PTRINDERR ,
  OPTERR , BADLENGTH , NOROUTE , COMMPROHIBV6 ,
  BYNDSRCADDR , ADDRUNREACH , PORTUNREACH , SRCADDRPLCY ,
  REJECTDST , HOPLMTEXCD , FRAGTIME , ERRHDRFIELD ,
  NXTHDRERR , IPV6OPTERR , SEQNUMRST
}
 
enum  tlsver_t {
  SSL30 = 0x0300 , TLS10 = 0x0301 , TLS11 = 0x0302 , TLS12 = 0x0303 ,
  TLSV13 = 0x0304 , DTLS = 0xFFFE , DTLSV13 = 0xFFFD
}
 
enum  tlstype_t {
  CHG_CIPHER_SPEC = 20 , ALERT = 21 , HANDSHAKE = 22 , APPLICATION = 23 ,
  HEARTBEAT = 24 , ACK = 26
}
 
enum  tlslvl_t { TLSLVL0 , WARNING , FATAL }
 
enum  tls_handshake_t {
  HELLO_REQUEST =0 , CLIENT_HELLO =1 , SERVER_HELLO =2 , NEW_SESSION_TICKET =4 ,
  CERTIFICATE =11 , SERVER_KEY_EXCHANGE =12 , CERTIFICATE_REQUEST =13 , SERVER_HELLO_DONE =14 ,
  CERTIFICATE_VERIFY =15 , CLIENT_KEY_EXCHANGE =16 , FINISHED =20
}
 
enum  tls_error_t {
  CLOSE = 0 , MESSAGE_FATAL =10 , BAD_RECORD_MAC =20 , DECRYPT_FATAL =21 ,
  RECORD_OVERFLOW =22 , DECOMPRESS_FAIL =30 , HANDSHAKE_FAIL =40 , NO_CERTIFICATE =41 ,
  BAD_CERTIFICATE =42 , UNSUPPORTED_CERTIFICATE =43 , CERTIFICATE_REVOKED =44 , CERTIFICATE_EXPIRED =45 ,
  CERTIFICATE_UNKNOWN =46 , ILLEGAL_PARAMETER =47 , UNKNOWN_CA =48 , ACCESS_DENIED =49 ,
  DECODE_ERROR =50 , DECRYPT_ERROR =51 , EXPORT_RESTRICTION =60 , PROTOCOL_VERSION =70 ,
  INSUFFICIENT_SECURITY =71 , INTERNAL_ERROR =80 , USER_CANCELED =90 , NO_RENEGOTIATION =100 ,
  UNSUPPORTED_EXTENSION =110 , CERTIFICATE_UNOBTAINABLE =111 , UNRECOGNIZED_NAME =112 , BAD_CERTIFICATE_STATUS_RESPONSE =113 ,
  BAD_CERTIFICATE_HASH_VALUE =114 , UNKNOWN_PSK_IDENTITY =115 , NO_APPLICATION_PROTOCOL =120
}
 
enum  srtpcipher_t {
  NULL_SRTP , AEAD_AES_256_GCM , AEAD_AES_256_GCM_8 , AEAD_AES_256_GCM_12 ,
  AEAD_AES_256_CCM , AEAD_AES_256_CCM_8 , AEAD_AES_256_CCM_12
}
 
enum  tls_ciphersuite_t {
  TLS_NULL_WITH_NULL_NULL =0x0000 , TLS_SM4_GCM_SM3 =0x00C6 , TLS_SM4_CCM_SM3 =0x00C7 , TLS_RSA_WITH_AES_256_GCM_SHA384 =0x009D ,
  TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 =0x009F , TLS_DH_RSA_WITH_AES_256_GCM_SHA384 =0x00A1 , TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 =0x00A3 , TLS_DH_DSS_WITH_AES_256_GCM_SHA384 =0x00A5 ,
  TLS_DH_ANON_WITH_AES_256_GCM_SHA384 =0x00A7 , TLS_PSK_WITH_AES_256_GCM_SHA384 =0x00A9 , TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 =0x00AB , TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 =0x00AD ,
  TLS_PSK_WITH_AES_256_CBC_SHA384 =0x00AF , TLS_PSK_WITH_NULL_SHA384 =0x00B1 , TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 =0x00B3 , TLS_DHE_PSK_WITH_NULL_SHA384 =0x00B5 ,
  TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 =0x00B7 , TLS_RSA_PSK_WITH_NULL_SHA384 =0x00B9 , TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 =0xC024 , TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 =0xC026 ,
  TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 =0xC028 , TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 =0xC02A , TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 =0xC02C , TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 =0xC02E ,
  TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 =0xC030 , TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 =0xC032 , TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 =0xC038 , TLS_ECDHE_PSK_WITH_NULL_SHA384 =0xC03B ,
  TLS_RSA_WITH_AES_256_CCM =0xC09D , TLS_DHE_RSA_WITH_AES_256_CCM =0xC09F , TLS_RSA_WITH_AES_256_CCM_8 =0xC0A1 , TLS_DHE_RSA_WITH_AES_256_CCM_8 =0xC0A3 ,
  TLS_PSK_WITH_AES_256_CCM =0xC0A5 , TLS_DHE_PSK_WITH_AES_256_CCM =0xC0A7 , TLS_PSK_WITH_AES_256_CCM_8 =0xC0A9 , TLS_PSK_DHE_WITH_AES_256_CCM_8 =0xC0AB ,
  TLS_ECDHE_ECDSA_WITH_AES_256_CCM =0xC0AD , TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 =0xC0AF , TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 =0xCCA8 , TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 =0xCCA9 ,
  TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 =0xCCAA , TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 =0xCCAB , TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 =0xCCAC , TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 =0xCCAD ,
  TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 =0xCCAE , TLS_AES_256_GCM_SHA384 =0x1302 , TLS_CHACHA20_POLY1305_SHA256 =0x1303 , TLS_NO_CIPHERSUITE =0xFFFF
}
 
enum  wifitype_t { WIFIMNG , WIFIDAT , WIFICTL }
 
enum  wifisub_t {
  WIFI0 , WIFI8 , WIFI4 , WIFI12 ,
  WIFI2 , WIFI10 , WIFI6 , WIFI14 ,
  WIFI1 , WIFI9 , WIFI5 , WIFI13 ,
  WIFI3 , WIFI11 , WIFI7 , WIFI15
}
 
enum  wifictlext_t {
  WCTRL0 , SSW , GRANT , WCTRL3 ,
  POLL , SSWACK , DMGDTS , WCTRL7 ,
  WCTRL8 , SSWFDBCK , DMGCTS , WCTRL11 ,
  SPR , WCTRL13 , GRANTACK
}
 
enum  wimaxmode_t { OFDM , OFDMA , AGMH_OFDM , AGMH_OFDMA }
 
enum  macsecmode_t { AES_GCM_256 , AES_GCM_XPN_256 , NULL_MACSEC }
 
enum  dir_id_t { DIR_IN , DIR_FWD , DIR_OUT }
 
enum  role_id_t { ROLE_INITIATOR =0x08 , ROLE_RESPONDER =0x20 , ROLE_ANY =0x28 }
 
enum  ipsec_mode_t { TRANSPORT_MODE , TUNNEL_MODE }
 
enum  exchg_t {
  EXCHG_IKE_SA_INIT =34 , EXCHG_IKE_AUTH , EXCHG_CREATE_CHILD_SA , EXCHG_INFORMATIONAL ,
  EXCHG_IKE_SESSION_RESUME , EXCHG_GSA_AUTH , EXCHG_GSA_REGISTRATION , EXCHG_GSA_REKEY ,
  EXCHG_IKE_PARSE =253 , EXCHG_IKE_RESEND , EXCHG_IKE_LISTEN
}
 
enum  ike_pyld_t {
  PYLD_NONE =0 , PYLD_SA =33 , PYLD_KE , PYLD_IDI ,
  PYLD_IDR , PYLD_CERT , PYLD_CERTREQ , PYLD_AUTH ,
  PYLD_NINR , PYLD_N , PYLD_D , PYLD_V ,
  PYLD_TSI , PYLD_TSR , PYLD_SK , PYLD_CP ,
  PYLD_EAP , PYLD_GSPM , PYLD_IDG , PYLD_GSA ,
  PYLD_KD , PYLD_SKF , PYLD_PS
}
 
enum  transform_type_t {
  IKE_ENCR =1 , IKE_PRF , IKE_INTEG , IKE_DH ,
  IKE_ESN
}
 
enum  transform_attr_t { ATTR_KEY_LENGTH =14 }
 
enum  encr_id_t {
  ENCR_DES_IV64 =1 , ENCR_DES , ENCR_3DES , ENCR_RC5 ,
  ENCR_IDEA , ENCR_CAST , ENCR_BLOWFISH , ENCR_3IDEA ,
  ENCR_DES_IV32 , ENCR_RSVD1 , ENCR_NULL , ENCR_AES_CBC ,
  ENCR_AES_CTR , ENCR_AES_CCM_8 , ENCR_AES_CCM_12 , ENCR_AES_CCM_16 ,
  ENCR_UNASSIGNED , ENCR_AES_GCM_8 , ENCR_AES_GCM_12 , ENCR_AES_GCM_16 ,
  ENCR_NULL_AUTH_AES_GMAC , ENCR_RSVD_AES_XTS , ENCR_CAMELLIA_CBC , ENCR_CAMELLIA_CTR ,
  ENCR_CAMELLIA_CCM_8 , ENCR_CAMELLIA_CCM_12 , ENCR_CAMELLIA_CCM_16 , ENCR_CHACHA20_POLY1305 ,
  ENCR_AES_CCM_8_IIV , ENCR_AES_GCM_16_IIV , ENCR_CHACHA20_POLY1305_IIV
}
 
enum  prf_id_t {
  PRF_HMAC_MD5 =1 , PRF_HMAC_SHA1 , PRF_HMAC_TIGER , PRF_AES128_XCBC ,
  PRF_HMAC_SHA2_256 , PRF_HMAC_SHA2_384 , PRF_HMAC_SHA2_512 , PRF_AES128_CMAC
}
 
enum  integ_id_t {
  AUTH_NONE , AUTH_HMAC_MD5_96 , AUTH_HMAC_SHA1_96 , AUTH_DES_MAC ,
  AUTH_KPDK_MD5 , AUTH_AES_XCBC_96 , AUTH_HMAC_MD5_128 , AUTH_HMAC_SHA1_160 ,
  AUTH_AES_CMAC_96 , AUTH_AES_128_GMAC , AUTH_AES_192_GMAC , AUTH_AES_256_GMAC ,
  AUTH_HMAC_SHA2_256_128 , AUTH_HMAC_SHA2_384_192 , AUTH_HMAC_SHA2_512_256
}
 
enum  dh_id_t {
  DH_NONE , DH_MODP_768 , DH_MODP_1024 , DH_RSVD3 ,
  DH_RSVD4 , DH_MODP_1536 , DH_UNASSIGNED6 , DH_UNASSIGNED7 ,
  DH_UNASSIGNED8 , DH_UNASSIGNED9 , DH_UNASSIGNED10 , DH_UNASSIGNED11 ,
  DH_UNASSIGNED12 , DH_UNASSIGNED13 , DH_MODP_2048 , DH_MODP_3072 ,
  DH_MODP_4096 , DH_MODP_6144 , DH_MODP_8192 , DH_ECP_256 ,
  DH_ECP_384 , DH_ECP_521 , DH_MODP_1024_160 , DH_MODP_2048_224 ,
  DH_MODP_2048_256 , DH_ECP_192_RANDOM , DH_ECP_224_RANDOM , DH_BRAINPOOL_P224R1 ,
  DH_BRAINPOOL_P256R1 , DH_BRAINPOOL_P384R1 , DH_BRAINPOOL_P512R1 , DH_CURVE_25519 ,
  DH_CURVE_448
}
 
enum  esn_id_t { ESN_NO , ESN_YES }
 
enum  id_type_t {
  ID_IPV4_ADDR =1 , ID_FQDN , ID_RFC822_ADDR , ID_UNASSIGNED4 ,
  ID_IPV6_ADDR , ID_UNASSIGNED6 , ID_UNASSIGNED7 , ID_UNASSIGNED8 ,
  ID_DER_ASN1_DN , ID_DER_ASN1_GN , ID_KEY_ID , ID_FC_NAME ,
  ID_NULL
}
 
enum  encoding_t {
  CERT_X509_PKCS_7 =1 , CERT_PGP , CERT_DNS , CERT_X509_SIGNATURE ,
  CERT_RESERVED5 , CERT_KERBEROS , CERT_CRL , CERT_ARL ,
  CERT_SPKI , CERT_RAW_RSA , CERT_X509_ATTRIBUTE , CERT_HASH_URL ,
  CERT_HASH_URL_BUNDLE , CERT_OSCP_CONTENT , CERT_RAW_PUBLIC_KEY
}
 
enum  auth_method_t {
  AUTH_RSA =1 , AUTH_PSK , AUTH_DSS , AUTH_UNASSIGNED4 ,
  AUTH_UNASSIGNED5 , AUTH_UNASSIGNED6 , AUTH_UNASSIGNED7 , AUTH_UNASSIGNED8 ,
  AUTH_ECDSA_P256 , AUTH_ECDSA_P384 , AUTH_ECDSA_P512 , AUTH_GENERIC_SECURE_PASSWORD ,
  AUTH_NULL , AUTH_DIGITAL_SIGNATURE
}
 
enum  notify_err_t {
  NERR_UNSUPPORTED_CRIT_PAYLD =1 , NERR_RSVD2 , NERR_RSVD3 , NERR_INVALID_IKE_SPI ,
  NERR_INVALID_MAJOR_VERSION , NERR_RSVD6 , NERR_INVALID_SYNTAX , NERR_RSVD8 ,
  NERR_INVALID_MESSAGE_ID , NERR_RSVD10 , NERR_INVALID_SPI , NERR_RSVD12 ,
  NERR_RSVD13 , NERR_NO_PROPOSAL_CHOSEN , NERR_RSVD15 , NERR_RSVD16 ,
  NERR_INVALID_KE_PAYLOAD , NERR_RSVD18 , NERR_RSVD19 , NERR_RSVD20 ,
  NERR_RSVD21 , NERR_RSVD22 , NERR_RSVD23 , NERR_AUTH_FAILED ,
  NERR_RSVD25 , NERR_RSVD26 , NERR_RSVD27 , NERR_RSVD28 ,
  NERR_RSVD29 , NERR_RSVD30 , NERR_RSVD31 , NERR_RSVD32 ,
  NERR_RSVD33 , NERR_SINGLE_PAIR_REQUIRED , NERR_NO_ADDITIONAL_SAS , NERR_INTERNAL_ADDRESS_FAILURE ,
  NERR_FAILED_CP_REQUIRED , NERR_TS_UNACCEPTABLE , NERR_INVALID_SELECTORS , NERR_UNACCEPTABLE_ADDRESSES ,
  NERR_UNEXPECTED_NAT_DETECTED , NERR_USE_ASSIGNED_HOA , NERR_TEMPORARY_FAILURE , NERR_CHILD_SA_NOT_FOUND ,
  NERR_INVALID_GROUP_ID , NERR_AUTHORIZATION_FAILED
}
 
enum  notify_status_t {
  NSTAT_INITIAL_CONTACT =16384 , NSTAT_SET_WINDOW_SIZE , NSTAT_ADDITIONAL_TS_POSSIBLE , NSTAT_IPCOMP_SUPPORTED ,
  NSTAT_NAT_DETECTION_SOURCE_IP , NSTAT_NAT_DETECTION_DESTINATION_IP , NSTAT_COOKIE , NSTAT_USE_TRANSPORT_MODE ,
  NSTAT_HTTP_CERT_LOOKUP_SUPPORTED , NSTAT_REKEY_SA , NSTAT_ESP_TFC_PADDING_NOT_SUPPORTED , NSTAT_NON_FIRST_FRAGMENTS_ALSO ,
  NSTAT_MOBIKE_SUPPORTED , NSTAT_ADDITIONAL_IP4_ADDRESS , NSTAT_ADDITIONAL_IP6_ADDRESS , NSTAT_NO_ADDITIONAL_ADDRESSES ,
  NSTAT_UPDATE_SA_ADDRESSES , NSTAT_COOKIE2 , NSTAT_NO_NATS_ALLOWED , NSTAT_AUTH_LIFETIME ,
  NSTAT_MULTIPLE_AUTH_SUPPORTED , NSTAT_ANOTHER_AUTH_FOLLOWS , NSTAT_REDIRECT_SUPPORTED , NSTAT_REDIRECT ,
  NSTAT_REDIRECTED_FROM , NSTAT_TICKET_LT_OPAQUE , NSTAT_TICKET_REQUEST , NSTAT_TICKET_ACK ,
  NSTAT_TICKET_NACK , NSTAT_TICKET_OPAQUE , NSTAT_LINK_ID , NSTAT_USE_WESP_MODE ,
  NSTAT_ROHC_SUPPORTED , NSTAT_EAP_ONLY_AUTHENTICATION , NSTAT_CHILDLESS_IKEV2_SUPPORTED , NSTAT_QUICK_CRASH_DETECTION ,
  NSTAT_IKEV2_MESSAGE_ID_SYNC_SUPPORTED , NSTAT_IPSEC_REPLAY_COUNTER_SYNC_SUPPORTED , NSTAT_IKEV2_MESSAGE_ID_SYNC , NSTAT_IPSEC_REPLAY_COUNTER_SYNC ,
  NSTAT_SECURE_PASSWORD_METHODS , NSTAT_PSK_PERSIST , NSTAT_PSK_CONFIRM , NSTAT_ERX_SUPPORTED ,
  NSTAT_IFOM_CAPABILITY , NSTAT_SENDER_REQUEST_ID , NSTAT_IKEV2_FRAGMENTATION_SUPPORTED , NSTAT_SIGNATURE_HASH_ALGORITHMS ,
  NSTAT_CLONE_IKE_SA_SUPPORTED , NSTAT_CLONE_IKE_SA , NSTAT_PUZZLE , NSTAT_USE_PPK ,
  NSTAT_PPK_IDENTITY , NSTAT_NO_PPK_AUTH
}
 
enum  ike_ipcomp_t { IPCOMP_OUI =1 , IPCOMP_DEFLATE , IPCOMP_LZS , IPCOMP_LZJH }
 
enum  ip_proto_t {
  IP_PROTO_ANY , IP_PROTO_ICMP , IP_PROTO_TCP , IP_PROTO_UDP ,
  IP_PROTO_ICMPV6 , IP_PROTO_MH
}
 
enum  protocol_id_t {
  PROTO_IKE =1 , PROTO_AH , PROTO_ESP , PROTO_FC_ESP_HDR ,
  PROTO_FC_CT_AUTH
}
 
enum  ike_ts_t { TS_IPV4_ADDR_RANGE =7 , TS_IPV6_ADDR_RANGE , TS_FC_ADDR_RANGE }
 
enum  cfg_resp_t { CFG_REQUEST =1 , CFG_REPLY , CFG_SET , CFG_ACK }
 
enum  cfg_attr_t {
  CFG_INTERNAL_IP4_ADDRESS =1 , CFG_INTERNAL_IP4_NETMASK , CFG_INTERNAL_IP4_DNS , CFG_INTERNAL_IP4_NBNS ,
  CFG_RSVD5 , CFG_INTERNAL_IP4_DHCP , CFG_APPLICATION_VERSION , CFG_INTERNAL_IP6_ADDRESS ,
  CFG_RSVD9 , CFG_INTERNAL_IP6_DNS , CFG_RSVD11 , CFG_INTERNAL_IP6_DHCP ,
  CFG_INTERNAL_IP4_SUBNET , CFG_SUPPORTED_ATTRIBUTES , CFG_INTERNAL_IP6_SUBNET , CFG_MIP6_HOME_PREFIX ,
  CFG_INTERNAL_IP6_LINK , CFG_INTERNAL_IP6_PREFIX , CFG_HOME_AGENT_ADDR , CFG_P_CSCG_IP4_ADDR ,
  CFG_P_CSCF_IP6_ADDR , CFG_FTT_KAT , CFG_EXT_SRC_IP4_NAT , CFG_TIMEOUT_LIVENESS ,
  CFG_INTERNAL_DNS_DOMAIN , CFG_INTERNAL_DNS_SEC_TA
}
 
enum  ike_gateway_t { GATEWAY_IPV4_VPN_ADDR =1 , GATEWAY_IPV6_VPN_ADDR , GATEWAY_FQDN_VPN_ADDR }
 
enum  rohc_attr_t {
  ROHC_MAX_CID =1 , ROHC_PROFILE , ROHC_INTEG , ROHC_ICV_LEN ,
  ROHC_MRRU
}
 
enum  ike_secpass_t { SECURE_PASSWORD_PACE =1 , SECURE_PASSW0RD_AUGPAKE , SECURE_PASSWORD_PSK_AUTH }
 
enum  ike_hash_t {
  HASH_SHA1 , HASH_SHA2_256 , HASH_SHA2_384 , HASH_SHA2_512 ,
  HASH_IDENTITY
}
 
enum  rsapadtype_t { PKCS15 , PSS }
 
enum  rsaenc_t { PKCS , OAEP_SHA }
 
enum  keymode_t {
  GENKEYPAIR , PKISIGN , PKIVERIFY , RSAENCRYPT ,
  RSADECRYPT , KYBERENC , KYBERDEC
}
 
enum  crcpoly_t {
  CRC5_USB_POLY = 0x05 , CRC7_UTMS_POLY = 0x09 , CRC8_LTE_POLY = 0x9B , CRC11_UTMS_POLY = 0x307 ,
  CRC12_UTMS_POLY = 0x80F , CRC16_IBM_POLY = 0x8005 , CRC16_CCITT_POLY = 0x1021 , CRC24_LTEA_POLY = 0x864CFB ,
  CRC24_LTEB_POLY = 0x800063 , CRC32_IEEE_POLY = 0x04C11DB7 , CRC32_IETF_POLY = 0x1EDC6F41 , CRC64_ISO_POLY = 0x000000000000001B ,
  CRC64_ECMA_POLY = 0x42F0E1EBA9EA3693
}
 
enum  ots_addrtype_t { OTSADDR = 0x00000000 , LTREEADDR = 0x00000001 , HASHADDR = 0x00000002 }
 
enum  ots_algorithm_t { WOTSP_SHA2_256 = 0x00000001 , WOTSP_SHA2_512 = 0x00000002 , WOTSP_SHAKE_256 = 0x00000003 , WOTSP_SHAKE_512 = 0x00000004 }
 
enum  lmots_algorithm_t {
  PLMOTS_SHA256_N32_W1 = 0x00000001 , PLMOTS_SHA256_N32_W2 = 0x00000002 , PLMOTS_SHA256_N32_W4 = 0x00000003 , PLMOTS_SHA256_N32_W8 = 0x00000004 ,
  PLMOTS_SHA256_N24_W1 = 0x00000005 , PLMOTS_SHA256_N24_W2 = 0x00000006 , PLMOTS_SHA256_N24_W4 = 0x00000007 , PLMOTS_SHA256_N24_W8 = 0x00000008 ,
  PLMOTS_SHAKE_N32_W1 = 0x00000009 , PLMOTS_SHAKE_N32_W2 = 0x0000000A , PLMOTS_SHAKE_N32_W4 = 0x0000000B , PLMOTS_SHAKE_N32_W8 = 0x0000000C ,
  PLMOTS_SHAKE_N24_W1 = 0x0000000D , PLMOTS_SHAKE_N24_W2 = 0x0000000E , PLMOTS_SHAKE_N24_W4 = 0x0000000F , PLMOTS_SHAKE_N24_W8 = 0x00000010
}
 
enum  xmss_algorithm_t {
  XMSS_NO_TYPE = 0x00000000 , XMSS_SHA2_10_256 = 0x00000001 , XMSS_SHA2_16_256 = 0x00000002 , XMSS_SHA2_20_256 = 0x00000003 ,
  XMSS_SHA2_10_192 = 0x0000000D , XMSS_SHA2_16_192 = 0x0000000E , XMSS_SHA2_20_192 = 0x0000000F , XMSS_SHAKE256_10_256 = 0x00000010 ,
  XMSS_SHAKE256_16_256 = 0x00000011 , XMSS_SHAKE256_20_256 = 0x00000012 , XMSS_SHAKE256_10_192 = 0x00000013 , XMSS_SHAKE256_16_192 = 0x00000014 ,
  XMSS_SHAKE256_20_192 = 0x00000015
}
 
enum  lms_algorithm_t {
  LMS_SHA256_M32_H5 = 0x00000005 , LMS_SHA256_M32_H10 = 0x00000006 , LMS_SHA256_M32_H15 = 0x00000007 , LMS_SHA256_M32_H20 = 0x00000008 ,
  LMS_SHA256_M32_H25 = 0x00000009 , LMS_SHA256_M24_H5 = 0x0000000A , LMS_SHA256_M24_H10 = 0x0000000B , LMS_SHA256_M24_H15 = 0x0000000C ,
  LMS_SHA256_M24_H20 = 0x0000000D , LMS_SHA256_M24_H25 = 0x0000000E , LMS_SHAKE_M32_H5 = 0x0000000F , LMS_SHAKE_M32_H10 = 0x00000010 ,
  LMS_SHAKE_M32_H15 = 0x00000011 , LMS_SHAKE_M32_H20 = 0x00000012 , LMS_SHAKE_M32_H25 = 0x00000013 , LMS_SHAKE_M24_H5 = 0x00000014 ,
  LMS_SHAKE_M24_H10 = 0x00000015 , LMS_SHAKE_M24_H15 = 0x00000016 , LMS_SHAKE_M24_H20 = 0x00000017 , LMS_SHAKE_M24_H25 = 0x00000018
}
 
enum  xmssmt_algorithm_t {
  XMSSMT_NO_TYPE = 0x00000000 , XMSSMT_SHA2_20_2_256 = 0x00000001 , XMSSMT_SHA2_20_4_256 = 0x00000002 , XMSSMT_SHA2_40_2_256 = 0x00000003 ,
  XMSSMT_SHA2_40_4_256 = 0x00000004 , XMSSMT_SHA2_40_8_256 = 0x00000005 , XMSSMT_SHA2_60_3_256 = 0x00000006 , XMSSMT_SHA2_60_6_256 = 0x00000007 ,
  XMSSMT_SHA2_60_12_256 = 0x00000008 , XMSSMT_SHA2_20_2_192 = 0x00000021 , XMSSMT_SHA2_20_4_192 = 0x00000022 , XMSSMT_SHA2_40_2_192 = 0x00000023 ,
  XMSSMT_SHA2_40_4_192 = 0x00000024 , XMSSMT_SHA2_40_8_192 = 0x00000025 , XMSSMT_SHA2_60_3_192 = 0x00000026 , XMSSMT_SHA2_60_6_192 = 0x00000027 ,
  XMSSMT_SHA2_60_12_192 = 0x00000028 , XMSSMT_SHAKE256_20_2_256 = 0x00000029 , XMSSMT_SHAKE256_20_4_256 = 0x0000002A , XMSSMT_SHAKE256_40_2_256 = 0x0000002B ,
  XMSSMT_SHAKE256_40_4_256 = 0x0000002C , XMSSMT_SHAKE256_40_8_256 = 0x0000002D , XMSSMT_SHAKE256_60_3_256 = 0x0000002E , XMSSMT_SHAKE256_60_6_256 = 0x0000002F ,
  XMSSMT_SHAKE256_60_12_256 = 0x00000030 , XMSSMT_SHAKE256_20_2_192 = 0x00000031 , XMSSMT_SHAKE256_20_4_192 = 0x00000032 , XMSSMT_SHAKE256_40_2_192 = 0x00000033 ,
  XMSSMT_SHAKE256_40_4_192 = 0x00000034 , XMSSMT_SHAKE256_40_8_192 = 0x00000035 , XMSSMT_SHAKE256_60_3_192 = 0x00000036 , XMSSMT_SHAKE256_60_6_192 = 0x00000037 ,
  XMSSMT_SHAKE256_60_12_192 = 0x00000038
}
 
enum  kyber_algorithm_t { KYBER_512 = 0x00000002 , KYBER_768 = 0x00000003 , KYBER_1024 = 0x00000004 }
 
enum  dilithium_algorithm_t { DILITHIUM2 = 0x00000002 , DILITHIUM3 = 0x00000003 , DILITHIUM5 = 0x00000005 }
 
enum  falcon_algorithm_t { FALCON_512 , FALCON_1024 }
 
enum  sphincs_algorithm_t {
  SPHINCS_SHA2_128F , SPHINCS_SHA2_128S , SPHINCS_SHA2_192F , SPHINCS_SHA2_192S ,
  SPHINCS_SHA2_256F , SPHINCS_SHA2_256S , SPHINCS_SHAKE_128F , SPHINCS_SHAKE_128S ,
  SPHINCS_SHAKE_192F , SPHINCS_SHAKE_192S , SPHINCS_SHAKE_256F , SPHINCS_SHAKE_256S
}
 

Functions

 Begin_Enum_String (field_t)
 
 Begin_Enum_String (endian_t)
 
 Begin_Enum_String (platform_t)
 
 Begin_Enum_String (pad_t)
 
 Begin_Enum_String (protocol_t)
 
 Begin_Enum_String (ethid_t)
 
 Begin_Enum_String (direction_t)
 
 Begin_Enum_String (cipher_t)
 
 Begin_Enum_String (auth_t)
 
 Begin_Enum_String (iana_t)
 
 Begin_Enum_String (err_t)
 
 Begin_Enum_String (replay_t)
 
 Begin_Enum_String (ipmode_t)
 
 Begin_Enum_String (icmpmsg_t)
 
 Begin_Enum_String (icmpcode_t)
 
 Begin_Enum_String (tlsver_t)
 
 Begin_Enum_String (tlstype_t)
 
 Begin_Enum_String (tlslvl_t)
 
 Begin_Enum_String (tls_handshake_t)
 
 Begin_Enum_String (tls_error_t)
 
 Begin_Enum_String (srtpcipher_t)
 
 Begin_Enum_String (tls_ciphersuite_t)
 
 Begin_Enum_String (wifitype_t)
 
 Begin_Enum_String (wifisub_t)
 
 Begin_Enum_String (wifictlext_t)
 
 Begin_Enum_String (wimaxmode_t)
 
 Begin_Enum_String (macsecmode_t)
 
 Begin_Enum_String (dir_id_t)
 
 Begin_Enum_String (role_id_t)
 
 Begin_Enum_String (ipsec_mode_t)
 
 Begin_Enum_String (exchg_t)
 
 Begin_Enum_String (ike_pyld_t)
 
 Begin_Enum_String (transform_type_t)
 
 Begin_Enum_String (transform_attr_t)
 
 Begin_Enum_String (encr_id_t)
 
 Begin_Enum_String (prf_id_t)
 
 Begin_Enum_String (integ_id_t)
 
 Begin_Enum_String (dh_id_t)
 
 Begin_Enum_String (esn_id_t)
 
 Begin_Enum_String (id_type_t)
 
 Begin_Enum_String (encoding_t)
 
 Begin_Enum_String (auth_method_t)
 
 Begin_Enum_String (notify_err_t)
 
 Begin_Enum_String (notify_status_t)
 
 Begin_Enum_String (ike_ipcomp_t)
 
 Begin_Enum_String (ip_proto_t)
 
 Begin_Enum_String (protocol_id_t)
 
 Begin_Enum_String (ike_ts_t)
 
 Begin_Enum_String (cfg_resp_t)
 
 Begin_Enum_String (cfg_attr_t)
 
 Begin_Enum_String (ike_gateway_t)
 
 Begin_Enum_String (rohc_attr_t)
 
 Begin_Enum_String (ike_secpass_t)
 
 Begin_Enum_String (ike_hash_t)
 
 Begin_Enum_String (rsapadtype_t)
 
 Begin_Enum_String (rsaenc_t)
 
 Begin_Enum_String (keymode_t)
 
 Begin_Enum_String (crcpoly_t)
 
 Begin_Enum_String (ots_addrtype_t)
 
 Begin_Enum_String (ots_algorithm_t)
 
 Begin_Enum_String (lmots_algorithm_t)
 
 Begin_Enum_String (xmss_algorithm_t)
 
 Begin_Enum_String (lms_algorithm_t)
 
 Begin_Enum_String (xmssmt_algorithm_t)
 
 Begin_Enum_String (kyber_algorithm_t)
 
 Begin_Enum_String (dilithium_algorithm_t)
 
 Begin_Enum_String (falcon_algorithm_t)
 
 Begin_Enum_String (sphincs_algorithm_t)
 
static unsigned short U8TO16 (const unsigned char *p)
 
static void U16TO8 (unsigned char *p, unsigned short v)
 
static unsigned long U8TO32 (const unsigned char *p)
 
static void U32TO8 (unsigned char *p, unsigned long v)
 
static void jpoly1305_blocks (jpoly1305_state_internal_t *st, const unsigned char *m, size_t bytes)
 
static unsigned long long U8TO64 (const unsigned char *p)
 
static void U64TO8 (unsigned char *p, unsigned long long v)
 
static void jpoly1305_blocks (jpoly1305_state_internal_t *st, const unsigned char *m, size_t bytes)
 
template<typename T >
void serase (T *rhs, uint32_t size)
 
static vector unsigned int vec_recursion (vector unsigned int a, vector unsigned int b, vector unsigned int c, vector unsigned int d)
 
void sfmt_gen_rand_all ()
 
static void gen_rand_array (w128_t *array, int size)
 
static void swap (w128_t *array, int size)
 
static void do_recursion (w128_t *r, w128_t *a, w128_t *b, w128_t *c, w128_t *d)
 
static void rshift128 (w128_t *out, w128_t const *in, int shift)
 
static void lshift128 (w128_t *out, w128_t const *in, int shift)
 
static void neon_recursion (uint32x4_t *r, uint32x4_t a, uint32x4_t b, uint32x4_t c, uint32x4_t d)
 
static void gen_rand_array (w128_t *array, int size)
 
static void mm_recursion (__m128i *r, __m128i a, __m128i b, __m128i c, __m128i *d)
 
static void gen_rand_array (w128_t *array, int size)
 
static void mm_recursion (__m128i *r, __m128i a, __m128i b, __m128i c, __m128i d)
 
static void gen_rand_array (w128_t *array, int size)
 

Variables

 End_Enum_String
 

Detailed Description

Protocol++® (ProtocolPP®) modified by : John Peter Greninger • © John Peter Greninger 2015-2024 • All Rights Reserved
All copyrights and trademarks are the property of their respective owners

The source code contained or described herein and all documents related to the source code (herein called "Material") are owned by John Peter Greninger and Sheila Rocha Greninger. Title to the Material remains with John Peter Greninger and Sheila Rocha Greninger. The Material contains trade secrets and proprietary and confidential information of John Peter Greninger and Sheila Rocha Greninger. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without prior express written consent of John Peter Greninger and Sheila Rocha Greninger (both are required)

No license under any patent, copyright, trade secret, or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel, or otherwise. Any license under such intellectual property rights must be express and approved by John Peter Greninger and Sheila Rocha Greninger in writing

Licensing information can be found at www.protocolpp.com/license with use of the binary forms permitted provided that the following conditions are met:

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
  • Any and all modifications must be returned to John Peter Greninger at GitHub.com https://github.com/jpgreninger/protocolpp for evaluation. Inclusion of modifications in the source code shall be determined solely by John Peter Greninger. Failure to provide modifications shall render this license NULL and VOID and revoke any rights to use of Protocol++®
  • Commercial use (incidental or not) requires a fee-based license obtainable at www.protocolpp.com/shop
  • Academic or research use requires prior written and notarized permission from John Peter and Sheila Rocha Greninger

Use of the source code requires purchase of the source code. Source code can be purchased at www.protocolpp.com/shop

  • US Copyrights at https://www.copyright.gov/
    • TXu002059872 (Version 1.0.0)
    • TXu002066632 (Version 1.2.7)
    • TXu002082674 (Version 1.4.0)
    • TXu002097880 (Version 2.0.0)
    • TXu002169236 (Version 3.0.1)
    • TXu002182417 (Version 4.0.0)
    • TXu002219402 (Version 5.0.0)
    • TXu002272076 (Version 5.2.1)
    • TXu002383571 (Version 5.4.3)

The name of its contributor may not be used to endorse or promote products derived from this software without specific prior written permission and licensing

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

  • TXu002059872 (Version 1.0.0)
    • TXu002066632 (Version 1.2.7)
    • TXu002082674 (Version 1.4.0)
    • TXu002097880 (Version 2.0.0)
    • TXu002169236 (Version 3.0.1)
    • TXu002182417 (Version 4.0.0)
    • TXu002219402 (Version 5.0.0)
    • TXu002272076 (Version 5.2.1)
    • TXu002383571 (Version 5.4.3)

The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

#define HAS_SIZEOF_INT128_64BIT true ///(defined(SIZEOF_INT128) && defined(LP64)) define HAS_MSVC_64BIT true ///(defined(_MSC_VER) && defined(_M_X64)) define HAS_GCC_4_4_64BIT true ///(defined(GNUC) && defined(LP64) && ((GNUC > 4) || ((GNUC == 4) && (GNUC_MINOR >= 4))))

jpoly1305 implementation using 16 bit * 16 bit = 32 bit multiplication and 32 bit addition

Protocol++® (ProtocolPP®) modified by : John Peter Greninger • © John Peter Greninger 2015-2024 • All Rights Reserved
All copyrights and trademarks are the property of their respective owners

The source code contained or described herein and all documents related to the source code (herein called "Material") are owned by John Peter Greninger and Sheila Rocha Greninger. Title to the Material remains with John Peter Greninger and Sheila Rocha Greninger. The Material contains trade secrets and proprietary and confidential information of John Peter Greninger and Sheila Rocha Greninger. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without prior express written consent of John Peter Greninger and Sheila Rocha Greninger (both are required)

No license under any patent, copyright, trade secret, or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel, or otherwise. Any license under such intellectual property rights must be express and approved by John Peter Greninger and Sheila Rocha Greninger in writing

Licensing information can be found at www.protocolpp.com/license with use of the binary forms permitted provided that the following conditions are met:

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
  • Any and all modifications must be returned to John Peter Greninger at GitHub.com https://github.com/jpgreninger/protocolpp for evaluation. Inclusion of modifications in the source code shall be determined solely by John Peter Greninger. Failure to provide modifications shall render this license NULL and VOID and revoke any rights to use of Protocol++®
  • Commercial use (incidental or not) requires a fee-based license obtainable at www.protocolpp.com/shop
  • Academic or research use requires prior written and notarized permission from John Peter and Sheila Rocha Greninger

Use of the source code requires purchase of the source code. Source code can be purchased at www.protocolpp.com/shop

  • US Copyrights at https://www.copyright.gov/
    • TXu002059872 (Version 1.0.0)
    • TXu002066632 (Version 1.2.7)
    • TXu002082674 (Version 1.4.0)
    • TXu002097880 (Version 2.0.0)
    • TXu002169236 (Version 3.0.1)
    • TXu002182417 (Version 4.0.0)
    • TXu002219402 (Version 5.0.0)
    • TXu002272076 (Version 5.2.1)
    • TXu002383571 (Version 5.4.3)

The name of its contributor may not be used to endorse or promote products derived from this software without specific prior written permission and licensing

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

jpoly1305 implementation using 32 bit * 32 bit = 64 bit multiplication and 64 bit addition

Protocol++® (ProtocolPP®) modified by : John Peter Greninger • © John Peter Greninger 2015-2024 • All Rights Reserved
All copyrights and trademarks are the property of their respective owners

The source code contained or described herein and all documents related to the source code (herein called "Material") are owned by John Peter Greninger and Sheila Rocha Greninger. Title to the Material remains with John Peter Greninger and Sheila Rocha Greninger. The Material contains trade secrets and proprietary and confidential information of John Peter Greninger and Sheila Rocha Greninger. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without prior express written consent of John Peter Greninger and Sheila Rocha Greninger (both are required)

No license under any patent, copyright, trade secret, or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel, or otherwise. Any license under such intellectual property rights must be express and approved by John Peter Greninger and Sheila Rocha Greninger in writing

Licensing information can be found at www.protocolpp.com/license with use of the binary forms permitted provided that the following conditions are met:

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
  • Any and all modifications must be returned to John Peter Greninger at GitHub.com https://github.com/jpgreninger/protocolpp for evaluation. Inclusion of modifications in the source code shall be determined solely by John Peter Greninger. Failure to provide modifications shall render this license NULL and VOID and revoke any rights to use of Protocol++®
  • Commercial use (incidental or not) requires a fee-based license obtainable at www.protocolpp.com/shop
  • Academic or research use requires prior written and notarized permission from John Peter and Sheila Rocha Greninger

Use of the source code requires purchase of the source code. Source code can be purchased at www.protocolpp.com/shop

  • US Copyrights at https://www.copyright.gov/
    • TXu002059872 (Version 1.0.0)
    • TXu002066632 (Version 1.2.7)
    • TXu002082674 (Version 1.4.0)
    • TXu002097880 (Version 2.0.0)
    • TXu002169236 (Version 3.0.1)
    • TXu002182417 (Version 4.0.0)
    • TXu002219402 (Version 5.0.0)
    • TXu002272076 (Version 5.2.1)
    • TXu002383571 (Version 5.4.3)

The name of its contributor may not be used to endorse or promote products derived from this software without specific prior written permission and licensing

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

jpoly1305 implementation using 64 bit * 64 bit = 128 bit multiplication and 128 bit addition

Protocol++® (ProtocolPP®) modified by : John Peter Greninger • © John Peter Greninger 2015-2024 • All Rights Reserved
All copyrights and trademarks are the property of their respective owners

The source code contained or described herein and all documents related to the source code (herein called "Material") are owned by John Peter Greninger and Sheila Rocha Greninger. Title to the Material remains with John Peter Greninger and Sheila Rocha Greninger. The Material contains trade secrets and proprietary and confidential information of John Peter Greninger and Sheila Rocha Greninger. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without prior express written consent of John Peter Greninger and Sheila Rocha Greninger (both are required)

No license under any patent, copyright, trade secret, or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel, or otherwise. Any license under such intellectual property rights must be express and approved by John Peter Greninger and Sheila Rocha Greninger in writing

Licensing information can be found at www.protocolpp.com/license with use of the binary forms permitted provided that the following conditions are met:

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
  • Any and all modifications must be returned to John Peter Greninger at GitHub.com https://github.com/jpgreninger/protocolpp for evaluation. Inclusion of modifications in the source code shall be determined solely by John Peter Greninger. Failure to provide modifications shall render this license NULL and VOID and revoke any rights to use of Protocol++®
  • Commercial use (incidental or not) requires a fee-based license obtainable at www.protocolpp.com/shop
  • Academic or research use requires prior written and notarized permission from John Peter and Sheila Rocha Greninger

Use of the source code requires purchase of the source code. Source code can be purchased at www.protocolpp.com/shop

  • US Copyrights at https://www.copyright.gov/
    • TXu002059872 (Version 1.0.0)
    • TXu002066632 (Version 1.2.7)
    • TXu002082674 (Version 1.4.0)
    • TXu002097880 (Version 2.0.0)
    • TXu002169236 (Version 3.0.1)
    • TXu002182417 (Version 4.0.0)
    • TXu002219402 (Version 5.0.0)
    • TXu002272076 (Version 5.2.1)
    • TXu002383571 (Version 5.4.3)

The name of its contributor may not be used to endorse or promote products derived from this software without specific prior written permission and licensing

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

jpoly1305 implementation using 8 bit * 8 bit = 16 bit multiplication and 32 bit addition based on the public domain reference version in supercop by djb

Protocol++® (ProtocolPP®) modified by : John Peter Greninger • © John Peter Greninger 2015-2024 • All Rights Reserved
All copyrights and trademarks are the property of their respective owners

The source code contained or described herein and all documents related to the source code (herein called "Material") are owned by John Peter Greninger and Sheila Rocha Greninger. Title to the Material remains with John Peter Greninger and Sheila Rocha Greninger. The Material contains trade secrets and proprietary and confidential information of John Peter Greninger and Sheila Rocha Greninger. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without prior express written consent of John Peter Greninger and Sheila Rocha Greninger (both are required)

No license under any patent, copyright, trade secret, or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel, or otherwise. Any license under such intellectual property rights must be express and approved by John Peter Greninger and Sheila Rocha Greninger in writing

Licensing information can be found at www.protocolpp.com/license with use of the binary forms permitted provided that the following conditions are met:

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
  • Any and all modifications must be returned to John Peter Greninger at GitHub.com https://github.com/jpgreninger/protocolpp for evaluation. Inclusion of modifications in the source code shall be determined solely by John Peter Greninger. Failure to provide modifications shall render this license NULL and VOID and revoke any rights to use of Protocol++®
  • Commercial use (incidental or not) requires a fee-based license obtainable at www.protocolpp.com/shop
  • Academic or research use requires prior written and notarized permission from John Peter and Sheila Rocha Greninger

Use of the source code requires purchase of the source code. Source code can be purchased at www.protocolpp.com/shop

  • US Copyrights at https://www.copyright.gov/
    • TXu002059872 (Version 1.0.0)
    • TXu002066632 (Version 1.2.7)
    • TXu002082674 (Version 1.4.0)
    • TXu002097880 (Version 2.0.0)
    • TXu002169236 (Version 3.0.1)
    • TXu002182417 (Version 4.0.0)
    • TXu002219402 (Version 5.0.0)
    • TXu002272076 (Version 5.2.1)
    • TXu002383571 (Version 5.4.3)

The name of its contributor may not be used to endorse or promote products derived from this software without specific prior written permission and licensing

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

Typedef Documentation

◆ w128_t

typedef union W128_T ProtocolPP::w128_t

128-bit data type

Enumeration Type Documentation

◆ auth_method_t

IKEv2 AUTH METHOD fields

Parameters
AUTH_RSA- RSA Authentication mode
AUTH_PSK- PSK Authentication mode
AUTH_DSS- DSS Authentication mode
AUTH_UNASSIGNED4- Unassigned
AUTH_UNASSIGNED5- Unassigned
AUTH_UNASSIGNED6- Unassigned
AUTH_UNASSIGNED7- Unassigned
AUTH_UNASSIGNED8- Unassigned
AUTH_ECDSA_P256- ECDSA with SHA-256 on the P-256 Curve
AUTH_ECDSA_P384- ECDSA with SHA-384 on the P-384 Curve
AUTH_ECDSA_P512- ECDSA with SHA-512 on the P-512 Curve
AUTH_GENERIC_SECURE_PASSWORD- Generic Secure Password Authentication Method
AUTH_NULL- No PRF Authentication mode
AUTH_DIGITAL_SIGNATURE- Digital Signature
Enumerator
AUTH_RSA 

RSA Authentication.

AUTH_PSK 

PSK Authentication mode.

AUTH_DSS 

DSS Authentication mode.

AUTH_UNASSIGNED4 

Unassigned.

AUTH_UNASSIGNED5 

Unassigned.

AUTH_UNASSIGNED6 

Unassigned.

AUTH_UNASSIGNED7 

Unassigned.

AUTH_UNASSIGNED8 

Unassigned.

AUTH_ECDSA_P256 

ECDSA with SHA-256 on the P-256 Curve.

AUTH_ECDSA_P384 

ECDSA with SHA-384 on the P-384 Curve.

AUTH_ECDSA_P512 

ECDSA with SHA-512 on the P-512 Curve.

AUTH_GENERIC_SECURE_PASSWORD 

Generic Secure Password Authentication Method.

AUTH_NULL 

No PRF Authentication method.

AUTH_DIGITAL_SIGNATURE 

Digital Signature.

◆ auth_t

Authentication Types

Parameters
NULL_AUTH- no authentication present
MD5- authentication mode with 16 byte MAC
SHA1- authentication mode with 20 byte MAC
SHA224- authentication mode with 28 byte MAC
SHA256- authentication mode with 32 byte MAC
SHA384- authentication mode with 48 byte MAC
SHA512- authentication mode with 64 byte MAC
SHA3_224- authentication mode with 28 byte MAC
SHA3_256- authentication mode with 32 byte MAC
SHA3_384- authentication mode with 48 byte MAC
SHA3_512- authentication mode with 64 byte MAC
SHAKE128- authentication mode using Keccak with 16 byte MAC
SHAKE256- authentication mode using Keccak with 32 byte MAC
HMAC_MD5- keyed authentication mode with 16 byte MAC
HMAC_SHA1- keyed authentication mode with 20 byte MAC
HMAC_SHA2_224- keyed authentication mode with 28 byte MAC
HMAC_SHA2_256- keyed authentication mode with 32 byte MAC
HMAC_SHA2_384- keyed authentication mode with 48 byte MAC
HMAC_SHA2_512- keyed authentication mode with 64 byte MAC
HMAC_SHA3_224- keyed authentication mode with 28 byte MAC
HMAC_SHA3_256- keyed authentication mode with 32 byte MAC
HMAC_SHA3_384- keyed authentication mode with 48 byte MAC
HMAC_SHA3_512- keyed authentication mode with 64 byte MAC
AES-XCBC-MAC- authentication mode with 12 byte MAC
POLY1305- authentication mode with 16 byte MAC
AES-CMAC- authenticate only with 16 byte MAC
AES-GMAC- authenticate only with 16 byte MAC
SM3- mode authentication
SNOWA- SNOW3g F9 mode authentication
SNOWVA- SNOWV GHASH F9 mode authentication
ZUCA- ZUC F9 mode authentication
CRC5- polynomial with 5-bit output
CRC7- polynomial with 7-bit output
CRC8_CCITT- CCITT polynomial with 8-bit output
CRC11- polynomial with 11-bit output
CRC12- polynomial with 12-bit output
CRC16_IBM- IBM polynomial with 16-bit output
CRC16_CCITT- CCITT polynomial with 16-bit output
CRC24- polynomial with 24-bit output
CRC32_IETF- IETF polynomial with 32-bit output
CRC32_IEEE- IEEE polynomial with 32-bit output
CRC64_ISO- ISO polynomial with 64-bit output
CRC64_ECMA- ECMA polynomial with 64-bit output
CRC_POLY- CRC with user supplied polynomial
NONE_AUTH- None authentication
Enumerator
NULL_AUTH 

NULL authentication - no authentication present.

MD5 

MD5 authentication mode with 16 byte MAC.

SHA1 

SHA1 authentication mode with 20 byte MAC.

SHA224 

SHA224 authentication mode with 28 byte MAC.

SHA256 

SHA256 authentication mode with 32 byte MAC.

SHA384 

SHA384 authentication mode with 48 byte MAC.

SHA512 

SHA512 authentication mode with 64 byte MAC.

SHA3_224 

SHA3_224 authentication mode with 28 byte MAC.

SHA3_256 

SHA3_256 authentication mode with 32 byte MAC.

SHA3_384 

SHA3_384 authentication mode with 48 byte MAC.

SHA3_512 

SHA3_512 authentication mode with 64 byte MAC.

SHAKE128 

SHAKE128 Keccak authentication mode with 16 byte MAC.

SHAKE256 

SHAKE256 Keccak authentication mode with 32 byte MAC.

HMAC_MD5 

HMAC_MD5 keyed authentication mode with 16 byte MAC.

HMAC_SHA1 

HMAC_SHA1 keyed authentication mode with 20 byte MAC.

HMAC_SHA2_224 

HMAC_SHA2_224 keyed authentication mode with 28 byte MAC.

HMAC_SHA2_256 

HMAC_SHA2_256 keyed authentication mode with 32 byte MAC.

HMAC_SHA2_384 

HMAC_SHA2_384 keyed authentication mode with 48 byte MAC.

HMAC_SHA2_512 

HMAC_SHA2_512 keyed authentication mode with 64 byte MAC.

HMAC_SHA3_224 

HMAC_SHA3_224 keyed authentication mode with 28 byte MAC.

HMAC_SHA3_256 

HMAC_SHA3_256 keyed authentication mode with 32 byte MAC.

HMAC_SHA3_384 

HMAC_SHA3_384 keyed authentication mode with 48 byte MAC.

HMAC_SHA3_512 

HMAC_SHA3_512 keyed authentication mode with 64 byte MAC.

AES_XCBC_MAC 

AES_XCBC_MAC authentication mode with 12 byte MAC.

POLY1305 

POLY1305 authentication mode with 16 byte MAC.

AES_CMAC 

AES-CMAC authenticate only with 16 byte MAC.

AES_GMAC 

AES-GMAC authenticate only with 16 byte MAC.

SM3 

SM3 mode authentication.

SNOWA 

SNOW3G F9 mode authentication.

SNOWVA 

SNOWV F9 mode authentication.

ZUCA 

ZUC F9 mode authentication.

CRC5_USB 

CRC5-USB polynomial with 5-bit output.

CRC7_UTMS 

CRC7-UTMS polynomial with 7-bit output.

CRC8_LTE 

CRC8-LTE polynomial with 8-bit output.

CRC11_UTMS 

CRC11-UTMS polynomial with 11-bit output.

CRC12_UTMS 

CRC12-UTMS polynomial with 12-bit output.

CRC16_IBM 

CRC16-IBM polynomial with 16-bit output.

CRC16_CCITT 

CRC16-CCITT polynomial with 16-bit output.

CRC24_LTE_A 

CRC24-LTE-A polynomial with 24-bit output.

CRC24_LTE_B 

CRC24-LTE-B polynomial with 24-bit output.

CRC32_IETF 

CRC32-IETF polynomial with 32-bit output.

CRC32_IEEE 

CRC32-IEEE polynomial with 32-bit output.

CRC64_ISO 

CRC64-ISO polynomial with 64-bit output.

CRC64_ECMA 

CRC64-ECMA polynomial with 64-bit output.

CRC_POLY 

CRC with user supplied polynomial.

NONE_AUTH 

None authentication.

◆ cfg_attr_t

IKE Configuration Payload Attribute Types

Parameters
CFG_INTERNAL_IP4_ADDRESS- Configure an internal IPv4 Address
CFG_INTERNAL_IP4_NETMASK- Configure an internal IPv4 NETMASK
CFG_INTERNAL_IP4_DNS- Configure a IPv4 DNS setting
CFG_INTERNAL_IP4_NBNS- Configure a IPv4 NBNS setting
CFG_RSVD5- Reserved Configuration
CFG_INTERNAL_IP4_DHCP- Configure a IPv4 DHCP setting
CFG_APPLICATION_VERSION- Configure Application Version
CFG_INTERNAL_IP6_ADDRESS- Configure an internal IPv6 Address
CFG_RSVD9- Reserved Configuration
CFG_INTERNAL_IP6_DNS- Configure a IPv6 DNS setting
CFG_RSVD11- Reserved Configuration
CFG_INTERNAL_IP6_DHCP12 - Configure a IPv6 DHCP setting
CFG_INTERNAL_IP4_SUBNET- Configure an internal IPv4 SUBNET
CFG_SUPPORTED_ATTRIBUTES- Configure supported attributes
CFG_INTERNAL_IP6_SUBNET- Configure an internal IPv6 SUBNET
CFG_MIP6_HOME_PREFIX- MIP6 Home Prefix
CFG_INTERNAL_IP6_LINK- Internal IPv6 Link
CFG_INTERNAL_IP6_PREFIX- Internal IPv6 Prefix
CFG_HOME_AGENT_ADDR- Home Agent Address
CFG_P_CSCF_IP4_ADDR- P CSCF IPv4 Address
CFG_P_CSCF_IP6_ADDR- P CSCF IPv6 Address
CFG_FTT_KAT- FTT KAT
CFG_EXT_SRC_IP4_NAT- External Source IPv4 NAT Information
CFG_TIMEOUT_LIVENESS- Timeout Period for Liveness Check Number
CFG_INTERNAL_DNS_DOMAIN- Internal DNS Domain
CFG_INTERNAL_DNS_SEC_TA- Internal DNS SEC TA
Enumerator
CFG_INTERNAL_IP4_ADDRESS 

Configure an internal IPv4 Address.

CFG_INTERNAL_IP4_NETMASK 

Configure an internal IPv4 NETMASK.

CFG_INTERNAL_IP4_DNS 

Configure a IPv4 DNS setting.

CFG_INTERNAL_IP4_NBNS 

Configure a IPv4 NBNS setting.

CFG_RSVD5 

Reserved Configuration.

CFG_INTERNAL_IP4_DHCP 

Configure a IPv4 DHCP setting.

CFG_APPLICATION_VERSION 

Configure Application Version.

CFG_INTERNAL_IP6_ADDRESS 

Configure an internal IPv6 Address.

CFG_RSVD9 

Reserved Configuration.

CFG_INTERNAL_IP6_DNS 

Configure a IPv6 DNS setting.

CFG_RSVD11 

Reserved Configuration.

CFG_INTERNAL_IP6_DHCP 

Configure a IPv6 DHCP setting.

CFG_INTERNAL_IP4_SUBNET 

Configure an internal IPv4 SUBNET.

CFG_SUPPORTED_ATTRIBUTES 

Configure supported attributes.

CFG_INTERNAL_IP6_SUBNET 

Configure an internal IPv6 SUBNET.

CFG_MIP6_HOME_PREFIX 

MIP6 Home Prefix.

CFG_INTERNAL_IP6_LINK 

Internal IPv6 Link.

CFG_INTERNAL_IP6_PREFIX 

Internal IPv6 Prefix.

CFG_HOME_AGENT_ADDR 

Home Agent Address.

CFG_P_CSCG_IP4_ADDR 

P CSCF IPv4 Address.

CFG_P_CSCF_IP6_ADDR 

P CSCF IPv6 Address.

CFG_FTT_KAT 

FTT KAT.

CFG_EXT_SRC_IP4_NAT 

External Source IPv4 NAT Information.

CFG_TIMEOUT_LIVENESS 

Timeout Period for Liveness Check Number.

CFG_INTERNAL_DNS_DOMAIN 

Internal DNS Domain.

CFG_INTERNAL_DNS_SEC_TA 

Internal DNS SEC TA.

◆ cfg_resp_t

IKE Configuration Payload CFG Types

Parameters
CFG_REQUEST- Request the configuration
CFG_REPLY- Reply to a configuration request
CFG_SET- Set the configuration
CFG_ACK- Acknowledge the configuration request
Enumerator
CFG_REQUEST 

Request the configuration.

CFG_REPLY 

Reply to a configuration request.

CFG_SET 

Set the configuration.

CFG_ACK 

Acknowledge the configuration request.

◆ cipher_t

encryption ciphers

Parameters
NULL_CIPHER- No encryption present
DES_ECB- DES-ECB encryption mode
DES_CBC- DES-CBC encrytpion mode
DES40_CBC- DES-CBC encryption mode with 40-bit key
TDES_ECB- Triple-DES ECB encryption mode with 192-bit key
TDES_CBC- Triple-DES CBC encryption mode with 192-bit key
AES_ECB- AES-ECB encryption mode
AES_CBC- AES-CBC encryption mode
AES_CTR- AES-CTR encryption mode
AES_CCM- AES-CCM dual encryption and authentication mode
AES_GCM- AES-GCM dual encryption and authentication mode
AES_XTS- AES-XTS disk encryption mode
SERPENT_ECB- SERPENT-ECB encryption mode
SERPENT_CBC- SERPENT-CBC encryption mode
SERPENT_CTR- SERPENT-CTR encryption mode
SERPENT_CCM- SERPENT-CCM dual encryption and authentication mode
SERPENT_GCM- SERPENT-GCM dual encryption and authentication mode
CHACHA20- CHACHA20 stream cipher
CHACHA20_POLY1305- CHACHA20 and POLY1305 AEAD dual mode
CAMELLIA_ECB- Camellia ECB encryption mode
CAMELLIA_CBC- Camellia CBC encryption mode
CAMELLIA_CTR- Camellia CTR mode
CAMELLIA_CCM- Camellia CCM AEAD mode
CAMELLIA_GCM- Camellia GCM AEAD mode
ARIA_ECB- Korean cipher ARIA in ECB mode
ARIA_CBC- Korean cipher ARIA in CBC mode
ARIA_CTR- Korean Cipher ARIA in CTR mode
ARIA_CCM- Korean Cipher ARIA in CCM mode
ARIA_GCM- Korean Cipher ARIA in GCM mode
SEED_ECB- Korean Block Cipher SEED in ECB mode
SEED_CBC- Korean Block Cipher SEED in CBC mode
SEED_CTR- Korean Block Cipher SEED in CTR mode
SEED_CCM- Korean Block Cipher SEED in CCM mode
SEED_GCM- Korean Block Cipher SEED in GCM mode
SM4_ECB- Chinese Block Cipher SM4 in ECB mode
SM4_CBC- Chinese Block Cipher SM4 in CBC mode
SM4_CTR- Chinese Block Cipher SM4 in CTR mode
SM4_CCM- Chinese Block Cipher SM4 in CCM mode
SM4_GCM- Chinese Block Cipher SM4 in GCM mode
ARC4- ARC4 Stream Cipher (weak not recommended)
SNOWE- SNOW3G F8 encryption algorithm
SNOWV- SNOWV F8 stream encryption algorithm
SNOWV_GCM- SNOWV GCM AEAD encryption and authentication algorithm
ZUCE-ZUC F8 encryption algorithm
NONE_ENC- No encryption algorithm chosen
Enumerator
NULL_CIPHER 

No encryption present.

DES_ECB 

DES-ECB encryption mode.

DES_CBC 

DES-CBC encryption mode.

DES40_CBC 

DES-CBC encryption with 40-bit key.

TDES_ECB 

Triple-DES ECB encryption mode with 192-bit key.

TDES_CBC 

Triple-DES CBC encryption mode with 192-bit key.

AES_ECB 

AES-ECB encryption mode.

AES_CBC 

AES-CBC encryption mode.

AES_CTR 

AES-CTR encryption mode.

AES_CCM 

AES-CCM dual encryption and authentication mode.

AES_GCM 

AES-GCM dual encryption and authentication mode.

AES_XTS 

AES-XTS drive encryption mode.

SERPENT_ECB 

SERPENT-ECB encryption mode.

SERPENT_CBC 

SERPENT-CBC encryption mode.

SERPENT_CTR 

SERPENT-CTR encryption mode.

SERPENT_CCM 

SERPENT-CCM dual encryption and authentication mode.

SERPENT_GCM 

SERPENT-GCM dual encryption and authentication mode.

CHACHA20 

CHACHA20 encryption mode.

CHACHA20_POLY1305 

CHACHA20 and POLY1305 AEAD dual mode.

CAMELLIA_ECB 

Camellia ECB encryption mode.

CAMELLIA_CBC 

Camellia CBC encryption mode.

CAMELLIA_CTR 

Camellia CTR mode.

CAMELLIA_CCM 

Camellia CCM AEAD mode.

CAMELLIA_GCM 

Camellia GCM AEAD mode.

ARIA_ECB 

Korean cipher ARIA in ECB mode.

ARIA_CBC 

Korean cipher ARIA in CBC mode.

ARIA_CTR 

Korean Cipher ARIA in CTR mode.

ARIA_CCM 

Korean Cipher ARIA in CCM mode.

ARIA_GCM 

Korean Cipher ARIA in GCM mode.

SEED_ECB 

Korean Block Cipher SEED in ECB mode.

SEED_CBC 

Korean Block Cipher SEED in CBC mode.

SEED_CTR 

Korean Block Cipher SEED in CTR mode.

SEED_CCM 

Korean Block Cipher SEED in CCM mode.

SEED_GCM 

Korean Block Cipher SEED in GCM mode.

SM4_ECB 

Chinese Block Cipher SM4 in ECB mode.

SM4_CBC 

Chinese Block Cipher SM4 in CBC mode.

SM4_CTR 

Chinese Block Cipher SM4 in CTR mode.

SM4_CCM 

Chinese Block Cipher SM4 in CCM mode.

SM4_GCM 

Chinese Block Cipher SM4 in GCM mode.

ARC4 

ARC4 Stream Cipher (weak not recommended)

SNOWE 

SNOW3G F8 encryption algorithm.

SNOWV 

SNOWV F8 stream encryption algorithm.

SNOWV_GCM 

SNOWV GCM AEAD encryption and authentication algorithm.

ZUCE 

ZUC F8 encryption algorithm.

NONE_ENC 

No encryption algorithm chosen.

◆ crcpoly_t

CRC initialization values

CRC Initial Values
NamePolynomialReversed?Init-valueXOR-outCheck
crc-50x05False0x000x000xF4
crc-70x09False0x000x000xF4
crc-8-ccitt0x07False0x000x000xF4
crc-110x385False0x000x000xF4
crc-120x80FFalse0x000x000xF4
crc-16-ibm0x8005True0x00000x00000xBB3D
crc-16-ccitt0x1021False0xFFFF0x00000x29B1
crc-240x864CFBFalse0xB704CE0x0000000x21CF02
crc-32-ieee0x04C11DB7True0x000000000xFFFFFFFF0xCBF43926
crc-32-ietf0x1EDC6F41True0x000000000xFFFFFFFF0xE3069283
crc-64-iso0x000000000000001BTrue0xD8000000000000000x00000000000000000x46A5A9388A5BEFFE
crc-64-ecma0x42F0E1EBA9EA3693False0xC96C5795D7870F420x00000000000000000x62EC59E3F1A4F00A

◆ dh_id_t

IKEv2 DH_ID fields

Parameters
DH_NONE- No Diffie-Hellman
DH_MODP_768- Diffie-Hellman MODP Group 768-bit
DH_MODP_1024- Diffie-Hellman MODP Group 1024-bit
DH_RSVD3- Reserved
DH_RSVD4- Reserved
DH_MODP_1536- Diffie-Hellman MODP Group 1536-bit
DH_UNASSIGNED6- Unassigned
DH_UNASSIGNED7- Unassigned
DH_UNASSIGNED8- Unassigned
DH_UNASSIGNED9- Unassigned
DH_UNASSIGNED10- Unassigned
DH_UNASSIGNED11- Unassigned
DH_UNASSIGNED12- Unassigned
DH_UNASSIGNED13- Unassigned
DH_MODP_2048- Diffie-Hellman MODP Group 2048-bit
DH_MODP_3072- Diffie-Hellman MODP Group 3072-bit
DH_MODP_4096- Diffie-Hellman MODP Group 4096-bit
DH_MODP_6144- Diffie-Hellman MODP Group 6144-bit
DH_MODP_8192- Diffie-Hellman MODP Group 8192-bit
DH_ECP_256- Diffie-Hellman Elliptic Curve with 256-bit
DH_ECP_384- Diffie-Hellman Elliptic Curve with 384-bit
DH_ECP_521- Diffie-Hellman Elliptic Curve with 521-bit
DH_MODP_1024_160- Diffie-Hellman MODP Group 1024-bit with 160-bit Subgroup
DH_MODP_2048_224- Diffie-Hellman MODP Group 2048-bit with 224-bit Subgroup
DH_MODP_2048_256- Diffie-Hellman MODP Group 2048-bit with 256-bit Subgroup
DH_ECP_192_RANDOM- Diffie-Hellman Elliptic Curve with 192-bit random curve
DH_ECP_224_RANDOM- Diffie-Hellman Elliptic Curve with 224-bit random curve
DH_BRAINPOOL_P224R1- Diffie-Hellman BrainPool curve with 224-bit prime
DH_BRAINPOOL_P256R1- Diffie-Hellman BrainPool curve with 256-bit prime
DH_BRAINPOOL_P384R1- Diffie-Hellman BrainPool curve with 384-bit prime
DH_BRAINPOOL_P512R1- Diffie-Hellman BrainPool curve with 512-bit prime
DH_CURVE_25519- Diffie-Hellman Elliptic Curve 25519
DH_CURVE_448- Diffie-Hellman Elliptic Curve 448
Enumerator
DH_NONE 

No Diffie-Hellman.

DH_MODP_768 

Diffie-Hellman MODP Group 768-bit.

DH_MODP_1024 

Diffie-Hellman MODP Group 1024-bit.

DH_RSVD3 

Reserved.

DH_RSVD4 

Reserved.

DH_MODP_1536 

Diffie-Hellman MODP Group 1536-bit.

DH_UNASSIGNED6 

Unassigned.

DH_UNASSIGNED7 

Unassigned.

DH_UNASSIGNED8 

Unassigned.

DH_UNASSIGNED9 

Unassigned.

DH_UNASSIGNED10 

Unassigned.

DH_UNASSIGNED11 

Unassigned.

DH_UNASSIGNED12 

Unassigned.

DH_UNASSIGNED13 

Unassigned.

DH_MODP_2048 

MODP Group 2048-bit.

DH_MODP_3072 

MODP Group 3072-bit.

DH_MODP_4096 

MODP Group 4096-bit.

DH_MODP_6144 

MODP Group 6144-bit.

DH_MODP_8192 

MODP Group 8192-bit.

DH_ECP_256 

ECP Group 256-bit.

DH_ECP_384 

ECP Group 384-bit.

DH_ECP_521 

ECP Group 521-bit.

DH_MODP_1024_160 

MODP Group 1024-bit with 160-bit Prime Order Subgroup.

DH_MODP_2048_224 

MODP Group 2048-bit with 224-bit Prime Order Subgroup.

DH_MODP_2048_256 

MODP Group 2048-bit with 256-bit Prime Order Subgroup.

DH_ECP_192_RANDOM 

ECP Group 192-bit Random.

DH_ECP_224_RANDOM 

ECP Group 224-bit Random.

DH_BRAINPOOL_P224R1 

BrainPool P224R1.

DH_BRAINPOOL_P256R1 

Brain Pool P256R1.

DH_BRAINPOOL_P384R1 

BrainPool P384R1.

DH_BRAINPOOL_P512R1 

BrainPool P512R1.

DH_CURVE_25519 

Curve 25519.

DH_CURVE_448 

Curve 448.

◆ dilithium_algorithm_t

Dilithium Signature Algorithm

DILITHIUM2 - Dilithium signature algorithm with 1312 byte public key and 2420 byte signature DILITHIUM3 - Dilithium signature algorithm with 1952 byte public key and 3293 byte signature DILITHIUM5 - Dilithium signature algorithm with 2592 byte public key and 4595 byte signature

Enumerator
DILITHIUM2 

Dilithium signature algorithm with 1312 byte public key and 2420 byte signature.

DILITHIUM3 

Dilithium signature algorithm with 1952 byte public key and 3293 byte signature.

DILITHIUM5 

Dilithium signature algorithm with 2592 byte public key and 4595 byte signature.

◆ dir_id_t

IKEv2 DIR_ID fields

Parameters
DIR_IN- Direction of processing is into host
DIR_FWD- Forward packets on this stream
DIR_OUT- Direction of processing is out of the host
Enumerator
DIR_IN 

Direction of processing is into host.

DIR_FWD 

Forward packets on this stream.

DIR_OUT 

Direction of processing is out of the host.

◆ direction_t

processing direction

Parameters
ENCAP- Encapsulation of data
DECAP- Decapsulation of data
ENC- Encryption of data
DEC- Decryption of data
DOWNLINK- For SNOW3G and ZUC tower to user
UPLINK- For SNOW3G and ZUC user to tower
NODIR- No direction selected
Enumerator
ENCAP 

Encapsulate the payload with protocol.

DECAP 

Decapsulate the packet with the protocol.

ENC 

Encrytion.

DEC 

Decryption.

DOWNLINK 

For SNOW3G and ZUC tower to user.

UPLINK 

For SNOW3G and ZUC user to tower.

NODIR 

No direction selected.

◆ encoding_t

IKEv2 CERT ENCODING fields

Parameters
CERT_X509_PKCS_7- Certificate encoded as X509_PKCS_7
CERT_PGP- Certificate encoded as PGP
CERT_DNS- Certificate encoded as DNS
CERT_X509_SIGNATURE- Certificate encoded as X509_SIGNATURE
CERT_RESERVED5- Certificate encoded as RESERVED5
CERT_KERBEROS- Certificate encoded as KERBEROS
CERT_CRL- Certificate encoded as CRL
CERT_ARL- Certificate encoded as ARL
CERT_SPKI- Certificate encoded as SPKI
CERT_RAW_RSA- Certificate encoded as RAW_RSA
CERT_X509_ATTRIBUTE- Certificate encoded as X509_ATTRIBUTE
CERT_HASH_URL- Certificate encoded as HASH_URL of X509
CERT_HASH_URL_BUNDLE- Certificate encoded as HASH_URL_BUNDLE of X509
CERT_OSCP_CONTENT- Certificate encoded as OSCP Content
CERT_RAW_PUBLIC_KEY- Certificate encoded as raw public key
Enumerator
CERT_X509_PKCS_7 

Certificate encoded as X509 PKCS #7.

CERT_PGP 

Certificate encoded as PGP.

CERT_DNS 

Certificate encoded as DNS.

CERT_X509_SIGNATURE 

Certificate encoded as X509 Signature.

CERT_RESERVED5 

Certificate encoded as RESERVED #5.

CERT_KERBEROS 

Certificate encoded as KERBEROS.

CERT_CRL 

Certificate encoded as CRL.

CERT_ARL 

Certificate encoded as ARL.

CERT_SPKI 

Certificate encoded as SPKI.

CERT_RAW_RSA 

Certificate encoded as RAW RSA.

CERT_X509_ATTRIBUTE 

Certificate encoded as X509_ATTRIBUTE.

CERT_HASH_URL 

Certificate encoded as HASH_URL.

CERT_HASH_URL_BUNDLE 

Certificate encoded as HASH_URL_BUNDLE.

CERT_OSCP_CONTENT 

Certificate encoded as OCSP content.

CERT_RAW_PUBLIC_KEY 

Certificate encoded as raw public key.

◆ encr_id_t

IKEv2 ENCR_ID fields

Parameters
ENCR_DES_IV64- Data Encryption Standard (DES) with 64-bit IV
ENCR_DES- Data Encryption Standard (DES)
ENCR_3DES- Triple DES with three separate keys
ENCR_RC5- RC5 Encryption
ENCR_IDEA- IDEA Encryption
ENCR_CAST- Cast Encryption
ENCR_BLOWFISH- Blowfish encrytpion
ENCR_3IDEA- Three key IDEA
ENCR_DES_IV32- Data Encryption Standard (DES) with 32-bit IV
ENCR_RSVD1- Reserved
ENCR_NULL- NULL Encryption (NOT ALLOWED)
ENCR_AES_CBC- AES-CBC Encryption
ENCR_AES_CTR- AES-CTR Encryption
ENCR_AES_CCM_8- AES-CCM Encryption with 8-byte ICV
ENCR_AES_CCM_12- AES-CCM Encryption with 12-byte ICV
ENCR_AES_CCM_16- AES-CCM Encryption with 16-byte ICV
ENCR_UNASSIGNED- Unassigned
ENCR_AES_GCM_8- AES-GCM Encryption with 8-byte ICV
ENCR_AES_GCM_12- AES-GCM Encrytion with 12-byte ICV
ENCR_AES_GCM_16- AES-GCM Encryption with 16-byte ICV
ENCR_NULL_AUTH_AES_GMAC- Null Encryption with AES-GMAC Authentication (NOT ALLOWED)
ENCR_RSVD_AES_XTS- Reserved for IEEE P1619 XTS-AES
ENCR_CAMELLIA_CBC- Camellia-CBC Encryption
ENCR_CAMELLIA_CTR- Camellia-CTR Encryption
ENCR_CAMELLIA_CCM_8- Camellia-CCM Encryption with 8-byte ICV
ENCR_CAMELLIA_CCM_12- Camellia-CCM Encryption with 12-byte ICV
ENCR_CAMELLIA_CCM_16- Camellia-CCM Encryption with 16-byte ICV
ENCR_CHACHA20_POLY1305- CHACHA20 Encryption with POLY1305 Authentication and 16-byte ICV
ENCR_AES_CCM_8_IIV- AES-CCM Encryption with 8-byte ICV and Implicit IV
ENCR_AES_GCM_16_IIV- AES-GCM Encryption with 16-byte ICV and Implicit IV
ENCR_CHACHA20_POLY1305_IIV- CHACHA20 Encryption with POLY1305 Authentication and 16-byte ICV with Implicit IV
Enumerator
ENCR_DES_IV64 

Data Encryption Standard (DES) with 64-bit IV.

ENCR_DES 

Data Encrytpion Standard (DES)

ENCR_3DES 

Triple DES with separate keys.

ENCR_RC5 

RC5 Encryption.

ENCR_IDEA 

IDEA Encryption.

ENCR_CAST 

Cast Encryption.

ENCR_BLOWFISH 

Blowfish Encryption.

ENCR_3IDEA 

Three key IDEA Encryption.

ENCR_DES_IV32 

Data Encryption Standard with 32-bit IV.

ENCR_RSVD1 

Reserved.

ENCR_NULL 

Null Encryption (NOT ALLOWED)

ENCR_AES_CBC 

AES-CBC Encryption.

ENCR_AES_CTR 

AES-CTR Encryption.

ENCR_AES_CCM_8 

AES-CCM Encryption with 8-byte ICV.

ENCR_AES_CCM_12 

AES-CCM Encryption with 12-byte ICV.

ENCR_AES_CCM_16 

AES-CCM Encryption with 16-byte ICV.

ENCR_UNASSIGNED 

Unassigned.

ENCR_AES_GCM_8 

AES-GCM Encryption with 8-byte ICV.

ENCR_AES_GCM_12 

AES-GCM Encryption with 12-byte ICV.

ENCR_AES_GCM_16 

AES-GCM Encrytpion with 16-byte ICV.

ENCR_NULL_AUTH_AES_GMAC 

Null Encryption with AES-GMAC Authentication (NOT ALLOWED)

ENCR_RSVD_AES_XTS 

Reserved for IEEE P1619 XTS-AES.

ENCR_CAMELLIA_CBC 

Camellia-CBC Encryption.

ENCR_CAMELLIA_CTR 

Camellia-CTR Encryption.

ENCR_CAMELLIA_CCM_8 

Camellia-CCM Encryption with 8-byte ICV.

ENCR_CAMELLIA_CCM_12 

Camellia-CCM Encryption with 12-byte ICV.

ENCR_CAMELLIA_CCM_16 

Camellia-CCM Encryption with 16-byte ICV.

ENCR_CHACHA20_POLY1305 

CHACHA20 Encryption with POLY1305 Authentication and 16-byte ICV.

ENCR_AES_CCM_8_IIV 

AES-CCM Encryption with 8-byte ICV and Implicit IV.

ENCR_AES_GCM_16_IIV 

AES-GCM Encryption with 16-byte ICV and Implicit IV.

ENCR_CHACHA20_POLY1305_IIV 

CHACHA20 Encryption with POLY1305 Authentication and 16-byte ICV with Implicit IV.

◆ endian_t

Endian formatting for data. Endianness is within words, double words, etc.

Parameters
BIG- Big endian with formatting as b[3]b[2]b[1]b[0]
LITTLE- Little endian with formatting as b[0]b[1]b[2]b[3]
Enumerator
BIG 

Big endian with formatting as b[3]b[2]b[1]b[0].

LITTLE 

Little endian with formatting as b[0]b[1]b[2]b[3].

◆ err_t

Status values for packet processing with format

Format for Protocol++® Status Word
Protocol (8-bits)Error (8-bits)Line Number (16-bits)


Parameters
ERR_NONE- No error
ERR_LATE- Anti-replay late packet error found
ERR_REPLAY- Anti-replay error found
ERR_ROLLOVER- Packet number rollover error
ERR_ROLLUNDER- Packet number rollunder error
ERR_PROGRAM- Programming error
ERR_ICV- ICV check failure
ERR_CRC- CRC check failure
ERR_READ_ENDOFILE- Read end of file
ERR_READ_FAILFILE- Read failed to input file handle
ERR_READ_BADFILE- Read of missing file handle
ERR_WRITE_FAILFILE- Write failed to file output
ERR_WRITE_BADFILE- Write error to file output
ERR_CHECKSUM- Checksum error
ERR_LISTEN- TCP server received packet while listening without SYN=1
ERR_ACKNUM- TCP received ACKNUM is incorrect
ERR_CLOSED- TCP session CLOSED during TX/RX
ERR_BITS- TCP header reserved bits error
ERR_TTL- TTL field of packet is zero
ERR_JUMBOGRAM_FORMAT- IPv6 JUMBOGRAM formatting error
WARN_DUMMY- Dummy packet warning
WARN_IPV6_ROUTE- IPv6 Route header but not for this destination
WARN_ZERO_DATA- Payload had zero length data
ERR_ICMP_HDR_EXT_LEN- Header extension length is ODD for ROUTE header
ERR_ICMP_SEGMENTS_LEFT- In ROUTE header, Segments left is larger than N
ERR_MULTICAST_EXT_HDR- In ROUTE header, Multicast address present
ERR_UNKNOWN_ROUTE_TYPE- In ROUTE header, Unknown route type (only type 0 is supported)
ERR_CIPHER_KEY_SIZE- For the cipher requested, the key size is incorrect
ERR_AUTH_KEY_SIZE- For the authentication requested, the key size is incorrect
ERR_IV_SIZE- For the initialization vector requested, the size is incorrect
ERR_SALT_SIZE- For the cipher salt requested, the size is incorrect
ERR_ICV_SIZE- For the authentication requested, the ICV size is incorrect
ERR_UNKNOWN_NXTHDR- For the IP packet, unknown NH value
ERR_FORMAT_ERROR- Malformed packet
WARN_INPUT_QUEUE_FULL- Send queue is full
WARN_OUTPUT_QUEUE_EMPTY- Receive queue is empty
ERR_SA_NOT_FOUND- Security Association not found
ERR_KEY_NOKEY- The key specified is invalid or not found
ERR_KEY_EXPIRED- The key specified has expired
ERR_KEY_REVOKED- The key specified has been revoked
ERR_KEY_ACCESS- The key exists but is not readable by the calling process or cant be modified by the user
ERR_KEY_NOT_SUPP- The key type does not support reading of the payload data
ERR_KEY_QUOTA- The key quota for this user would be exceeded by creating this key
ERR_KEY_INVALID- The payload data was invalid
ERR_KEY_REJECTED- The attempt to generate a new key was rejected
ERR_KEY_NOMEM- Insufficient memory to create a key
ERR_KEY_INTR- The request was interrupted by a signal
ERR_RSA_INVALID_CODING- Coding of the RSA decrypted data was incorrect
ERR_RSA_MESSAGE_LENGTH- Decrypted RSA message length is incorrect
ERR_INVALID_SIGNATURE- Signature verification failed
ERR_INVALID_XMSS_TYPE- Selected XMSS or XMSS^MT type is invalid
ERR_PDU_LEN- PDU length is incorrect
WARN_NO_VLAN- VLAN tag did not match the Security Association
WARN_NO_VNI- VNI tag did not match the Security Association
ERR_ICVFAIL_LIMIT- DTLSv13 maximum packets have failed ICV check
ERR_PADDING- Padding errors in DTLS v1.3 packet
ERR_EPOCH_DTLS13- Received EPOCH is differnt than current association EPOCH
ERR_UNKNOWN- Unknown error
Enumerator
ERR_NONE 

No error.

ERR_LATE 

Anti-replay late packet error found.

ERR_REPLAY 

Anti-replay error found.

ERR_ROLLOVER 

Packet number rollover error.

ERR_ROLLUNDER 

Packet number rollunder error.

ERR_PROGRAM 

Programming error.

ERR_ICV 

ICV check failure.

ERR_CRC 

CRC check failure.

ERR_READ_ENDOFILE 

Read end of file.

ERR_READ_FAILFILE 

Read failed to input file handle.

ERR_READ_BADFILE 

Read of missing file handle.

ERR_WRITE_FAILFILE 

Write failed to file output.

ERR_WRITE_BADFILE 

Write error to file output.

ERR_CHECKSUM 

Checksum error.

ERR_LISTEN 

TCP server received packet while listening without SYN=1.

ERR_ACKNUM 

TCP received ACKNUM is incorrect.

ERR_CLOSED 

TCP session CLOSED during TX/RX.

ERR_BITS 

TCP header reserved bits error.

ERR_TTL 

TTL field of packet is zero.

ERR_JUMBOGRAM_FORMAT 

IPv6 JUMBOGRAM formatting error.

WARN_DUMMY 

Dummy packet warning.

WARN_IPV6_ROUTE 

IPv6 Route header but not for this destination.

WARN_ZERO_DATA 

Payload had zero length data.

ERR_ICMP_HDR_EXT_LEN 

Header extension length is ODD for ROUTE header.

ERR_ICMP_SEGMENTS_LEFT 

In ROUTE header, Segments left is larger than N

ERR_MULTICAST_EXT_HDR 

In ROUTE header, Multicast address present.

ERR_UNKNOWN_ROUTE_TYPE 

In ROUTE header, Unknown route type (only type 0 is supported)

ERR_CIPHER_KEY_SIZE 

Key size incorrect for cipher.

ERR_AUTH_KEY_SIZE 

Key size incorrect for authentication.

ERR_IV_SIZE 

Initialization vector size is incorrect.

ERR_SALT_SIZE 

Salt size for cipher is incorrect.

ERR_ICV_SIZE 

ICV size is incorrect for authentication scheme.

ERR_UNKNOWN_NXTHDR 

For the IP packet, unknown NH value.

ERR_FORMAT_ERROR 

Malformed packet.

WARN_INPUT_QUEUE_FULL 

Send queue is full.

WARN_OUTPUT_QUEUE_EMPTY 

Receive queue is empty.

ERR_SA_NOT_FOUND 

Security Association not found.

ERR_KEY_NOKEY 

The key specified is invalid or not found.

ERR_KEY_EXPIRED 

The key specified has expired.

ERR_KEY_REVOKED 

The key specified has been revoked.

ERR_KEY_ACCESS 

The key exists but is not readable by the calling process or cant be modified by the user.

ERR_KEY_NOT_SUPP 

The key type does not support reading of the payload data.

ERR_KEY_QUOTA 

The key quota for this user would be exceeded by creating this key.

ERR_KEY_INVALID 

The payload data was invalid.

ERR_KEY_REJECTED 

THe attempt to generate a new key was rejected.

ERR_KEY_NOMEM 

Insufficient memory to create a key.

ERR_KEY_INTR 

The request was interrupted by a signal.

ERR_RSA_INVALID_CODING 

Coding of RSA decrypted data was incorrect.

ERR_RSA_MESSAGE_LENGTH 

Decrypted RSA message length was incorrect.

ERR_INVALID_SIGNATURE 

Signature verification failed.

ERR_INVALID_XMSS_TYPE 

Invalid XMSS or XMSS^MT type.

ERR_PDU_LEN 

PDU length is incorrect.

ERR_NVGRE_KEY_ID 

NVGRE Key ID did not match.

WARN_NO_VLAN 

VLAN tags did not match.

WARN_NO_VNI 

VXLAN tag did not match.

ERR_ICVFAIL_LIMIT 

DTLSv13 maximum packets failed ICV check.

ERR_PADDING 

Padding error in packet.

ERR_EPOCH_DTLS13 

Received EPOCH is differnt than current association EPOCH.

ERR_UNKNOWN 

Unknown error.

◆ esn_id_t

IKEv2 ESN_ID fields

Parameters
ESN_NO- Disable Extended Sequence Number Use
ESN_YES- Enable Extended Sequence Number Use
Enumerator
ESN_NO 

Disable Extended Sequence Number Use.

ESN_YES 

Enable Extended Sequence Number Use.

◆ ethid_t

Ethernet ID Type for use with drivers

Parameters
ETH_P_LOOP- Ethernet Loopback packet (0x0060)
ETH_P_PUP- Xerox PUP packet (0x0200)
ETH_P_PUPAT- Xerox PUP Addr Trans packet (0x0201)
ETH_P_IP- Internet Protocol packet (0x0800)
ETH_P_X25- CCITT X.25 (0x0805)
ETH_P_ARP- Address Resolution packet (0x0806)
ETH_P_BPQ- G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] (0x08FF)
ETH_P_IEEEPUP- Xerox IEEE802.3 PUP packet (0x0a00)
ETH_P_IEEEPUPAT- Xerox IEEE802.3 PUP Addr Trans packet (0x0a01)
ETH_P_BATMAN- B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] (0x4305)
ETH_P_DEC- DEC Assigned proto (0x6000)
ETH_P_DNA_DL- DEC DNA Dump/Load (0x6001)
ETH_P_DNA_RC- DEC DNA Remote Console (0x6002)
ETH_P_DNA_RT- DEC DNA Routing (0x6003)
ETH_P_LAT- DEC LAT (0x6004)
ETH_P_DIAG- DEC Diagnostics (0x6005)
ETH_P_CUST- DEC Customer use (0x6006)
ETH_P_SCA- DEC Systems Comms Arch (0x6007)
ETH_P_TEB- Transparent Ether Bridging (0x6558)
ETH_P_RARP- Reverse Addr Res packet (0x8035)
ETH_P_ATALK- Appletalk DDP (0x809B)
ETH_P_AARP- Appletalk AARP (0x80F3)
ETH_P_8021Q- 802.1Q VLAN Extended Header (0x8100)
ETH_P_IPX- IPX over DIX (0x8137)
ETH_P_IPV6- IPv6 over bluebook (0x86DD)
ETH_P_PAUSE- IEEE Pause frames. See 802.3 31B (0x8808)
ETH_P_SLOW- Slow Protocol. See 802.3ad 43B (0x8809)
ETH_P_WCCP- Web-cache coordination protocol defined in draft-wilson-wrec-wccp-v2-00.txt (0x883E)
ETH_P_PPP_DISC- PPPoE discovery messages (0x8863)
ETH_P_PPP_SES- PPPoE session messages (0x8864)
ETH_P_MPLS_UC- MPLS Unicast traffic (0x8847)
ETH_P_MPLS_MC- MPLS Multicast traffic (0x8848)
ETH_P_ATMMPOA- MultiProtocol Over ATM (0x884c)
ETH_P_LINK_CTL- HPNA, wlan link local tunnel (0x886c)
ETH_P_ATMFATE- Frame-based ATM Transport over Ethernet (0x8884)
ETH_P_PAE- Port Access Entity (IEEE 802.1X) (0x888E)
ETH_P_AOE- ATA over Ethernet (0x88A2)
ETH_P_8021AD- 802.1ad Service VLAN (0x88A8)
ETH_P_802_EX1- 802.1 Local Experimental 1. (0x88B5)
ETH_P_TIPC- TIPC (0x88CA)
ETH_P_MACSEC- 802.1ae MACsec (0x88E5)
ETH_P_8021AH- 802.1ah Backbone Service Tag (0x88E7)
ETH_P_MVRP- 802.1Q MVRP (0x88F5)
ETH_P_1588- IEEE 1588 Timesync (0x88F7)
ETH_P_FCOE- Fibre Channel over Ethernet (0x8906)
ETH_P_IBOE- Infiniband over Ethernet (0x8915)
ETH_P_TDLS- TDLS (0x890D)
ETH_P_FIP- FCoE Initialization Protocol (0x8914)
ETH_P_80221- IEEE 802.21 Media Independent Handover Protocol (0x8917)
ETH_P_NSH- Network Service Header (0x894F)
ETH_P_LOOPBACK- Ethernet loopback packet, per IEEE 802.3 (0x9000)
ETH_P_QINQ1- deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] (0x9100)
ETH_P_QINQ2- deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] (0x9200)
ETH_P_QINQ3- deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] (0x9300)
ETH_P_EDSA- Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] (0xDADA)
ETH_P_IFE- ForCES inter-FE LFB type (0xED3E)
ETH_P_AF_IUCV- IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] (0xFBFB)
ETH_P_802_3_MIN- If the value in the ethernet type is less than this value then the frame is Ethernet II. Else it is 802.3 (0x0600)
ETH_P_802_3- Dummy type for 802.3 frames (0x0001)
ETH_P_AX25- Dummy protocol id for AX.25 (0x0002)
ETH_P_ALL- Every packet (0x0003)
ETH_P_802_2- 802.2 frames (0x0004)
ETH_P_SNAP- Internal only (0x0005)
ETH_P_DDCMP- DEC DDCMP: Internal only (0x0006)
ETH_P_WAN_PPP- Dummy type for WAN PPP frames (0x0007)
ETH_P_PPP_MP- Dummy type for PPP MP frames (0x0008)
ETH_P_LOCALTALK- Localtalk pseudo type (0x0009)
ETH_P_CAN- CAN: Controller Area Network (0x000C)
ETH_P_CANFD- CANFD: CAN flexible data rate (0x000D)
ETH_P_PPPTALK- Dummy type for Atalk over PPP (0x0010)
ETH_P_TR_802_2- 802.2 frames (0x0011)
ETH_P_MOBITEX- Mobitex (kaz@c.nosp@m.afe..nosp@m.net) (0x0015)
ETH_P_CONTROL- Card specific control frames (0x0016)
ETH_P_IRDA- Linux-IrDA (0x0017)
ETH_P_ECONET- Acorn Econet (0x0018)
ETH_P_HDLC- HDLC frames (0x0019)
ETH_P_ARCNET- 1A for ArcNet (0x001A)
ETH_P_DSA- Distributed Switch Arch. (0x001B)
ETH_P_TRAILER- Trailer switch tagging (0x001C)
ETH_P_PHONET- Nokia Phonet frames (0x00F5)
ETH_P_IEEE802154- IEEE802.15.4 frame (0x00F6)
ETH_P_CAIF- ST-Ericsson CAIF protocol (0x00F7)
ETH_P_XDSA- Multiplexed DSA protocol (0x00F8)
Enumerator
ETH_P_LOOP 

Ethernet Loopback packet.

ETH_P_PUP 

Xerox PUP packet.

ETH_P_PUPAT 

Xerox PUP Addr Trans packet.

ETH_P_IP 

Internet Protocol packet.

ETH_P_X25 

CCITT X.25.

ETH_P_ARP 

Address Resolution packet.

ETH_P_BPQ 

G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ].

ETH_P_IEEEPUP 

Xerox IEEE802.3 PUP packet.

ETH_P_IEEEPUPAT 

Xerox IEEE802.3 PUP Addr Trans packet.

ETH_P_BATMAN 

B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ].

ETH_P_DEC 

DEC Assigned proto.

ETH_P_DNA_DL 

DEC DNA Dump/Load.

ETH_P_DNA_RC 

DEC DNA Remote Console.

ETH_P_DNA_RT 

DEC DNA Routing.

ETH_P_LAT 

DEC LAT.

ETH_P_DIAG 

DEC Diagnostics.

ETH_P_CUST 

DEC Customer use.

ETH_P_SCA 

DEC Systems Comms Arch.

ETH_P_TEB 

Transparent Ether Bridging.

ETH_P_RARP 

Reverse Addr Res packet.

ETH_P_ATALK 

Appletalk DDP.

ETH_P_AARP 

Appletalk AARP.

ETH_P_8021Q 

802.1Q VLAN Extended Header

ETH_P_IPX 

IPX over DIX.

ETH_P_IPV6 

IPv6 over bluebook.

ETH_P_PAUSE 

IEEE Pause frames. See 802.3 31B.

ETH_P_SLOW 

Slow Protocol. See 802.3ad 43B.

ETH_P_WCCP 

Web-cache coordination protocol defined in draft-wilson-wrec-wccp-v2-00.txt.

ETH_P_PPP_DISC 

PPPoE discovery messages.

ETH_P_PPP_SES 

PPPoE session messages.

ETH_P_MPLS_UC 

MPLS Unicast traffic.

ETH_P_MPLS_MC 

MPLS Multicast traffic.

ETH_P_ATMMPOA 

MultiProtocol Over ATM.

ETH_P_LINK_CTL 

HPNA wlan link local tunnel.

ETH_P_ATMFATE 

Frame-based ATM Transport over Ethernet.

ETH_P_PAE 

Port Access Entity (IEEE 802.1X)

ETH_P_AOE 

ATA over Ethernet.

ETH_P_8021AD 

802.1ad Service VLAN

ETH_P_802_EX1 

802.1 Local Experimental 1

ETH_P_TIPC 

TIPC.

ETH_P_MACSEC 

802.1ae MACsec

ETH_P_8021AH 

802.1ah Backbone Service Tag

ETH_P_MVRP 

802.1Q MVRP

ETH_P_1588 

IEEE 1588 Timesync.

ETH_P_FCOE 

Fibre Channel over Ethernet.

ETH_P_IBOE 

Infiniband over Ethernet.

ETH_P_TDLS 

TDLS.

ETH_P_FIP 

FCoE Initialization Protocol.

ETH_P_80221 

IEEE 802.21 Media Independent Handover Protocol.

ETH_P_NSH 

Network Service Header.

ETH_P_8021I 

802.1Q Instance VLAN

ETH_P_LOOPBACK 

Ethernet loopback packet per IEEE 802.3.

ETH_P_QINQ1 

deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ]

ETH_P_QINQ2 

deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ]

ETH_P_QINQ3 

deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ]

ETH_P_EDSA 

Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ].

ETH_P_IFE 

forCES inter-FE LFB type

ETH_P_AF_IUCV 

IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ].

ETH_P_802_3_MIN 

If the value in the ethernet type is less than this value then the frame is Ethernet II else it is 802.3.

ETH_P_802_3 

Dummy type for 802.3 frames.

ETH_P_AX25 

Dummy protocol id for AX.25.

ETH_P_ALL 

Every packet (be careful!!!)

ETH_P_802_2 

802.2 frames

ETH_P_SNAP 

Internal only.

ETH_P_DDCMP 

DEC DDCMP: Internal only.

ETH_P_WAN_PPP 

Dummy type for WAN PPP frames.

ETH_P_PPP_MP 

Dummy type for PP MP frames.

ETH_P_LOCALTALK 

Localtalk psuedo type.

ETH_P_CAN 

CAN: Controller Area Network.

ETH_P_CANFD 

CANFD: CAN flexible data rate.

ETH_P_PPPTALK 

Dummy type for Atalk over PPP.

ETH_P_TR_802_2 

802.2 frames

ETH_P_MOBITEX 

Mobitex (kaz@c.nosp@m.afe..nosp@m.net)

ETH_P_CONTROL 

Card specific control frames.

ETH_P_IRDA 

Linux-IrDA.

ETH_P_ECONET 

Acorn Econet.

ETH_P_HDLC 

HDLC frames.

ETH_P_ARCNET 

1A for ArcNet

ETH_P_DSA 

Distributed Switch Arch.

ETH_P_TRAILER 

Trailer switch tagging.

ETH_P_PHONET 

Nokia Phonet frames.

ETH_P_IEEE802154 

IEEE802.15.4 frame.

ETH_P_CAIF 

ST-Ericsson CAIF protocol.

ETH_P_XDSA 

Multiplexed DSA protocol.

ETH_P_NONE 

No Ethernet command.

◆ exchg_t

IKEv2 Exchange Type fields

Parameters
EXCHG_IKE_SA_INIT- IKE Security Association Initial Exchange
EXCHG_IKE_AUTH- IKE Authentication Exchange
EXCHG_CREATE_CHILD_SA- Create Child Security Association Exchange
EXCHG_INFORMATIONAL- INFORMATIONAL Exchange
EXCHG_IKE_SESSION_RESUME- IKE Session Resume Exchange
EXCHG_GSA_AUTH- GSA Authentication Exchange
EXCHG_GSA_REGISTRATION- GSA Registration Exchange
EXCHG_GSA_REKEY- GSA Rekey Exchange
EXCHG_IKE_PARSE- Parse the received packet
EXCHG_IKE_RESEND- Resend the packet
EXCHG_IKE_LISTEN- Set IKE in LISTEN mode on the socket
Enumerator
EXCHG_IKE_SA_INIT 

IKE Security Association Initial Exchange.

EXCHG_IKE_AUTH 

IKE Authentication Exchange.

EXCHG_CREATE_CHILD_SA 

Create Child Security Association Exchange.

EXCHG_INFORMATIONAL 

INFORMATIONAL Exchange.

EXCHG_IKE_SESSION_RESUME 

IKE Session Resume Exchange.

EXCHG_GSA_AUTH 

GSA Authentication Exchange.

EXCHG_GSA_REGISTRATION 

GSA Registration Exchange.

EXCHG_GSA_REKEY 

GSA Rekey Exchange.

EXCHG_IKE_PARSE 

Parse the received packet.

EXCHG_IKE_RESEND 

Resend the packet.

EXCHG_IKE_LISTEN 

Set IKE in LISTEN mode on the socket.

◆ falcon_algorithm_t

Falcon Signature Algorithm

FALCON_512 - Falcon algorithm with 512-bit public key FALCON_1024 - Falcon algorithm with 1024-bit public key

Enumerator
FALCON_512 

Falcon algorithm with 512-bit public key.

FALCON_1024 

Falcon algorithm with 1024-bit public key.

◆ field_t

Parameters
DIRECTION- Direction of processing (ENCAP or DECAP)

IKEv2 fields

Parameters
IKECNXT- IKE Connection Name
EXCHG- IKE Exchange type
NXTPYLD- Next IKE payload type
MAJOR_REVISION- IKE Major revision value
MINOR_REVISION- IKE Minor revision value
FLAGS- IKE Minor revision value
MSGIDINIT- IKE Message Identifier when Initiator(starts at zero)
MSGIDRESP- IKE Message Identifier when Responder(starts at zero)
SPIi- IKE Initiator Security Parameter Index (SPI)
SPIr- IKE Responder Security Parameter Index (SPI)
Ni- IKE Initiator Nonce
Nr- IKE Responder Nonce
SKd- IKE PRF Key for Child SA Key Generation
CIPHER- IKE Encryption Cipher
CKEYLEN- IKE Encryption Key Length
IVLEN- IKE Initialization Vector (ICV) Length
SALTLEN- IKE Salt Length
SKei- IKE Initiator Encryption Key
SKer- IKE Responder Encryption Key
IV- IKE Initialization Vector
SKsi- IKE Initiator Salt Value
SKsr- IKE Responder Salt Value
INTEG- IKE Integrity Algorithm
AKEYLEN- IKE Integrity Key Length
AADLEN- Authentication only data (AADLEN)
ICVLEN- IKE Integrity Check Value (ICV)
SKai- IKE Initiator Integrity Key
SKar- IKE Responder Integrity Key
PRF- IKE Psuedo Random Function (PRF)
prflen- IKE Psuedo Random Function (PRF) output length
SKpi- IKE Initiator Psuedo Random Key
SKpr- IKE Responder Psuedo Random Key
DH- IKE Diffie-Hellman Group ID
IKEAUTH- IKE Signing Algorithm
IKEHASH- IKE Hash Algorithm
ARLEN- Length of the Anti-Replay Window

IPsec fields

Parameters
VERSION- First nibble in the IP header defines IPv4 or IPv6
MODE- Mode of operation either TUNNEL or TRANSPORT
SPI- Security paramater index (SPI)
SEQNUM- Sequence number for the packet from ESP header
EXTSEQNUM- Extended sequence number for this packet
ARLEN- Length of the anti-replay window
ARWIN- Anti-Replay window represented as a byte array
CIPHER- Cipher for encryption
CKEYLEN- Length of the cipher key
CIPHERKEY- Cipher key for encryption
AUTH- Authentication mode
AKEYLEN- Length of the authentication key
AUTHKEY- Authentication key
IVLEN- Length of the initialization vector in bytes (IV)
IV- Initialization vector
SALTLEN- Length of the salt for encryption use
SALT- Salt for encryption use
BYTECNT- Number of bytes encrypted or decrypted by this flow
LIFETIME- Amount of time for this flow to exist
SEQNUMOVRFLW- Enable SEQNUM overflow during ENCAP
STATEFULFRAG- Stateful FRAG bit
BYPASSDF- Enable bypassing the DONT FRAGMENT bit
BYPASSDSCP- Enable bypassing the DiffServices copy from inner to outer header
NAT- Enable Network Address Translation (NAT) insertion
NCHK- Enable NAT checksum generation and checking
DSECN- Diff Services/Congestion bits
TTLHOP- Time-to-Live field for the packet
FLAGS- Flags field in IPv4
NATSRC- Source port for NAT
NATDST- Destination port for NAT
ID- Identification field for IPv4
LABEL- Label field for IPv6
FRAGOFFSET- Fragment offset from first packet
MOREFRAG- Enable fragmentation of packet
FRAGID- Fragmentation ID for this segment of the overall packet
MTU- Maximum Transmission unit (MTU)
SOURCE- Source address
DESTINATION- Destination address
EXTHDR- IPv6 Extension header
NH- Next header in either the extension header or the payload
ICVLEN- Length of the ICV
HDRLEN- Length of the IP header
TFCLEN- Length of the Traffic Flow Confidentiality (TFC) padding
USEXT- Use extended sequence number
RANDIV- Use random IV rather than user IV
NODEJUMBO- Nodal JUMBOGRAM support
AUDIT- Enable auditing of IP flow
AUDITLOG- Path to the audit log
CHECKSUM- IPv4 header checksum
LENGTH-Length of the packet(IPv4) or length of the packet minus the standard 40-byte header (IPv6)

ICMP fields

Parameters
VERSION- Version (ICMP or ICMPv6)
TYPE- ICMP Type
CODE- ICMP SubType
CHECKSUM- Checksum field
POINTER- Pointer to error in packet
IDENTIFIER- Identifier from the invoking message
SEQNUM- Sequence number of the packet
GATEWAY- Gateway Internet Address
MTU- Maximum transmission unit for the next-hop link
ORIGTIMESTAMP- Timestamp from the origination node
RXTIMESTAMP- Receive timestamp
TXTIMESTAMP- Transmit timestamp
SOURCE- Source Address
DESTINATION- Destination Address
MESSAGE- Message to send
ICMPCODE- Code to send

IP fields

Parameters
VERSION- First nibble in the IP header defines IPv4 or IPv6
DSECN- Diff Services/Congestion bits
ID- Identification field for IPv4
LABEL- Label field for IPv6
FRAGOFFSET- Fragment offset from first packet
NH- Next header in either the extension header or the payload
TTLHOP- Time-to-Live field for the packet
CHECKSUM- IPv4 header checksum
FLAGS- Flags field in IPv4
LENGTH-Length of the packet(IPv4) or length of the packet minus the standard 40-byte header (IPv6)
EXTHDR- IPv6 Extension header
NODEJUMBO- Nodal JUMBOGRAM support

LTE/3GPP fields

Parameters
DATACTRL- Data or Control flag (Control - 0, Data - 1)
PDUTYPE- Control PDU type field
POLLBIT- Polling bit
EXTENSION- Extension bit
RSN- Reset sequence number (RSN)
SNLEN- Sequence number length in bits
HDREXT- Header extension type field
LENGTHIND- Length indicator field
SEQNUM- Sequence number
HFNI- Hyper frame number indicator (HFNI)
SUFI- Super Field (SUFI)
FMS- PDCP SN of the first missing PDCP SDU (FMS)
PGKINDEX- Five LSBs of PGK identity
PTKINDENT- PTK identity
SDUTYPE- PDCP SDU type (IP, ARP, PC5SIG, NONIP, RSVD)
KDID- Kd identity
NMP- Number of missing PDCP SDUs with associated COUNT value
HRW- PDCP SN of the PDCP SDU received on WLAN with highest associated PDCP COUNT value
BEARER- Bearer value
FRESH- Fresh value
COUNT- Count value
BITMAPLEN- Length of the BitMap
BITMAP- Bitmap for LTE

MacSEC fields

Parameters
SOURCE- Source address
DESTINATION- Destination address
ETHERTYPE- Ethertype type
SL- Short Length field
TCIAN- TAG Control Information and Association Number
PN- Packet number
XPN- Extended packet number
SCI- Secure Channel Identifier
SSCI- Short Secure Channel Identifier
SAKEY- Security Association Key
ENRECEIVE- Enable reception of packets
ENTRANSMIT- Enable transmission of packets
PROTECTFRAMES- Protect outgoing packets
INUSE- This MacSEC flow is in use and receiving packets
CREATETIME- Time this MacSEC was created
STARTTIME- Time this MacSEC last enabled reception of packets
STOPTIME- Time this MacSEC last disabled reception of packets
VLANTAG1- Customer, Service, or Service Instance 802.1Q VLAN tag
VLANTAG2- Customer, Service, or Service Instance 802.1Q VLAN tag

SRTP fields

Parameters
VERSION- Version of SRTP used (currently set to 2)
PADDING- Padding flag to indicate padding in the payload
EXTENSION- Flag to indicate presence of extension headers
CC- Number of CSRC fields present
MARKER- Marker flag
PT- Type of payload present (much like NH in IPsec)
SEQNUM- Sequence number for the packet
ROC- Rollover counter
TIMESTAMP- Timestamp for the packet
SSRC- Synchronization Source Identifier
CSRC- Contributing Source Identifier
BLKSIZE- Block size of the encryption cipher

TCP fields

Parameters
SOURCE- Source address
DESTINATION- Destination address
SEQNUM- Sequence number
ACKNUM- Acknowledge number
OFFSET- Data offset
FLAGS- Flags field
RCVWINDOW- Receive size window
CHECKSUM- Checksum field
URGENT- Urgent pointer
STATE- TCP state of operation
OPTIONS- Options field
SEGLEN- Segment length
PRECEDENCE- Precendence of this flow
SNDUNA- Send UNA
SNDNXT- Send next seqnum
SNDWND- Send window size
SNDUP- Send UP
SNDW1- Send window 1
SNDW2- Send window 2
ISS- ISS
RCVNXT- Receive next seqnum expected
RCVWND- Receive window size
RCVUP- RCVUP
IRS- IRS
TCPTIMEOUT- Timeout for TCP shutdown

TLS fields

Parameters
TYPE- Type of packet being sent/received
VERSION- Version of TLS used
LENGTH- Length of the packet
SEQNUM- Current or recently received packet
EPOCH- Current EPOCH in DTLS
CIPHERSUITE- Cipher and authentication scheme for this flow
ENCTHENMAC- Enable ENCRYPT-THEN-MAC for TLS
IVEX- Implicit(false) or Explicit(true) IV

TLS13 fields

Parameters
DIRECTION- Direction of processing (ENCAP/DECAP)
CIPHERSUITE- Cipher and authentication scheme for this flow
TYPE- Type of packet being sent/received
SEQNUM- Current or recently received packet
ICVLEN- Length of the Integrity Check Value (ICV)
IVLEN- Length of the Initial Vector (IV)
IV- Initial Vector (IV)
CKEYLEN- Cipher key length
CKEY- Cipher key
ARLEN- Anti-Replay window size
ARWIN- Anti-Replay window
MTU- Maximum Transfer Unit (MTU)

DTLS13 fields

Parameters
DIRECTION- Direction of processing (ENCAP/DECAP)
CIPHERSUITE- Cipher and authentication scheme for this flow
APP_TRAFFIC_SECRET- Application per EPOCH traffic secret
TYPE- Type of packet being sent/received
CID- Connection ID field
CBIT- Flag that indicates presence of CID
SBIT- Flag that indicates SEQNUM field length (0: 8-bits, 1: 16-bits)
LBIT- Flag that indicates Length field is present
SEQNUM- Current or recently received packet
AUTHFAIL- ICV failure counter
ICVLEN- Length of the Integrity Check Value (ICV)
IVLEN- Length of the Initial Vector (IV)
IV- Initial Vector (IV)
CKEYLEN- Cipher key length
CKEY- Cipher key
ARLEN- Anti-Replay window size
ARWIN- Anti-Replay window
MTU- Maximum Transfer Unit (MTU)

UDP fields

Parameters
SOURCE- Source address
DESTINATION- Destination address
LENGTH- Length of the packet
CHECKSUM- Checksum for UDP packet
VNI- VXLAN Network Identifier

Wifi/Wigig fields

Parameters
FRAMECTL- Frame control sequence in entirety
CTLEXT- Control frame extension
PROTVER- Protocol version
TYPE- Type
SUBTYPE- SubType
TDS- To Data Stream (TDS)
FDS- From Data Stream (FDS)
MFRAG- More fragmentation
RETRY- retry bit
PWRMGMT- Power management
MDATA- More data field
WEP- Wireless Encryption Protection (WEP)
ORDER- Order
KDFALG- Key derivation function algorithm (KDF)
ID- Duration ID
ADD1- First address
ADD2- Second address
ADD3- Third address
SEQCTL- Sequence Control
ADDR4- Fourth address
QOSCTL- Quality of Service field
HTCTL- HT control field
PN- Packet Number
EXTIV- Extended IV flag
KEYID- Key identification
HDRLEN- Length of the header according to option bits
SPPCAP- SPPCAP
FCS- Enable CRC checking for Wifi packet

WiMax fields

Parameters
HT- Header type where zero for generic MAC header
EC- Encrytion Control 0=no encryption 1=encryption
TYPE- Indicates the subheaders and payload types
ESF- Extended subheader field ESF=1 then ESF present and follows MAC header
CI- CRC indicator 0=no CRC 1=CRC present
EKS- Encryption key sequence. Index of TEK and IV used to encrypt the payload
LENGTH- length in bytes of MAC PDU including header and CRC if present
CID- Connection Identifier
FID- Flow Identifier (AGHM header only)
EH- Extended header group indicator (AGHM header only)
HCS- Header check sequence 8-bit header checksum
PN- Packet Number

Cryptosystem

Parameters
BITSIZE- Size of the private key
RSAPAD- Pad type for RSA (PSS or PKCS)
PRVKEY- Private key
PUBKEY- Public key
KEYPAIR- Public/Private key pair
RSAENC- RSA Encryption type

Digital Signal Algorithm fields

Parameters
BITSIZE- Size of the private key
PRIME- Prime value for DSA (usually called "p")
SUBPRIME- Prime value for DSA (usually called "q")
GENERATOR- Prime value for DSA (usually called "g")
PRVKEY- Private key
PUBKEY- Public key
KEYPAIR- Public/Private key pair
BLOCKSIZE- Block size

Elliptic Curve Digital Signal Algorithm fields

Parameters
GX- X-coordinate for the ECDSA curve
GY- Y-coordinate for the ECDSA curve
CURVE- Name of the current curve
PRVKEY- Private key
PUBKEY- Public key
KEYPAIR- Public/Private key pair
ECHASH- Hash function to use for ECDSA

Elliptic Curve Digital Signal Algorithm fields for Ed25519

Parameters
SIGNER- Signature object for Ed25519
VERIFIER- Verification object for Ed25519

Packet Class for ProtocolPP

Parameters
OUTADDR- Output address for the packet
NAME- Name of this packet
OUTLEN- Output length for the packet
STREAM- Name of the stream associated with the packet
PREVIOUS- Name of the packet preceeding this packet
INLEN- Input length for the packet
OUTPUTLEN- Output length
EXPLEN- Expected data length for the packet
STATUS- Status word of this packet
ZEROINIT- Initial value of CRC zero
SWAPIN- Swap input data before calculating CRC
SWAPOUT- Swap output data before calculating CRC
COMPOUT- Complement output CRC

Testbench Configuration fields

Parameters
SEED- Testbench seed
USE_CRYPTO- Use cryptographic quality random numbers
ERRORS- Number of errors
FLOWS- Number of flows
PACKETS- Number of packets
IBYTES- Number of bytes sent to responder(s)
OBYTES- Number of bytes received from responder(s)
LOGLVL- Logging level
PTRSIZE- Pointer size for testbench
SGTSIZE- Scatter-gather table entry size
BUFSIZE- Buffer size in bytes (0, 64, 128, 192, 256, 384, 512)
BUFWIDTH- Width for buffer type in bytes (0, 1, 2, 4, 8)
BUFNUM- Number of buffers in the memory (default: 16384)
STDOUT- Log to std::cout
ENDIAN- Endianness for testbench
BURSTLEN- Burst length for flows
PLATFORM- Platform to run testbench with
DEBUGCLR- Color of debug messages
INFOCLR- Color of info messages
WARNCLR- Color of warn messages
ERRCLR- Color of error messages
FATALCLR- Color of fatal messages
PASSCLR- Color of pass messages

Memory Blob fields

Parameters
BKEK- Blob Key Encryption Key (BKEK)
BKEKLEN- Blob Key Encryption Key Length (BKEK)
BLOBKEY- Blob Key Encryption Key
BLOBKEYLEN- Blob Key Encryption Key Lenth

XMSS and WOTS+ fields

Parameters
WOTSALGO- WOTS+ Algorithm
LAYERADDR- Address of the tree layer
TREEADDR- Address in the binary tree
TYPEVAL- Value of the TYPE (0, 1, or 2)
ADDRORPAD- One-Time Signature Address, LTREE address, or padding
CHAINHEIGHT- Chain Address or Tree Height
HASHORIDX- Hash address in tree or Tree Index
KEYNMASK- Key and mask address
BYTEARRAY- Convert OTS addresses to byte array
WINTZ- Winternitz parameter
SIGLEN- Signature length
STACK- Stack in XMSS/LMS
STACKPUSH- Push to the XMSS/LMS stack
STACKPOP- Pop the top of the XMSS/LMS stack
STACKTOP- Return the top of the XMSS/LMS stack
STACKIDX- Access index of the XMSS/LMS stack
STACKLEN- Height of the top node of the XMSS/LMS stack
PARAMS- XMSS parameters

, LMOTS, and HSS fields

Parameters
LMOTSQ- LMOTS value of 'q'
LMOTSN- LMOTS value of 'n', the length of the hash function output
LMOTSW- LMOTS value of 'w', the Winternitz parameter
LMOTSP- LMOTS value of 'p', the number of w-bit values in the signature
LMOTSLS- LMOTS value of 'ls', the left-shift value of the checksum calculation
LMOTSSIGLEN- LMOTS value of 'siglen', the length of the signature
LMOTSI- LMOTS key pair identifier
LMOTSEED- LMOTS seed value
LMOTC- LMOTS c-array value
LMOTS- LMOTS engine
LMSALGVAL- LMS Algorithm value as a jarray<uint8_t>
LMOTSALGVAL- LMOTS Algorithm value as a jarray<uint8_t>
LMTREELVLS- Number of tree levels for LMS (2-8 are valid)
PRVKEYLEN- Length of the private key
PUBKEYLEN- Length of the public key

and NVGRE fields

Parameters
CBIT- Flag that indicates CHKSUM field is present
KBIT- Flag that indicates KEY field is present
SBIT- Flag that indicates SEQNUM field is present
KEY- Key field for GRE
SEQNUM- Seqnum field for GRE
FLOWID- FlowId field for NVGRE
PROTYPE- Protocol type field for GRE
MODE- GRE Protocol (NVGRE or PGRE)

fields

Parameters
PRVIKEYLEN- Private intermediate key length
PUBIKEYLEN- Public intermediate key length
SYMBYTES- Length of the signature
KYBERK- Kyber K parameter
KYBERN- Kyber N parameter
KYBERQ- Kyber Q parameter
POLYBYTES- Length of the polynomial
POLYVECBYTES- Length of the polynomial vector
SSBYTES- Length of ss bytes
PCBYTES- Length of compressed polynomial
PVCBYTES- Length of compressed polynomial vector
MSGIBYTES- Length of intermediate result
ILENGTH- Length of intermediate result
QINV- Kyber Q inverse parameters (// q^-1 mod 2^16 = 62209)
KYBERETA1- Kyber ETA1 parameter
KYBERETA2- Kyber ETA2 parameter
Enumerator
DIRECTION 

Direction of processing (ENCAP or DECAP)

VERSION 

Version field for the packet either IPV4 or IPV6 (ICMP or ICMPV6) (SSL30, TLS10, TLS11, TLS12, TLS13, DTLS, DTLS13)

MODE 

Mode of operation either TUNNEL or TRANSPORT.

SPI 

Security parameter index (SPI)

SEQNUM 

Sequence number for the packet.

EXTSEQNUM 

Extended sequence number.

ARLEN 

Length of the anti-replay window.

ARWIN 

Anti-Replay window represented as a byte array.

CIPHER 

Cipher for encryption.

CKEYLEN 

Length of the cipher key.

CIPHERKEY 

Cipher key for encryption.

AUTH 

Authentication mode.

AKEYLEN 

Length of the authentication key.

AUTHKEY 

Authentication key.

IVLEN 

Length fo the initialization vector (IV)

IV 

Initializaton Vector (IV)

SALTLEN 

Length of encryption salt.

SALT 

Encryption salt.

BYTECNT 

Number of bytes encrypted or decrypted by this flow.

LIFETIME 

Amount of time for this flow to exist.

SEQNUMOVRFLW 

Allow SEQNUM overflow during ENCAP.

STATEFULFRAG 

Stateful FRAG bit.

BYPASSDF 

Enable bypass of the DONT FRAGMENT bit copy from inner to outer header.

BYPASSDSCP 

Enable bypass of copy from inner to outer header of DiffServices.

NAT 

Enable Network Address Translation (NAT) insertion.

NCHK 

Enable NAT checksum generation and checking.

DSECN 

Bits for Diff Services/Congestion bits.

TTLHOP 

Time-to-Live field for the packet.

FLAGS 

Flags field in the IPv4.

NATSRC 

Source port for NAT.

NATDST 

Destination port for NAT.

ID 

Identification field for IPv4.

LABEL 

Label field for IPv6.

FRAGOFFSET 

Fragment offset from first packet.

MOREFRAG 

Enable fragmentation of packet.

FRAGID 

Fragmentation ID for this segment in the overall packet.

MTU 

Maximum Transmission unit (MTU)

SOURCE 

Source Address.

DESTINATION 

Destination Address.

EXTHDR 

IPv6 Extension header(s)

NH 

Next header in either the extension header or the payload.

AADLEN 

Length of the AAD.

ICVLEN 

Length of the ICV.

HDRLEN 

Length of the IP headeer.

TFCLEN 

Length of the Traffic flow Confidentiality (TFC) padding.

USEXT 

Use extended sequence number.

RANDIV 

Use random IV rather than user IV.

NODEJUMBO 

Nodal JUMBOGRAM support.

AUDIT 

Enable audint of IP flow.

AUDITLOG 

Path to the audit log.

CHECKSUM 

Enable IPv4 header checksum.

LENGTH 

Length of the packet (IPv4) or length of the packet minus the standard IPv6 header.

TYPE 

ICMP Type.

CODE 

ICMP SubType.

POINTER 

Pointer to error in packet.

IDENTIFIER 

Identifier from the invoking message.

GATEWAY 

Gateway Internet Address.

ORIGTIMESTAMP 

Timestamp from the origination node.

RXTIMESTAMP 

Receive timestamp.

TXTIMESTAMP 

Transmit timestamp.

MESSAGE 

Message to send.

ICMPCODE 

Code to send.

DATACTRL 

Data or Control bit.

PDUTYPE 

Control PDU type field.

POLLBIT 

Polling bit.

EXTENSION 

Extension bit.

RSN 

Reset sequence number (RSN)

SNLEN 

Sequence number length in bits.

HDREXT 

Header extension type field.

LENGTHIND 

Length indicator field.

HFNI 

Hyper frame number indicator (HFNI)

SUFI 

Super Field (SUFI)

FMS 

PDCP SN of the first Missing PDCP SDU (FMS)

BITMAPLEN 

Length of BitMap.

BITMAP 

Bitmap for LTE.

PGKINDEX 

Five LSB(s) of PGK identity.

PTKINDENT 

PTK identity.

SDUTYPE 

PDCP SDU type (IP, ARP, PC5SIG, NONIP, RSVD)

KDID 

Kd identity.

NMP 

Number of missing PDCP SDU(s) with associated COUNT value.

HRW 

PDCP SN of the PDCP SDU received on WLAN with highest associated PDCP COUNT value.

BEARER 

Bearer value.

FRESH 

Fresh value for F9 modes.

COUNT 

Count value for F8/F9 modes.

ETHERTYPE 

Ethernet type.

SL 

Short length field.

TCIAN 

TAG Control Information and Association Number.

PN 

Packet number.

XPN 

Extended packet number.

SCI 

Secure Channel Identifier.

SSCI 

Short Secure Channel Identifier.

SAKEY 

Security Association Key.

ENRECEIVE 

Enable reception of packets.

ENTRANSMIT 

Enable transmission of packets.

PROTECTFRAMES 

Protect packets.

INUSE 

MacSEC flow is in use (RX or TX)

CREATETIME 

Time this MacSEC was created.

STARTTIME 

Time this MacSEC last enabled RX or TX.

STOPTIME 

Time this MacSEC last disabled RX or TX.

PADDING 

Padding field.

CC 

CSRC count field.

MARKER 

Marker field.

PT 

Payload type field.

ROC 

Rollover Counter (ROC)

TIMESTAMP 

Timestamp field.

SSRC 

Synchronization source identifier (SSRC)

CSRC 

Contributing source identifier (CSRC)

BLKSIZE 

Block size of the encryption cipher.

MKI 

MKI flag.

MKILEN 

MKI data length.

MKIDATA 

MKI data.

ACKNUM 

Acknowledge number.

OFFSET 

Data offset.

RCVWINDOW 

Receive size window.

URGENT 

Urgent pointer.

STATE 

TCP state of operation.

OPTIONS 

OPTIONS.

SEGLEN 

SEGLEN.

PRECEDENCE 

PRECEDENCE.

SNDUNA 

SNDUNA.

SNDNXT 

SNDNXT.

SNDWND 

SNDWND.

SNDUP 

SNDUP.

SNDW1 

SNDW1.

SNDW2 

SNDW2.

ISS 

ISS.

RCVNXT 

RCVNXT.

RCVWND 

RCVWND.

RCVUP 

RCVUP.

IRS 

IRS.

TCPTIMEOUT 

TCPTIMEOUT.

EPOCH 

Epoch number for DTLS.

CIPHERSUITE 

Ciphersuite for the TLS protocol.

ENCTHENMAC 

Encrypt-then-MAC the TLS packet.

IVEX 

Implicit or Explicit IV for TLS.

FRAMECTL 

Frame control sequence in entirety.

CTLEXT 

Control Frame extension.

PROTVER 

Protocol version.

SUBTYPE 

SubType.

TDS 

To Data Stream.

FDS 

From Data Stream.

MFRAG 

More fragmentation.

RETRY 

Retry.

PWRMGMT 

Power management.

MDATA 

More data field.

WEP 

Wireless Encryption Protection (WEP)

ORDER 

Order.

KDFALG 

Key derivation function (KDF) algorithm.

ADDR1 

First address.

ADDR2 

Second address.

ADDR3 

Third address.

SEQCTL 

Sequence control.

ADDR4 

Fourth address.

QOSCTL 

Quality of Service field.

HTCTL 

HT control field.

EXTIV 

Extended IV flag.

KEYID 

Key identification.

SPPCAP 

SPP Cap.

FCS 

Enable CRC checking for packet.

HT 

Header Type where zero for generic MAC header.

EC 

Encryption Control 0=no encryption 1=encryption.

ESF 

Extended Subheader Field ESF=1 then ESF is present and follows MAC header.

CI 

CRC Indicator 0=no CRC, 1=CRC present.

EKS 

Encryption Key Sequence. Index of TEK and IV used to encrypt the payload.

CID 

Connection Identifier.

FID 

Flow Identifier (AGHM header only)

EH 

Extended Header Group Indicator (AGHM header only)

HCS 

Header Check Sequence 8-bit header checksum.

IKECNXT 

IKE Conneciton Name.

EXCHG 

IKE Exchange Type.

NXTPYLD 

IKE Next Payload Value.

MAJOR_VERSION 

IKE Major Revision Number.

MINOR_VERSION 

IKE Minor Revision Number.

MSGIDINIT 

IKE Message Identifier when Initiator.

MSGIDRESP 

IKE Message Identifier when Responder.

SPIi 

IKE Initiator Security Parameter Index.

SPIr 

IKE Responder Security Parameter Index.

Ni 

IKE Initiator Nonce.

Nr 

IKE Responder Nonce.

SKd 

IKE Child SA Key Generation Seed.

SKei 

IKE Initiator Encryption Key.

SKer 

IKE Responder Encryption Key.

SKsi 

IKE Initiator Salt Value.

SKsr 

IKE Responder Salt Value.

INTEG 

IKE Integrity Algorithm.

SKai 

IKE Initiator Integrity Algorithm Key.

SKar 

IKE Responder Integrity Algorithm Key.

PRF 

IKE Psuedo Random Function Algorithm.

PRFLEN 

IKE Psuedo Random Total Key Length.

SKpi 

IKE Initiator Psuedo Random Key.

SKpr 

IKE Responder Psuedo Random Key.

DH 

IKE Diffie-Hellman Group ID.

IKEAUTH 

IKE Signature Algorithm.

IKEHASH 

IKE Hash Algorithm.

BITSIZE 

Size fo the Private Key.

RSAPAD 

RSA Padding type.

RSAENC 

RSA Encrypt type.

KEYPAIR 

Key pair.

PRVKEY 

Private Key.

PUBKEY 

Public Key.

PRIME 

Prime value for DSA (usually called "p")

SUBPRIME 

Subprime value for DSA (usually called "q")

GENERATOR 

Generator value for DSA (usually called "g")

GX 

X-coordinate for the ECDSA curve.

GY 

Y-coordinate for the ECDSA curve.

CURVE 

Name of the current curve.

ECHASH 

Hash function for ECDSA.

SIGNER 

Signature object for Ed25519.

VERIFIER 

Verification object for Ed25519.

VLANTAG1 

First 802.1Q VLAN tag.

VLANTAG2 

Second 802.1Q VLAN tag.

POSTPROCESS 

Postprocessing flag.

SETUP 

Setup flag.

STREAMSIZE 

Size field.

NAME 

Name of the stream object.

OUTADDR 

Output address of the packet.

OUTLEN 

Output length of the packet.

INLEN 

Input length of the packet.

OUTPUTLEN 

Output length of the packet.

EXPLEN 

Expected length of the packet.

STREAM 

Name of the stream associated with this packet.

PREVIOUS 

Previous packet to this one (set to "begin" if this is the first packet)

STATUS 

Status word for this packet.

INPUT 

INPUT data for this packet.

OUTPUT 

OUTPUT data for this packet.

EXPECT 

EXPECT data for this packet.

BLOCKSIZE 

Block size for the block cipher.

ZEROINIT 

Zero initial value for CRC calculation.

SWAPIN 

Swap input data before CRC calculation.

SWAPOUT 

Swap output data before CRC calculation.

COMPOUT 

Complement output CRC.

POLYNOMIAL 

Polynomial for CRC.

SEED 

Testbench seed.

USE_CRYPTO 

Use cryptographic quality random numbers.

ERRORS 

Number of errors.

FLOWS 

Number of flows.

PACKETS 

Number of packets.

IBYTES 

Number of bytes sent to responder(s)

OBYTES 

Number of bytes received from responder(s)

LOGLVL 

Logging level.

PTRSIZE 

Pointer size for testbench.

SGTSIZE 

Scatter-gather table entry size.

BUFSIZE 

Width of the buffers in bytes (0, 64, 128. 192, 256, 384, 512)

BUFWIDTH 

Width of buffer type in bytes (0, 1, 2, 4, 8)

BUFNUM 

Number of buffers in the memory (default: 16384)

STDOUT 

Log to std::cout.

ENDIAN 

Endianness for testbench.

BURSTLEN 

Burst length for flows.

PLATFORM 

Platform to run testbench with.

DEBUGCLR 

Color of debug messages into the testbench.

INFOCLR 

Color of information messages in the testbench.

WARNCLR 

Color of warning messages in the testbench.

ERRCLR 

Color of error messages in the testbench.

FATALCLR 

Color of fatal messages in the testbench.

PASSCLR 

Color of pass messages in the testbench.

BKEK 

Memory Blob Key Encryption Key (BKEK)

BKEKLEN 

Memory Blob Key Length (BKEKLEN)

BLOBKEY 

Memory Blob Key.

BLOBKEYLEN 

Memory Blob Key Length.

WOTSALGO 

WOTS+ Algorithm.

LAYERADDR 

Address of the tree layer.

TREEADDR 

Address in the binary tree.

TREEHEIGHT 

Height of the binary tree.

TYPEVAL 

Value of the TYPE (0, 1, or 2)

ADDRORPAD 

One-Time Signature Address, LTREE address, or padding.

CHAINHEIGHT 

Chain Address or Tree Height.

HASHORIDX 

Hash address in tree or Tree Index.

KEYNMASK 

Key and mask address.

BYTEARRAY 

Convert OTS addresses to byte array.

SIGLEN 

Signature length.

WINTZ 

Winternitz parameter.

STACK 

Stack in XMSS/LMS.

XMSSALG 

XMSS Algorithm.

STACKPUSH 

Push to the XMSS/LMS stack.

STACKPOP 

Pop the top of the XMSS/LMS stack.

STACKTOP 

Return top of the XMSS/LMS stack.

STACKIDX 

Access index of the XMSS/LMS stack.

STACKLEN 

Height of the top node of the XMSS/LMS stack.

PARAMS 

XMSS parameters.

LMOTSQ 

LMOTS value of 'q' parameter.

LMOTSN 

LMOTS length of hash function.

LMOTSP 

LMOTS Winternitz parameter.

LMOTSW 

LMOTS number of w-bit elements in signature.

LMOTSLS 

LMOTSLS number of left-shift bits on checksum calculation.

LMOTSIGLEN 

LMOTSIGLEN signature length.

LMOTSI 

LMOTS key pair identifier.

LMOTSEED 

LMOTS seed value.

LMOTSC 

LMOTS c-array value.

LMOTS 

LMOTS engine.

LMSALGVAL 

LMS Algorithm value as jarray<uint8_t>

LMOTSALGVAL 

LMOTS Algorithm value as jarray<uint8_t>

LMTREELVLS 

Number of tree levels in LMS (2-8 are valid)

PRVKEYLEN 

Private key length.

PUBKEYLEN 

Public key length.

CBIT 

Flag indicating CHKSUM field in present in GRE.

KBIT 

Flag indicating KEY field is present in GRE.

SBIT 

Flag indicating SEQNUM field is present in GRE.

LBIT 

Flag indicating the CID field is present in DTLSv13.

AUTHFAIL 

DTLSv13 ICV failure counter.

KEY 

Key field for GRE.

FLOWID 

FlowID field for GRE.

PROTYPE 

Protocol type field for GRE.

VNI 

VXLAN Network Identifier.

APP_TRAFFIC_SECRET 

DTLSv1.3 Application per EPOCH traffic secret.

PRVIKEYLEN 

Priavte intermediate key length.

PUBIKEYLEN 

Public intermediate key length.

SYMBYTES 

Length of the signature.

KYBERK 

Kyber K parameter.

KYBERN 

Kyber N parameter.

KYBERQ 

Kyber Q parameter.

POLYBYTES 

Length of the polynomial.

POLYVECBYTES 

Length of the polynomial vector.

SSBYTES 

Length of ss bytes.

PCBYTES 

Length of compressed polynomial.

PVCBYTES 

Length of compressed polynomial vector.

MSGIBYTES 

Length of intermediate bytes.

ILENGTH 

Length of intermediate message.

QINV 

Kyber Q inverse parameters (// q^-1 mod 2^16 = 62209)

KYBERETA1 

Kyber ETA1 parameter.

KYBERETA2 

Kyber ETA2 parameter.

◆ iana_t

IANA values for Internet communication Value and their definitions can be found at www.iana.org

Enumerator
HOPOPT 

IPv6 Hop-by-Hop Option - 0.

ICMP 

Internet Control Message Protocol (ICMP) version 4 - 1.

IGMP 

Internet Group Management Protocol (IGMP) - 2.

GGP 

Gateway-to-Gateway Protocol (GGP) - 3.

IPV4 

IP version 4 - 4.

ST 

Internet Stream Protocol (ST) - 5.

TCP 

Transmission Control Protocol (TCP) - 6.

CBT 

Core-base trees (CBT) - 7.

EGP 

Exterior Gateway Protocol (EGP) - 8.

IGP 

Interior Gateway Protocol (IGP) - 9.

BBN_RCC_MON 

BBN RCC Monitoring (BBN_RCC_MON) - 10.

NVP_II 

Network Voice Protocol (NVP_II) - 11.

PUP 

Xerox PUP (PUP) - 12.

ARGUS 

ARGUS - 13.

EMCON 

EMCON - 14.

XNET 

Cross Net Debugger (XNET) - 15.

CHAOS 

Chaos - 16.

UDP 

User Datagram Protocol (UDP) - 17.

MUX 

Multiplexing (MUX) - 18.

DCN_MEAS 

DCN Measurement Subsystems (DCN-MEAS) - 19.

HMP 

Host Monitoring Protocol (HMP) - 20.

PRM 

Packet Radio Measurement (PRM) - 21.

XNS_IDP 

XEROX NS IDP (XNS-IDP) - 22.

TRUNK_1 

Trunk-1 - 23.

TRUNK_2 

Trunk-2 - 24.

LEAF_1 

Leaf-1 - 25.

LEAF_2 

Leaf-2 - 26.

RDP 

Reliable Data Protocol (RDP) - 27.

IRTP 

Internet Reliable Transaction Protocol (IRTP) - 28.

ISO_TP4 

ISO Transport Protocol Class 4 (ISO-TP4) - 29.

NETBLT 

Bulk Data Transfer Protocol (NETBLT) - 30.

MFE_NSP 

MFE Network Services Protocol (MFE-NSP) - 31.

MERIT_INP 

MERIT Internodal Protocol (MERIT-INP) - 32.

DCCP 

Datagram Congestion Control Protocol (DCCP) - 33.

THREE_PC 

Third Party Connect Protocol (3PC) - 34.

IDPR 

Inter-Domain Policy Routing Protocol (IDPR) - 35.

XTP 

Xpress Transport Protocol (XTP) - 36.

DDP 

Datagram Delivery Protocol (DDP) - 37.

IDPR_CMTP 

IDPR Control Message Transport Protocol (IDPR-CMTP) - 38.

TP_PLUS 

TP++ Transport Protocol (TP++) - 39.

IL 

IL Transport Protocol (IL) - 40.

IPV6 

IP version 6 - 41.

SDRP 

Source Demand Routing Protocol (SDRP) - 42.

IPV6_ROUTE 

IPv6 Routing header - 43.

IPV6_FRAG 

IPv6 Fragmentation header - 44.

IDRP 

Inter-Domain Routing Protocol (IDRP) - 45.

RSVP 

Resource Reservation Protocol (RSVP) - 46.

GRE 

Generic Routing Encapsulation (GRE) - 47.

DSR 

Dynamic Source Routing Protocol (DSR) - 48.

BNA 

Burroughs Network Architecture (BNA) - 49.

ESP 

Encapsulating Security Payload - 50.

AH 

Authentication header - 51.

I_NLSP 

Integrated Net Layer Security Protocol (I-NLSP) - 52.

SWIPE 

SwIPe (IP with Encryption) - 53.

NARP 

NBMA Address Resolution Protocol (NARP) - 54.

MOBILE 

IP Mobility (Min Encap) - 55.

TLSP 

Transport Layer Security Protocol (using Kryptonet key management) - 56.

SKIP 

Simple Key-Management for Internet Protocol (SKIP) - 57.

ICMPV6 

ICMP version 6 - 58.

IPV6_NONXT 

IPv6 No Next header - 59.

IPV6_OPTS 

IPv6 Options header - 60.

HOST_INT_PROT 

Any host Internet Protocol - 61.

CFTP 

CFTP - 62.

LOCAL_NET 

Any local network - 63.

SAT_EXPAK 

SATNET and Backroom EXPAK (SAT-EXPAK) - 64.

KRYPTOLAN 

Kryptolan - 65.

RVD 

MIT Remote Virtual Disk Protocol (RVD) - 66.

IPPC 

Internet Pluribus Packet Core (IPPC) - 67.

DFS 

Any distributed file system - 68.

SAT_MON 

SATNET Monitoring (SAT-MON) - 69.

VISA 

VISA Protocol - 70.

IPCV 

Internet Packet Core Utility (IPCV) - 71.

CPNX 

Computer Protocol Network Executive (CPNX) - 72.

CPHB 

Computer Protocol Heart Beat (CPHB) - 73.

WSN 

Wang Span Network (WSN) - 74.

PVP 

Packet Video Protocol (PVP) - 75.

BR_SAT_MON 

Backroom SATNET Monitoring (BR-SAT-MON) - 76.

SUN_ND 

SUN ND Protocol-Temporary (SUN-ND) - 77.

WB_MON 

WIDEBAND Monitoring (WB-MON) - 78.

WB_EXPAK 

WIDEBAND EXPAK (WB-EXPAK) - 79.

ISO_IP 

International Organization for Standardization Internet Protocol (ISO-IP) - 80.

VMTP 

Versatile Message Transaction Protocol (VMTP) - 81.

SECURE_VMTP 

Secure Versatile Message Transaction Protocol (SECURE-VMTP) - 82.

VINES 

VINES - 83.

TTP 

TTP - 84.

IPTM 

Internet Protocol Traffic Manager (IPTM) - 85.

NSFNET_IGP 

NSFNET-IGP - 86.

DGP 

Dissimilar Gateway Protocol (DGP) - 87.

TCF 

TCF - 88.

EIGRP 

EIGRP - 89.

OSPFIGP 

Open Shortest Path First (OSPFIGP) - 90.

SPRITE_RPC 

Sprite RPC Protocol (Sprite-RPC) - 91.

LARP 

Locus Address Resolution Protocol (LARP) - 92.

MTP 

Multicast Transport Protocol (MTP) - 93.

AX_25 

AX.25 - 94.

MICP 

Mobile Internetworking Control Protocol (MICP) - 95.

SCC_SP 

Semaphore Communications Security Protocol (SCC-SP) - 96.

ETHERIP 

Ethernet-within-IP Encapsulation (ETHERIP) - 97.

IENCAP 

Encapsulation Header (ENCAP) - 98.

PRIV_ENCRYPT 

Any private encryption scheme - 99.

GMTP 

GMTP - 100.

IFMP 

Ipsilon Flow Management Protocol (IFMP) - 101.

PNNI 

PNNI over IP (PNNI) - 102.

PIM 

Protocol Independent Multicast (PIM) - 103.

ARIS 

IBM's ARIS (Aggregate Route IP Switching) Protocol (SCPS) - 104.

SCPS 

SCPS (Space Communications Protocol Standards) - 105.

QNX 

QNX - 106.

A_N 

Active Networks (A/N) - 107.

IPCOMP 

IP Payload Compression Protocol (IPComp) - 108.

SNP 

Sitara Networks Protocol (SNP) - 109.

COMPAQ_PEER 

Compaq Peer Protocol (Compaq-Peer) - 110.

IPX_IN_IP 

IPX in IP (IPX-in-IP) - 111.

VRRP 

Virtual Router Redundancy Protocol, Common Address Redundancy Protocol (not IANA aasigned) - 112.

PGM 

PGM Reliable Transport Protocol (PGM) - 113.

ZERO_HOP_PROT 

Any 0-hop protocol - 114.

L2TP 

Layer Two Tunneling Protocol Version 3 (L2TP) - 115.

DDX 

D-II Data Exchange (DDX) - 116.

IATP 

Interactive Agent Transfer Protocol (IATP) - 117.

STP 

Schedule Transfer Protocol (STP) - 118.

SRP 

SpectraLink Radio Protocol (SRP) - 119.

UTI 

Universal Transport Interface Protocol (UTI) - 120.

SMP 

Simple Message Protocol (SMP) - 121.

SM 

Simple Multicast Protocol (SM) - 122.

PTP 

Performance Transparency Protocol (PTP) - 123.

ISIS_OVER_IPV4 

Intermediate System to Intermediate System (IS-IS) Protocol over IPv4 - 124.

FIRE 

Flexible Intra-AS Routing Environment (FIRE) - 125.

CRTP 

Combat Radio Transport Protocol (CRTP) - 126.

CRUDP 

Combat Radio User Datagram (CRUDP) - 127.

SSCOPMCE 

Servie-Specific Connection-Oriented Protocol in a Multilink and Connectionless Environment (SSCOPMCE) - 128.

IPLT 

IPLT - 129.

SPS 

Secure Packet Shield (SPS) - 130.

PIPE 

Private IP Encapsulation within IP (PIPE) - 131.

SCTP 

Stream Control Transmission Protocol (SCTP) - 132.

FC 

Fibre Channel (FC) - 133.

RSVP_E2E_IGNORE 

Reservation Protocol (RSVP) End-to-End Ignore - 134.

MOBILITY_HEADER 

Mobility Extension Header for IPv6 - 135.

UDPLITE 

UDP-Lite Protocol - 136.

MPLS_IN_IP 

Multiple Label Switching Encapsulated in IP (MPLS-in-IP) - 137.

MANET 

MANET Protocols (MANET) - 138.

HIP 

Host Identity Protocol (HIP) - 139.

SHIM6 

Site Multihoming by IPv6 Intermediation (Shim6) - 140.

WESP 

Wrapped Encapsulating Security Protocol (WESP) - 141.

ROHC 

Robust Header Compression (ROHC) - 142.

JUMBOGRAM 

JUMBOGRAM extension header - 194.

◆ icmpcode_t

ICMP Codes

Parameters
ECHORPLY- Echo Reply
NONETWRK- Destination network unreachable
NOHOST- Destination host unreachable
NOPROT- Destination protocol unreachable
NOPORT- Destination port unreachable
FRAGRQD- Fragmentation required and DF flag set
RTEFAIL- Source route failed
DSTUNKNWN- Destination network unknown
DSTHSTUNKNWN- Destination host unknown
SRCHSTISOLT- Source host isolated
NETWRKPROHIB- Network administratively prohibited
HOSTPROHIB- Host administratively prohibited
NETWKNOTOS- Network unreachable for ToS
COMMPROHIB- Communication administratively prohibited
HOSTVILATE- Host Precedence Violation
CUTOFF- Precedence cutoff in effect
REDIRNETWK- Redirect Datagram for the Network
REDIRHOST- Redirect Datagram for the Host
REDIRTOSN- Redirect Datagram for the ToS and network
REDIRTOSH- Redirect Datagram for the ToS and host
TTLEXPIRE- TTL expired in transit
FRAGEXPIRE- Fragment reassembly time exceeded
PTRINDERR- Pointer indicates the error
OPTERR- Missing a required option
BADLENGTH- Bad length
NOROUTE- No destination (ICMPv6)
COMMPROHIBV6- Communication with destination administratively prohibitied (ICMPv6)
BYNDSRCADDR- Beyond scope of source address (ICMPv6)
ADDRUNREACH- Address unreachable (ICMPv6)
PORTUNREACH- Port unreachable (ICMPv6)
SRCADDRPLCY- Source address failed ingree/egress policy (ICMPv6)
REJECTDST- Reject route to destination (ICMPv6)
HOPLMTEXCD- Hop limit exceeded in transit (ICMPv6)
FRAGTIME- Fragment reassembly time exceeded (ICMPv6)
ERRHDRFIELD- Erroneous header field encountered (ICMPv6)
NXTHDRERR- Unrecognized Next Header type encountered (ICMPv6)
IPV6OPTERR- Unrecognized IPv6 option encountered (ICMPv6)
SEQNUMRST- Sequence number reset (ICMPv6) (ICMPv6)
Enumerator
ECHORPLY 

ECHO REPLY - 0.

NONETWRK 

DESTINATION NETWORK UNREACHABLE - 0.

NOHOST 

DESTINATION HOST UNREACHABLE - 1.

NOPROT 

DESTINATION PROTOCOL UNREACHABLE - 2.

NOPORT 

DESTINATION PORT UNREACHABLE - 3.

FRAGRQD 

FRAGMENTATION REQUIRED AND DF FLAG SET - 4.

RTEFAIL 

SOURCE ROUTE FAILED - 5.

DSTUNKNWN 

DESTINATION NETWORK UNKNOWN - 6.

DSTHSTUNKNWN 

DESTINATION HOST UNKNOWN - 7.

SRCHSTISOLT 

SOURCE HOST ISOLATED - 8.

NETWKPROHIB 

NETWORK ADMINISTRATIVELY PROHIBITED - 9.

HOSTPROHIB 

HOST ADMINISTRATIVELY PROHIBITED - 10.

NETWKNOTOS 

NETWORK UNREACHABLE FOR ToS - 11.

HOSTNOTOS 

HOST UNREACHABLE FOR ToS - 12.

COMMPROHIB 

COMMUNICATION ADMINISTRATIVELY PROHIBITED - 13.

HOSTVILATE 

HOST PRECEDENCE VIOLATION - 14.

CUTOFF 

PRECEDENCE CUTOFF IN EFFECT - 15.

REDIRNETWK 

REDIRECT DATAGRAM FOR THE NETWORK - 0.

REDIRHOST 

REDIRECT DATAGRAM FOR THE HOST - 1.

REDIRTOSN 

REDIRECT DATAGRAM FOR THE ToS AND NETWORK - 2.

REDIRTOSH 

REDIRECT DATAGRAM FOR THE ToS AND HOST - 3.

TTLEXPIRE 

TTL EXPIRED IN TX - 0.

FRAGEXPIRE 

FRAGMENT REASSEMBLY TIME EXPIRED - 1.

PTRINDERR 

POINTER INDICATES THE ERROR - 0.

OPTERR 

MISSING A REQUIRED OPTION - 1.

BADLENGTH 

BAD LENGTH - 2.

NOROUTE 

NO DESTINATION (ICMPv6) - 0.

COMMPROHIBV6 

COMMUNICATION WITH DEST ADMINISTRATIVELY PROHIBITED (ICMPv6) - 1.

BYNDSRCADDR 

BEYOND SCOPE OF SOURCE ADDR (ICMPv6) - 2.

ADDRUNREACH 

ADDRESS UNREADCHABLE (ICMPv6) - 3.

PORTUNREACH 

PORT UNREACHABLE (ICMPv6) - 4.

SRCADDRPLCY 

SOURCE ADDRESS FAILED POLICY (ICMPv6) - 5.

REJECTDST 

REJECT ROUTE TO DESTINATION (ICMPv6) - 6.

HOPLMTEXCD 

HOP LIMIT EXCEEDED IN TX (ICMPv6) - 0.

FRAGTIME 

FRAGMENT REASSEMBLY EXCEEDED TIME (ICMPv6) - 1.

ERRHDRFIELD 

ERRORONEOUS HEADER FIELD (ICMPv6) - 0.

NXTHDRERR 

UNRECOGNIZED NEXT HEADER (ICMPv6) - 1.

IPV6OPTERR 

UNRECOGNIZED IPv6 OPTION (ICMPv6) - 2.

SEQNUMRST 

SEQUENCE NUMBER RESET (ICMPv6) - 255.

◆ icmpmsg_t

ICMP Message Types

Parameters
ECHORPLYMSG- Echo Reply
RSVD1- Reserved1
RSVD2- Reserved2
DESTUNRCH- Destination Unreachable
SRCQNCH- Source Quench
RDIRMSG- Redirect Message
ALTHOST- Alternate Host Address
RSVD- Reserved7
ECHORQST- Echo Request
RTRADVERT- Router Advertisement
RTRSOLCIT- Router Solicitation
TIMEXCEED- Time Exceeded
BADIPHDR- Parameter Problem : Bad IP header
TIMESTMP- Timestamp
TIMERPLY- Timestamp Reply
INFORQST- Information Request
INFORPLY- Information Reply
ADMSKRQST- Address Mask Request
ADMSKRPLY- Address Mask Reply
TRACERTE- Traceroute (ICMPv6)
NODEST- Destination Unreachable (ICMPv6)
PKTBIG- Packet Too Big (ICMPv6)
TIMEOUT- Time Exceeded (ICMPv6)
PARAM- Parameter Problem (ICMPv6)
PRVTE1- Private Experimentation (ICMPv6)
PRVTE2- Private Experimentation (ICMPv6)
RSVDE- Reserved for expansion of ICMPv6 error messages (ICMPv6)
ECHORQSTV6- Echo Request (ICMPv6)
ECHORPLYV6- Echo Reply (ICMPv6)
PRVTI1- Private Experimentation (ICMPv6)
PRVTI2- Private Experimentation (ICMPv6)
RSVDI- Reserved for expansion of ICMPv6 info messages (ICMPv6)
Enumerator
ECHORPLYMSG 

ECHO REPLY - 0.

RSVD1 

RESERVED - 1.

RSVD2 

RESERVED - 2.

DESTUNRCH 

DESTINATION UNREACHABLE - 3.

SRCQNCH 

SOURCE QUENCH - 4.

RDIRMSG 

REDIRECT MESSAGE - 5.

ALTHOST 

ALTERNATE HOST ADDRESS - 6.

RSVD 

RESERVED - 7.

ECHORQST 

ECHO REQUEST - 8.

RTRADVERT 

ROUTER ADVERTISEMENT - 9.

RTRSOLCIT 

ROUTER SOLICITATION - 10.

TIMEXCEED 

TIME EXCEEDED - 11.

BADIPHDR 

PARAMETER PROBLEM : BAD IP HEADER - 12.

TIMESTMP 

TIMESTAMP - 13.

TIMERPLY 

TIMESTAMP REPLY - 14.

INFORQST 

INFORMATION REQUEST - 15.

INFORPLY 

INFORMATION REPLY - 16.

ADMSKRQST 

ADDRESS MASK REQUEST - 17.

ADMSKRPLY 

ADDRESS MASK REPLY - 18.

TRACERTE 

TRACEROUTE - 30.

NODEST 

DESTINATION UNREACHABLE (ICMPv6) - 1.

PKTBIG 

PACKET TOO BIG (ICMPv6) - 2.

TIMEOUT 

TIME EXCEEDED (ICMPv6) - 3.

PARAM 

PARAMETER PROBLEM (ICMPv6) - 4.

PRVTE1 

PRIVATE EXPERIMENTATION (ICMPv6) - 100.

PRVTE2 

PRIVATE EXPERIMENTATION (ICMPv6) - 101.

RSVDE 

RESERVED (ICMPv6) - 127.

ECHORQSTV6 

ECHO REQUEST (ICMPv6) - 128.

ECHORPLYV6 

ECHO REPLY (ICMPv6) - 129.

PRVTI1 

PRIVATE EXPERIMENTATION (ICMPv6) - 200.

PRVTI2 

PRIVATE EXPERIMENTATION (ICMPv6) - 201.

RSVDI 

RESERVED (ICMPv6) - 255.

◆ id_type_t

IKEv2 ID_TYPE fields

Parameters
ID_IPV4_ADDR- IPv4 Address ID type
ID_FQDN- FQDN ID type
ID_RFC822_ADDR- RFC822 Address ID type
ID_UNASSIGNED4- Unassigned
ID_IPV6_ADDR- IPv6 Adddress ID type
ID_UNASSIGNED6- Unassigned
ID_UNASSIGNED7- Unassigned
ID_UNASSIGNED8- Unassigned
ID_DER_ASN1_DN- ASN1 DN ID type
ID_DER_ASN1_GN- ASN1 GN ID type
ID_KEY_ID- Key ID type
ID_FC_NAME- FC Name ID type
ID_NULL- NULL ID type
Enumerator
ID_IPV4_ADDR 

IPv4 Address ID type.

ID_FQDN 

FQDN ID type.

ID_RFC822_ADDR 

RFC822 Address ID type.

ID_UNASSIGNED4 

Unassigned.

ID_IPV6_ADDR 

IPv6 Address ID type.

ID_UNASSIGNED6 

Unassigned.

ID_UNASSIGNED7 

Unassigned.

ID_UNASSIGNED8 

Unassigned.

ID_DER_ASN1_DN 

ASN1 DN ID type.

ID_DER_ASN1_GN 

ASN1 GN ID type.

ID_KEY_ID 

Key ID type.

ID_FC_NAME 

FC Name ID type.

ID_NULL 

NULL ID type.

◆ ike_gateway_t

IKE Gateway Identity Types

Parameters
GATEWAY_IPV4_ADDR- IPv4 Address of the VPN gateway
GATEWAY_IPV6_ADDR- IPv6 Address of the VPN gateway
GATEWAY_FQDN_ADDR- FQDN Address of the VPN gateway
Enumerator
GATEWAY_IPV4_VPN_ADDR 

IPv4 Address of the VPN gateway.

GATEWAY_IPV6_VPN_ADDR 

IPv6 Address of the VPN gateway.

GATEWAY_FQDN_VPN_ADDR 

FQDN Address of the VPN gateway.

◆ ike_hash_t

IKE Hash Algorithms

Parameters
HASH_SHA1- SHA1 Hash Algorithm
HASH_SHA2_256- SHA2_256 Hash Algorithm
HASH_SHA2_384- SHA2_384 Hash Algorithm
HASH_SHA2_512- SHA2_512 Hash Algorithm
HASH_IDENTITY- Identity Hash Algorithm
Enumerator
HASH_SHA1 

SHA1 Hash Algorithm.

HASH_SHA2_256 

SHA2_256 Hash Algorithm.

HASH_SHA2_384 

SHA2_384 Hash Algorithm.

HASH_SHA2_512 

SHA2_512 Hash Algorithm.

HASH_IDENTITY 

Identity Hash Algorithm.

◆ ike_ipcomp_t

IKE Compression Types

Parameters
IPCOMP_OUI- OUI Compression
IPCOMP_DEFLATE- Deflation
IPCOMP_LZS- LZS Compression
IPCOMP_LZJH- LZJH Compression
Enumerator
IPCOMP_OUI 

Configure an internal IPv4 Address.

IPCOMP_DEFLATE 

Configure an internal IPv4 NETMASK.

IPCOMP_LZS 

Configure a IPv4 DNS setting.

IPCOMP_LZJH 

Configure a IPv4 NBNS setting.

◆ ike_pyld_t

IKEv2 Payload Type fields

Parameters
PYLD_NONE- No Next Payload
PYLD_SA- Security Association
PYLD_KE- Key Exchange
PYLD_IDI- Identification Initiator
PYLD_IDR- Identification Responder
PYLD_CERT- Certificate
PYLD_CERTREQ- Certificate Request
PYLD_AUTH- Authentication
PYLD_NINR- Nonce
PYLD_N- Notify
PYLD_D- Delete
PYLD_V- Vendor ID
PYLD_TSI- Traffic Selector Initiator
PYLD_TSR- Traffic Selector Responder
PYLD_SK- Encrypted and Authenticated
PYLD_CP- Configuration
PYLD_EAP- Extensible Authentication
PYLD_GSPM- Generic Secure Password Method
PYLD_IDG- Group Identification
PYLD_GSA- Group Security Association
PYLD_KD- Key Download
PYLD_SKF- Encrypted and Authenticated Fragment
PYLD_PS- Puzzle Solution
Enumerator
PYLD_NONE 

No Next Payload.

PYLD_SA 

Security Association.

PYLD_KE 

Key Exchange

PYLD_IDI 

Identification Initiator.

PYLD_IDR 

Identification Responder.

PYLD_CERT 

Certificate.

PYLD_CERTREQ 

Certificate Request.

PYLD_AUTH 

Authentication.

PYLD_NINR 

Nonce.

PYLD_N 

Nofify.

PYLD_D 

Delete.

PYLD_V 

Vendor ID.

PYLD_TSI 

Traffic Selector Initiator.

PYLD_TSR 

Traffic Selector Responder.

PYLD_SK 

Encrypted and Authenticated.

PYLD_CP 

Configuration.

PYLD_EAP 

Extensible Authentication.

PYLD_GSPM 

Generic Secure Password Method.

PYLD_IDG 

Group Identification.

PYLD_GSA 

Group Security Association.

PYLD_KD 

Key Download.

PYLD_SKF 

Encrypted and Authenticated Fragment.

PYLD_PS 

Puzzle Solution.

◆ ike_secpass_t

IKE Secure Password Types

Parameters
SECURE_PASSWORD_PACE- PACE Secure Password
SECURE_PASSW0RD_AUGPAKE- AugPAKE Secure Password
SECURE_PASSWORD_PSK_AUTH- Secure PSK Authentication
Enumerator
SECURE_PASSWORD_PACE 

PACE Secure Password.

SECURE_PASSW0RD_AUGPAKE 

AugPAKE Secure Password.

SECURE_PASSWORD_PSK_AUTH 

Secure PSK Authentication.

◆ ike_ts_t

IKE Traffic Selector Types

Parameters
TS_IPV4_ADDR_RANGE- Traffic Selector with IPv4 Address Range
TS_IPV6_ADDR_RANGE- Traffic Selector with IPv6 Address Range
TS_FC_ADDR_RANGE- Traffic Selector with FC Address Range
Enumerator
TS_IPV4_ADDR_RANGE 

Traffic Selector with IPv4 Address Range.

TS_IPV6_ADDR_RANGE 

Traffic Selector with IPv6 Address Range.

TS_FC_ADDR_RANGE 

Traffic Selector with FC Address Range.

◆ integ_id_t

IKEv2 INTEG_ID fields

Parameters
AUTH_NONE- No Authentication
AUTH_HMAC_MD5_96- HMAC-MD5-96 Authentication with 96-bit ICV
AUTH_HMAC_SHA1_96- HMAC-SHA1-96 Authentication with 96-bit ICV
AUTH_DES_MAC- DES-MAC Authentication with 64-bit ICV
AUTH_KPDK_MD5- KPDK_MD5 Authentication with 128-bit ICV
AUTH_AES_XCBC_96- AES-XCBC-96 Authentication with 96-bit ICV
AUTH_HMAC_MD5_128- HMAC-MD5-128 Authentication with 128-bit ICV
AUTH_HMAC_SHA1_160- HMAC-SHA1-160 Authentication with 160-bit ICV
AUTH_AES_CMAC_95- AES-CMAC-96 Authentication with 96-bit ICV
AUTH_AES_128_GMAC- AES-128-GMAC Authentication with 128-bit ICV
AUTH_AES_192_GMAC- AES-192-GMAC Authentication with 192-bit ICV
AUTH_AES_256_GMAC- AES-256-GMAC Authentication with 256-bit ICV
AUTH_HMAC_SHA2_256_128- HMAC-SHA2-256 Authentication with 128-bit ICV
AUTH_HMAC_SHA2_384_192- HMAC-SHA2-384 Authentication with 192-bit ICV
AUTH_HMAC_SHA2_512_256- HMAC-SHA2-512 Authentication with 256-bit ICV
AUTH_NONE- No Authentication
Enumerator
AUTH_NONE 

No Authentication.

AUTH_HMAC_MD5_96 

HMAC-MD5-96 Authentication with 96-bit ICV.

AUTH_HMAC_SHA1_96 

HMAC-SHA1-96 Authentication with 96-bit ICV.

AUTH_DES_MAC 

DES-MAC Authentication with 64-bit ICV.

AUTH_KPDK_MD5 

KPDK_MD5 Authentication with 128-bit ICV.

AUTH_AES_XCBC_96 

AES-XCBC-96 Authentication with 96-bit ICV.

AUTH_HMAC_MD5_128 

HMAC-MD5-128 Authentication with 128-bit ICV.

AUTH_HMAC_SHA1_160 

HMAC-SHA1-160 Authentication with 160-bit ICV.

AUTH_AES_CMAC_96 

AES-CMAC-96 Authentication with 96-bit ICV.

AUTH_AES_128_GMAC 

AES-128-GMAC Authentication with 128-bit ICV.

AUTH_AES_192_GMAC 

AES-192-GMAC Authentication with 192-bit ICV.

AUTH_AES_256_GMAC 

AES-256-GMAC Authentication with 256-bit ICV.

AUTH_HMAC_SHA2_256_128 

HMAC-SHA2-256 Authentication with 128-bit ICV.

AUTH_HMAC_SHA2_384_192 

HMAC-SHA2-384 Authentication with 192-bit ICV.

AUTH_HMAC_SHA2_512_256 

HMAC-SHA2-512 Authentication with 256-bit ICV.

◆ ip_proto_t

IKEv2 ID PROTO fields

Parameters
IP_PROTO_ANY- Any protocol
IP_PROTO_ICMP- ICMP protocol
IP_PROTO_TCP- Transport Control Protocol (TCP)
IP_PROTO_UDP- User Datagram Protocol (UDP)
IP_PROTO_ICMPV6- ICMP protocol version 6
IP_PROTO_MH- MH Protocol
Enumerator
IP_PROTO_ANY 

Any Protocol.

IP_PROTO_ICMP 

ICMP Protocol.

IP_PROTO_TCP 

Transport Control Protocol (TCP)

IP_PROTO_UDP 

User Datagram Protocol (UDP)

IP_PROTO_ICMPV6 

ICMP protocol version 6.

IP_PROTO_MH 

MH Protocol.

◆ ipmode_t

IPsec mode of operation

Parameters
TRANSPORT- Transport mode
TUNNEL- Tunnel mode
Enumerator
TRANSPORT 

IP transport mode.

TUNNEL 

IP tunnel mode.

◆ ipsec_mode_t

IKEv2 IPSEC MODE fields

Parameters
TRANSPORT_MODE- IPsec Transport Mode
TUNNEL_MODE- IPsec Tunnel Mode
Enumerator
TRANSPORT_MODE 

IPsec Transport Mode.

TUNNEL_MODE 

IPsec Tunnel Mode.

◆ keymode_t

PKI modes of operation

Parameters
GENKEYPAIR- Generate Key Pair
PKISIGN- Generate Signature
PKIVERIFY- Verify Signature
RSAENCRYPT- Encrypt data with RSA Key Pair
RSADECRYPT- Decrypt data with RSA Key Pair
KYBERENC- Encrypt data with Kyber Key Pair
KYBERDEC- Decrypt data with Kyber Key Pair
Enumerator
GENKEYPAIR 

Generate Key Pair.

PKISIGN 

Generate Signature.

PKIVERIFY 

Verify Signature.

RSAENCRYPT 

Encrypt data with RSA Key Pair.

RSADECRYPT 

Decrypt data with RSA Key Pair.

KYBERENC 

Encrypt data with Kyber Key Pair.

KYBERDEC 

Decrypt data with Kyber Key Pair.

◆ kyber_algorithm_t

Kyber Key Exchange Algorithm

KYBER_512 - Kyber shared secret with 512-bit public key KYBER_768 - Kyber shared secret with 768-bit public key KYBER_1024 - Kyber shared secret with 1024-bit public key

Enumerator
KYBER_512 

Kyber shared secret with 512-bit public key.

KYBER_768 

Kyber shared secret with 768-bit public key.

KYBER_1024 

Kyber shared secret with 1024-bit public key.

◆ lmots_algorithm_t

LMOTS Algorithm

PLMOTS_SHA256_N32_W1 - LMS One-Time Signature using SHA256 with n=32, w=1, p=256, ls=7, sig_len=8516 PLMOTS_SHA256_N32_W2 - LMS One-Time Signature using SHA256 with n=32, w=2, p=133, ls=6, sig_len=4292 PLMOTS_SHA256_N32_W4 - LMS One-Time Signature using SHA256 with n=32, w=4, p=67, ls=4, sig_len=2180 PLMOTS_SHA256_N32_W8 - LMS One-Time Signature using SHA256 with n=32, w=8, p=34, ls=0, sig_len=1124 PLMOTS_SHA256_N24_W1 - LMS One-Time Signature using SHA256 with n=24, w=1, p=256, ls=7, sig_len=8516 PLMOTS_SHA256_N24_W2 - LMS One-Time Signature using SHA256 with n=24, w=2, p=133, ls=6, sig_len=4292 PLMOTS_SHA256_N24_W4 - LMS One-Time Signature using SHA256 with n=24, w=4, p=67, ls=4, sig_len=2180 PLMOTS_SHA256_N24_W8 - LMS One-Time Signature using SHA256 with n=24, w=8, p=34, ls=0, sig_len=1124 PLMOTS_SHAKE_N32_W1 - LMS One-Time Signature using SHAKE with n=32, w=1, p=256, ls=7, sig_len=8516 PLMOTS_SHAKE_N32_W2 - LMS One-Time Signature using SHAKE with n=32, w=2, p=133, ls=6, sig_len=4292 PLMOTS_SHAKE_N32_W4 - LMS One-Time Signature using SHAKE with n=32, w=4, p=67, ls=4, sig_len=2180 PLMOTS_SHAKE_N32_W8 - LMS One-Time Signature using SHAKE with n=32, w=8, p=34, ls=0, sig_len=1124 PLMOTS_SHAKE_N24_W1 - LMS One-Time Signature using SHAKE with n=24, w=1, p=256, ls=7, sig_len=8516 PLMOTS_SHAKE_N24_W2 - LMS One-Time Signature using SHAKE with n=24, w=2, p=133, ls=6, sig_len=4292 PLMOTS_SHAKE_N24_W4 - LMS One-Time Signature using SHAKE with n=24, w=4, p=67, ls=4, sig_len=2180 PLMOTS_SHAKE_N24_W8 - LMS One-Time Signature using SHAKE with n=24, w=8, p=34, ls=0, sig_len=1124

Enumerator
PLMOTS_SHA256_N32_W1 

LMS One-Time Signature using SHA256 with n=32, w=1, p=256, ls=7, sig_len=8516.

PLMOTS_SHA256_N32_W2 

LMS One-Time Signature using SHA256 with n=32, w=2, p=133, ls=6, sig_len=4292.

PLMOTS_SHA256_N32_W4 

LMS One-Time Signature using SHA256 with n=32, w=4, p=67, ls=4, sig_len=2180.

PLMOTS_SHA256_N32_W8 

LMS One-Time Signature using SHA256 with n=32, w=8, p=34, ls=0, sig_len=1124.

PLMOTS_SHA256_N24_W1 

LMS One-Time Signature using SHA256 with n=24, w=1, p=256, ls=7, sig_len=8516.

PLMOTS_SHA256_N24_W2 

LMS One-Time Signature using SHA256 with n=24, w=2, p=133, ls=6, sig_len=4292.

PLMOTS_SHA256_N24_W4 

LMS One-Time Signature using SHA256 with n=24, w=4, p=67, ls=4, sig_len=2180.

PLMOTS_SHA256_N24_W8 

LMS One-Time Signature using SHA256 with n=24, w=8, p=34, ls=0, sig_len=1124.

PLMOTS_SHAKE_N32_W1 

LMS One-Time Signature using SHAKE with n=32, w=1, p=256, ls=7, sig_len=8516.

PLMOTS_SHAKE_N32_W2 

LMS One-Time Signature using SHAKE with n=32, w=2, p=133, ls=6, sig_len=4292.

PLMOTS_SHAKE_N32_W4 

LMS One-Time Signature using SHAKE with n=32, w=4, p=67, ls=4, sig_len=2180.

PLMOTS_SHAKE_N32_W8 

LMS One-Time Signature using SHAKE with n=32, w=8, p=34, ls=0, sig_len=1124.

PLMOTS_SHAKE_N24_W1 

LMS One-Time Signature using SHAKE with n=24, w=1, p=256, ls=7, sig_len=8516.

PLMOTS_SHAKE_N24_W2 

LMS One-Time Signature using SHAKE with n=24, w=2, p=133, ls=6, sig_len=4292.

PLMOTS_SHAKE_N24_W4 

LMS One-Time Signature using SHAKE with n=24, w=4, p=67, ls=4, sig_len=2180.

PLMOTS_SHAKE_N24_W8 

LMS One-Time Signature using SHAKE with n=24, w=8, p=34, ls=0, sig_len=1124.

◆ lms_algorithm_t

LMS Signature Algorithm

LMS_SHA256_M32_H5 - LMS One-Time Signature using SHA256 with m=32, h=5 LMS_SHA256_M32_H10 - LMS One-Time Signature using SHA256 with m=32, h=10 LMS_SHA256_M32_H15 - LMS One-Time Signature using SHA256 with m=32, h=15 LMS_SHA256_M32_H20 - LMS One-Time Signature using SHA256 with m=32, h=20 LMS_SHA256_M32_H25 - LMS One-Time Signature using SHA256 with m=32, h=25 LMS_SHA256_M24_H5 - LMS One-Time Signature using SHA256 m=24, h=5 LMS_SHA256_M24_H10 - LMS One-Time Signature using SHA256 m=24, h=10 LMS_SHA256_M24_H15 - LMS One-Time Signature using SHA256 m=24, h=15 LMS_SHA256_M24_H20 - LMS One-Time Signature using SHA256 m=24, h=20 LMS_SHA256_M24_H25 - LMS One-Time Signature using SHA256 m=24, h=25 LMS_SHAKE_M32_H5 - LMS One-Time Signature using SHAKE with m=32, h=5 LMS_SHAKE_M32_H10 - LMS One-Time Signature using SHAKE with m=32, h=10 LMS_SHAKE_M32_H15 - LMS One-Time Signature using SHAKE with m=32, h=15 LMS_SHAKE_M32_H20 - LMS One-Time Signature using SHAKE with m=32, h=20 LMS_SHAKE_M32_H25 - LMS One-Time Signature using SHAKE with m=32, h=25 LMS_SHAKE_M24_H5 - LMS One-Time Signature using SHAKE m=24, h=5 LMS_SHAKE_M24_H10 - LMS One-Time Signature using SHAKE m=24, h=10 LMS_SHAKE_M24_H15 - LMS One-Time Signature using SHAKE m=24, h=15 LMS_SHAKE_M24_H20 - LMS One-Time Signature using SHAKE m=24, h=20 LMS_SHAKE_M24_H25 - LMS One-Time Signature using SHAKE m=24, h=25

Enumerator
LMS_SHA256_M32_H5 

LMS Signature using SHA256 with m=32, h=5.

LMS_SHA256_M32_H10 

LMS Signature using SHA256 with m=32, h=10.

LMS_SHA256_M32_H15 

LMS Signature using SHA256 with m=32, h=15.

LMS_SHA256_M32_H20 

LMS Signature using SHA256 with m=32, h=20.

LMS_SHA256_M32_H25 

LMS Signature using SHA256 with m=32, h=25.

LMS_SHA256_M24_H5 

LMS Signature using SHA256 with m=24, h=5.

LMS_SHA256_M24_H10 

LMS Signature using SHA256 with m=24, h=10.

LMS_SHA256_M24_H15 

LMS Signature using SHA256 with m=24, h=15.

LMS_SHA256_M24_H20 

LMS Signature using SHA256 with m=24, h=20.

LMS_SHA256_M24_H25 

LMS Signature using SHA256 with m=24, h=25.

LMS_SHAKE_M32_H5 

LMS Signature using SHAKE with m=32, h=5.

LMS_SHAKE_M32_H10 

LMS Signature using SHAKE with m=32, h=10.

LMS_SHAKE_M32_H15 

LMS Signature using SHAKE with m=32, h=15.

LMS_SHAKE_M32_H20 

LMS Signature using SHAKE with m=32, h=20.

LMS_SHAKE_M32_H25 

LMS Signature using SHAKE with m=32, h=25.

LMS_SHAKE_M24_H5 

LMS Signature using SHAKE with m=24, h=5.

LMS_SHAKE_M24_H10 

LMS Signature using SHAKE with m=24, h=10.

LMS_SHAKE_M24_H15 

LMS Signature using SHAKE with m=24, h=15.

LMS_SHAKE_M24_H20 

LMS Signature using SHAKE with m=24, h=20.

LMS_SHAKE_M24_H25 

LMS Signature using SHAKE with m=24, h=25.

◆ macsecmode_t

MACSEC Encryption Modes of Operation

Parameters
AES_GCM_256- AES-GCM with 256-bit key
AES_GCM_XPN_256- AES-GCM with extended packet number and 256-bit key
NULL_MACSEC- Authenticate only mode AES-GMAC
Enumerator
AES_GCM_256 

AES-GCM with 256-bit key.

AES_GCM_XPN_256 

AES-GCM with extended packet number and 256-bit key.

NULL_MACSEC 

Authenticate only with AES-GMAC.

◆ notify_err_t

IKE Notify Messages - Error Types NERR_UNSUPPORTED_CRIT_PAYLD - Unsupported critical payload NERR_RSVD2 - Unsupported critical payload NERR_RSVD3 - Unsupported critical payload NERR_INVALID_IKE_SPI - Invalid IKE Security Protocol Index (SPI) NERR_INVALID_MAJOR_VERSION - Invalid IKE Major Version NERR_RSVD6 NERR_INVALID_SYNTAX - Invalid syntax NERR_RSVD8 NERR_INVALID_MESSAGE_ID - ID for this message is incorrect NERR_RSVD10 NERR_INVALID_SPI - Invalid Security Protocol Index for ESP or AH NERR_RSVD12 NERR_RSVD13 NERR_NO_PROPOSAL_CHOSEN - IKE or ESP proposal was not chosed from the selection NERR_RSVD15 NERR_RSVD16 NERR_INVALID_KE_PAYLOAD - Key Exchange Payload is Invalid NERR_RSVD18 NERR_RSVD19 NERR_RSVD20 NERR_RSVD21 NERR_RSVD22 NERR_RSVD23 NERR_AUTH_FAILED - Authentication of the payload failed NERR_RSVD25 NERR_RSVD26 NERR_RSVD27 NERR_RSVD28 NERR_RSVD29 NERR_RSVD30 NERR_RSVD31 NERR_RSVD32 NERR_RSVD33 NERR_SINGLE_PAIR_REQUIRED - Single Pair Required NERR_NO_ADDITIONAL_SAS - No Additional SAS NERR_INTERNAL_ADDRESS_FAILURE - Requested Internal Address Failed NERR_FAILED_CP_REQUIRED - Failed CP Required NERR_TS_UNACCEPTABLE - Traffic Selector was not acceptable NERR_INVALID_SELECTORS - Invalid Traffic Selectors NERR_UNACCEPTABLE_ADDRESSES - Requested Addresses were not accepted NERR_UNEXPECTED_NAT_DETECTED - NAT Transversal requested but not configured NERR_USE_ASSIGNED_HOA - Use Assigned HOA NERR_TEMPORARY_FAILURE - Temporary Failure NERR_CHILD_SA_NOT_FOUND - For the connection, the Child Security Association (SA) was not found NERR_INVALID_GROUP_ID - Invalid Diffie-Hellman Group ID was requested NERR_AUTHORIZATION_FAILED - Authorization of the connection failed

◆ notify_status_t

IKE Notify Messages - Status Types NSTAT_INITIAL_CONTACT [RFC7296] NSTAT_SET_WINDOW_SIZE [RFC7296] NSTAT_ADDITIONAL_TS_POSSIBLE [RFC7296] NSTAT_IPCOMP_SUPPORTED [RFC7296] NSTAT_NAT_DETECTION_SOURCE_IP [RFC7296] NSTAT_NAT_DETECTION_DESTINATION_IP [RFC7296] NSTAT_COOKIE [RFC7296] NSTAT_USE_TRANSPORT_MODE [RFC7296] NSTAT_HTTP_CERT_LOOKUP_SUPPORTED [RFC7296] NSTAT_REKEY_SA [RFC7296] NSTAT_ESP_TFC_PADDING_NOT_SUPPORTED [RFC7296] NSTAT_NON_FIRST_FRAGMENTS_ALSO [RFC7296] NSTAT_MOBIKE_SUPPORTED [RFC4555] NSTAT_ADDITIONAL_IP4_ADDRESS [RFC4555] NSTAT_ADDITIONAL_IP6_ADDRESS [RFC4555] NSTAT_NO_ADDITIONAL_ADDRESSES [RFC4555] NSTAT_UPDATE_SA_ADDRESSES [RFC4555] NSTAT_COOKIE2 [RFC4555] NSTAT_NO_NATS_ALLOWED [RFC4555] NSTAT_AUTH_LIFETIME [RFC4478] NSTAT_MULTIPLE_AUTH_SUPPORTED [RFC4739] NSTAT_ANOTHER_AUTH_FOLLOWS [RFC4739] NSTAT_REDIRECT_SUPPORTED [RFC5685] NSTAT_REDIRECT [RFC5685] NSTAT_REDIRECTED_FROM [RFC5685] NSTAT_TICKET_LT_OPAQUE [RFC5723] NSTAT_TICKET_REQUEST [RFC5723] NSTAT_TICKET_ACK [RFC5723] NSTAT_TICKET_NACK [RFC5723] NSTAT_TICKET_OPAQUE [RFC5723] NSTAT_LINK_ID [RFC5739] NSTAT_USE_WESP_MODE [RFC5840] NSTAT_ROHC_SUPPORTED [RFC5857] NSTAT_EAP_ONLY_AUTHENTICATION [RFC5998] NSTAT_CHILDLESS_IKEV2_SUPPORTED [RFC6023] NSTAT_QUICK_CRASH_DETECTION [RFC6290] NSTAT_IKEV2_MESSAGE_ID_SYNC_SUPPORTED [RFC6311] NSTAT_IPSEC_REPLAY_COUNTER_SYNC_SUPPORTED [RFC6311] NSTAT_IKEV2_MESSAGE_ID_SYNC [RFC6311] NSTAT_IPSEC_REPLAY_COUNTER_SYNC [RFC6311] NSTAT_SECURE_PASSWORD_METHODS [RFC6467] NSTAT_PSK_PERSIST [RFC6631] NSTAT_PSK_CONFIRM [RFC6631] NSTAT_ERX_SUPPORTED [RFC6867] NSTAT_IFOM_CAPABILITY [Frederic_Firmin][3GPP TS 24.303 v10.6.0 annex B.2] NSTAT_SENDER_REQUEST_ID [draftyeunggikev2] NSTAT_IKEV2_FRAGMENTATION_SUPPORTED [RFC7383] NSTAT_SIGNATURE_HASH_ALGORITHMS [RFC7427] NSTAT_CLONE_IKE_SA_SUPPORTED [RFC7791] NSTAT_CLONE_IKE_SA [RFC7791] NSTAT_PUZZLE [RFC8019] NSTAT_USE_PPK [draftietfipsecmeqrikev2] NSTAT_PPK_IDENTITY [draftietfipsecmeqrikev2] NSTAT_NO_PPK_AUTH [draftietfipsecmeqrikev2]

◆ ots_addrtype_t

WOTS+ Address Types

OTSADDR - WOTS+ using SHA256 with n=32, w=16 LTREEADDR - WOTS+ using SHA512 with n=64, w=16 HASHADDR - WOTS+ using SHAKE256 with n=32, w=16

Enumerator
OTSADDR 

WOTS+ Address type.

LTREEADDR 

WOTS+ LTREE Address type.

HASHADDR 

WOTS+ Hash tree Address type.

◆ ots_algorithm_t

WOTS+ Algorithm

WOTSP_SHA2_256 - WOTS+ using SHA256 with n=32, w=16 WOTSP_SHA2_512 - WOTS+ using SHA512 with n=64, w=16 WOTSP_SHAKE_256 - WOTS+ using SHAKE256 with n=32, w=16 WOTSP_SHAKE_512 - WOTS+ using SHAKE512 with n=64, w=16

Enumerator
WOTSP_SHA2_256 

WOTS+ using SHA256 with n=32, w=16.

WOTSP_SHA2_512 

WOTS+ using SHA512 with n=64, w=16.

WOTSP_SHAKE_256 

WOTS+ using SHAKE256 with n=32, w=16.

WOTSP_SHAKE_512 

WOTS+ using SHAKE512 with n=64, w=16.

◆ pad_t

padding types to generate for packet padding

Parameters
RANDOM- generate random string of bytes for padding
INCREMENT- generate a series of incrementing bytes for padding
ZER0- generate a string of zeros for padding
SIZE- generate a string of bytes with a value equal to size
Enumerator
RANDOM 

Generate random string of bytes.

INCREMENT 

Generate an incrementing string of bytes.

ZERO 

Generate a string of zeros.

SIZE 

Generate a string of bytes with value of size.

UNKNWN 

Generate unknown padding.

◆ platform_t

Testbench platform, only used for jtestbench to define how the software rings are accessed and how the security associations are handled

Parameters
WASP- Testbench uses jresponder to simulate a platform to test against. Allows randomization of read, write and processing times
WASPDUT- Testbench with software rings to allow connecting a device-under-test (DUT) via the rings
SEC- Support for SEC block in QorIQ, Layerscape, and iMX* processors from NXP/Qualcomm. This testbench can program the address and size of the software rings which SEC can then read
Enumerator
WASP 

Testbench uses jresponder to simulate.

WASPDUT 

Testbench with no responder to allow DUT to connect.

SEC 

Support for SEC block.

◆ prf_id_t

IKEv2 PRF_ID fields

Parameters
PRF_HMAC_MD5- HMAC-MD5 Pseudo Random Function with 16-byte ICV
PRF_HMAC_SHA1- HMAC-SHA1 Pseudo Random Function with 20-byte ICV
PRF_HMAC_TIGER- HMAC-TIGER Pseudo Random Function
PRF_AES128_XCBC- AES-XCBC Pseudo Random Function with 128-bit key and 16-byte ICV
PRF_HMAC_SHA2_256- HMAC-SHA2-256 Authenticaiton with 32-byte ICV
PRF_HMAC_SHA2_384- HMAC-SHA2-384 Pseudo Random Function with 48-byte ICV
PRF_HMAC_SHA2_512- HMAC-SHA2-512 Pseudo Random Function with 64-byte ICV
PRF_AES128_CMAC- AES-CMAC Pseudo Random Function with 128-bit key and 16-byte ICV
Enumerator
PRF_HMAC_MD5 

HMAC-MD5 Pseudo Random Function with 16-byte ICV.

PRF_HMAC_SHA1 

HMAC-SHA1 Pseudo Random Function with 20-byte ICV.

PRF_HMAC_TIGER 

HMAC-TIGER Pseudo Random Function.

PRF_AES128_XCBC 

AES-XCBC Pseudo Random Function with 128-bit key and 16-byte ICV.

PRF_HMAC_SHA2_256 

HMAC-SHA2-256 Pseudo Random Function with 32-byte ICV.

PRF_HMAC_SHA2_384 

HMAC-SHA2-384 Pseudo Random Function with 48-byte ICV.

PRF_HMAC_SHA2_512 

HMAC-SHA2-512 Pseudo Random Function with 64-byte ICV.

PRF_AES128_CMAC 

AES-CMAC Psuedo Random Function with 128-bit key and 16-byte ICV.

◆ protocol_id_t

IKEv2 Protocol Identifiers

Parameters
PROTO_IKE- Request Internet Key Exchange Protocol (IKE)
PROTO_AH- Request Authentication Header Protocol (AH)
PROTO_ESP- Request Encapsulating Security Protocol (ESP)
PROTO_FC_ESP_HDR- FC ESP Header
PROTO_FC_CT_AUTH- FC CT Authentication
Enumerator
PROTO_IKE 

Request Internet Key Exchange Protocol (IKE)

PROTO_AH 

Request Authentication Header Protocol (AH)

PROTO_ESP 

Request Encapsulating Security Protocol (ESP)

PROTO_FC_ESP_HDR 

FC ESP Header.

PROTO_FC_CT_AUTH 

FC CT Authentication.

◆ protocol_t

Protocols not found in the standard IANA values

Parameters
ERRNONE- No error in protocol
PROTOCOL- Protocol++® base class
MACSEC- IEEE802 Security protocol
WIFI- IEEE802.11 Wireless Protocol
WIGIG- IEEE802.11ad Wireless Protocol
WIMAX- IEEE802.16 Wireless Protocol
LTE- Long Term Evolution (LTE)/3GPP Protocols
RLC- Radio Link Control Protocol (RLC)
TLS- Transport Layer Security (TLS)
SRTP- Secure Real Time Protocol (SRTP)
UDPP- User Data Protocol (UDP)
TCPP- Transport Control Protocol (TCP)
ICMPP- Internet Control Message Protocol (ICMP)
IP- IP protocol
IPSEC- IPsec Protocol (ESP)
XMLPARSER- TinyXML2 parser
RINGDRIVER- Ring based driver
DIRECTDRIVER- Direct driver
DRIVER- Driver
LOOPBACK- Loopback mode for the Ethernet interface
ETHERNET- Ethernet interface
RSA- RSA Crypto System
DSA- Digital Signature Algorithm
ECDSAFP- Elliptic Curve Signature Algorithm in a Binary Field
ECDSAF2M- Elliptic Curve Signature Algorithm in a Galios Field
ECDSAED- Elliptic Curve Signature Algorithm for Ed25519
IKEV2- Internet Key Exchange (IKE) version 2
INTEGRITY- Encryption algorithm
CONFIDENT- Authentication algorithm
XMSS- XMSS Signature Scheme
LMS- LMS Signature Scheme
TLS13- TLS version v1.3
DTLS13- DTLS version v1.3
EGRE- Extended General Encapsulation Protocol (GRE)
NVGRE- Node Virtual General Encapsulation Protocol (NVGRE)
VXLAN- Virtual eXtensible Local Area Network (VXLAN)
KYBER- Kyber key exchange post quantum algorithm
DILITHIUM- Dilithium signature post quantum algorithm
FALCON- Falcon signature post quantum algorithm
SPHINCS- Sphincs+ signature post quantum algorithm
NOPROTO- No protocol selected
Enumerator
ERRNONE 

No Error.

PROTOCOL 

JProtocol base class.

MACSEC 

Macsec protocol.

WIFI 

Wifi protocol.

WIGIG 

WiGig protocol.

WIMAX 

WiMax protocol.

LTE 

LTE/3GPP protocol.

RLC 

Radio Link Control.

TLS 

TLS/SSL protocol.

SRTP 

Secure RTP protocol.

UDPP 

UDP.

TCPP 

TCP.

ICMPP 

ICMP.

IP 

IP.

IPSEC 

IPsec.

XMLPARSER 

XML Parser.

RINGDRIVER 

Ring Driver.

DIRECTDRIVER 

Direct Driver.

DRIVER 

Driver.

LOOPBACK 

Ethernet LoopBack mode.

ETHERNET 

Ethernet.

RSA 

RSA Crypto System.

DSA 

Digital Signature Algorithm.

ECDSAFP 

Elliptic Curve Digital Signature Algorithm in Binary field.

ECDSAF2M 

Elliptic Curve Digital Signature Algorithm in Galios field.

ECDSAED 

Elliptic Curve Digital Signature Algorithm for Ed25519.

IKEV2 

Internet Key Exchange (IKE) version 2.

INTEGRITY 

Encryption algorithm.

CONFIDENT 

Authentication algorithm.

BLOB 

Memory BLOB.

XMSS 

XMSS Signature method.

LMS 

LMS Signatrure method.

TLS13 

TLS v1.3.

DTLS13 

DTLS v1.3.

EGRE 

Extended General Encapsulation Protocol (EGRE)

NVGRE 

Node Virtual General Encapsulation Protocol (NVGRE)

VXLAN 

Virtual eXtensible Local Area Network (VXLAN)

KYBER 

Kyber key exchange post quantum algorithm.

DILITHIUM 

Dilithium signature post quantum algorithm.

FALCON 

Falcon signature post quantum algorithm.

SPHINCS 

Sphincs+ signature post quantum algorithm.

NOPROTO 

No Protocol.

◆ replay_t

Anti-Replay sequence number types

Parameters
NORMAL- Sequence number incremented (seqnum = seqnum + 1)
SHIFT- Sequence number in the future (seqnum = seqnum + random("2..50"))
WINDOW- Sequence number found in the window
REPLAY- Sequence number is replay
LATE- Sequence number is outside the window (LATE)
OVERFLOW- Sequence number overflow
UNDERFLOW- Sequence number underflow
Enumerator
NORMAL 

Sequence number incremented (seqnum = seqnum + 1)

SHIFT 

Sequence number in the future, shifts window left (seqnum = seqnum + random("2..31"))

WINDOW 

Sequence number found in the window.

REPLAY 

Sequence number is replay.

LATE 

Sequence number is outside the window (LATE)

ROLLOVER 

Sequence number overflow.

ROLLUNDER 

Sequence number underflow.

◆ rohc_attr_t

IKE ROHC Attribute Type

Parameters
ROHC_MAX_CID- ROHC Maximum CID
ROHC_PROFILE- ROHC Profile
ROHC_INTEG- ROHC Integrity Algorithm
ROHC_ICV_LEN- ROHC ICV Length
ROHC_MRRU- ROHC MRRU
Enumerator
ROHC_MAX_CID 

ROHC Maximum CID.

ROHC_PROFILE 

ROHC Profile.

ROHC_INTEG 

ROHC Integrity Algorithm.

ROHC_ICV_LEN 

ROHC ICV Length.

ROHC_MRRU 

ROHC MRRU.

◆ role_id_t

IKEv2 ROLE_ID fields

Parameters
ROLE_INITIATOR- Initiator role
ROLE_RESPONDER- Responder role
ROLE_ANY- Both an initiator and receiver
Enumerator
ROLE_INITIATOR 

Initiator role.

ROLE_RESPONDER 

Responder role.

ROLE_ANY 

Both an initiator and receiver.

◆ rsaenc_t

RSA Encryption Schemes

Parameters
PKCS- PKCS Encryption scheme
OAEP_SHA- OAEP with SHA Encryption scheme
Enumerator
PKCS 

PKCS Encryption scheme.

OAEP_SHA 

OAEP with SHA Encryption scheme.

◆ rsapadtype_t

RSA Pad formats

Parameters
PKCS15- PKCS v1.5 padding
PSS- Secure padding
Enumerator
PKCS15 

PKCS v1.5 padding.

PSS 

Secure padding.

◆ sphincs_algorithm_t

SPHINCS+ Signature Algorithm

SPHINCS_SHA2_128F - Sphincs+ algorithm using SHA2 equivalent to 128-bit security SPHINCS_SHA2_128S - Sphincs+ algorithm using SHA2 equivalent to 128-bit security SPHINCS_SHA2_192F - Sphincs+ algorithm using SHA2 equivalent to 192-bit security SPHINCS_SHA2_192S - Sphincs+ algorithm using SHA2 equivalent to 192-bit security SPHINCS_SHA2_256F - Sphincs+ algorithm using SHA2 equivalent to 256-bit security SPHINCS_SHA2_256S - Sphincs+ algorithm using SHA2 equivalent to 256-bit security SPHINCS_SHAKE_128F - Sphincs+ algorithm using SHAKE equivalent to 128-bit security SPHINCS_SHAKE_128S - Sphincs+ algorithm using SHAKE equivalent to 128-bit security SPHINCS_SHAKE_192F - Sphincs+ algorithm using SHAKE equivalent to 192-bit security SPHINCS_SHAKE_192S - Sphincs+ algorithm using SHAKE equivalent to 192-bit security SPHINCS_SHAKE_256F - Sphincs+ algorithm using SHAKE equivalent to 256-bit security SPHINCS_SHAKE_256S - Sphincs+ algorithm using SHAKE equivalent to 256-bit security

Enumerator
SPHINCS_SHA2_128F 

Sphincs+ algorithm using SHA2 equivalent to 128-bit security.

SPHINCS_SHA2_128S 

Sphincs+ algorithm using SHA2 equivalent to 128-bit security.

SPHINCS_SHA2_192F 

Sphincs+ algorithm using SHA2 equivalent to 192-bit security.

SPHINCS_SHA2_192S 

Sphincs+ algorithm using SHA2 equivalent to 192-bit security.

SPHINCS_SHA2_256F 

Sphincs+ algorithm using SHA2 equivalent to 256-bit security.

SPHINCS_SHA2_256S 

Sphincs+ algorithm using SHA2 equivalent to 256-bit security.

SPHINCS_SHAKE_128F 

Sphincs+ algorithm using SHAKE equivalent to 128-bit security.

SPHINCS_SHAKE_128S 

Sphincs+ algorithm using SHAKE equivalent to 128-bit security.

SPHINCS_SHAKE_192F 

Sphincs+ algorithm using SHAKE equivlaent to 192-bit security.

SPHINCS_SHAKE_192S 

Sphincs+ algorithm using SHAKE equivalent to 192-bit security.

SPHINCS_SHAKE_256F 

Sphincs+ algorithm using SHAKE equivalent to 256-bit security.

SPHINCS_SHAKE_256S 

Sphincs+ algorithm using SHAKE equivalent to 256-bit security.

◆ srtpcipher_t

SRTP ciphers

Parameters
NULL_SRTP- Null encryption and authentication
AEAD_AES_256_GCM- AES Galois Counter Mode with 32-byte key and 16-byte ICV
AEAD_AES_256_GCM_8- AES Galois Counter Mode with 32-byte key and 8-byte ICV
AEAD_AES_256_GCM_12- AES Galois Counter Mode with 32-byte key and 12-byte ICV
AEAD_AES_256_CCM- AES CCM Mode with 32-byte key and 16-byte ICV
AEAD_AES_256_CCM_8- AES CCM Mode with 32-byte key and 8-byte ICV
AEAD_AES_256_CCM_12- AES CCM Mode with 32-byte key and 12-byte ICV
Enumerator
NULL_SRTP 

NULL encryption.

AEAD_AES_256_GCM 

AES-GCM with 32-byte key and 16-byte ICV.

AEAD_AES_256_GCM_8 

AES-GCM with 32-byte key and 8-byte ICV.

AEAD_AES_256_GCM_12 

AES-GCM with 32-byte key and 12-byte ICV.

AEAD_AES_256_CCM 

AES-CCM with 32-byte key and 16-byte ICV.

AEAD_AES_256_CCM_8 

AES-CCM with 32-byte key and 8-byte ICV.

AEAD_AES_256_CCM_12 

AES-CCM with 32-byte key and 12-byte ICV.

◆ tls_ciphersuite_t

Ciphersuite values for TLS/SSL

Parameters
TLS_NULL_WITH_NULL_NULL
TLS_SM4_GCM_SM3
TLS_SM4_CCM_SM3
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DH_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
TLS_DH_DSS_WITH_AES_256_GCM_SHA384
TLS_DH_ANON_WITH_AES_256_GCM_SHA384
TLS_PSK_WITH_AES_256_GCM_SHA384
TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
TLS_PSK_WITH_AES_256_CBC_SHA384
TLS_PSK_WITH_NULL_SHA384
TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
TLS_DHE_PSK_WITH_NULL_SHA384
TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
TLS_RSA_PSK_WITH_NULL_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
TLS_ECDHE_PSK_WITH_NULL_SHA384
TLS_RSA_WITH_AES_256_CCM
TLS_DHE_RSA_WITH_AES_256_CCM
TLS_RSA_WITH_AES_256_CCM_8
TLS_DHE_RSA_WITH_AES_256_CCM_8
TLS_PSK_WITH_AES_256_CCM
TLS_DHE_PSK_WITH_AES_256_CCM
TLS_PSK_WITH_AES_256_CCM_8
TLS_PSK_DHE_WITH_AES_256_CCM_8
TLS_ECDHE_ECDSA_WITH_AES_256_CCM
TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_PSK_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256
TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256
TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_NO_CIPHERSUITE

◆ tls_error_t

ERROR types for TLS/SSL

Parameters
CLOSE- Close the connection
MESSAGEFATAL - Message was fatal
BADRECORD MAC - MAC for record was incorrect
DECRYPT_FATAL- Decryption error
RECORDOVERFLOW - Record overflow
DECOMPRESSFAIL - Decompression failed
HANDSHAKEFAIL - Handshake failed
NOCERTIFICATE - Client has no certificate
BADCERTIFICATE - Client has bad certificate
UNSUPPORTEDCERTIFICATE - Wrong certificate type
CERTIFICATEREVOKED - Certificate revoked
CERTIFICATEEXPIRED - Certificate expired
CERTIFICATEUNKNOWN - Unknown certificate used
ILLEGALPARAMETER - Illegal parameter in the packet
UNKNOWNCA - Unknown certificate agency
ACCESSDENIED - Access not allowed
DECODEERROR - Unable to decode the packet
DECRYPTERROR - Error during decryption
EXPORTRESTRICTION - Export restriction on this packet
PROTOCOLVERSION - Incorrect protocol version
INSUFFICIENTSECURITY - Packet security was insufficient
INTERNALERROR - Internal error during operation
USERCANCELED - User cancelled connection
NORENEGOTIATION - Renegotiation failed
UNSUPPORTEDEXTENSION - Extension requested is unsupported
CERTIFICATEUNOBTAINABLE - Required certificate was unobtainable
UNRECOGINZEDNAME - Unrecognized name
BADCERTIFICATE STATUS RESPONSE - Certificate status took too long
BADCERTIFICATE HASH VALUE - Certificate has been tampered with
UNKNOWNPSK IDENTITY - ID unknown
NOAPPLICATION PROTOCOL - Incorrect Application protocol
Enumerator
CLOSE 

0

MESSAGE_FATAL 

10

BAD_RECORD_MAC 

20

DECRYPT_FATAL 

21

RECORD_OVERFLOW 

22

DECOMPRESS_FAIL 

30

HANDSHAKE_FAIL 

40

NO_CERTIFICATE 

41

BAD_CERTIFICATE 

42

UNSUPPORTED_CERTIFICATE 

43

CERTIFICATE_REVOKED 

44

CERTIFICATE_EXPIRED 

45

CERTIFICATE_UNKNOWN 

46

ILLEGAL_PARAMETER 

47

UNKNOWN_CA 

48

ACCESS_DENIED 

49

DECODE_ERROR 

50

DECRYPT_ERROR 

51

EXPORT_RESTRICTION 

60

PROTOCOL_VERSION 

70

INSUFFICIENT_SECURITY 

71

INTERNAL_ERROR 

80

USER_CANCELED 

90

NO_RENEGOTIATION 

100

UNSUPPORTED_EXTENSION 

110

CERTIFICATE_UNOBTAINABLE 

111

UNRECOGNIZED_NAME 

112

BAD_CERTIFICATE_STATUS_RESPONSE 

113

BAD_CERTIFICATE_HASH_VALUE 

114

UNKNOWN_PSK_IDENTITY 

115

NO_APPLICATION_PROTOCOL 

120

◆ tls_handshake_t

HANDSHAKE types for TLS/SSL

Parameters
HELLO_REQUEST- Server request to open connection
CLIENT_HELLO- Client request to open connection
SERVER_HELLO- Server request to open connection
NEW_SESSION_TICKET- Request to create new session
CERTIFICATE- Certificate exchange
SERVER_KEY_EXCHANGE- Server request to exchange keys
CERTIFICATE_REQUEST- Request for certificate
SERVER_HELLO_DONE- Server terminates connection request
CERTIFICATE_VERIFY- Request to verify certificate
CLIENT_KEY_EXCHANGE- Client request to exchange keys
FINISHED- Request to end connection
Enumerator
HELLO_REQUEST 

Hello Request - 0.

CLIENT_HELLO 

Client Hello - 1.

SERVER_HELLO 

Server Hello - 2.

NEW_SESSION_TICKET 

New Session Ticket - 4.

CERTIFICATE 

Certificate - 11.

SERVER_KEY_EXCHANGE 

Server Key Exchange - 12.

CERTIFICATE_REQUEST 

Certificate Request - 13.

SERVER_HELLO_DONE 

Server Hello Done - 14.

CERTIFICATE_VERIFY 

Certificate Verify - 15.

CLIENT_KEY_EXCHANGE 

Client Key Exchange - 16.

FINISHED 

Finished - 20.

◆ tlslvl_t

ALERT level values for TLS/SSL

Parameters
WARNING- Warning level of ALERT for TLS
FATAL- Fatal level of ALERT for TLS
Enumerator
TLSLVL0 

Reserved.

WARNING 

Warning alert - 2.

FATAL 

Fatal alert - 2.

◆ tlstype_t

Types of packets for TLS/SSL

Parameters
CHG_CIPHER_SPEC- Change cipher spec
ALERT- Alert packet for TLS
HANDSHAKE- TLS handshake packet
APPLICATION- TLS application packet
HEARTBEAT- TLS keep alive packet
ACK- TLS acknowledge packet
Enumerator
CHG_CIPHER_SPEC 

Change Cipher Spec - 0x14.

ALERT 

Alert message - 0x15.

HANDSHAKE 

Handshake message - 0x16.

APPLICATION 

Application message - 0x17.

HEARTBEAT 

Keep alive message - 0x18.

ACK 

Acknowledge message - 0x1A.

◆ tlsver_t

Versions for TLS/SSL

Parameters
SSL30- Secure Socket Layer v3.0
TLS10- Transport Layer Security v1.0
TLS11- Transport Layer Security v1.1
TLS12- Transport Layer Security v1.2
TLSV13- Transport Layer Security v1.3
DTLS- Datagram Transport Layer Security
DTLSV13- Datagram Transport Layer Security v1.3
Enumerator
SSL30 

Secure Socket Layer v3.0 - 0x3000.

TLS10 

Transport Layer Security v1.0 - 0x0301.

TLS11 

Transport Layer Security v1.1 - 0x0302.

TLS12 

Transport Layer Security v1.2 - 0x0303.

TLSV13 

Transprot Layer Security v1.3 - 0x0304.

DTLS 

Datagram Transport Layer Security - 0xFFFE.

DTLSV13 

Datagram Transport Layer Security v1.3 - 0xFFFD.

◆ transform_attr_t

IKEv2 TRANSFORM ATTRIBUTE TYPES fields

Parameters
ATTR_KEY_LENGTH- Key Length Attribute
Enumerator
ATTR_KEY_LENGTH 

Key Length Attribugte.

◆ transform_type_t

IKEv2 TRANSFORM TYPES fields

Parameters
IKE_ENCR- Encryption transform
IKE_INTEG- Authentication transform
IKE_DH- Diffie-Hellman transform
IKE_PRF- Pseudo Random Function transform
IKE_ESN- Extended Sequence Number transform
Enumerator
IKE_ENCR 

Encryption transform.

IKE_PRF 

Psuedo Random Function transform.

IKE_INTEG 

Authentication transform.

IKE_DH 

Diffie-Hellman transform.

IKE_ESN 

Extended Sequence Number transform.

◆ wifictlext_t

Wifi Control field extensions

Parameters
WCTRL0- Reserved
SSW- Wifi SSW extension
GRANT- Wifi GRANT extension
WCTRL3- Reserved
POLL- Wifi POLL extension
SSWACK- Wifi SSWACK extension
DMGDTS- Wifi DMGDTS extension
WCTRL7- Reserved
WCTRL8- Reserved
SSWFDBCK- Wifi SSWFDBCK extension
DMGCTS- Wifi DMGCTS extension
WCTRL11- Reserved
SPR- Wifi SPR extension
WCTRL13- Reserved
GRANTACK- Wifi GRANTACK extension
Enumerator
WCTRL0 

Reserved.

SSW 

Wifi SSW extension.

GRANT 

Wifi GRANT extension.

WCTRL3 

Reserved.

POLL 

Wifi POLL extension.

SSWACK 

Wifi SSWACK extension.

DMGDTS 

Wifi DMGDTS extension.

WCTRL7 

Reserved.

WCTRL8 

Reserved.

SSWFDBCK 

Wifi SSWFDBCK extension.

DMGCTS 

Wifi DMGCTS extension.

WCTRL11 

Reserved.

SPR 

Wifi SPR extension.

WCTRL13 

Reserved.

GRANTACK 

Wifi GRANTACK extension.

◆ wifisub_t

Wifi subtype field NOTE : bit ordering is opposite to spec (i.e., B4_B5_B6_B7) according to how they appear in the packet header such that WIFI1=0x8, WIFI5=0x2, etc. For example, if it's a management packet with ATM subtype you would use WIFI9. A control packet with RTS subtype would use WIFI11, etc

Due to the various meanings of the subtype based on the type, generic enums are provided for the subtype field

Parameters
WIFI0- Management(WIFI0) Association Request / Control - RSVD / Data - Data
WIFI8- Management(WIFI8) Beacon / Control - Block ACK Request (BlockAckReq) / Data - QoS Data
WIFI4- Management(WIFI4) Probe Request / Control - RSVD / Data - Null (no data)
WIFI12- Management(WIFI12) Deauthentication / Control - CTS / Data - QoS Null (no data)
WIFI2- Management(WIFI2) Reassociation Request / Control - RSVD / Data - Data + CF-Poll
WIFI10- Management(WIFI10) Disassociation / Control - PS-Poll / Data - QoS Data + CF-Poll
WIFI6- Management(WIFI6) Timing Advertisement / Control - RSVD / Data - CF-Poll (no data)
WIFI14- Management(WIFI14) Action No ACK / Control - CF-End / Data - QoS CF-Poll (no data)
WIFI1- Management(WIFI1) Association Response / Control - RSVD / Data - Data + CF-Ack
WIFI9- Management(WIFI9) ATM / Control - Block ACK (BlockAck) / Data - QoS Data + CF-Ack
WIFI5- Management(WIFI5) Probe Response / Control - RSVD / Data - CF-Ack (no data)
WIFI13- Management(WIFI13) Action / Control - ACK / Data - RSVD
WIFI3- Management(WIFI3) Reassociation Response / Control - RSVD / Data - Data + CF-Ack + CF-Poll
WIFI11- Management(WIFI11) Authentication / Control - RTS / Data - QoS Data + CF-Ack + CF-Poll
WIFI7- Management(WIFI7) RSVD / Control - Control Wrapper / Data - CF-Ack + CF-Poll (no data)
WIFI15- Management(WIFI15) RSVD / Control - CF-End + CF-Ack / Data - QoS CF-Ack + CF-Poll (no data)
Enumerator
WIFI0 

Management(WIFI0) - Association Request / Control - RSVD / Data - Data.

WIFI8 

Management(WIFI8) - Beacon / Control - Block ACK Request (BlockAckReq) / Data - QoS Data.

WIFI4 

Management(WIFI4) - Probe Request / Control - RSVD / Data - Null (no data)

WIFI12 

Management(WIFI12) - Deauthentication / Control - CTS / Data - QoS Null (no data)

WIFI2 

Management(WIFI2) - Reassociation Request / Control - RSVD / Data - Data + CF-Poll.

WIFI10 

Management(WIFI10) - Disassociation / Control - PS-Poll / Data - QoS Data + CF-Poll.

WIFI6 

Management(WIFI6) - Timing Advertisement / Control - RSVD / Data - CF-Poll (no data)

WIFI14 

Management(WIFI14) - Action No ACK / Control - CF-End / Data - QoS CF-Poll (no data)

WIFI1 

Management(WIFI1) - Association Response / Control - RSVD / Data - Data + CF-Ack.

WIFI9 

Management(WIFI9) - ATM / Control - Block ACK (BlockAck) / Data - QoS Data + CF-Ack.

WIFI5 

Management(WIFI5) - Probe Response / Control - RSVD / Data - CF-Ack (no data)

WIFI13 

Management(WIFI13) - Action / Control - ACK / Data - RSVD.

WIFI3 

Management(WIFI3) - Reassociation Response / Control - RSVD / Data - Data + CF-Ack + CF-Poll.

WIFI11 

Management(WIFI11) - Authentication / Control - RTS / Data - QoS Data + CF-Ack + CF-Poll.

WIFI7 

Management(WIFI7) - RSVD / Control - Control Wrapper / Data - CF-Ack + CF-Poll (no data)

WIFI15 

Management(WIFI15) - RSVD / Control - CF-End + CF-Ack / Data - QoS CF-Ack + CF-Poll (no data)

◆ wifitype_t

Wifi type field

Parameters
WIFIMNG- Wifi Management frame type
WIFIDAT- Wifi Data frame type
WIFICTL- Wifi Control frame type
Enumerator
WIFIMNG 

Management frame.

WIFIDAT 

Data frame.

WIFICTL 

Control frame.

◆ wimaxmode_t

Wimax fields

Parameters
OFDM- Orthogonal frequency division multiplexing
OFDMA- Orthogonal frequency division multiple access
AGMH_OFDM- Advanced GMH with OFDM
AGMH_OFDMA- Advanced GMH with OFDMA
Enumerator
OFDM 

Orthogonal frequency division multiplexing.

OFDMA 

Orthogonal frequency division multiple access.

AGMH_OFDM 

Advanced GMH header with OFDM.

AGMH_OFDMA 

Advanced GMH header with OFDMA.

◆ xmss_algorithm_t

XMSS Algorithm

XMSS_NO_TYPE - XMSS using SHA256 with n=0, w=0, and h=0 XMSS_SHA2_10_256 - XMSS using SHA256 with n=32, w=16, and h=10 XMSS_SHA2_16_256 - XMSS using SHA256 with n=32, w=16, and h=16 XMSS_SHA2_20_256 - XMSS using SHA256 with n=32, w=16, and h=20 XMSS_SHA2_10_192 - XMSS using SHA256 with n=24, w=16, and h=10 XMSS_SHA2_16_192 - XMSS using SHA256 with n=24, w=16, and h=16 XMSS_SHA2_20_192 - XMSS using SHA256 with n=24, w=16, and h=20 XMSS_SHAKE256_10_256 - XMSS using SHAKE256 with n=32, w=16, and h=10 XMSS_SHAKE256_16_256 - XMSS using SHAKE256 with n=32, w=16, and h=16 XMSS_SHAKE256_20_256 - XMSS using SHAKE256 with n=32, w=16, and h=20 XMSS_SHAKE256_10_192 - XMSS using SHAKE256 with n=24, w=16, and h=10 XMSS_SHAKE256_16_192 - XMSS using SHAKE256 with n=24, w=16, and h=16 XMSS_SHAKE256_20_192 - XMSS using SHAKE256 with n=24, w=16, and h=20

Enumerator
XMSS_NO_TYPE 

XMSS no type with n=0, w=0, and h=0.

XMSS_SHA2_10_256 

XMSS using SHA256 with n=32, w=16, and h=10.

XMSS_SHA2_16_256 

XMSS using SHA256 with n=32, w=16, and h=16.

XMSS_SHA2_20_256 

XMSS using SHA256 with n=32, w=16, and h=20.

XMSS_SHA2_10_192 

XMSS using SHA256 with n=24, w=16, and h=10.

XMSS_SHA2_16_192 

XMSS using SHA256 with n=24, w=16, and h=16.

XMSS_SHA2_20_192 

XMSS using SHA256 with n=24, w=16, and h=20.

XMSS_SHAKE256_10_256 

XMSS using SHAKE256 with n=32, w=16, and h=10.

XMSS_SHAKE256_16_256 

XMSS using SHAKE256 with n=32, w=16, and h=16.

XMSS_SHAKE256_20_256 

XMSS using SHAKE256 with n=32, w=16, and h=20.

XMSS_SHAKE256_10_192 

XMSS using SHAKE256 with n=24, w=16, and h=10.

XMSS_SHAKE256_16_192 

XMSS using SHAKE256 with n=24, w=16, and h=16.

XMSS_SHAKE256_20_192 

XMSS using SHAKE256 with n=24, w=16, and h=20.

◆ xmssmt_algorithm_t

XMSSMT Signature

XMSSMT_NO_TYPE - XMSSMT no type with n=0, w=0, h=0, and d=0 XMSSMT_SHA2_20_2_256 - XMSSMT using SHA256 with n=32, w=16, h=20, and d=2 XMSSMT_SHA2_20_4_256 - XMSSMT using SHA256 with n=32, w=16, h=20, and d=4 XMSSMT_SHA2_40_2_256 - XMSSMT using SHA256 with n=32, w=16, h=40, and d=2 XMSSMT_SHA2_40_4_256 - XMSSMT using SHA256 with n=32, w=16, h=40, and d=4 XMSSMT_SHA2_40_8_256 - XMSSMT using SHA256 with n=32, w=16, h=40, and d=8 XMSSMT_SHA2_60_3_256 - XMSSMT using SHA256 with n=32, w=16, h=60, and d=3 XMSSMT_SHA2_60_6_256 - XMSSMT using SHA256 with n=32, w=16, h=60, and d=6 XMSSMT_SHA2_60_12_256 - XMSSMT using SHA256 with n=32, w=16, h=60, and d=12 XMSSMT_SHA2_20_2_192 - XMSSMT using SHA256 with n=24, w=16, h=20, and d=2 XMSSMT_SHA2_20_4_192 - XMSSMT using SHA256 with n=24, w=16, h=20, and d=4 XMSSMT_SHA2_40_2_192 - XMSSMT using SHA256 with n=24, w=16, h=40, and d=2 XMSSMT_SHA2_40_4_192 - XMSSMT using SHA256 with n=24, w=16, h=40, and d=4 XMSSMT_SHA2_40_8_192 - XMSSMT using SHA256 with n=24, w=16, h=40, and d=8 XMSSMT_SHA2_60_3_192 - XMSSMT using SHA256 with n=24, w=16, h=40, and d=3 XMSSMT_SHA2_60_6_192 - XMSSMT using SHA256 with n=24, w=16, h=40, and d=6 XMSSMT_SHA2_60_12_192 - XMSSMT using SHA256 with n=24, w=16, h=40, and d=12 XMSSMT_SHAKE256_20_2_256 - XMSSMT using SHAKE256 with n=32, w=16, h=20, and d=2 XMSSMT_SHAKE256_20_4_256 - XMSSMT using SHAKE256 with n=32, w=16, h=20, and d=4 XMSSMT_SHAKE256_40_2_256 - XMSSMT using SHAKE256 with n=32, w=16, h=40, and d=2 XMSSMT_SHAKE256_40_4_256 - XMSSMT using SHAKE256 with n=32, w=16, h=40, and d=4 XMSSMT_SHAKE256_40_8_256 - XMSSMT using SHAKE256 with n=32, w=16, h=40, and d=8 XMSSMT_SHAKE256_60_3_256 - XMSSMT using SHAKE256 with n=32, w=16, h=60, and d=3 XMSSMT_SHAKE256_60_6_256 - XMSSMT using SHAKE256 with n=32, w=16, h=60, and d=6 XMSSMT_SHAKE256_60_12_256 - XMSSMT using SHAKE256 with n=32, w=16, h=60, and d=12 XMSSMT_SHAKE256_20_2_192 - XMSSMT using SHAKE256 with n=24, w=16, h=20, and d=2 XMSSMT_SHAKE256_20_4_192 - XMSSMT using SHAKE256 with n=24, w=16, h=20, and d=4 XMSSMT_SHAKE256_40_2_192 - XMSSMT using SHAKE256 with n=24, w=16, h=40, and d=2 XMSSMT_SHAKE256_40_4_192 - XMSSMT using SHAKE256 with n=24, w=16, h=40, and d=4 XMSSMT_SHAKE256_40_8_192 - XMSSMT using SHAKE256 with n=24, w=16, h=40, and d=8 XMSSMT_SHAKE256_60_3_192 - XMSSMT using SHAKE256 with n=24, w=16, h=60, and d=3 XMSSMT_SHAKE256_60_6_192 - XMSSMT using SHAKE256 with n=24, w=16, h=60, and d=6 XMSSMT_SHAKE256_60_12_192 - XMSSMT using SHAKE256 with n=24, w=16, h=60, and d=12

Enumerator
XMSSMT_NO_TYPE 

XMSSMT no type.

XMSSMT_SHA2_20_2_256 

XMSSMT using SHA256 with n=32, w=16, h=20, and d=2.

XMSSMT_SHA2_20_4_256 

XMSSMT using SHA256 with n=32, w=16, h=20, and d=4.

XMSSMT_SHA2_40_2_256 

XMSSMT using SHA256 with n=32, w=16, h=40, and d=2.

XMSSMT_SHA2_40_4_256 

XMSSMT using SHA256 with n=32, w=16, h=40, and d=4.

XMSSMT_SHA2_40_8_256 

XMSSMT using SHA256 with n=32, w=16, h=40, and d=8.

XMSSMT_SHA2_60_3_256 

XMSSMT using SHA256 with n=32, w=16, h=60, and d=3.

XMSSMT_SHA2_60_6_256 

XMSSMT using SHA256 with n=32, w=16, h=60, and d=6.

XMSSMT_SHA2_60_12_256 

XMSSMT using SHA256 with n=32, w=16, h=60, and d=12.

XMSSMT_SHA2_20_2_192 

XMSSMT using SHA256 with n=24, w=16, h=20, and d=2.

XMSSMT_SHA2_20_4_192 

XMSSMT using SHA256 with n=24, w=16, h=20, and d=4.

XMSSMT_SHA2_40_2_192 

XMSSMT using SHA256 with n=24, w=16, h=40, and d=2.

XMSSMT_SHA2_40_4_192 

XMSSMT using SHA256 with n=24, w=16, h=40, and d=4.

XMSSMT_SHA2_40_8_192 

XMSSMT using SHA256 with n=24, w=16, h=40, and d=8.

XMSSMT_SHA2_60_3_192 

XMSSMT using SHA256 with n=24, w=16, h=40, and d=3.

XMSSMT_SHA2_60_6_192 

XMSSMT using SHA256 with n=24, w=16, h=40, and d=6.

XMSSMT_SHA2_60_12_192 

XMSSMT using SHA256 with n=24, w=16, h=40, and d=12.

XMSSMT_SHAKE256_20_2_256 

XMSSMT using SHAKE256 with n=32, w=16, h=20, and d=2.

XMSSMT_SHAKE256_20_4_256 

XMSSMT using SHAKE256 with n=32, w=16, h=20, and d=4.

XMSSMT_SHAKE256_40_2_256 

XMSSMT using SHAKE256 with n=32, w=16, h=40, and d=2.

XMSSMT_SHAKE256_40_4_256 

XMSSMT using SHAKE256 with n=32, w=16, h=40, and d=4.

XMSSMT_SHAKE256_40_8_256 

XMSSMT using SHAKE256 with n=32, w=16, h=40, and d=8.

XMSSMT_SHAKE256_60_3_256 

XMSSMT using SHAKE256 with n=32, w=16, h=60, and d=3.

XMSSMT_SHAKE256_60_6_256 

XMSSMT using SHAKE256 with n=32, w=16, h=60, and d=6.

XMSSMT_SHAKE256_60_12_256 

XMSSMT using SHAKE256 with n=32, w=16, h=60, and d=12.

XMSSMT_SHAKE256_20_2_192 

XMSSMT using SHAKE256 with n=24, w=16, h=20, and d=2.

XMSSMT_SHAKE256_20_4_192 

XMSSMT using SHAKE256 with n=24, w=16, h=20, and d=4.

XMSSMT_SHAKE256_40_2_192 

XMSSMT using SHAKE256 with n=24, w=16, h=40, and d=2.

XMSSMT_SHAKE256_40_4_192 

XMSSMT using SHAKE256 with n=24, w=16, h=40, and d=4.

XMSSMT_SHAKE256_40_8_192 

XMSSMT using SHAKE256 with n=24, w=16, h=40, and d=8.

XMSSMT_SHAKE256_60_3_192 

XMSSMT using SHAKE256 with n=24, w=16, h=60, and d=3.

XMSSMT_SHAKE256_60_6_192 

XMSSMT using SHAKE256 with n=24, w=16, h=60, and d=6.

XMSSMT_SHAKE256_60_12_192 

XMSSMT using SHAKE256 with n=24, w=16, h=60, and d=12.

Function Documentation

◆ Begin_Enum_String()

ProtocolPP::Begin_Enum_String ( field_t  )

Direction of processing (ENCAP or DECAP)

Version field for the packet either IPV4 or IPV6 (ICMP or ICMPV6) (SSL30, TLS10, TLS11, TLS12, TLS13, DTLS, DTLS13)

Mode of operation either TUNNEL or TRANSPORT

Security parameter index (SPI)

Sequence number for the packet

Extended sequence number

Length of the anti-replay window

Anti-Replay window represented as a byte array

Cipher for encryption

Length of the cipher key

Cipher key for encryption

Authentication mode

Length of the authentication key

Authentication key

Length fo the initialization vector (IV)

Initializaton Vector (IV)

Length of encryption salt

Encryption salt

Number of bytes encrypted or decrypted by this flow

Amount of time for this flow to exist

Allow SEQNUM overflow during ENCAP

Stateful FRAG bit

Enable bypass of the DONT FRAGMENT bit copy from inner to outer header

Enable bypass of copy from inner to outer header of DiffServices

Enable Network Address Translation (NAT) insertion

Enable NAT checksum generation and checking

Bits for Diff Services/Congestion bits

Time-to-Live field for the packet

Flags field in the IPv4

Source port for NAT

Destination port for NAT

Identification field for IPv4

Label field for IPv6

Fragment offset from first packet

Enable fragmentation of packet

Fragmentation ID for this segment in the overall packet

Maximum Transmission unit (MTU)

Source Address

Destination Address

IPv6 Extension header(s)

Next header in either the extension header or the payload

Length of the AAD

Length of the ICV

Length of the IP headeer

Length of the Traffic flow Confidentiality (TFC) padding

Use extended sequence number

Use random IV rather than user IV

Nodal JUMBOGRAM support

Enable audint of IP flow

Path to the audit log

Enable IPv4 header checksum

Length of the packet (IPv4) or length of the packet minus the standard IPv6 header

ICMP Type

ICMP SubType

Pointer to error in packet

Identifier from the invoking message

Gateway Internet Address

Timestamp from the origination node

Receive timestamp

Transmit timestamp

Message to send

Code to send

Data or Control bit

Control PDU type field

Polling bit

Extension bit

Reset sequence number (RSN)

Sequence number length in bits

Header extension type field

Length indicator field

Hyper frame number indicator (HFNI)

Super Field (SUFI)

PDCP SN of the first Missing PDCP SDU (FMS)

Length of BitMap

Bitmap for LTE

Five LSB(s) of PGK identity

PTK identity

PDCP SDU type (IP, ARP, PC5SIG, NONIP, RSVD)

Kd identity

Number of missing PDCP SDU(s) with associated COUNT value

PDCP SN of the PDCP SDU received on WLAN with highest associated PDCP COUNT value

Bearer value

Fresh value for F9 modes

Count value for F8/F9 modes

Ethernet type

Short length field

TAG Control Information and Association Number

Packet number

Extended packet number

Secure Channel Identifier

Short Secure Channel Identifier

Security Association Key

Enable reception of packets

Enable transmission of packets

Protect packets

MacSEC flow is in use (RX or TX)

Time this MacSEC was created

Time this MacSEC last enabled RX or TX

Time this MacSEC last disabled RX or TX

Padding field

CSRC count field

Marker field

Payload type field

Rollover Counter (ROC)

Timestamp field

Synchronization source identifier (SSRC)

Contributing source identifier (CSRC)

Block size of the encryption cipher

MKI flag

MKI data length

MKI data

Acknowledge number

Data offset

Receive size window

Urgent pointer

TCP state of operation

OPTIONS

SEGLEN

PRECEDENCE

SNDUNA

SNDNXT

SNDWND

SNDUP

SNDW1

SNDW2

ISS

RCVNXT

RCVWND

RCVUP

IRS

TCPTIMEOUT

Epoch number for DTLS

Ciphersuite for the TLS protocol

Encrypt-then-MAC the TLS packet

Implicit or Explicit IV for TLS

Frame control sequence in entirety

Control Frame extension

Protocol version

SubType

To Data Stream

From Data Stream

More fragmentation

Retry

Power management

More data field

Wireless Encryption Protection (WEP)

Order

Key derivation function (KDF) algorithm

First address

Second address

Third address

Sequence control

Fourth address

Quality of Service field

HT control field

Extended IV flag

Key identification

SPP Cap

Enable CRC checking for packet

Header Type where zero for generic MAC header

Encryption Control 0=no encryption 1=encryption

Extended Subheader Field ESF=1 then ESF is present and follows MAC header

CRC Indicator 0=no CRC, 1=CRC present

Encryption Key Sequence. Index of TEK and IV used to encrypt the payload

Connection Identifier

Flow Identifier (AGHM header only)

Extended Header Group Indicator (AGHM header only)

Header Check Sequence 8-bit header checksum

IKE Conneciton Name

IKE Exchange Type

IKE Next Payload Value

IKE Major Revision Number

IKE Minor Revision Number

IKE Message Identifier when Initiator

IKE Message Identifier when Responder

IKE Initiator Security Parameter Index

IKE Responder Security Parameter Index

IKE Initiator Nonce

IKE Responder Nonce

IKE Child SA Key Generation Seed

IKE Initiator Encryption Key

IKE Responder Encryption Key

IKE Initiator Salt Value

IKE Responder Salt Value

IKE Integrity Algorithm

IKE Initiator Integrity Algorithm Key

IKE Responder Integrity Algorithm Key

IKE Psuedo Random Function Algorithm

IKE Psuedo Random Total Key Length

IKE Initiator Psuedo Random Key

IKE Responder Psuedo Random Key

IKE Diffie-Hellman Group ID

IKE Signature Algorithm

IKE Hash Algorithm

Size fo the Private Key

RSA Padding type

RSA Encrypt type

Key pair

Private Key

Public Key

Prime value for DSA (usually called "p")

Subprime value for DSA (usually called "q")

Generator value for DSA (usually called "g")

X-coordinate for the ECDSA curve

Y-coordinate for the ECDSA curve

Hash function for ECDSA

Name of the current curve

First 802.1Q VLAN tag

Second 802.1Q VLAN tag

Postprocessing flag

Setup flag

Size field

Name of the stream object

Output address of the packet

Output length of the packet

Input length of the packet

Output length of the packet

Expected length of the packet

Name of the stream associated with this packet

Previous packet to this one (set to "begin" if this is the first packet)

Status word for this packet

INPUT data for this packet

OUTPUT data for this packet

EXPECT data for this packet

Size of the block cipher data

Zero initial value for CRC calculations

Swap input data before CRC calculation

Swap output data before CRC calculation

Complement output CRC

Polynomial for CRC

Testbench seed

Use cryptographic quality random numbers

Number of errors

Number of flows

Number of packets

Number of bytes sent to responder(s)

Number of bytes received from responder(s)

Logging level

Pointer size for testbench

Scatter-gather table entry size

Width of buffers in bytes (0, 64, 128, 192, 256, 384, 512)

Width of buffer type in bytes (0, 1, 2, 4, 8)

Number of buffers in the memory (default: 16384)

Log to std::cout

Endianness for testbench

Burst length for flows

Platform to run testbench with

Color of debug messages in the testbench

Color of information messages in the testbench

Color of warning messages in the testbench

Color of error messages in the testbench

Color of fatal messages in the testbench

Color of pass messages in the testbench

Memory Blob Key Encryption Key (BKEK)

Memory Blob Key Length (BKEKLEN)

Memory Blob Key

Memory Blob Key Length

WOTS+ Algorithm

Address of the tree layer

Address in the binary tree

Height of the binary tree

Value of the TYPE (Enum_String(0), Enum_String(1), or 2)

One-Time Signature Enum_String(Address), LTREE Enum_String(address), or padding

Chain Address or Tree Height

Hash address in tree or Tree Index

Key and mask address

Convert OTS addresses to byte array

Signature length

Stack in XMSS/LMS

Winternitz parameter

XMSS algorithm

Push to the XMSS/LMS stack

Pop the top of the XMSS/LMS stack

Return top of the XMSS/LMS stack

Access index of the XMSS/LMS stack

Height of the top node fo the XMSS/LMS stack

XMSS parameters

LMOTSQ value of 'q' parameter

LMOTS length of hash function

LMOTS Winternitz parameter

LMOTS number of w-bit elements in signature

LMOTS number of left-shift bits on checksum calculation

LMOTS signature length

LMOTS key pair identifier

LMOTS seed value

LMOTS c-array value

LMOTS engine

LMS Algorithm value as jarray<uint8_t>

LMOTS Algorithm value as jarray<uint8_t>

Number of tree levels in LMS (2-8 are valid)

Private key length

Public key length

Field that indicates CHKSUM field is present in GRE

Field that indicates KEY field is present in GRE

Field that indicates SEQNUM field is present in GRE

Field that indicates CID field is present in DTLSv13

DTLSv13 ICV failure counter

FlowID field in GRE

Protocol type field for GRE

VXLAN Network Identifier

DTLSv1.3 Application per EPOCH traffic secret

Priavte intermediate key length

Public intermediate key length

Length of the signature

Kyber K parameter

Kyber N parameter

Kyber Q parameter

Length of the polynomial

Length of the polynomial vector

Length of ss bytes

Length of compressed polynomial

Length of compressed polynomial vector

Length of intermediate message

Length of intermediate message

Kyber Q inverse parameters (// q^-1 mod 2^16 = 62209)

Kyber ETA1 parameter

Kyber ETA2 parameter

◆ do_recursion()

static void ProtocolPP::do_recursion ( w128_t r,
w128_t a,
w128_t b,
w128_t c,
w128_t d 
)
inlinestatic

This function represents the recursion formula.

Parameters
routput
aa 128-bit part of the internal state array
ba 128-bit part of the internal state array
ca 128-bit part of the internal state array
da 128-bit part of the internal state array
Here is the call graph for this function:

◆ gen_rand_array() [1/4]

static void ProtocolPP::gen_rand_array ( w128_t array,
int  size 
)
inlinestatic

This function fills the user-specified array with pseudorandom integers.

Parameters
arrayan 128-bit array to be filled by pseudorandom numbers.
sizenumber of 128-bit pesudorandom numbers to be generated.
Here is the call graph for this function:

◆ gen_rand_array() [2/4]

static void ProtocolPP::gen_rand_array ( w128_t array,
int  size 
)
static

This function fills the user-specified array with pseudorandom integers.

Parameters
arrayan 128-bit array to be filled by pseudorandom numbers.
sizenumber of 128-bit pseudorandom numbers to be generated.
Here is the call graph for this function:

◆ gen_rand_array() [3/4]

static void ProtocolPP::gen_rand_array ( w128_t array,
int  size 
)
static

This function fills the user-specified array with pseudorandom integers.

Parameters
arrayan 128-bit array to be filled by pseudorandom numbers.
sizenumber of 128-bit pseudorandom numbers to be generated.
Here is the call graph for this function:

◆ gen_rand_array() [4/4]

static void ProtocolPP::gen_rand_array ( w128_t array,
int  size 
)
static

This function fills the user-specified array with pseudorandom integers.

Parameters
arrayan 128-bit array to be filled by pseudorandom numbers.
sizenumber of 128-bit pseudorandom numbers to be generated.
Here is the call graph for this function:

◆ lshift128()

static void ProtocolPP::lshift128 ( w128_t out,
w128_t const *  in,
int  shift 
)
inlinestatic

This function simulates SIMD 128-bit left shift by the standard C. The 128-bit integer given in in is shifted by (shift * 8) bits. This function simulates the LITTLE ENDIAN SIMD.

Parameters
outthe output of this function
inthe 128-bit data to be shifted
shiftthe shift value

◆ mm_recursion() [1/2]

static void ProtocolPP::mm_recursion ( __m128i *  r,
__m128i  a,
__m128i  b,
__m128i  c,
__m128i *  d 
)
inlinestatic

This function represents the recursion formula.

Parameters
ran output
aa 128-bit part of the interal state array
ba 128-bit part of the interal state array
ca 128-bit part of the interal state array
da 128-bit part of the interal state array

◆ mm_recursion() [2/2]

static void ProtocolPP::mm_recursion ( __m128i *  r,
__m128i  a,
__m128i  b,
__m128i  c,
__m128i  d 
)
inlinestatic

This function represents the recursion formula.

Parameters
ran output
aa 128-bit part of the interal state array
ba 128-bit part of the interal state array
ca 128-bit part of the interal state array
da 128-bit part of the interal state array

◆ neon_recursion()

static void ProtocolPP::neon_recursion ( uint32x4_t *  r,
uint32x4_t  a,
uint32x4_t  b,
uint32x4_t  c,
uint32x4_t  d 
)
inlinestatic

This function represents the recursion formula.

Parameters
ran output
aa 128-bit part of the interal state array
ba 128-bit part of the interal state array
ca 128-bit part of the interal state array
da 128-bit part of the interal state array

◆ rshift128()

static void ProtocolPP::rshift128 ( w128_t out,
w128_t const *  in,
int  shift 
)
inlinestatic

This function simulates SIMD 128-bit right shift by the standard C. The 128-bit integer given in in is shifted by (shift * 8) bits. This function simulates the LITTLE ENDIAN SIMD.

Parameters
outthe output of this function
inthe 128-bit data to be shifted
shiftthe shift value

◆ sfmt_gen_rand_all()

void ProtocolPP::sfmt_gen_rand_all ( )

This function fills the internal state array with pseudorandom integers.

Here is the call graph for this function:

◆ swap()

static void ProtocolPP::swap ( w128_t array,
int  size 
)
inlinestatic

This function swaps high and low 32-bit of 64-bit integers in user specified array.

Parameters
arrayan 128-bit array to be swaped.
sizesize of 128-bit array.

◆ vec_recursion()

static vector unsigned int ProtocolPP::vec_recursion ( vector unsigned int  a,
vector unsigned int  b,
vector unsigned int  c,
vector unsigned int  d 
)
inlinestatic

This function represents the recursion formula in AltiVec and BIG ENDIAN.

Parameters
aa 128-bit part of the interal state array
ba 128-bit part of the interal state array
ca 128-bit part of the interal state array
da 128-bit part of the interal state array
Returns
output