69 #include "../asn1/internal.h"
70 #include "../internal.h"
82 #define X509_NAME_MAX (1024 * 1024)
85 const unsigned char **
in,
long len,
150 if ((
ret->entries = sk_X509_NAME_ENTRY_new_null()) == NULL)
154 ret->canon_enc = NULL;
155 ret->canon_enclen = 0;
164 sk_X509_NAME_ENTRY_free(
ret->entries);
187 sk_X509_NAME_ENTRY_free(ne);
196 const unsigned char **
in,
long len,
200 const unsigned char *
p = *
in, *q;
201 STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname = NULL;
220 intname = (
STACK_OF(STACK_OF_X509_NAME_ENTRY) *)intname_val;
234 for (
i = 0;
i < sk_STACK_OF_X509_NAME_ENTRY_num(intname);
i++) {
235 entries = sk_STACK_OF_X509_NAME_ENTRY_value(intname,
i);
236 for (j = 0; j < sk_X509_NAME_ENTRY_num(entries); j++) {
237 entry = sk_X509_NAME_ENTRY_value(entries, j);
239 if (!sk_X509_NAME_ENTRY_push(
nm->entries, entry))
241 (void)sk_X509_NAME_ENTRY_set(entries, j, NULL);
247 sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
255 sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
270 int ret =
a->bytes->length;
286 STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname =
287 sk_STACK_OF_X509_NAME_ENTRY_new_null();
290 for (
i = 0;
i < sk_X509_NAME_ENTRY_num(
a->entries);
i++) {
291 entry = sk_X509_NAME_ENTRY_value(
a->entries,
i);
293 entries = sk_X509_NAME_ENTRY_new_null();
296 if (!sk_STACK_OF_X509_NAME_ENTRY_push(intname, entries)) {
297 sk_X509_NAME_ENTRY_free(entries);
302 if (!sk_X509_NAME_ENTRY_push(entries, entry))
314 p = (
unsigned char *)
a->bytes->data;
319 sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
326 sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
344 STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname = NULL;
355 if (sk_X509_NAME_ENTRY_num(
a->entries) == 0) {
359 intname = sk_STACK_OF_X509_NAME_ENTRY_new_null();
362 for (
i = 0;
i < sk_X509_NAME_ENTRY_num(
a->entries);
i++) {
363 entry = sk_X509_NAME_ENTRY_value(
a->entries,
i);
365 entries = sk_X509_NAME_ENTRY_new_null();
368 if (!sk_STACK_OF_X509_NAME_ENTRY_push(intname, entries)) {
369 sk_X509_NAME_ENTRY_free(entries);
375 if (tmpentry == NULL)
380 if (!sk_X509_NAME_ENTRY_push(entries, tmpentry))
391 a->canon_enclen =
len;
409 sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
416 #define ASN1_MASK_CANON \
417 (B_ASN1_UTF8STRING | B_ASN1_BMPSTRING | B_ASN1_UNIVERSALSTRING \
418 | B_ASN1_PRINTABLESTRING | B_ASN1_T61STRING | B_ASN1_IA5STRING \
419 | B_ASN1_VISIBLESTRING)
435 if (
out->length == -1)
450 while ((
len > 0) && !(*
from & 0x80) && isspace(*
from)) {
458 while ((
len > 0) && !(
to[-1] & 0x80) && isspace(
to[-1])) {
473 else if (isspace(*
from)) {
485 while (!(*
from & 0x80) && isspace(*
from));
508 for (
i = 0;
i < sk_ASN1_VALUE_num(intname);
i++) {
509 v = sk_ASN1_VALUE_value(intname,
i);