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

📄 h235-security-messagesdec.c

📁 一个非常美妙的proxy。功能强大。基于sip的协议。如果还要的话
💻 C
📖 第 1 页 / 共 4 页
字号:
   if (stat != ASN_OK) return stat;   invokeEndElement (pctxt, "halfkey", -1);   /* decode modSize */   invokeStartElement (pctxt, "modSize", -1);   stat = asn1PD_H235DHset_modSize (pctxt, &pvalue->modSize);   if (stat != ASN_OK) return stat;   invokeEndElement (pctxt, "modSize", -1);   /* decode generator */   invokeStartElement (pctxt, "generator", -1);   stat = asn1PD_H235DHset_generator (pctxt, &pvalue->generator);   if (stat != ASN_OK) return stat;   invokeEndElement (pctxt, "generator", -1);   if (extbit) {      /* decode extension optional bits length */      stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);      if (stat != ASN_OK) return stat;      bitcnt += 1;      ZEROCONTEXT (&lctxt);      stat = setPERBufferUsingCtxt (&lctxt, pctxt);      if (stat != ASN_OK) return stat;      stat = moveBitCursor (pctxt, bitcnt);      if (stat != ASN_OK) return stat;      for (i = 0; i < bitcnt; i++) {         DECODEBIT (&lctxt, &optbit);         if (optbit) {            stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);            if (stat != ASN_OK) return stat;            pctxt->buffer.byteIndex += openType.numocts;         }      }   }   return (stat);}/**************************************************************//*                                                            *//*  TypedCertificate                                          *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue){   int stat = ASN_OK;   OOCTXT lctxt;   ASN1OpenType openType;   ASN1UINT bitcnt;   ASN1UINT i;   ASN1BOOL optbit;   ASN1BOOL extbit;   /* extension bit */   DECODEBIT (pctxt, &extbit);   /* decode type */   invokeStartElement (pctxt, "type", -1);   stat = decodeObjectIdentifier (pctxt, &pvalue->type);   if (stat != ASN_OK) return stat;   invokeOidValue (pctxt, pvalue->type.numids, pvalue->type.subid);   invokeEndElement (pctxt, "type", -1);   /* decode certificate */   invokeStartElement (pctxt, "certificate", -1);   stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)&pvalue->certificate);   if (stat != ASN_OK) return stat;   invokeOctStrValue (pctxt, pvalue->certificate.numocts, pvalue->certificate.data);   invokeEndElement (pctxt, "certificate", -1);   if (extbit) {      /* decode extension optional bits length */      stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);      if (stat != ASN_OK) return stat;      bitcnt += 1;      ZEROCONTEXT (&lctxt);      stat = setPERBufferUsingCtxt (&lctxt, pctxt);      if (stat != ASN_OK) return stat;      stat = moveBitCursor (pctxt, bitcnt);      if (stat != ASN_OK) return stat;      for (i = 0; i < bitcnt; i++) {         DECODEBIT (&lctxt, &optbit);         if (optbit) {            stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);            if (stat != ASN_OK) return stat;            pctxt->buffer.byteIndex += openType.numocts;         }      }   }   return (stat);}/**************************************************************//*                                                            *//*  Identifier                                                *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235Identifier (OOCTXT* pctxt, H235Identifier* pvalue){   static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 };   int stat = ASN_OK;   addSizeConstraint (pctxt, &lsize1);   stat = decodeBMPString (pctxt, pvalue, 0);   if (stat != ASN_OK) return stat;   invokeCharStr16BitValue (pctxt, pvalue->nchars, pvalue->data);   return (stat);}/**************************************************************//*                                                            *//*  ECpoint_x                                                 *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue){   static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };   int stat = ASN_OK;   addSizeConstraint (pctxt, &lsize1);   stat = decodeBitString (pctxt,                        &pvalue->numbits,                        pvalue->data,                        sizeof(pvalue->data));   if (stat != ASN_OK) return stat;   invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);   return (stat);}/**************************************************************//*                                                            *//*  ECpoint_y                                                 *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue){   static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };   int stat = ASN_OK;   addSizeConstraint (pctxt, &lsize1);   stat = decodeBitString (pctxt,                        &pvalue->numbits,                        pvalue->data,                        sizeof(pvalue->data));   if (stat != ASN_OK) return stat;   invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);   return (stat);}/**************************************************************//*                                                            *//*  ECpoint                                                   *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue){   int stat = ASN_OK;   OOCTXT lctxt;   ASN1OpenType openType;   ASN1UINT bitcnt;   ASN1UINT i;   ASN1BOOL optbit;   ASN1BOOL extbit;   /* extension bit */   DECODEBIT (pctxt, &extbit);   /* optional bits */   memset (&pvalue->m, 0, sizeof(pvalue->m));   DECODEBIT (pctxt, &optbit);   pvalue->m.xPresent = optbit;   DECODEBIT (pctxt, &optbit);   pvalue->m.yPresent = optbit;   /* decode x */   if (pvalue->m.xPresent) {      invokeStartElement (pctxt, "x", -1);      stat = asn1PD_H235ECpoint_x (pctxt, &pvalue->x);      if (stat != ASN_OK) return stat;      invokeEndElement (pctxt, "x", -1);   }   /* decode y */   if (pvalue->m.yPresent) {      invokeStartElement (pctxt, "y", -1);      stat = asn1PD_H235ECpoint_y (pctxt, &pvalue->y);      if (stat != ASN_OK) return stat;      invokeEndElement (pctxt, "y", -1);   }   if (extbit) {      /* decode extension optional bits length */      stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);      if (stat != ASN_OK) return stat;      bitcnt += 1;      ZEROCONTEXT (&lctxt);      stat = setPERBufferUsingCtxt (&lctxt, pctxt);      if (stat != ASN_OK) return stat;      stat = moveBitCursor (pctxt, bitcnt);      if (stat != ASN_OK) return stat;      for (i = 0; i < bitcnt; i++) {         DECODEBIT (&lctxt, &optbit);         if (optbit) {            stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);            if (stat != ASN_OK) return stat;            pctxt->buffer.byteIndex += openType.numocts;         }      }   }   return (stat);}/**************************************************************//*                                                            *//*  ECKASDH_eckasdhp_modulus                                  *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue){   static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };   int stat = ASN_OK;   addSizeConstraint (pctxt, &lsize1);   stat = decodeBitString (pctxt,                        &pvalue->numbits,                        pvalue->data,                        sizeof(pvalue->data));   if (stat != ASN_OK) return stat;   invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);   return (stat);}/**************************************************************//*                                                            *//*  ECKASDH_eckasdhp_weierstrassA                             *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue){   static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };   int stat = ASN_OK;   addSizeConstraint (pctxt, &lsize1);   stat = decodeBitString (pctxt,                        &pvalue->numbits,                        pvalue->data,                        sizeof(pvalue->data));   if (stat != ASN_OK) return stat;   invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);   return (stat);}/**************************************************************//*                                                            *//*  ECKASDH_eckasdhp_weierstrassB                             *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue){   static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };   int stat = ASN_OK;   addSizeConstraint (pctxt, &lsize1);   stat = decodeBitString (pctxt,                        &pvalue->numbits,                        pvalue->data,                        sizeof(pvalue->data));   if (stat != ASN_OK) return stat;   invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);   return (stat);}/**************************************************************//*                                                            *//*  ECKASDH_eckasdhp                                          *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue){   int stat = ASN_OK;   /* decode public_key */   invokeStartElement (pctxt, "public_key", -1);   stat = asn1PD_H235ECpoint (pctxt, &pvalue->public_key);   if (stat != ASN_OK) return stat;   invokeEndElement (pctxt, "public_key", -1);   /* decode modulus */   invokeStartElement (pctxt, "modulus", -1);   stat = asn1PD_H235ECKASDH_eckasdhp_modulus (pctxt, &pvalue->modulus);   if (stat != ASN_OK) return stat;   invokeEndElement (pctxt, "modulus", -1);   /* decode base */   invokeStartElement (pctxt, "base", -1);   stat = asn1PD_H235ECpoint (pctxt, &pvalue->base);   if (stat != ASN_OK) return stat;   invokeEndElement (pctxt, "base", -1);   /* decode weierstrassA */   invokeStartElement (pctxt, "weierstrassA", -1);   stat = asn1PD_H235ECKASDH_eckasdhp_weierstrassA (pctxt, &pvalue->weierstrassA);   if (stat != ASN_OK) return stat;   invokeEndElement (pctxt, "weierstrassA", -1);   /* decode weierstrassB */   invokeStartElement (pctxt, "weierstrassB", -1);   stat = asn1PD_H235ECKASDH_eckasdhp_weierstrassB (pctxt, &pvalue->weierstrassB);   if (stat != ASN_OK) return stat;   invokeEndElement (pctxt, "weierstrassB", -1);   return (stat);}/**************************************************************//*                                                            *//*  ECKASDH_eckasdh2_fieldSize                                *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue){   static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };   int stat = ASN_OK;   addSizeConstraint (pctxt, &lsize1);   stat = decodeBitString (pctxt,                        &pvalue->numbits,                        pvalue->data,                        sizeof(pvalue->data));   if (stat != ASN_OK) return stat;   invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);   return (stat);}/**************************************************************//*                                                            *//*  ECKASDH_eckasdh2_weierstrassA                             *//*                                                            *//**************************************************************/EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue){   static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };   int stat = ASN_OK;   addSizeConstraint (pctxt, &lsize1);

⌨️ 快捷键说明

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