diff serial/main.c @ 43:be27d1c85861

serial: main function implemented
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 20 Mar 2021 21:49:59 +0000
parents 6cc3eea720cb
children fbedb67d234f
line wrap: on
line diff
--- a/serial/main.c	Sat Mar 20 21:17:56 2021 +0000
+++ b/serial/main.c	Sat Mar 20 21:49:59 2021 +0000
@@ -10,6 +10,8 @@
 main(argc, argv)
 	char **argv;
 {
+	char inbuf[576];
+	u_char cmd[260];
 	int rc;
 
 	if (argc != 3) {
@@ -27,7 +29,19 @@
 	print_atr("A");
 	if (baud_spenh)
 		spenh_logic();
+	putchar('\n');
+	fflush(stdout);
 
-	/* remaining logic to be implemented */
+	for (; fgets(inbuf, sizeof inbuf, stdin); fflush(stdout)) {
+		rc = parse_hex_input(inbuf, cmd);
+		if (rc < 0)
+			continue;
+		if (rc < 5) {
+			printf("error: command APDU is too short\n");
+			continue;
+		}
+		apdu_exchange(cmd, rc);
+	}
+
 	exit(0);
 }