asn1_pkcs10_asn1.c
  1  /* Generated from /Users/user/Downloads/darling-Heimdal/lib/hx509/pkcs10.asn1 */
  2  /* Do not edit */
  3  
  4  #define  ASN1_LIB
  5  
  6  #include <stdio.h>
  7  #include <stdlib.h>
  8  #include <time.h>
  9  #include <string.h>
 10  #include <errno.h>
 11  #include <limits.h>
 12  #include <krb5-types.h>
 13  #include "pkcs10_asn1.h"
 14  #include "pkcs10_asn1-priv.h"
 15  #include <asn1_err.h>
 16  #include <der.h>
 17  #include <asn1-template.h>
 18  
 19  #include <parse_units.h>
 20  
 21  static const struct asn1_type_func asn1_extern_Name = {
 22  	(asn1_type_encode)encode_Name,
 23  	(asn1_type_decode)decode_Name,
 24  	(asn1_type_length)length_Name,
 25  	(asn1_type_copy)copy_Name,
 26  	(asn1_type_release)free_Name,
 27  	sizeof(Name)
 28  };
 29  static const struct asn1_type_func asn1_extern_SubjectPublicKeyInfo = {
 30  	(asn1_type_encode)encode_SubjectPublicKeyInfo,
 31  	(asn1_type_decode)decode_SubjectPublicKeyInfo,
 32  	(asn1_type_length)length_SubjectPublicKeyInfo,
 33  	(asn1_type_copy)copy_SubjectPublicKeyInfo,
 34  	(asn1_type_release)free_SubjectPublicKeyInfo,
 35  	sizeof(SubjectPublicKeyInfo)
 36  };
 37  static const struct asn1_type_func asn1_extern_Attribute = {
 38  	(asn1_type_encode)encode_Attribute,
 39  	(asn1_type_decode)decode_Attribute,
 40  	(asn1_type_length)length_Attribute,
 41  	(asn1_type_copy)copy_Attribute,
 42  	(asn1_type_release)free_Attribute,
 43  	sizeof(Attribute)
 44  };
 45  static const struct asn1_type_func asn1_extern_AlgorithmIdentifier = {
 46  	(asn1_type_encode)encode_AlgorithmIdentifier,
 47  	(asn1_type_decode)decode_AlgorithmIdentifier,
 48  	(asn1_type_length)length_AlgorithmIdentifier,
 49  	(asn1_type_copy)copy_AlgorithmIdentifier,
 50  	(asn1_type_release)free_AlgorithmIdentifier,
 51  	sizeof(AlgorithmIdentifier)
 52  };
 53  extern const struct asn1_template asn1_CertificationRequestInfo[];
 54  /* template_members: CertificationRequestInfo exp exp */
 55  extern const struct asn1_template asn1_CertificationRequestInfo_tag__0[];
 56  /* tsequence: members isstruct: 1 */
 57  /* template_members: CertificationRequestInfo exp exp */
 58  extern const struct asn1_template asn1_CertificationRequestInfo_tag_version_1[];
 59  /* generate_template_type: CertificationRequestInfo_tag_version_1 */
 60  const struct asn1_template asn1_CertificationRequestInfo_tag_version_1[] = {
 61  /* 0 */ { 0, sizeof(int), ((void *)1) },
 62  /* 1 */ { A1_PARSE_T(A1T_IMEMBER), 0, NULL }
 63  };
 64  /* template_members: CertificationRequestInfo exp imp */
 65  /* template_members: imp skip tag */
 66  extern const struct asn1_template asn1_CertificationRequestInfo_tag_attributes_2[];
 67  extern const struct asn1_template asn1_CertificationRequestInfo_attributes_0[];
 68  /* generate_template_type: CertificationRequestInfo_attributes_0 */
 69  const struct asn1_template asn1_CertificationRequestInfo_attributes_0[] = {
 70  /* 0 */ { 0, sizeof(Attribute), ((void *)1) },
 71  /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_Attribute}
 72  };
 73  /* generate_template_type: CertificationRequestInfo_tag_attributes_2 */
 74  const struct asn1_template asn1_CertificationRequestInfo_tag_attributes_2[] = {
 75  /* 0 */ { 0, sizeof(struct CertificationRequestInfo), ((void *)1) },
 76  /* 1 */ { A1_OP_SETOF, 0, asn1_CertificationRequestInfo_attributes_0 }
 77  };
 78  /* generate_template_type: CertificationRequestInfo_tag__0 */
 79  const struct asn1_template asn1_CertificationRequestInfo_tag__0[] = {
 80  /* 0 */ { 0, sizeof(struct CertificationRequestInfo), ((void *)4) },
 81  /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_Integer), offsetof(struct CertificationRequestInfo, version), asn1_CertificationRequestInfo_tag_version_1 },
 82  /* 2 */ { A1_OP_TYPE_EXTERN , offsetof(struct CertificationRequestInfo, subject), &asn1_extern_Name},
 83  /* 3 */ { A1_OP_TYPE_EXTERN , offsetof(struct CertificationRequestInfo, subjectPKInfo), &asn1_extern_SubjectPublicKeyInfo},
 84  /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL|A1_FLAG_IMPLICIT, offsetof(struct CertificationRequestInfo, attributes), asn1_CertificationRequestInfo_tag_attributes_2 }
 85  };
 86  /* generate_template_type: CertificationRequestInfo */
 87  const struct asn1_template asn1_CertificationRequestInfo[] = {
 88  /* 0 */ { 0|A1_HF_PRESERVE, sizeof(CertificationRequestInfo), ((void *)1) },
 89  /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_CertificationRequestInfo_tag__0 }
 90  };
 91  
 92  int
 93  decode_CertificationRequestInfo(const unsigned char *p, size_t len, CertificationRequestInfo *data, size_t *size)
 94  {
 95      return _asn1_decode_top(asn1_CertificationRequestInfo, 0|0, p, len, data, size);
 96  }
 97  
 98  
 99  int
100  encode_CertificationRequestInfo(unsigned char *p, size_t len, const CertificationRequestInfo *data, size_t *size)
101  {
102      int ret = _asn1_encode(asn1_CertificationRequestInfo, p, len, data, size);
103      return ret;
104  }
105  
106  
107  size_t
108  length_CertificationRequestInfo(const CertificationRequestInfo *data)
109  {
110      return _asn1_length(asn1_CertificationRequestInfo, data);
111  }
112  
113  
114  void
115  free_CertificationRequestInfo(CertificationRequestInfo *data)
116  {
117      _asn1_free_top(asn1_CertificationRequestInfo, data);
118  }
119  
120  
121  int
122  copy_CertificationRequestInfo(const CertificationRequestInfo *from, CertificationRequestInfo *to)
123  {
124      return _asn1_copy_top(asn1_CertificationRequestInfo, from, to);
125  }
126  
127  extern const struct asn1_template asn1_CertificationRequest[];
128  /* template_members: CertificationRequest exp exp */
129  extern const struct asn1_template asn1_CertificationRequest_tag__3[];
130  /* tsequence: members isstruct: 1 */
131  /* template_members: CertificationRequest exp exp */
132  extern const struct asn1_template asn1_CertificationRequest_tag_signature_4[];
133  /* generate_template_type: CertificationRequest_tag_signature_4 */
134  const struct asn1_template asn1_CertificationRequest_tag_signature_4[] = {
135  /* 0 */ { 0, sizeof(CertificationRequest), ((void *)1) },
136  /* 1 */ { A1_PARSE_T(A1T_HEIM_BIT_STRING), 0, NULL }
137  };
138  /* generate_template_type: CertificationRequest_tag__3 */
139  const struct asn1_template asn1_CertificationRequest_tag__3[] = {
140  /* 0 */ { 0, sizeof(struct CertificationRequest), ((void *)3) },
141  /* 1 */ { A1_OP_TYPE , offsetof(struct CertificationRequest, certificationRequestInfo), asn1_CertificationRequestInfo },
142  /* 2 */ { A1_OP_TYPE_EXTERN , offsetof(struct CertificationRequest, signatureAlgorithm), &asn1_extern_AlgorithmIdentifier},
143  /* 3 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_BitString), offsetof(struct CertificationRequest, signature), asn1_CertificationRequest_tag_signature_4 }
144  };
145  /* generate_template_type: CertificationRequest */
146  const struct asn1_template asn1_CertificationRequest[] = {
147  /* 0 */ { 0, sizeof(CertificationRequest), ((void *)1) },
148  /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_CertificationRequest_tag__3 }
149  };
150  
151  int
152  decode_CertificationRequest(const unsigned char *p, size_t len, CertificationRequest *data, size_t *size)
153  {
154      return _asn1_decode_top(asn1_CertificationRequest, 0|0, p, len, data, size);
155  }
156  
157  
158  int
159  encode_CertificationRequest(unsigned char *p, size_t len, const CertificationRequest *data, size_t *size)
160  {
161      int ret = _asn1_encode(asn1_CertificationRequest, p, len, data, size);
162      return ret;
163  }
164  
165  
166  size_t
167  length_CertificationRequest(const CertificationRequest *data)
168  {
169      return _asn1_length(asn1_CertificationRequest, data);
170  }
171  
172  
173  void
174  free_CertificationRequest(CertificationRequest *data)
175  {
176      _asn1_free_top(asn1_CertificationRequest, data);
177  }
178  
179  
180  int
181  copy_CertificationRequest(const CertificationRequest *from, CertificationRequest *to)
182  {
183      return _asn1_copy_top(asn1_CertificationRequest, from, to);
184  }
185