diff simtool/miscadm.c @ 68:105aa3d1a494

fc-simtool write-iccid command implemented
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 15 Feb 2021 00:36:56 +0000
parents 3ef90bd13fbe
children 63b640562e21
line wrap: on
line diff
--- a/simtool/miscadm.c	Mon Feb 15 00:30:08 2021 +0000
+++ b/simtool/miscadm.c	Mon Feb 15 00:36:56 2021 +0000
@@ -9,6 +9,33 @@
 #include "curfile.h"
 #include "file_id.h"
 
+cmd_write_iccid(argc, argv)
+	char **argv;
+{
+	int rc;
+	u_char nibbles[20], binrec[10];
+
+	rc = parse_decimal_string_arg(argv[1], nibbles, 20);
+	if (rc < 0)
+		return(rc);
+	pack_reversed_nibbles(nibbles, binrec, 10);
+	rc = select_op(FILEID_MF);
+	if (rc < 0)
+		return(rc);
+	rc = select_op(EF_ICCID);
+	if (rc < 0)
+		return(rc);
+	rc = parse_ef_select_response();
+	if (rc < 0)
+		return(rc);
+	if (curfile_structure != 0x00 || curfile_total_size != 10) {
+		fprintf(stderr,
+		"error: EF_ICCID is not a transparent EF of 10 bytes\n");
+		return(-1);
+	}
+	return update_bin_op(0, binrec, 10);
+}
+
 cmd_write_imsi(argc, argv)
 	char **argv;
 {