static int targets(int argc, char *argv[]) { AUTO(DEO_HEADER, hdr); if (!deo_getopt(argc, argv, "h", "", NULL, NULL)) { fprintf(stderr, "Usage: deo targets < ENCDATA > TARGETS\n"); return EXIT_FAILURE; } hdr = d2i_fp_max(&DEO_HEADER_it, stdin, NULL, DEO_MAX_INPUT); if (hdr == NULL) { ERR_print_errors_fp(stderr); return EXIT_FAILURE; } for (int i = 0; i < sk_ASN1_UTF8STRING_num(hdr->targets); i++) { ASN1_UTF8STRING *str = sk_ASN1_UTF8STRING_value(hdr->targets, i); fprintf(stdout, "%*s\n", str->length, str->data); } return EXIT_SUCCESS; }
int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a) { static const char *status_map[] = { "Granted.", "Granted with modifications.", "Rejected.", "Waiting.", "Revocation warning.", "Revoked." }; static struct status_map_st failure_map[] = { {TS_INFO_BAD_ALG, "unrecognized or unsupported algorithm identifier"}, {TS_INFO_BAD_REQUEST, "transaction not permitted or supported"}, {TS_INFO_BAD_DATA_FORMAT, "the data submitted has the wrong format"}, {TS_INFO_TIME_NOT_AVAILABLE, "the TSA's time source is not available"}, {TS_INFO_UNACCEPTED_POLICY, "the requested TSA policy is not supported by the TSA"}, {TS_INFO_UNACCEPTED_EXTENSION, "the requested extension is not supported by the TSA"}, {TS_INFO_ADD_INFO_NOT_AVAILABLE, "the additional information requested could not be understood " "or is not available"}, {TS_INFO_SYSTEM_FAILURE, "the request cannot be handled due to system failure"}, {-1, NULL} }; long status; int i, lines = 0; /* Printing status code. */ BIO_printf(bio, "Status: "); status = ASN1_INTEGER_get(a->status); if (0 <= status && status < (long)(sizeof(status_map) / sizeof(status_map[0]))) BIO_printf(bio, "%s\n", status_map[status]); else BIO_printf(bio, "out of bounds\n"); /* Printing status description. */ BIO_printf(bio, "Status description: "); for (i = 0; i < sk_ASN1_UTF8STRING_num(a->text); ++i) { if (i > 0) BIO_puts(bio, "\t"); ASN1_STRING_print_ex(bio, sk_ASN1_UTF8STRING_value(a->text, i), 0); BIO_puts(bio, "\n"); } if (i == 0) BIO_printf(bio, "unspecified\n"); /* Printing failure information. */ BIO_printf(bio, "Failure info: "); if (a->failure_info != NULL) lines = TS_status_map_print(bio, failure_map, a->failure_info); if (lines == 0) BIO_printf(bio, "unspecified"); BIO_printf(bio, "\n"); return 1; }