diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_genn.c')
| -rw-r--r-- | src/lib/libcrypto/x509v3/v3_genn.c | 106 |
1 files changed, 101 insertions, 5 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_genn.c b/src/lib/libcrypto/x509v3/v3_genn.c index 716f4a7b99..25d7f447d2 100644 --- a/src/lib/libcrypto/x509v3/v3_genn.c +++ b/src/lib/libcrypto/x509v3/v3_genn.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: v3_genn.c,v 1.9 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: v3_genn.c,v 1.10 2015/02/09 16:03:11 jsing Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 1999. | 3 | * project 1999. |
| 4 | */ | 4 | */ |
| @@ -69,14 +69,62 @@ ASN1_SEQUENCE(OTHERNAME) = { | |||
| 69 | ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0) | 69 | ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0) |
| 70 | } ASN1_SEQUENCE_END(OTHERNAME) | 70 | } ASN1_SEQUENCE_END(OTHERNAME) |
| 71 | 71 | ||
| 72 | IMPLEMENT_ASN1_FUNCTIONS(OTHERNAME) | 72 | |
| 73 | OTHERNAME * | ||
| 74 | d2i_OTHERNAME(OTHERNAME **a, const unsigned char **in, long len) | ||
| 75 | { | ||
| 76 | return (OTHERNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 77 | &OTHERNAME_it); | ||
| 78 | } | ||
| 79 | |||
| 80 | int | ||
| 81 | i2d_OTHERNAME(OTHERNAME *a, unsigned char **out) | ||
| 82 | { | ||
| 83 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &OTHERNAME_it); | ||
| 84 | } | ||
| 85 | |||
| 86 | OTHERNAME * | ||
| 87 | OTHERNAME_new(void) | ||
| 88 | { | ||
| 89 | return (OTHERNAME *)ASN1_item_new(&OTHERNAME_it); | ||
| 90 | } | ||
| 91 | |||
| 92 | void | ||
| 93 | OTHERNAME_free(OTHERNAME *a) | ||
| 94 | { | ||
| 95 | ASN1_item_free((ASN1_VALUE *)a, &OTHERNAME_it); | ||
| 96 | } | ||
| 73 | 97 | ||
| 74 | ASN1_SEQUENCE(EDIPARTYNAME) = { | 98 | ASN1_SEQUENCE(EDIPARTYNAME) = { |
| 75 | ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0), | 99 | ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0), |
| 76 | ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1) | 100 | ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1) |
| 77 | } ASN1_SEQUENCE_END(EDIPARTYNAME) | 101 | } ASN1_SEQUENCE_END(EDIPARTYNAME) |
| 78 | 102 | ||
| 79 | IMPLEMENT_ASN1_FUNCTIONS(EDIPARTYNAME) | 103 | |
| 104 | EDIPARTYNAME * | ||
| 105 | d2i_EDIPARTYNAME(EDIPARTYNAME **a, const unsigned char **in, long len) | ||
| 106 | { | ||
| 107 | return (EDIPARTYNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 108 | &EDIPARTYNAME_it); | ||
| 109 | } | ||
| 110 | |||
| 111 | int | ||
| 112 | i2d_EDIPARTYNAME(EDIPARTYNAME *a, unsigned char **out) | ||
| 113 | { | ||
| 114 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &EDIPARTYNAME_it); | ||
| 115 | } | ||
| 116 | |||
| 117 | EDIPARTYNAME * | ||
| 118 | EDIPARTYNAME_new(void) | ||
| 119 | { | ||
| 120 | return (EDIPARTYNAME *)ASN1_item_new(&EDIPARTYNAME_it); | ||
| 121 | } | ||
| 122 | |||
| 123 | void | ||
| 124 | EDIPARTYNAME_free(EDIPARTYNAME *a) | ||
| 125 | { | ||
| 126 | ASN1_item_free((ASN1_VALUE *)a, &EDIPARTYNAME_it); | ||
| 127 | } | ||
| 80 | 128 | ||
| 81 | ASN1_CHOICE(GENERAL_NAME) = { | 129 | ASN1_CHOICE(GENERAL_NAME) = { |
| 82 | ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME), | 130 | ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME), |
| @@ -92,13 +140,61 @@ ASN1_CHOICE(GENERAL_NAME) = { | |||
| 92 | ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID) | 140 | ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID) |
| 93 | } ASN1_CHOICE_END(GENERAL_NAME) | 141 | } ASN1_CHOICE_END(GENERAL_NAME) |
| 94 | 142 | ||
| 95 | IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAME) | 143 | |
| 144 | GENERAL_NAME * | ||
| 145 | d2i_GENERAL_NAME(GENERAL_NAME **a, const unsigned char **in, long len) | ||
| 146 | { | ||
| 147 | return (GENERAL_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 148 | &GENERAL_NAME_it); | ||
| 149 | } | ||
| 150 | |||
| 151 | int | ||
| 152 | i2d_GENERAL_NAME(GENERAL_NAME *a, unsigned char **out) | ||
| 153 | { | ||
| 154 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &GENERAL_NAME_it); | ||
| 155 | } | ||
| 156 | |||
| 157 | GENERAL_NAME * | ||
| 158 | GENERAL_NAME_new(void) | ||
| 159 | { | ||
| 160 | return (GENERAL_NAME *)ASN1_item_new(&GENERAL_NAME_it); | ||
| 161 | } | ||
| 162 | |||
| 163 | void | ||
| 164 | GENERAL_NAME_free(GENERAL_NAME *a) | ||
| 165 | { | ||
| 166 | ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAME_it); | ||
| 167 | } | ||
| 96 | 168 | ||
| 97 | ASN1_ITEM_TEMPLATE(GENERAL_NAMES) = | 169 | ASN1_ITEM_TEMPLATE(GENERAL_NAMES) = |
| 98 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME) | 170 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME) |
| 99 | ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES) | 171 | ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES) |
| 100 | 172 | ||
| 101 | IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAMES) | 173 | |
| 174 | GENERAL_NAMES * | ||
| 175 | d2i_GENERAL_NAMES(GENERAL_NAMES **a, const unsigned char **in, long len) | ||
| 176 | { | ||
| 177 | return (GENERAL_NAMES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 178 | &GENERAL_NAMES_it); | ||
| 179 | } | ||
| 180 | |||
| 181 | int | ||
| 182 | i2d_GENERAL_NAMES(GENERAL_NAMES *a, unsigned char **out) | ||
| 183 | { | ||
| 184 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &GENERAL_NAMES_it); | ||
| 185 | } | ||
| 186 | |||
| 187 | GENERAL_NAMES * | ||
| 188 | GENERAL_NAMES_new(void) | ||
| 189 | { | ||
| 190 | return (GENERAL_NAMES *)ASN1_item_new(&GENERAL_NAMES_it); | ||
| 191 | } | ||
| 192 | |||
| 193 | void | ||
| 194 | GENERAL_NAMES_free(GENERAL_NAMES *a) | ||
| 195 | { | ||
| 196 | ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAMES_it); | ||
| 197 | } | ||
| 102 | 198 | ||
| 103 | GENERAL_NAME * | 199 | GENERAL_NAME * |
| 104 | GENERAL_NAME_dup(GENERAL_NAME *a) | 200 | GENERAL_NAME_dup(GENERAL_NAME *a) |
