- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
- //==========================================================================================================================
- // MODULE: OID.h
- //
- // Description:
- //
- // Bloodhound Kernel, OID utilities (SNMP)
- //
- // Modification History
- //
- // Keith Lau 01/09/95 Created
- //==========================================================================================================================
- #ifndef OID_H
- #define OID_H
- #include <windows.h>
- #include <string.h>
- #include <bh.h>
- // class field of BER tag
- #define ASN_UNIVERSAL 0x00
- #define ASN_APPLICATION 0x40
- #define ASN_CONTEXTSPECIFIC 0x80
- #define ASN_PRIVATE 0xC0
- // primative/constructed field of BER tag
- #define ASN_PRIMATIVE 0x00
- #define ASN_CONSTRUCTOR 0x20
- // Priviliged message
- #define ASN_RFCxxxx_PRIVDATA (ASN_CONTEXTSPECIFIC | ASN_PRIMATIVE | 0x01)
- #define ASN_RFCxxxx_SNMPMGMTCOM (ASN_CONTEXTSPECIFIC | ASN_CONSTRUCTOR | 0x01)
- #define ASN_RFCxxxx_SNMPAUTHMSG (ASN_CONTEXTSPECIFIC | ASN_CONSTRUCTOR | 0x01)
- #define ASN_RFCxxxx_SNMPPRIVMSG (ASN_CONTEXTSPECIFIC | ASN_CONSTRUCTOR | 0x01)
- // ASN.1 simple types
- #define ASN_INTEGER (ASN_UNIVERSAL | ASN_PRIMATIVE | 0x02)
- #define ASN_OCTETSTRING (ASN_UNIVERSAL | ASN_PRIMATIVE | 0x04)
- #define ASN_NULL (ASN_UNIVERSAL | ASN_PRIMATIVE | 0x05)
- #define ASN_OBJECTIDENTIFIER (ASN_UNIVERSAL | ASN_PRIMATIVE | 0x06)
- // ASN.1 constructor types
- #define ASN_SEQUENCE (ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10)
- #define ASN_SEQUENCEOF ASN_SEQUENCE
- // ASN.1 application specific primatives
- #define ASN_RFC1155_IPADDRESS (ASN_APPLICATION | ASN_PRIMATIVE | 0x00)
- #define ASN_RFC1155_COUNTER (ASN_APPLICATION | ASN_PRIMATIVE | 0x01)
- #define ASN_RFC1155_GAUGE (ASN_APPLICATION | ASN_PRIMATIVE | 0x02)
- #define ASN_RFC1155_TIMETICKS (ASN_APPLICATION | ASN_PRIMATIVE | 0x03)
- #define ASN_RFC1155_OPAQUE (ASN_APPLICATION | ASN_PRIMATIVE | 0x04)
- #define ASN_RFC1213_DISPSTRING ASN_OCTETSTRING
- // BER limits
- #define BER_OCTET_LEN 8 // 8 bits in an octet
- #define BER_OCTET_SIZE 256 // 8 bits make an octet
- #define BER_MAX_INT_OCTETS 4 // 4 octets - 32 bit integer
- #define BER_MAX_LEN_OCTETS 2 // 2 octets - 16 bit integer length
- #define BER_MAX_STREAM_LEN 0xffff // 16 bit unsigned integer
- #define BER_MIN_HEADER_LEN 2 // 2 octets
- #define BER_MAX_SIMPLE_LEN 127 // SNMP BER definition
- // Buffer offsets for info.
- #define BER_TAG_OFFSET 0
- #define BER_LENGTH_OFFSET 1
- // Meaningful bit definitions
- #define BER_EXTENDED_TAG 0x1f // 00011111
- #define BER_OCTET_CONT_BIT 0x80 // 10000000
- // BER OBJECTIDENTIFIER limits
- #define BER_MAX_FIRST_ELEM 2 // Obj Id's 1st element must be 0-2
- #define BER_MAX_SECOND_ELEM 39 // Obj Id's 2nd element must be 0-40
- // These are defined solely for Object Identifier (OID) filter contains actions
- #define OID_BEGINS_WITH 1
- #define OID_ENDS_WITH 2
- #define OID_CONTAINS (OID_BEGINS_WITH | OID_ENDS_WITH)
- // Function prototypes
- DWORD WINAPI DecodeSNMPObjectIdentifier( LPBYTE lpData,
- DWORD DataLen,
- LPOBJECT_IDENTIFIER lpOID);
- VOID WINAPI EncodeSNMPObjectIdentifier( LPBYTE lpData,
- LPDWORD lpDataLen,
- LPOBJECT_IDENTIFIER lpOID);
- BOOL WINAPI IsValidSNMPObjectIdentifier(LPOBJECT_IDENTIFIER lpOID);
- BOOL WINAPI ObjectIdentifierContains (LPBYTE SubOID,
- WORD SubOIDLen,
- LPBYTE OID,
- WORD OIDLen,
- DWORD ContainFlags);
- #endif