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

📄 ospasn1.h

📁 mgcp协议源代码。支持多种编码:g711
💻 H
📖 第 1 页 / 共 3 页
字号:
/**########################################################################*########################################################################*########################################################################*                                                               *   COPYRIGHT (c) 1998, 1999 by TransNexus, LLC                          *                                                                    *   This software contains proprietary and confidential information  *   of TransNexus, LLC. Except as may be set forth in the license    *   agreement under which this software is supplied, use, disclosure, *   or reproduction is prohibited without the prior, express, written*   consent of TransNexus, LLC.                                      *                                     *******#########################################################################*#########################################################################*#########################################################################*//* * ospasn1.h - Constants and typedefs for ASN.1  */#ifndef _OSP_ASN1_H#define _OSP_ASN1_H#include "osp.h"#include "ospasn1ids.h"#define OSPC_ASN1_SIGNERINFO_VERSION 1/* ASN1 ENCODED DATA KNOWN TO THE PARSER THAT GETS ACCESSED */#define OSPC_ASN1_DATAREFID_CERTIFICATE             0x01#define OSPC_ASN1_DATAREFID_CERT_TBSCERTIFICATE         0x01#define     OSPC_ASN1_DATAREFID_CERT_EXPLICIT_VERSION       0x01#define         OSPC_ASN1_DATAREFID_CERT_VERSION                0x01#define     OSPC_ASN1_DATAREFID_CERT_SERIALNUMBER           0x02#define     OSPC_ASN1_DATAREFID_CERT_SIGNATURE_TBS          0x03#define     OSPC_ASN1_DATAREFID_CERT_ISSUER                 0x04#define     OSPC_ASN1_DATAREFID_CERT_VALIDITY               0x05#define     OSPC_ASN1_DATAREFID_CERT_NOTBEFORE                  0x01#define     OSPC_ASN1_DATAREFID_CERT_NOTAFTER                   0x02#define     OSPC_ASN1_DATAREFID_CERT_SUBJECT                0x06#define     OSPC_ASN1_DATAREFID_CERT_SUBJPUBKEYINFO         0x07#define         OSPC_ASN1_DATAREFID_CERT_PUBLICKEYALG           0x01#define         OSPC_ASN1_DATAREFID_CERT_PUBLICKEY              0x02#define         OSPC_ASN1_DATAREFID_CERT_ISSUERUNIQUEID     0x08#define         OSPC_ASN1_DATAREFID_CERT_SUBJECTUNIQUEID    0x09#define     OSPC_ASN1_DATAREFID_CERT_EXPLICIT_EXTENSIONS    0x0a#define     OSPC_ASN1_DATAREFID_CERT_EXTENSIONS                 0x01#define     OSPC_ASN1_DATAREFID_CERT_EXTENSION                      0x01#define OSPC_ASN1_DATAREFID_CERT_SIGNATUREALGORITHM     0x02#define OSPC_ASN1_DATAREFID_CERT_SIGNATURE              0x03/* ASN1 ENCODED CONTENT INFO ELEMENT */#define OSPC_ASN1_DATAREFID_CONTENTINFO             0x02#define OSPC_ASN1_DATAREFID_CNTINF_CONTENTTYPE          0x01#define OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT     0x02#define OSPC_ASN1_DATAREFID_CNTINF_CONTENT                  0x01/* ASN1 ENCODED SIGNED DATA ELEMENTS */#define OSPC_ASN1_DATAREFID_SIGNEDDATA              0x03#define OSPC_ASN1_DATAREFID_SGNDAT_VERSION              0x01#define OSPC_ASN1_DATAREFID_SGNDAT_DIGESTALGORITHMS     0x02#define     OSPC_ASN1_DATAREFID_SGNDAT_DIGESTALGORITHM      0x01#define OSPC_ASN1_DATAREFID_SGNDAT_CONTENTINFO          0x03#define OSPC_ASN1_DATAREFID_SGNDAT_CERTIFICATES         0x04#define         OSPC_ASN1_DATAREFID_SGNDAT_CERTIFICATE      0x01#define     OSPC_ASN1_DATAREFID_SGNDAT_CERTREVLISTS     0x05#define         OSPC_ASN1_DATAREFID_SGNDAT_CERTREVLIST      0x01#define OSPC_ASN1_DATAREFID_SGNDAT_SIGNERINFOS          0x06#define     OSPC_ASN1_DATAREFID_SGNDAT_SIGNERINFO           0x01/* ASN1 ENCODED SIGNER INFO ELEMENTS */ #define OSPC_ASN1_DATAREFID_SIGNERINFO              0x04#define     OSPC_ASN1_DATAREFID_SGNINF_VERSION          0x01#define     OSPC_ASN1_DATAREFID_SGNINF_ISSUERANDSERNUM  0x02    #define         OSPC_ASN1_DATAREFID_SGNINF_ISSUER           0x01#define         OSPC_ASN1_DATAREFID_SGNINF_SERIALNUMBER     0x02#define     OSPC_ASN1_DATAREFID_SGNINF_DIGESTALGORITHM  0x03#define     OSPC_ASN1_DATAREFID_SGNINF_AUTHATTRIBUTES   0x04#define         OSPC_ASN1_DATAREFID_SGNINF_AUTHATTRIBUTE    0x01#define     OSPC_ASN1_DATAREFID_SGNINF_DIGENCRYPTALG    0x05#define     OSPC_ASN1_DATAREFID_SGNINF_ENCRYPTEDDIGEST  0x06#define     OSPC_ASN1_DATAREFID_SGNINF_UNAUTHATTRIBUTES 0x07#define         OSPC_ASN1_DATAREFID_SGNINF_UNAUTHATTRIBUTE  0x01/* ASN1 ENCODED SIGNER INFO ELEMENTS */ #define OSPC_ASN1_DATAREFID_DIGESTINFO              0x05#define     OSPC_ASN1_DATAREFID_DIGINF_DIGESTALGORITHM  0x01#define     OSPC_ASN1_DATAREFID_DIGINF_DIGEST           0x02    /* ASN1 ENCODED ALGORITHM ID ELEMENTS */#define OSPC_ASN1_DATAREFID_ALGORITHMID             0x06#define     OSPC_ASN1_DATAREFID_ALGID_OID               0x01#define     OSPC_ASN1_DATAREFID_ALGID_ATTRTYPEANDVAL    0x02#define     OSPC_ASN1_DATAREFID_ALGID_TERMINATOR        0x03/* ASN1 ENCODED PRIVATE KEY INFO ELEMENTS */#define OSPC_ASN1_DATAREFID_PRIVATEKEYINFO              0x07#define     OSPC_ASN1_DATAREFID_PVTKEYINF_VERSION           0x01#define     OSPC_ASN1_DATAREFID_PVTKEYINF_ALGORITHM         0x02#define     OSPC_ASN1_DATAREFID_PVTKEYINF_PRIVATEKEY        0x03#define     OSPC_ASN1_DATAREFID_PVTKEYINF_ATTRIBUTES        0x04#define         OSPC_ASN1_DATAREFID_PVTKEYINF_ATTRIBUTE         0x01/* These are defined for parsing a PKCS#10 certificate request.  * A certificate request contains a CertificateRequestInfo structure * ( with the version, subject, public key, and optional attributes ) and * a signature. */#define OSPC_ASN1_DATAREFID_CERTREQ                                0x01#define     OSPC_ASN1_DATAREFID_CERTREQINFO                        0x01#define         OSPC_ASN1_DATAREFID_CERTREQINFO_VERSION            0x01#define         OSPC_ASN1_DATAREFID_CERTREQINFO_SUBJECT            0x02#define         OSPC_ASN1_DATAREFID_CERTREQINFO_SUBJPUBKEYINFO     0x03#define         OSPC_ASN1_DATAREFID_CERTREQINFO_ATTRIBUTES         0x04#define     OSPC_ASN1_DATAREFID_CERTREQ_SIGNATURE_ALGORITHM        0x02#define     OSPC_ASN1_DATAREFID_CERTREQ_SIGNATURE                  0x03/* The definition for a subjectPublicKeyInfo is separate from * that of those for the PKCS#10 certificate request and X.509 certificates. */#define OSPC_ASN1_DATAREFID_SUBJPUBKEYINFO 0x01/* NOTE:    THE OSPEASN1PARSETABLEID enum list must stay in sync with     ospgParseTableIndex[].  The enum values are the index into the     ParseTableIndex for the parse table array.*/  typedef enum _OSPEASN1PARSETABLEID{    /* DO NOT CHANGE THIS TABLE WITHOUT UPDATING THE POSITIONS OF        THE PARSE TABLES IN ospgParseTableIndex */    OSPEPTID_NOTDEFINED=0,    OSPEPTID_CERTIFICATE,    OSPEPTID_TBSCERTIFICATE,    OSPEPTID_SIGNATUREALGORITHM,    OSPEPTID_DERALGORITHMID,    OSPEPTID_EXPLICIT_VERSION,    OSPEPTID_VERSION,    OSPEPTID_CERTSERIALNUM,    OSPEPTID_NAME,    OSPEPTID_RDNSEQUENCE,    OSPEPTID_RELDISNAME,    OSPEPTID_ATTRTYPEANDVAL,    OSPEPTID_ATTRIBUTETYPE,    OSPEPTID_ATTRIBUTEVALUE,    OSPEPTID_VALIDITY,    OSPEPTID_TIME,    OSPEPTID_UTCTIME,    OSPEPTID_SUBJPUBKEYINFO,    OSPEPTID_ISSUERUNIQUEID,    OSPEPTID_SUBJECTUNIQUEID,    OSPEPTID_UNIQUEID,    OSPEPTID_EXPLICIT_EXTENSIONS,    OSPEPTID_EXTENSIONS,    OSPEPTID_EXTENSION,    OSPEPTID_CONTENTINFO_DATA,    OSPEPTID_EXPLICIT_DATA,    OSPEPTID_DATA,    OSPEPTID_CONTENTINFO_SIGNEDDATA,    OSPEPTID_EXPLICIT_SIGNEDDATA,    OSPEPTID_SIGNEDDATA,    OSPEPTID_DIGESTALGORITHMS,    OSPEPTID_CERTIFICATES,    OSPEPTID_CERTREVLISTS,    OSPEPTID_CERTREVLIST,    OSPEPTID_SIGNERINFOS,    OSPEPTID_SIGNERINFO,    OSPEPTID_ENCRYPTEDDIGEST,    OSPEPTID_AUTHATTRIBUTES,    OSPEPTID_UNAUTHATTRIBUTES,    OSPEPTID_ISSUERANDSERNUM,    OSPEPTID_DIGESTINFO,    OSPEPTID_ALGORITHMID,    OSPEPTID_PRIVATEKEYINFO,    OSPEPTID_PRIVATEKEYINFO_ATTRIBUTES,    /* These were added for parsing the certificate requests used for      * enrolling devices; they represent the same entities described      * in PKCS#10:     */    OSPEPTID_CERTREQ,    OSPEPTID_CERTREQINFO,    OSPEPTID_LAST_PTID} OSPEASN1PARSETABLEID;typedef enum _OSPEASN1DATAREFID{    /* CERTIFICATE ELEMENTS THAT GET ASKED FOR */    OSPEDRID_CERTIFICATE,    OSPEDRID_CERT_TBSCERTIFICATE,    OSPEDRID_CERT_SIGNATUREALGORITHM,    OSPEDRID_CERT_SIGNATURE,    OSPEDRID_CERT_EXPLICIT_VERSION,    OSPEDRID_CERT_VERSION,    OSPEDRID_CERT_SERIALNUMBER,    OSPEDRID_CERT_SIGNATURE_TBS,    OSPEDRID_CERT_ISSUER,    OSPEDRID_CERT_NOTBEFORE,    OSPEDRID_CERT_NOTAFTER,    OSPEDRID_CERT_SUBJECT,    OSPEDRID_CERT_SUBJPUBKEYINFO,    OSPEDRID_CERT_PUBLICKEYALG,    OSPEDRID_CERT_PUBLICKEY,    OSPEDRID_CERT_ISSUERUNIQUEID,    OSPEDRID_CERT_SUBJECTUNIQUEID,    OSPEDRID_CERT_EXPLICIT_EXTENSIONS,    OSPEDRID_CERT_EXTENSIONS,    OSPEDRID_CERT_EXTENSION,    /* SIGNED DATA ELEMENTS THAT GET ASKED FOR */    OSPEDRID_SIGNEDDATA,    OSPEDRID_SGNDAT_VERSION,        OSPEDRID_SGNDAT_DIGESTALGORITHMS,    OSPEDRID_SGNDAT_DIGESTALGORITHM,    OSPEDRID_SGNDAT_CONTENTINFO,    OSPEDRID_SGNDAT_CERTIFICATES,    OSPEDRID_SGNDAT_CERTIFICATE,    OSPEDRID_SGNDAT_CERTIFICATE_SUBJPUBKEYINFO,    OSPEDRID_SGNDAT_CERTREVLISTS,    OSPEDRID_SGNDAT_CERTREVLIST,    OSPEDRID_SGNDAT_SIGNERINFOS,    OSPEDRID_SGNDAT_SIGNERINFO,    /* SIGNED INFO DATA ELEMENTS */    OSPEDRID_SIGNERINFO,            OSPEDRID_SGNINF_VERSION,    OSPEDRID_SGNINF_ISSUER ,    OSPEDRID_SGNINF_SERIALNUMBER,    OSPEDRID_SGNINF_DIGESTALGORITHM ,    OSPEDRID_SGNINF_AUTHATTRIBUTES,    OSPEDRID_SGNINF_DIGENCRYPTALG ,    OSPEDRID_SGNINF_ENCRYPTEDDIGEST ,    OSPEDRID_SGNINF_UNAUTHATTRIBUTES ,    /* CONTENT INFO DATA ELEMENTS */    OSPEDRID_CONTENTINFO,    OSPEDRID_CNTINF_CONTENTTYPE,    OSPEDRID_CNTINF_EXPLICIT_CONTENT,    OSPEDRID_CNTINF_CONTENT,    /* DIGEST INFO DATA ELEMENTS */    OSPEDRID_DIGESTINFO,    OSPEDRID_DIGINF_DIGESTALGORITHM,    OSPEDRID_DIGINF_DIGEST,    /* ALGORITHM ID DATA ELEMENTS */    OSPEDRID_ALGORITHMID,    OSPEDRID_ALGID_OID,    OSPEDRID_ALGID_ATTRIBUTES,    OSPEDRID_ALGID_TERMINATOR,    /* PRIVATEKEYINFO DATA ELEMENTS */    OSPEDRID_PRIVATEKEYINFO,    OSPEDRID_PVTKEYINF_VERSION,    OSPEDRID_PVTKEYINF_ALGORITHM,    OSPEDRID_PVTKEYINF_PRIVATEKEY,    OSPEDRID_PVTKEYINF_ATTRIBUTES,    OSPEDRID_PVTKEYINF_ATTRIBUTE,    OSPEDRID_SIGNATURE,    OSPEDRID_SIG_CONTENTTYPE,    OSPEDRID_SIG_SIGNEDDATA,    OSPEDRID_SIG_SGNDAT_VERSION,    OSPEDRID_SIG_SGNDAT_DIGESTALGORITHM,    OSPEDRID_SIG_SGNDAT_DATA,    OSPEDRID_SIG_SGNDAT_CERTIFICATE,    OSPEDRID_SIG_SGNDAT_CERTIFICATE_SUBJPUBKEYINFO,    OSPEDRID_SIG_SGNDAT_CERTREVLIST,    OSPEDRID_SIG_SGNDAT_SIGNERINFO,    OSPEDRID_SIG_SGNDAT_SGNINF_DIGESTALGORITHM,    OSPEDRID_SIG_SGNDAT_SGNINF_DIGENCRYPTALG,    OSPEDRID_SIG_SGNDAT_SGNINF_ENCRYPTEDDIGEST,    /* These are defined for parsing certificate requests; all possible     * elements of a certificate request ( with the exception of the possible     * values of the optional attributes list, which is unknown at compile     * time anyway ) is given here. This listing is based off of PKCS#10.     */    OSPEDRID_CERTREQ,    OSPEDRID_CERTREQINFO,    OSPEDRID_CERTREQINFO_VERSION,    OSPEDRID_CERTREQINFO_SUBJECT,    OSPEDRID_CERTREQINFO_SUBJPUBKEYINFO,    OSPEDRID_CERTREQINFO_ATTRIBUTES,    OSPEDRID_CERTREQ_SIGNATUREALGID,    OSPEDRID_CERTREQ_SIGNATURE,    OSPEDRID_NOTDEFINED,    OSPEDRID_LAST_DRID} OSPEASN1DATAREFID;typedef struct _OSPTASN1ELEMENTINFO {    unsigned char Tag;              /* ASN1 Data Type Tag Number */    unsigned char *Element;         /* Pointer to beginning of encoded                                        data for this element.*/    unsigned int ElementLength;     /* Length of data pointed to by                                         Element above */    unsigned int ElementSpaceAllocated; /* Space for element and possibly for                                        children is allocated by this element                                         and must be deleted when this element                                         is deleted (after child elements are                                         deleted of course) */    unsigned char *Content;         /* Pointer to encoded content data                                        that defines this element */    unsigned int ContentLength;     /* Length of data pointed to by                                         Content above */    struct _OSPTASN1ELEMENTINFO *ContentElementInfo;                                    /* "child" element -                                         points to this element's                                        component elements -                                        constructed elements only.*/    struct _OSPTASN1ELEMENTINFO *NextElementInfo;                                           /* Pointer to next peer element */} OSPTASN1ELEMENTINFO;#define OSPC_ASN1_DATAREF_MAXLENGTH 30 typedef struct _OSPTASN1PARSERESULT{    unsigned char DataReference[OSPC_ASN1_DATAREF_MAXLENGTH];    struct _OSPTASN1PARSERESULT *NextResult;    OSPTASN1ELEMENTINFO *ElementInfo;} OSPTASN1PARSERESULT;typedef struct _OSPASN1OBJECT{    OSPTASN1ELEMENTINFO *ElementInfo;           OSPTASN1PARSERESULT *ParseResults;} OSPTASN1OBJECT;typedef struct _OSPTASN1PARSERULE{    char *Name;    unsigned char   Tag;    /* ASN1 Type Tag that the current element must                             match.  If the Tag is 0xFF, then this rule is                            a content rule and directs the parser to a                             differnt parse table to continue parsing.                            Tag.  */    OSPEASN1PARSETABLEID ParseTableId;                            /* Enum identifier the parse table that                            describes this elements contents.  Only used                            for elements whose Tag is 0xFF indicating that                            the element is constructed.*/    unsigned char   DataReference;                            /* Reference for this rule data in the Result's                             table. */    unsigned int    MinimumCount;                            /* Minimum number of occurances of this item                            that are allowed. If the data element is                            optional, then Minimum occurances will be 0 */

⌨️ 快捷键说明

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