view libutil/alpha_decode.c @ 186:c925f7808285

doc/GrcardSIM2-security-model article written
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 06 Mar 2021 20:59:23 +0000
parents f064dbcc5f41
children
line wrap: on
line source

/*
 * This module contains functions for decoding and displaying alpha fields
 * that exist in various SIM files.
 */

#include <sys/types.h>
#include <stdio.h>

static void
print_alpha_field_hex(data, nbytes, outf)
	u_char *data;
	unsigned nbytes;
	FILE *outf;
{
	u_char *dp, *endp;

	fputs("HEX ", outf);
	dp = data;
	endp = data + nbytes;
	while (dp < endp)
		fprintf(outf, "%02X", *dp++);
}

void
print_alpha_field(data, nbytes, outf)
	u_char *data;
	unsigned nbytes;
	FILE *outf;
{
	if (!nbytes) {
		fputs("\"\"", outf);
		return;
	}
	if (data[0] & 0x80)
		print_alpha_field_hex(data, nbytes, outf);
	else
		print_gsm7_string_to_file(data, nbytes, outf);
}