📄 ospasn1parse.c
字号:
static unsigned char ospgDataRefId_AlgId_OID[] = { OSPC_ASN1_DATAREFID_ALGORITHMID, OSPC_ASN1_DATAREFID_ALGID_OID, 0xff };static unsigned char ospgDataRefId_AlgId_AttrTypeAndVal[] = { OSPC_ASN1_DATAREFID_ALGORITHMID, OSPC_ASN1_DATAREFID_ALGID_ATTRTYPEANDVAL, 0xff };static unsigned char ospgDataRefId_AlgId_Terminator[] = { OSPC_ASN1_DATAREFID_ALGORITHMID, OSPC_ASN1_DATAREFID_ALGID_TERMINATOR, 0xff };static unsigned char ospgDataRefId_PrivateKeyInfo[] = { OSPC_ASN1_DATAREFID_PRIVATEKEYINFO, 0xff };static unsigned char ospgDataRefId_PvtKeyInf_Version[] = { OSPC_ASN1_DATAREFID_PRIVATEKEYINFO, OSPC_ASN1_DATAREFID_PVTKEYINF_VERSION, 0xff };static unsigned char ospgDataRefId_PvtKeyInf_Algorithm[] = { OSPC_ASN1_DATAREFID_PRIVATEKEYINFO, OSPC_ASN1_DATAREFID_PVTKEYINF_ALGORITHM, 0xff };static unsigned char ospgDataRefId_PvtKeyInf_PrivateKey[] = { OSPC_ASN1_DATAREFID_PRIVATEKEYINFO, OSPC_ASN1_DATAREFID_PVTKEYINF_PRIVATEKEY, 0xff };static unsigned char ospgDataRefId_PvtKeyInf_Attributes[] = { OSPC_ASN1_DATAREFID_PRIVATEKEYINFO, OSPC_ASN1_DATAREFID_PVTKEYINF_ATTRIBUTES, 0xff };static unsigned char ospgDataRefId_PvtKeyInf_Attribute[] = { OSPC_ASN1_DATAREFID_PRIVATEKEYINFO, OSPC_ASN1_DATAREFID_PVTKEYINF_ATTRIBUTES, OSPC_ASN1_DATAREFID_PVTKEYINF_ATTRIBUTE, 0xff };static unsigned char ospgDataRefId_Signature[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, 0xff };static unsigned char ospgDataRefId_Sig_ContentType[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_CONTENTTYPE, 0xff };static unsigned char ospgDataRefId_Sig_SignedData[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, 0xff };static unsigned char ospgDataRefId_Sig_SgnDat_Version[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, OSPC_ASN1_DATAREFID_SGNDAT_VERSION, 0xff };static unsigned char ospgDataRefId_Sig_SgnDat_DigestAlgorithm[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, OSPC_ASN1_DATAREFID_SGNDAT_DIGESTALGORITHMS, OSPC_ASN1_DATAREFID_SGNDAT_DIGESTALGORITHM, 0xff };static unsigned char ospgDataRefId_Sig_SgnDat_Data[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, OSPC_ASN1_DATAREFID_SGNDAT_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, 0xff };static unsigned char ospgDataRefId_Sig_SgnDat_Certificate[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, OSPC_ASN1_DATAREFID_SGNDAT_CERTIFICATES, OSPC_ASN1_DATAREFID_SGNDAT_CERTIFICATE, 0xff };static unsigned char ospgDataRefId_Sig_SgnDat_Certificate_SubjPubKeyInfo[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, OSPC_ASN1_DATAREFID_SGNDAT_CERTIFICATES, OSPC_ASN1_DATAREFID_SGNDAT_CERTIFICATE, OSPC_ASN1_DATAREFID_CERT_TBSCERTIFICATE, OSPC_ASN1_DATAREFID_CERT_SUBJPUBKEYINFO, 0xff };static unsigned char ospgDataRefId_Sig_SgnDat_CertRevList[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, OSPC_ASN1_DATAREFID_SGNDAT_CERTREVLISTS, OSPC_ASN1_DATAREFID_SGNDAT_CERTREVLIST, 0xff };static unsigned char ospgDataRefId_Sig_SgnDat_SignerInfo[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, OSPC_ASN1_DATAREFID_SGNDAT_SIGNERINFOS, OSPC_ASN1_DATAREFID_SGNDAT_SIGNERINFO, 0xff };static unsigned char ospgDataRefId_Sig_SgnDat_SgnInf_DigestAlgorithm[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, OSPC_ASN1_DATAREFID_SGNDAT_SIGNERINFOS, OSPC_ASN1_DATAREFID_SGNDAT_SIGNERINFO, OSPC_ASN1_DATAREFID_SGNINF_DIGESTALGORITHM, 0xff };static unsigned char ospgDataRefId_Sig_SgnDat_SgnInf_DigEncryptAlg[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, OSPC_ASN1_DATAREFID_SGNDAT_SIGNERINFOS, OSPC_ASN1_DATAREFID_SGNDAT_SIGNERINFO, OSPC_ASN1_DATAREFID_SGNINF_DIGENCRYPTALG, 0xff };static unsigned char ospgDataRefId_Sig_SgnDat_SgnInf_EncryptedDigest[] = { OSPC_ASN1_DATAREFID_CONTENTINFO, OSPC_ASN1_DATAREFID_CNTINF_EXPLICIT_CONTENT, OSPC_ASN1_DATAREFID_CNTINF_CONTENT, OSPC_ASN1_DATAREFID_SGNDAT_SIGNERINFOS, OSPC_ASN1_DATAREFID_SGNDAT_SIGNERINFO, OSPC_ASN1_DATAREFID_SGNINF_ENCRYPTEDDIGEST, 0xff };/* 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. */static unsigned char ospgDataRefId_CertReq[] = { OSPC_ASN1_DATAREFID_CERTREQ, 0xff };/* Define the location of the certificate request info of a PKCS#10 * certificate request; this structure will contain the version, subject, * public key, and optional attributes that are then signed afterwards * by the requester: */static unsigned char ospgDataRefId_CertReqInfo[] = { OSPC_ASN1_DATAREFID_CERTREQ, OSPC_ASN1_DATAREFID_CERTREQINFO, 0xff };/* Define the location of the version for a * PKCS#10 certificate request info: */ static unsigned char ospgDataRefId_CertReqInfo_Version[] = { OSPC_ASN1_DATAREFID_CERTREQ, OSPC_ASN1_DATAREFID_CERTREQINFO, OSPC_ASN1_DATAREFID_CERTREQINFO_VERSION, 0xff };/* Define the location of the subject for a * PKCS#10 certificate request info: */ static unsigned char ospgDataRefId_CertReqInfo_Subject[] = { OSPC_ASN1_DATAREFID_CERTREQ, OSPC_ASN1_DATAREFID_CERTREQINFO, OSPC_ASN1_DATAREFID_CERTREQINFO_SUBJECT, 0xff };/* Define the location of the subjectPublicKeyInfo for a * PKCS#10 certificate request info: */ static unsigned char ospgDataRefId_CertReqInfo_SubjPubKeyInfo[] = { OSPC_ASN1_DATAREFID_CERTREQ, OSPC_ASN1_DATAREFID_CERTREQINFO, OSPC_ASN1_DATAREFID_CERTREQINFO_SUBJPUBKEYINFO, 0xff };/* Define the location of the optional attributes for a * PKCS#10 certificate request info: */ static unsigned char ospgDataRefId_CertReqInfo_Attributes[] = { OSPC_ASN1_DATAREFID_CERTREQ, OSPC_ASN1_DATAREFID_CERTREQINFO, OSPC_ASN1_DATAREFID_CERTREQINFO_ATTRIBUTES, 0xff };/* Define the location of the signature algorithm id for * a PKCS#10 certificate request: */static unsigned char ospgDataRefId_CertReq_Signature_Algorithm[] = { OSPC_ASN1_DATAREFID_CERTREQ, OSPC_ASN1_DATAREFID_CERTREQ_SIGNATURE_ALGORITHM, 0xff };/* Define the location of the signature for PKCS#10 a certificate request: */static unsigned char ospgDataRefId_CertReq_Signature[] = { OSPC_ASN1_DATAREFID_CERTREQ, OSPC_ASN1_DATAREFID_CERTREQ_SIGNATURE, 0xff };static unsigned char *ospgDataRefIdIndex[] ={ /* TO NOT CHANGE THIS TABLE WITHOUT UPDATING THE ENUM VALUES IN OSPEASN1DATAREFID */ ospgDataRefId_Certificate, ospgDataRefId_Cert_TBSCertificate, ospgDataRefId_Cert_SignatureAlgorithm, ospgDataRefId_Cert_Signature, ospgDataRefId_Cert_Explicit_Version, ospgDataRefId_Cert_Version, ospgDataRefId_Cert_SerialNumber, ospgDataRefId_Cert_Signature_TBS, ospgDataRefId_Cert_Issuer, ospgDataRefId_Cert_NotBefore, ospgDataRefId_Cert_NotAfter, ospgDataRefId_Cert_Subject, ospgDataRefId_Cert_SubjPubKeyInfo, ospgDataRefId_Cert_PublicKeyAlg, ospgDataRefId_Cert_PublicKey, ospgDataRefId_Cert_IssuerUniqueId, ospgDataRefId_Cert_SubjectUniqueId, ospgDataRefId_Cert_Explicit_Extensions, ospgDataRefId_Cert_Extensions, ospgDataRefId_Cert_Extension, ospgDataRefId_SignedData, ospgDataRefId_SgnDat_Version, ospgDataRefId_SgnDat_DigestAlgorithms, ospgDataRefId_SgnDat_DigestAlgorithm, ospgDataRefId_SgnDat_Content, ospgDataRefId_SgnDat_Certificates, ospgDataRefId_SgnDat_Certificate, ospgDataRefId_SgnDat_Certificate_SubjPubKeyInfo, ospgDataRefId_SgnDat_CertRevLists, ospgDataRefId_SgnDat_CertRevList, ospgDataRefId_SgnDat_SignerInfos, ospgDataRefId_SgnDat_SignerInfo, ospgDataRefId_SignerInfo, ospgDataRefId_SgnInf_Version, ospgDataRefId_SgnInf_Issuer , ospgDataRefId_SgnInf_SerialNumber, ospgDataRefId_SgnInf_DigestAlgorithm , ospgDataRefId_SgnInf_AuthAttributes, ospgDataRefId_SgnInf_DigEncryptAlg , ospgDataRefId_SgnInf_EncryptedDigest , ospgDataRefId_SgnInf_UnauthAttributes , ospgDataRefId_ContentInfo, ospgDataRefId_CntInf_ContentType, ospgDataRefId_CntInf_Explicit_Content, ospgDataRefId_CntInf_Content, ospgDataRefId_DigestInfo, ospgDataRefId_DigInf_DigestAlgorithm, ospgDataRefId_DigInf_Digest, ospgDataRefId_AlgorithmId, ospgDataRefId_AlgId_OID, ospgDataRefId_AlgId_AttrTypeAndVal, ospgDataRefId_AlgId_Terminator, ospgDataRefId_PrivateKeyInfo, ospgDataRefId_PvtKeyInf_Version, ospgDataRefId_PvtKeyInf_Algorithm, ospgDataRefId_PvtKeyInf_PrivateKey, ospgDataRefId_PvtKeyInf_Attributes, ospgDataRefId_PvtKeyInf_Attribute, ospgDataRefId_Signature, ospgDataRefId_Sig_ContentType, ospgDataRefId_Sig_SignedData, ospgDataRefId_Sig_SgnDat_Version, ospgDataRefId_Sig_SgnDat_DigestAlgorithm, ospgDataRefId_Sig_SgnDat_Data, ospgDataRefId_Sig_SgnDat_Certificate, ospgDataRefId_Sig_SgnDat_Certificate_SubjPubKeyInfo, ospgDataRefId_Sig_SgnDat_CertRevList, ospgDataRefId_Sig_SgnDat_SignerInfo, ospgDataRefId_Sig_SgnDat_SgnInf_DigestAlgorithm, ospgDataRefId_Sig_SgnDat_SgnInf_DigEncryptAlg, ospgDataRefId_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. */ ospgDataRefId_CertReq, ospgDataRefId_CertReqInfo, ospgDataRefId_CertReqInfo_Version, ospgDataRefId_CertReqInfo_Subject, ospgDataRefId_CertReqInfo_SubjPubKeyInfo, ospgDataRefId_CertReqInfo_Attributes, ospgDataRefId_CertReq_Signature_Algorithm, ospgDataRefId_CertReq_Signature, ospgDataRefId_NotDefined, OSPC_OSNULL};/* IMPLEMENTATION */intPTPAddParseResults( OSPTASN1PARSERULE *ospvParseRule, OSPTASN1ELEMENTINFO *ospvElementInfo, OSPTASN1PARSERESULT **ospvParseResult, unsigned char ospvDataRef){ int errorcode = OSPC_ERR_NO_ERROR; OSPTASN1PARSERESULT *parseResult = OSPC_OSNULL; OSPTASN1ELEMENTINFO *eInfo = OSPC_OSNULL; eInfo = ospvElementInfo; OSPM_ARGUSED(ospvParseRule); /* Malloc space for a result */ OSPM_MALLOC(parseResult, OSPTASN1PARSERESULT, sizeof(OSPTASN1PARSERESULT)); if (parseResult == OSPC_OSNULL) { errorcode = OSPC_ERR_ASN1_UNABLE_TO_ALLOCATE_SPACE; OSPM_DBGERRORLOG( errorcode, "Unable to allocate space for parse result"); } if (errorcode == OSPC_ERR_NO_ERROR) { OSPM_MEMSET(parseResult, 0, sizeof(OSPTASN1PARSERESULT));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -