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