📄 h235-security-messagesenc.c
字号:
/**************************************************************//* *//* ECpoint_x *//* *//**************************************************************/EXTERN int asn1PE_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue){ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; int stat = ASN_OK; addSizeConstraint (pctxt, &lsize1); stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ECpoint_y *//* *//**************************************************************/EXTERN int asn1PE_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue){ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; int stat = ASN_OK; addSizeConstraint (pctxt, &lsize1); stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ECpoint *//* *//**************************************************************/EXTERN int asn1PE_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue){ int stat = ASN_OK; ASN1BOOL extbit; /* extension bit */ extbit = 0; encodeBit (pctxt, extbit); encodeBit (pctxt, (ASN1BOOL)pvalue->m.xPresent); encodeBit (pctxt, (ASN1BOOL)pvalue->m.yPresent); /* encode x */ if (pvalue->m.xPresent) { stat = asn1PE_H235ECpoint_x (pctxt, &pvalue->x); if (stat != ASN_OK) return stat; } /* encode y */ if (pvalue->m.yPresent) { stat = asn1PE_H235ECpoint_y (pctxt, &pvalue->y); if (stat != ASN_OK) return stat; } return (stat);}/**************************************************************//* *//* ECKASDH_eckasdhp_modulus *//* *//**************************************************************/EXTERN int asn1PE_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue){ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; int stat = ASN_OK; addSizeConstraint (pctxt, &lsize1); stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ECKASDH_eckasdhp_weierstrassA *//* *//**************************************************************/EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue){ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; int stat = ASN_OK; addSizeConstraint (pctxt, &lsize1); stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ECKASDH_eckasdhp_weierstrassB *//* *//**************************************************************/EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue){ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; int stat = ASN_OK; addSizeConstraint (pctxt, &lsize1); stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ECKASDH_eckasdhp *//* *//**************************************************************/EXTERN int asn1PE_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue){ int stat = ASN_OK; /* encode public_key */ stat = asn1PE_H235ECpoint (pctxt, &pvalue->public_key); if (stat != ASN_OK) return stat; /* encode modulus */ stat = asn1PE_H235ECKASDH_eckasdhp_modulus (pctxt, &pvalue->modulus); if (stat != ASN_OK) return stat; /* encode base */ stat = asn1PE_H235ECpoint (pctxt, &pvalue->base); if (stat != ASN_OK) return stat; /* encode weierstrassA */ stat = asn1PE_H235ECKASDH_eckasdhp_weierstrassA (pctxt, &pvalue->weierstrassA); if (stat != ASN_OK) return stat; /* encode weierstrassB */ stat = asn1PE_H235ECKASDH_eckasdhp_weierstrassB (pctxt, &pvalue->weierstrassB); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ECKASDH_eckasdh2_fieldSize *//* *//**************************************************************/EXTERN int asn1PE_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue){ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; int stat = ASN_OK; addSizeConstraint (pctxt, &lsize1); stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ECKASDH_eckasdh2_weierstrassA *//* *//**************************************************************/EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue){ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; int stat = ASN_OK; addSizeConstraint (pctxt, &lsize1); stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ECKASDH_eckasdh2_weierstrassB *//* *//**************************************************************/EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue){ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 }; int stat = ASN_OK; addSizeConstraint (pctxt, &lsize1); stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ECKASDH_eckasdh2 *//* *//**************************************************************/EXTERN int asn1PE_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue){ int stat = ASN_OK; /* encode public_key */ stat = asn1PE_H235ECpoint (pctxt, &pvalue->public_key); if (stat != ASN_OK) return stat; /* encode fieldSize */ stat = asn1PE_H235ECKASDH_eckasdh2_fieldSize (pctxt, &pvalue->fieldSize); if (stat != ASN_OK) return stat; /* encode base */ stat = asn1PE_H235ECpoint (pctxt, &pvalue->base); if (stat != ASN_OK) return stat; /* encode weierstrassA */ stat = asn1PE_H235ECKASDH_eckasdh2_weierstrassA (pctxt, &pvalue->weierstrassA); if (stat != ASN_OK) return stat; /* encode weierstrassB */ stat = asn1PE_H235ECKASDH_eckasdh2_weierstrassB (pctxt, &pvalue->weierstrassB); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ECKASDH *//* *//**************************************************************/EXTERN int asn1PE_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* pvalue){ int stat = ASN_OK; ASN1BOOL extbit; /* extension bit */ extbit = (ASN1BOOL)(pvalue->t > 2); encodeBit (pctxt, extbit); if (!extbit) { /* Encode choice index value */ stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1); if (stat != ASN_OK) return stat; /* Encode root element data value */ switch (pvalue->t) { /* eckasdhp */ case 1: stat = asn1PE_H235ECKASDH_eckasdhp (pctxt, pvalue->u.eckasdhp); if (stat != ASN_OK) return stat; break; /* eckasdh2 */ case 2: stat = asn1PE_H235ECKASDH_eckasdh2 (pctxt, pvalue->u.eckasdh2); if (stat != ASN_OK) return stat; break; default: return ASN_E_INVOPT; } } else { /* Encode extension choice index value */ stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3); if (stat != ASN_OK) return stat; /* Encode extension element data value */ } return (stat);}/**************************************************************//* *//* ClearToken *//* *//**************************************************************/EXTERN int asn1PE_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue){ int stat = ASN_OK; ASN1BOOL extbit; ASN1OpenType openType; OOCTXT lctxt; /* extension bit */ extbit = (ASN1BOOL)(pvalue->m.eckasdhkeyPresent || pvalue->m.sendersIDPresent); encodeBit (pctxt, extbit); encodeBit (pctxt, (ASN1BOOL)pvalue->m.timeStampPresent); encodeBit (pctxt, (ASN1BOOL)pvalue->m.passwordPresent); encodeBit (pctxt, (ASN1BOOL)pvalue->m.dhkeyPresent); encodeBit (pctxt, (ASN1BOOL)pvalue->m.challengePresent); encodeBit (pctxt, (ASN1BOOL)pvalue->m.randomPresent); encodeBit (pctxt, (ASN1BOOL)pvalue->m.certificatePresent); encodeBit (pctxt, (ASN1BOOL)pvalue->m.generalIDPresent); encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardPresent); /* encode tokenOID */ stat = encodeObjectIdentifier (pctxt, &pvalue->tokenOID); if (stat != ASN_OK) return stat; /* encode timeStamp */ if (pvalue->m.timeStampPresent) { stat = asn1PE_H235TimeStamp (pctxt, pvalue->timeStamp); if (stat != ASN_OK) return stat; } /* encode password */ if (pvalue->m.passwordPresent) { stat = asn1PE_H235Password (pctxt, pvalue->password); if (stat != ASN_OK) return stat; } /* encode dhkey */ if (pvalue->m.dhkeyPresent) { stat = asn1PE_H235DHset (pctxt, &pvalue->dhkey); if (stat != ASN_OK) return stat; } /* encode challenge */ if (pvalue->m.challengePresent) { stat = asn1PE_H235ChallengeString (pctxt, &pvalue->challenge); if (stat != ASN_OK) return stat; } /* encode random */ if (pvalue->m.randomPresent) { stat = asn1PE_H235RandomVal (pctxt, pvalue->random); if (stat != ASN_OK) return stat; } /* encode certificate */ if (pvalue->m.certificatePresent) { stat = asn1PE_H235TypedCertificate (pctxt, &pvalue->certificate); if (stat != ASN_OK) return stat; } /* encode generalID */ if (pvalue->m.generalIDPresent) { stat = asn1PE_H235Identifier (pctxt, pvalue->generalID); if (stat != ASN_OK) return stat; } /* encode nonStandard */ if (pvalue->m.nonStandardPresent) { stat = asn1PE_H235NonStandardParameter (pctxt, &pvalue->nonStandard); if (stat != ASN_OK) return stat; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -