📄 h235-security-messagesdec.c
字号:
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 + -