icparams.c

来自「IBE是一种非对称密码技术」· C语言 代码 · 共 79 行

C
79
字号
/* Copyright 2003-2006, Voltage Security, all rights reserved.
*/

#include "vibe.h"
#include "environment.h"
#include "base.h"
#include "libctx.h"
#include "icparams.h"
#include "vcert.h"

ASN1_SEQUENCE(FIELD_ID) = 
{
  ASN1_SIMPLE(FIELD_ID, fieldType, ASN1_OBJECT),
  ASN1_SIMPLE(FIELD_ID, p, ASN1_INTEGER)
}
ASN1_SEQUENCE_END(FIELD_ID)

IMPLEMENT_ASN1_FUNCTIONS(FIELD_ID)

ASN1_SEQUENCE(CURVE) = {
  ASN1_SIMPLE(CURVE, type, ASN1_OBJECT),
  ASN1_SIMPLE(CURVE, a, ASN1_OCTET_STRING),
  ASN1_SIMPLE(CURVE, b, ASN1_OCTET_STRING),
  ASN1_OPT(CURVE, seed, ASN1_BIT_STRING)
}
ASN1_SEQUENCE_END(CURVE)

IMPLEMENT_ASN1_FUNCTIONS(CURVE)

ASN1_SEQUENCE(EC_PARAMETERS) = 
{
  ASN1_SIMPLE(EC_PARAMETERS, version, ASN1_INTEGER),
  ASN1_SIMPLE(EC_PARAMETERS, fieldID, FIELD_ID),
  ASN1_SIMPLE(EC_PARAMETERS, curve, CURVE),
  ASN1_SIMPLE(EC_PARAMETERS, base, ASN1_OCTET_STRING),
  ASN1_SIMPLE(EC_PARAMETERS, order, ASN1_INTEGER),
  ASN1_OPT(EC_PARAMETERS, cofactor, ASN1_INTEGER)
}
ASN1_SEQUENCE_END(EC_PARAMETERS)

IMPLEMENT_ASN1_FUNCTIONS(EC_PARAMETERS)

ASN1_SEQUENCE(IC_USAGE_PARAMS) =
{
  ASN1_SIMPLE(IC_USAGE_PARAMS, usage, ASN1_OBJECT),
  ASN1_SIMPLE(IC_USAGE_PARAMS, reference, ASN1_OCTET_STRING),
  ASN1_OPT(IC_USAGE_PARAMS, ecParams, EC_PARAMETERS)
}
ASN1_SEQUENCE_END(IC_USAGE_PARAMS)

IMPLEMENT_ASN1_FUNCTIONS(IC_USAGE_PARAMS)
IMPLEMENT_STACK_OF(IC_USAGE_PARAMS)

ASN1_SEQUENCE(Asn1X509Validity) = {
  ASN1_SIMPLE(Asn1X509Validity, notBefore, ASN1_TIME),
  ASN1_SIMPLE(Asn1X509Validity, notAfter, ASN1_TIME)
} ASN1_SEQUENCE_END(Asn1X509Validity)

IMPLEMENT_ASN1_FUNCTIONS(Asn1X509Validity)

ASN1_SEQUENCE(icPublicParameters) = 
{
  ASN1_SIMPLE(icPublicParameters, version, ASN1_INTEGER),
  ASN1_SIMPLE(icPublicParameters, defReference, ASN1_OCTET_STRING),
  ASN1_SIMPLE(icPublicParameters, defECParams, EC_PARAMETERS),
  ASN1_SET_OF(icPublicParameters, usageParams, IC_USAGE_PARAMS),
  ASN1_SIMPLE(icPublicParameters, validity, Asn1X509Validity),
  ASN1_SET_OF_OPT(icPublicParameters, extensions, Asn1X509Extension)
}
ASN1_SEQUENCE_END(icPublicParameters)

IMPLEMENT_ASN1_FUNCTIONS(icPublicParameters)

ASN1_ITEM_TEMPLATE(SUPPORTED_KEY_SCHEMAS) =
  ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, SUPPORTED_KEY_SCHEMAS, ASN1_OBJECT)
ASN1_ITEM_TEMPLATE_END(SUPPORTED_KEY_SCHEMAS)

IMPLEMENT_ASN1_FUNCTIONS(SUPPORTED_KEY_SCHEMAS)

⌨️ 快捷键说明

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