⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ospasn1.h

📁 mgcp协议源代码。支持多种编码:g711
💻 H
📖 第 1 页 / 共 3 页
字号:
        OSPEASN1DATAREFID ospvDataRefId);    int    OSPPASN1ObjectCreate(        OSPTASN1OBJECT **ospvASN1Object,        OSPTASN1ELEMENTINFO *ospvElementInfo,        OSPTASN1PARSERESULT *ospvParseResults);    void    OSPPASN1ObjectDelete(        OSPTASN1OBJECT **ospvASN1Object);    int         OSPPASN1ElementTestContext(            OSPTASN1ELEMENTINFO *ospvElementInfo);    int     OSPPASN1PrimitiveDecode(        OSPTASN1ELEMENTINFO *ospvElementInfo);    int     OSPPASN1PrimitiveDelete(        OSPTASN1ELEMENTINFO *ospvElementInfo);    int     OSPPASN1ElementDecode(        unsigned char *ospvASN1Element,        OSPTASN1ELEMENTINFO **ospvASN1ElementInfo,        unsigned int ospvLevel);    int     OSPPASN1ElementCreate(        OSPTASN1ELEMENTINFO **ospvElementInfo);    void    OSPPASN1ElementDelete(    OSPTASN1ELEMENTINFO **ospvElement,    unsigned int        ospvLevel);    int    OSPPASN1ElementGet(        OSPEASN1DATAREFID ospvDataRefId,         OSPTASN1PARSERESULT *ospvParseResults,        OSPTASN1ELEMENTINFO **ospvFoundElement);    void     OSPPASN1EndOfContentDelete(        OSPTASN1ELEMENTINFO *ospvElementInfo);    void     OSPPASN1NullDelete(        OSPTASN1ELEMENTINFO *ospvElementInfo);    void     OSPPASN1ObjectIdentifierDelete(        OSPTASN1ELEMENTINFO *ospvElementInfo);    void     OSPPASN1PrintableStringDelete(        OSPTASN1ELEMENTINFO *ospvElementInfo);    void     OSPPASN1UTCTimeDelete(        OSPTASN1ELEMENTINFO *ospvElementInfo);    int     OSPPASN1IntegerDecode(        void *ospvContentValue,        unsigned char *ospvContent,        unsigned int  ospvContentLength);    int     OSPPASN1ObjectIdentifierDecode(        void *ospvContentValue,        unsigned char *ospvContent,        unsigned int  ospvContentLength);    int     OSPPASN1PrintableStringDecode(        void *ospvContentValue,        unsigned char *ospvContent,        unsigned int  ospvContentLength);    int     OSPPASN1UTCTimeDecode(        void *ospvContentValue,        unsigned char *ospvContent,        unsigned int  ospvContentLength);    int     OSPPASN1BitStringDecode(        void *ospvContentValue,        unsigned char *ospvContent,        unsigned int  ospvContentLength);    int     OSPPASN1OctetStringDecode(        void *ospvContentValue,        unsigned char *ospvContent,        unsigned int  ospvContentLength);    int     OSPPASN1NullEncode(    OSPTASN1OBJECT  **ospvNullObject);    int     OSPPASN1BigIntegerEncode(        OSPTASN1OBJECT **ospvIntegerObject,        unsigned char   *ospvIntegerData,        unsigned int    ospvIntegerLength);    int     OSPPASN1ObjectIdentifierEncode(    OSPTASN1OBJECT  **ospvOIDObject,    OSPEASN1ID      ospvObjectId,    OSPEASN1DATAREFID ospvDataRefId);    int     OSPPASN1OctetStringEncode(    OSPTASN1OBJECT **ospvOctetStringObject,    unsigned char *ospvContent,    unsigned ospvContentLength,    OSPEASN1DATAREFID ospvDataRefId);    int    OSPPASN1BufferCreate(        unsigned char *ospvContent,        unsigned ospvContentLength,        OSPTASN1BUFFER **ospvBuffer);    void     OSPPASN1BufferDelete(        OSPTASN1BUFFER **ospvBuffer);    int    OSPPASN1PrimitiveEncode(        OSPTASN1ELEMENTINFO *ospvElementInfo);#ifdef __cplusplus}#endiftypedef struct _OSPTDERBUF {    unsigned char *data;  /* Pointer to storage for the certificate   */    unsigned char *ptr;   /* Pointer to beginning of buffer remainder */} OSPTDERBUF;/*****************************************************************    ASN1 SIMPLE TYPES*****************************************************************/#define OSPC_ASN1_OID_MAX_ELEMENTS            20typedef struct _OSPTOBJID {    int element[OSPC_ASN1_OID_MAX_ELEMENTS];} OSPTOBJECTID;typedef struct {    struct tm time;    int       fracsec;} OSPTUTCTIME;#define OSPC_OID_VALUE_TERMINATOR    (-1)  /* Not a legal OID value */#define OSPC_OID_VALUE_DIGIT_MASK    0x7F  /* Base 128 */#define OSPC_OID_VALUE_END_MASK        0x80  /* MSB = 0 in last octet of value *//*****************************************************************    OBJECT ID DEFINITIONS/XREF/TAGS*****************************************************************/#define OSPC_OID_CODE_NOT_FOUND  0#define OSPC_OID_CODE_ALGORITHM    1, 3, 14, 3, 2#define OSPC_OID_CODE_RSADSI        1, 2, 840, 113549#define     OSPC_OID_CODE_PKCS        OID_CODE_RSADSI, 1            #define         OSPC_OID_CODE_PKCS9        OID_CODE_PKCS, 9#define         OSPC_OID_CODE_ALG_RSAENCRYPTION \                                    OSPC_OID_CODE_PKCS, 1, 1#define            OSPC_OID_CODE_ALG_MD2WITHRSAENCRYPTION \                                    OSPC_OID_CODE_PKCS, 1, 2#define            OSPC_OID_CODE_ALG_MD5WITHRSAENCRYPTION \                                    OSPC_OID_CODE_PKCS, 1, 4#define     OSPC_OID_CODE_MD2        OID_CODE_RSADSI, 2, 2#define     OSPC_OID_CODE_MD5        OID_CODE_RSADSI, 2, 5#define     OSPC_OID_CODE_RC4        OID_CODE_RSADSI, 3, 4#define OSPC_OID_CODE_X500        2, 5    #define     OSPC_OID_CODE_X509        OID_CODE_X500, 4#define         OSPC_OID_CODE_DN_COUNTRY        OID_CODE_X509,  6#define         OSPC_OID_CODE_DN_STATE        OID_CODE_X509,  8#define         OSPC_OID_CODE_DN_LOCALITY    OID_CODE_X509,  7#define         OSPC_OID_CODE_DN_ORGANIZATION \                                        OSPC_OID_CODE_X509, 10#define         OSPC_OID_CODE_DN_ORG_UNIT    OID_CODE_X509, 11#define         OSPC_OID_CODE_DN_COMMON_NAME OID_CODE_X509,  3#define     OSPC_OID_CODE_RSA        OID_CODE_X500, 8, 1, 1#define     OSPC_OID_CODE_LD_CE        OID_CODE_X500, 29#define            OSPC_OID_CODE_EXT_KEY_USAGE    OID_CODE_LD_CE, 15#define            OSPC_OID_CODE_EXT_SUBJECT_KEY_ID \                                        OSPC_OID_CODE_LD_CE, 14/* ***************************************************************   ENTRIES IN THE ARRAY THAT FOLLOWS MUST BE IN THE SAME ORDER AS    THE ENUM */typedef enum {     OSPC_OID_TAG_DN_COUNTRY,     OSPC_OID_TAG_DN_STATE,    OSPC_OID_TAG_DN_LOCALITY,    OSPC_OID_TAG_DN_ORGANIZATION,    OSPC_OID_TAG_DN_ORG_UNIT,    OSPC_OID_TAG_DN_COMMON_NAME,    OSPC_OID_TAG_ALG_RSAENCRYPTION,    OSPC_OID_TAG_ALG_MD5WITHRSAENCRYPTION,    OSPC_OID_TAG_EXT_KEY_USAGE,    OSPC_OID_TAG_EXT_SUBJECT_KEY_ID,    OSPC_OID_TAG_NOT_FOUND } OSPEOIDTAG;typedef struct {    OSPEOIDTAG     tag;    OSPTOBJECTID   oid;    char          *sname;    char          *lname;} OSPTOIDXREF;#define OSPC_OID_XX    OSPC_OID_VALUE_TERMINATOR/* ************************************************************** */typedef struct {    int            type;     unsigned char *value;    unsigned       length;} OSPTPARAMETER;#define OSPC_ATV_MAX_PARAMS 10typedef struct {    OSPTOBJECTID   oid;    OSPTPARAMETER *params[OSPC_ATV_MAX_PARAMS]; /* Dynamically allocated */} OSPTATTRTYPEVAL; /* typedef OSPTALGORITHMID OSPTDIGESTALGORITHMID; *//**************************************************    DER/BER (Encoding/Decoding Rules) Definitions***************************************************/#define OSPC_BER_MAX_TAG_LENGTH             10#define OSPC_BER_MODE_MASK                 0x20#define OSPC_BER_MODE_PRIMITIVE            0x00#define OSPC_BER_MODE_CONSTRUCTED          0x20#define OSPM_CONSTRUCTED_TAG(a)     \                        ((a) | OSPC_BER_MODE_CONSTRUCTED)#define OSPM_IS_PRIMITIVE(a)    \                        (((a)&OSPC_BER_MODE_MASK) == OSPC_BER_MODE_PRIMITIVE)#define OSPM_IS_CONSTRUCTED(a)  \                        (((a)&OSPC_BER_MODE_MASK) == OSPC_BER_MODE_CONSTRUCTED)#define OSPC_BER_CLASS_MASK                0xc0#define OSPC_BER_CLASS_UNIVERSAL           0x00#define OSPC_BER_CLASS_APPLICATION         0x40#define OSPC_BER_CLASS_CONTEXT_SENS        0x80#define OSPC_BER_CLASS_PRIVATE             0xc0#define OSPC_BER_EXPLICIT_MASK \       (OSPC_BER_MODE_CONSTRUCTED | OSPC_BER_CLASS_CONTEXT_SENS)/* 0xa0 */#define OSPC_BER_IMPLICIT_MASK \                    (OSPC_BER_MODE_CONSTRUCTED | OSPC_BER_CLASS_CONTEXT_SENS)/* 0xa0 */#define OSPC_BER_LENGTH_MODE_MASK          0x80#define OSPC_BER_LENGTH_MODE_SHORT         0x00#define OSPC_BER_LENGTH_MODE_LONG          0x80#define OSPC_BER_LENGTH_MASK               0x7f#define OSPM_IS_SHORT_LENGTH(a) \                (((a)&OSPC_BER_LENGTH_MODE_MASK)==OSPC_BER_LENGTH_MODE_SHORT)#define OSPM_IS_LONG_LENGTH(a)  \                (((a)&OSPC_BER_LENGTH_MODE_MASK)==OSPC_BER_LENGTH_MODE_LONG)#define OSPM_BER_LENGTH(a)                              (((a)&OSPC_BER_LENGTH_MASK))#define OSPC_BER_TAG_MASK                  0x1f#define OSPC_BER_TAG_HIGH                  0x1f#define OSPM_BASE_TAG(a)            ((a) & (OSPC_BER_TAG_MASK))         #define OSPM_IS_HIGH_TAG(a)     \                            (((a) & (OSPC_BER_TAG_HIGH)) == OSPC_BER_TAG_HIGH)#define OSPC_TAG_TYPE_EOC                  0x00#define OSPC_TAG_TYPE_BOOLEAN               0x01#define OSPC_TAG_TYPE_INTEGER              0x02#define OSPC_TAG_TYPE_BIT_STRING           0x03#define OSPC_TAG_TYPE_OCTET_STRING         0x04#define OSPC_TAG_TYPE_NULL                 0x05#define OSPC_TAG_TYPE_OBJECT_IDENTIFIER    0x06#define OSPC_TAG_TYPE_SEQUENCE             0x10 #define OSPC_TAG_TYPE_SET                  0x11#define OSPC_TAG_TYPE_PRINTABLESTRING      0x13#define OSPC_TAG_TYPE_T61STRING            0x14#define OSPC_TAG_TYPE_IA5STRING            0x16#define OSPC_TAG_TYPE_UTCTIME              0x17#define OSPC_TAG_TYPE_GENERALIZEDTIME      0x18#define OSPC_TAG_TYPE_BMPSTRING            0x1e#define OSPC_TAG_TYPE_IMPLICIT              0xa0#define OSPM_TAG_TYPE_IMPLICIT_TAG(a)       ((OSPC_TAG_TYPE_IMPLICIT) | (a))#define OSPM_IS_IMPLICIT(a)  \                    (((a) & OSPC_BER_IMPLICIT_MASK) == OSPC_BER_IMPLICIT_MASK)#define OSPC_TAG_TYPE_EXPLICIT              0xa0#define OSPM_TAG_TYPE_EXPLICIT_TAG(a)       ((OSPC_TAG_TYPE_EXPLICIT) | (a))#define OSPM_IS_EXPLICIT(a)  \                    (((a) & OSPC_BER_EXPLICIT_MASK) == OSPC_BER_EXPLICIT_MASK)/* SPECIAL NOT-REALLY-A-TAG TAGS */#define OSPC_TAG_TYPE_DER_FORMAT            0xFE#define OSPC_TAG_TYPE_DERIVED               0xFF#define OSPM_EXPLICIT_CLASSNUMBER(a)    ((a) & OSPC_BER_TAG_MASK)#define OSPC_BER_MAX_EXTENSIONS 10typedef union char2int_union {    OSPTUINT64 num;    unsigned char buf[sizeof(OSPTUINT64)];} OSPTCHAR2INT;typedef struct {    unsigned char tag[OSPC_BER_MAX_TAG_LENGTH];    /* Complete tag */    unsigned int type;                        /* Element's type */    unsigned int taglength;                /* Length of tag and length fields */    unsigned int length;                /* Element's length */     unsigned char *value;            /* Pointer to element's data */} OSPTBERELEMENT;typedef struct {    int length;    unsigned char *buffer;} OSPTDERELEMENT;#define OSPC_BER_MAX_EXTENSIONS 10typedef struct {    int id;    char *text;} OSPTTEXTLISTELEMENT;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -