From 0e4b64a97e9fe551ed940c5d775548c77a568a73 Mon Sep 17 00:00:00 2001
From: Philipp Claves <pclaves@web.de>
Date: Thu, 1 Dec 2011 19:18:25 +0100
Subject: [PATCH] Add ATMegaCard ISO7816 and Portal Applet implementation.

---
 ATMegaCard/ISO7816-card.c               | 345 ++++++++++++++++++++
 ATMegaCard/ISO7816-card.h               |  51 +++
 ATMegaCard/Makefile                     | 398 ++++++++++++++++++++++++
 ATMegaCard/applications/applications.h  |  24 ++
 ATMegaCard/applications/portal/portal.c | 126 ++++++++
 ATMegaCard/applications/portal/portal.h |   7 +
 ATMegaCard/common.h                     |   1 +
 ATMegaCard/keystore.c                   |  77 +++++
 ATMegaCard/keystore.h                   |  31 ++
 ATMegaCard/main.c                       |  77 +++++
 ATMegaCard/rnd                          | Bin 0 -> 95808 bytes
 ATMegaCard/rng.c                        |  45 +++
 ATMegaCard/rng.h                        |   3 +
 ATMegaCard/software_serial.c            | 221 +++++++++++++
 ATMegaCard/software_serial.h            |  58 ++++
 15 files changed, 1464 insertions(+)
 create mode 100644 ATMegaCard/ISO7816-card.c
 create mode 100644 ATMegaCard/ISO7816-card.h
 create mode 100644 ATMegaCard/Makefile
 create mode 100644 ATMegaCard/applications/applications.h
 create mode 100644 ATMegaCard/applications/portal/portal.c
 create mode 100644 ATMegaCard/applications/portal/portal.h
 create mode 100644 ATMegaCard/common.h
 create mode 100644 ATMegaCard/keystore.c
 create mode 100644 ATMegaCard/keystore.h
 create mode 100644 ATMegaCard/main.c
 create mode 100644 ATMegaCard/rnd
 create mode 100644 ATMegaCard/rng.c
 create mode 100644 ATMegaCard/rng.h
 create mode 100644 ATMegaCard/software_serial.c
 create mode 100644 ATMegaCard/software_serial.h

diff --git a/ATMegaCard/ISO7816-card.c b/ATMegaCard/ISO7816-card.c
new file mode 100644
index 0000000..d82cf61
--- /dev/null
+++ b/ATMegaCard/ISO7816-card.c
@@ -0,0 +1,345 @@
+#include "ISO7816-card.h"
+#include "common.h"
+#include <util/delay.h>
+#include <string.h>
+
+//ATMega Card
+//ATR: 3B8F014156522049534F3738313620302E31B9
+//Query: 00C101FE3E00000267016400C101FE3E00000267016400C101FE3E000002670164
+
+//Java Card
+//ATR: 3BFA1800FF8131FE454A434F5032315632333165
+//Query: FF1118F6FF1118F6F8FF38F8E098E0003BFA1800FF8131FE454A434F5032315632333165
+static apdu_handler_t handler;
+
+//                  TS    T0     TA1   TB1   TC1   TD1(T=1)
+ISO7816_ATR atr = {0x3B, 0x9F, {{0x11, 0x00, 0x00, 0x01},
+//                               TA2   TB2   TC2   TD2 (unused)
+                                {0x00, 0x00, 0x00, 0x00},
+//                               TA3   TB3   TC3   TD3 (unused)
+                                {0x00, 0x00, 0x00, 0x00},
+//                               TA4   TB4   TC4   TD4 (unused)
+                                {0x00, 0x00, 0x00, 0x00},
+//                               TA5   TB5   TC5   TD5 (unused)
+                                {0x00, 0x00, 0x00, 0x00}},
+                   //Historical Bytes
+                   {0x41,0x56,0x52,0x20,0x49,0x53,0x4f,0x37,0x38,0x31,0x36,0x20,0x30,0x2e,0x31},
+                   0}; //Checksum
+
+// unsigned char atr[] = {0x3B, 0xFA, 0x18, 0x00, 0xFF , 0x81 , 0x31 , 0xFE , 0x45 , 0x4A , 0x43 , 0x4F , 0x50 , 0x32 , 0x31 , 0x56 , 0x32 , 0x33 , 0x31, 0x65};
+
+uint16_t ISO7816_receive_buffer(uint8_t* buffer, uint8_t length);
+uint8_t  ISO7816_transmit_buffer(uint8_t* buffer, uint8_t length);
+uint8_t  ISO7816_transmit_t1_header(ISO7816_T1_Header* t1_header);
+
+void ISO7816_init(void){
+	UART_init();
+}
+/*
+void ISO7816_sendATR(void){
+	UART_transmit_init();
+	for (uint8_t i = 0; i < sizeof(atr); i++){
+		UART_transmit_char(atr[i]);
+	}
+	UART_recv_init();
+}*/
+
+void ISO7816_sendATR(void){
+	uint8_t checksum = 0;
+	UART_transmit_init();
+	UART_transmit_char(atr.initial_char);
+	checksum ^= atr.t0; UART_transmit_char(atr.t0);
+	
+	uint8_t num_hist_bytes = NUM_HIST_BYTES(atr);
+	uint8_t next_interface_bytes = INTERFACE_BYTE_SET(atr, 0);
+	uint8_t i = 0;
+	while (next_interface_bytes){
+		if (next_interface_bytes & TA) {checksum ^= atr.interface_bytes[i].ta; UART_transmit_char(atr.interface_bytes[i].ta);}
+		if (next_interface_bytes & TB) {checksum ^= atr.interface_bytes[i].tb; UART_transmit_char(atr.interface_bytes[i].tb);}
+		if (next_interface_bytes & TC) {checksum ^= atr.interface_bytes[i].tc; UART_transmit_char(atr.interface_bytes[i].tc);}
+		if (next_interface_bytes & TD) {checksum ^= atr.interface_bytes[i].td; UART_transmit_char(atr.interface_bytes[i].td);}
+		i++;
+		next_interface_bytes = INTERFACE_BYTE_SET(atr, i);
+	}
+	for (i = 0; i < num_hist_bytes; i++){
+		checksum ^= atr.historical_bytes[i];
+		UART_transmit_char(atr.historical_bytes[i]);
+	}
+	UART_transmit_char(checksum);
+	UART_recv_init();
+// 	UART_read_char();
+}
+
+uint8_t ISO7816_data_available(void){
+	return UART_data_available();
+}
+
+#define RECV_ERROR(new_status) {status = (status == ISO7816_STATUS_OK) ? new_status : status;}
+
+uint16_t process_pts(void){
+	uint8_t checksum = 0xFF; //PTSS = 0xFF, so we start with that
+	uint16_t ret;
+	uint8_t c;
+	uint8_t pts0;
+	uint8_t pts1;
+	uint8_t pts2;
+	uint8_t pts3;
+	
+	ret = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+	if (ret == UART_ERR_TIMEOUT) return ISO7816_ERR_TIMEOUT;
+	pts0 = ret & 0xFF;
+	checksum ^= pts0;
+	
+	if (pts0 & 0x10){ //PTS1 avail
+		ret = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+		if (ret == UART_ERR_TIMEOUT) return ISO7816_ERR_TIMEOUT;
+		pts1 = ret & 0xFF;
+		checksum ^= pts1;
+	}
+	if (pts0 & 0x20){ //PTS2 avail
+		ret = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+		if (ret == UART_ERR_TIMEOUT) return ISO7816_ERR_TIMEOUT;
+		pts2 = ret & 0xFF;
+		checksum ^= pts2;
+	}
+	if (pts0 & 0x40){ //PTS3 avail
+		ret = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+		if (ret == UART_ERR_TIMEOUT) return ISO7816_ERR_TIMEOUT;
+		pts3 = ret & 0xFF;
+		checksum ^= pts3;
+	}
+	
+	ret = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+	if (ret == UART_ERR_TIMEOUT) return ISO7816_ERR_TIMEOUT;
+	c = ret & 0xFF;
+	checksum ^= c;
+	
+	if (c != checksum) return ISO7816_STATUS_ERR_DATA_INVALID;
+	_delay_us(300);
+	
+	UART_transmit_init();
+	UART_transmit_char(0xFF); //PTSS
+	UART_transmit_char(pts0);
+	if (pts0 & 0x10) UART_transmit_char(pts1);
+	if (pts0 & 0x20) UART_transmit_char(pts2);
+	if (pts0 & 0x40) UART_transmit_char(pts3);
+	UART_transmit_char(checksum);
+	
+	UART_recv_init();
+	
+	return ISO7816_STATUS_OK;
+}
+
+uint8_t ISO7816_read_t1_header(ISO7816_T1_Header* h, uint8_t* checksum){
+	uint16_t ret;
+	uint8_t c = 0;
+// 	static uint8_t first = 0;
+	
+// 	if (first){
+// 		while (c == 0x00){
+// 			//NAD (Node Address, not used)
+// 			ret = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+// 			if (ret == UART_ERR_TIMEOUT) return 0;
+// 			c = ret & 0xFF;
+// 			*checksum ^= c;
+// 			if (c == 0xFF) {process_pts(); return 0;}
+// 		}
+// 		h->node_address = 0;
+// 		
+// 		first = 0;
+// 	} else {
+		//NAD (Node Address, not used)
+		ret = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+		if (ret == UART_ERR_TIMEOUT) return 0;
+		c = ret & 0xFF;
+		*checksum ^= c;
+		if (c == 0xFF) {process_pts(); return 0;}
+		h->node_address = c;
+		
+		// 	Protocol control byte
+		c = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+		if (ret == UART_ERR_TIMEOUT) return 0;
+		c = ret & 0xFF;
+		*checksum ^= c;
+		
+// 		first = 1;
+// 	}
+	
+	h->protocol_control = c;
+// 	if (!(seq_number && (c & 0x40))) RECV_ERROR(ISO7816_STATUS_ERR_UNKNOWN); //TODO: Better response? Or no response? This is below the APDU level
+	
+	//Message Length
+	ret = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+	if (ret == UART_ERR_TIMEOUT) return 0;
+	c = ret & 0xFF;
+	*checksum ^= c;
+	h->message_length = c;
+	
+	return 1;
+}
+
+uint16_t ISO7816_read_t1_trailer(uint8_t checksum){
+	uint16_t ret;
+	uint8_t c;
+	
+	ret = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+	if (ret == UART_ERR_TIMEOUT) return ISO7816_ERR_TIMEOUT;
+	c = ret & 0xFF;
+	
+// 	if (c != checksum) return ISO7816_STATUS_ERR_DATA_INVALID;
+	
+	return 1;
+}
+
+void ISO7816_process_apdu(ISO7816_T1_Header* t1_header, uint8_t* message_buffer){
+	uint16_t status = ISO7816_STATUS_OK;
+	
+	ISO7816_APDU_Header *apdu_header = (ISO7816_APDU_Header*)&message_buffer[0];
+	uint8_t* payload = &message_buffer[APDU_PAYLOAD_OFFSET];
+	uint8_t payload_length = 0;
+		
+	uint8_t answer_buffer[255];
+	uint8_t answer_length = 0;
+	uint8_t max_answer_length = 0;
+	
+	
+	//Now about interpreting length values...
+	if (t1_header->message_length < sizeof(ISO7816_APDU_Header)){
+		status = ISO7816_STATUS_ERR_WRONG_LENGTH;
+	} else if (t1_header->message_length == sizeof(ISO7816_APDU_Header)){
+		//no APDU payload, no answer payload.
+		payload_length = 0;
+		max_answer_length = 0;
+	} else if (t1_header->message_length == sizeof(ISO7816_APDU_Header) + 1){
+		//no APDU payload, but answer payload allowed.
+		payload_length = 0;
+		max_answer_length = APDU_PAYLOAD_LENGTH(message_buffer);
+	} else { //we have APDU payload
+		payload_length = APDU_PAYLOAD_LENGTH(message_buffer);
+		if (t1_header->message_length - sizeof(ISO7816_APDU_Header) - 1 == payload_length){
+			//APDU Header + APDU Payload, no answer payload
+			max_answer_length = 0;
+		} else if (t1_header->message_length - sizeof(ISO7816_APDU_Header) - 1 == (payload_length + 1)) {
+			//APDU Header + APDU Payload + answer payload
+			max_answer_length = message_buffer[t1_header->message_length - 1];
+		} else {
+			status = ISO7816_STATUS_ERR_WRONG_LENGTH;
+		}
+	}
+	
+	
+	if (status == ISO7816_STATUS_OK){
+		answer_length = max_answer_length;
+		status = handler(apdu_header, payload, payload_length, answer_buffer, &answer_length);
+		if (answer_length > max_answer_length){
+			status = ISO7816_STATUS_ERR_WRONG_LENGTH;
+		}
+	}
+	if (status != ISO7816_STATUS_OK) answer_length = 0;
+	
+	t1_header->node_address = 0;
+	t1_header->message_length = answer_length+2;
+	
+	memcpy(message_buffer, answer_buffer, answer_length);
+	message_buffer[answer_length]   = status >> 8;
+	message_buffer[answer_length+1] = status & 0xFF;
+}
+
+uint8_t ISO7816_process(void){
+	uint16_t ret;
+	
+	ISO7816_T1_Header t1_header;
+	
+	uint8_t ok;
+	uint8_t checksum = 0;
+	
+	uint8_t buffer[255];
+	
+	ok = ISO7816_read_t1_header(&t1_header, &checksum);                 //T1 Protocol header
+	if (!ok) return 0;
+	
+	ret = ISO7816_receive_buffer(buffer, t1_header.message_length); //Message Body (e.g. APDU)
+	if (ret == UART_ERR_TIMEOUT) return 0;
+	checksum ^= ret & 0xFF;
+	
+	ok = ok && ISO7816_read_t1_trailer(checksum); //T1 Protocol trailer (checksum)
+	
+	//------------ Process message ------------
+	if (ok){
+		if (t1_header.protocol_control == ISO7816_PCB_IFS_REQUEST){
+			t1_header.protocol_control = ISO7816_PCB_IFS_RESPONSE;
+			t1_header.node_address = 0;
+			
+		} else if (ISO7816_PCM_IS_I_BLOCK(t1_header.protocol_control)){
+			ISO7816_process_apdu(&t1_header, buffer);
+		} else {
+			ok = 0;
+		}
+	}
+	
+// 	PORTB |= (1 << 7);
+	
+	if (!ok) return 0;
+	
+	//------------ Send Answer ------------
+	_delay_us(200);
+	PORTB &= ~(1 << 7);
+	
+	UART_transmit_init();
+	_delay_us(200);
+	
+	checksum = 0;
+	checksum ^= ISO7816_transmit_t1_header(&t1_header);                    //Header
+	checksum ^= ISO7816_transmit_buffer(buffer, t1_header.message_length); //Payload
+	UART_transmit_char(checksum);                                          //Checksum
+	
+	UART_recv_init();  //switch back to receive mode.
+	
+	return ok;
+}
+
+uint8_t ISO7816_transmit_t1_header(ISO7816_T1_Header* t1_header){
+	//Node Address TODO: WTF is that? do i need to care?
+	uint8_t checksum = t1_header->node_address;
+	UART_transmit_char(t1_header->node_address);
+	
+	//Protocol control byte
+	checksum ^= t1_header->protocol_control; //seq_number ? 0x40 : 0x00;;
+	UART_transmit_char(t1_header->protocol_control);
+	
+	//Answer length (answer payload + 2 byte Status)
+// 	t1_header.message_length = answer_length + 2;
+	checksum ^= t1_header->message_length;
+	UART_transmit_char(t1_header->message_length);
+	
+	return checksum;
+}
+
+uint8_t ISO7816_transmit_buffer(uint8_t* buffer, uint8_t length){
+	uint8_t checksum = 0;
+	
+	for (uint8_t i = 0; i < length; i++){
+		UART_transmit_char(buffer[i]);
+		checksum ^= buffer[i];
+	}
+	return checksum;
+}
+
+uint16_t ISO7816_receive_buffer(uint8_t* buffer, uint8_t length){
+	uint8_t c;
+	uint8_t checksum = 0;
+	uint16_t ret;
+	
+	for (uint8_t i = 0; i < length; i++){
+		ret = UART_receive_char_timeout(ISO7816_APDU_READ_TIMEOUT);
+		if (ret == UART_ERR_TIMEOUT) return ISO7816_ERR_TIMEOUT;
+		c = ret & 0xFF;
+		checksum ^= c;
+		if (buffer) buffer[i] = c;
+	}
+	return checksum;
+}
+
+void ISO7816_set_apdu_handler(apdu_handler_t h){
+	handler = h;
+}
\ No newline at end of file
diff --git a/ATMegaCard/ISO7816-card.h b/ATMegaCard/ISO7816-card.h
new file mode 100644
index 0000000..9728a13
--- /dev/null
+++ b/ATMegaCard/ISO7816-card.h
@@ -0,0 +1,51 @@
+#pragma once
+
+#include "software_serial.h"
+#include "../common/ISO7816-common.h"
+
+#define ISO7816_APDU_READ_TIMEOUT 3000 //300ms
+#define ISO7816_ERR_TIMEOUT 0xFFFF
+
+#define ISO7816_STATUS_OK                                0x9000
+#define ISO7816_STATUS_ERR_INCORRECT_P1P2                0x6A86
+#define ISO7816_STATUS_ERR_WRONG_P1P2                    0x6B00
+#define ISO7816_STATUS_ERR_CORRECT_LENGTH_00             0x6C00
+#define ISO7816_STATUS_ERR_INS_NOT_SUPPORTED             0x6D00
+#define ISO7816_STATUS_ERR_CLA_NOT_SUPPORTED             0x6E00
+#define ISO7816_STATUS_ERR_BYTES_REMAINING_00            0x6100
+#define ISO7816_STATUS_ERR_WRONG_LENGTH                  0x6700
+#define ISO7816_STATUS_ERR_SECURITY_STATUS_NOT_SATISFIED 0x6982
+#define ISO7816_STATUS_ERR_FILE_INVALID                  0x6983
+#define ISO7816_STATUS_ERR_DATA_INVALID                  0x6984
+#define ISO7816_STATUS_ERR_CONDITIONS_NOT_SATISFIED      0x6985
+#define ISO7816_STATUS_ERR_COMMAND_NOT_ALLOWED           0x6986
+#define ISO7816_STATUS_ERR_WRONG_DATA                    0x6A80
+#define ISO7816_STATUS_ERR_FUNC_NOT_SUPPORTED            0x6A81
+#define ISO7816_STATUS_ERR_FILE_NOT_FOUND                0x6A82
+#define ISO7816_STATUS_ERR_RECORD_NOT_FOUND              0x6A83
+#define ISO7816_STATUS_ERR_APPLET_SELECT_FAILED          0x6999
+#define ISO7816_STATUS_ERR_UNKNOWN                       0x6F00
+
+struct ISO7816_T1_Header{
+	uint8_t node_address;
+	uint8_t protocol_control;
+	uint8_t message_length;
+} typedef ISO7816_T1_Header;
+
+#define ISO7816_PCM_IS_I_BLOCK(pcb) (((pcb) & 0x80) == 0)
+#define ISO7816_PCB_IFS_REQUEST 0xC1
+#define ISO7816_PCB_IFS_RESPONSE 0xE1
+
+#define MIN(a,b) (((a) < (b)) : (a) : (b))
+
+//uint16_t ISO7816_handle_adpu(ISO7816_APDU_Header* header, uint8_t* payload, uint8_t payload_length, uint8_t* answer_buffer, uint8_t* answer_length);
+
+typedef uint16_t(*apdu_handler_t)(ISO7816_APDU_Header*, uint8_t*, uint8_t, uint8_t*, uint8_t*);
+
+void ISO7816_init(void);
+void ISO7816_sendATR(void);
+uint8_t ISO7816_data_available(void);
+uint8_t ISO7816_process(void);
+void ISO7816_set_apdu_handler(apdu_handler_t handler);
+
+
diff --git a/ATMegaCard/Makefile b/ATMegaCard/Makefile
new file mode 100644
index 0000000..cb0f900
--- /dev/null
+++ b/ATMegaCard/Makefile
@@ -0,0 +1,398 @@
+# WinAVR Sample makefile written by Eric B. Weddington, Jörg Wunsch, et al.
+# Released to the Public Domain
+# Please read the make user manual!
+#
+# Additional material for this makefile was submitted by:
+#  Tim Henigan
+#  Peter Fleury
+#  Reiner Patommel
+#  Sander Pool
+#  Frederik Rouleau
+#  Markus Pfaff
+#
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF (for use with AVR Studio 3.x or VMLAB).
+#
+# make extcoff = Convert ELF to AVR Extended COFF (for use with AVR Studio
+#                4.07 or greater).
+#
+# make program = Download the hex file to the device, using avrdude.  Please
+#                customize the avrdude settings below first!
+#
+# make filename.s = Just compile filename.c into the assembler code only
+#
+# To rebuild project do "make clean" then "make all".
+#
+
+# MCU name
+
+MCU = atmega163
+
+
+
+#Fuse settings for ATmega163
+ifeq ($(MCU), atmega163)
+	FUSE_BITS = -u -U lfuse:w:0x81:m -U hfuse:w:0x01:m 
+	HEX_FILE_NAME = MEGA163
+endif
+
+# Output format. (can be srec, ihex, binary)
+FORMAT = ihex
+
+# Target file name (without extension).
+TARGET = out/atmegacard_$(HEX_FILE_NAME)
+
+# Optimization level, can be [0, 1, 2, 3, s]. 0 turns off optimization.
+# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
+OPT = s
+
+# If there is more than one source file, append them above, or modify and
+# uncomment the following:
+
+SRC = main.c software_serial.c ISO7816-card.c keystore.c rng.c ../common/sha1/sha1.c applications/portal/portal.c
+
+# List Assembler source files here.
+# Make them always end in a capital .S.  Files ending in a lowercase .s
+# will not be considered source files but generated files (assembler
+# output from the compiler), and will be deleted upon "make clean"!
+# Even though the DOS/Win* filesystem matches both .s and .S the same,
+# it will preserve the spelling of the filenames, and gcc itself does
+# care about how the name is spelled on its command-line.
+ASRC = 
+
+
+# List any extra directories to look for include files here.
+#     Each directory must be seperated by a space.
+EXTRAINCDIRS = 
+
+
+# Optional compiler flags.
+#  -g:        generate debugging information (for GDB, or for COFF conversion)
+#  -O*:       optimization level
+#  -f...:     tuning, see gcc manual and avr-libc documentation
+#  -Wall...:  warning level
+#  -Wa,...:   tell GCC to pass this to the assembler.
+#    -ahlms:  create assembler listing
+CFLAGS = -g -O$(OPT) \
+-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \
+-Wall -Wstrict-prototypes \
+-Wa,-adhlns=$(<:.c=.lst) \
+$(patsubst %,-I%,$(EXTRAINCDIRS))
+
+
+# Set a "language standard" compiler flag.
+#   Unremark just one line below to set the language standard to use.
+#   gnu99 = C99 + GNU extensions. See GCC manual for more information.
+#CFLAGS += -std=c89
+#CFLAGS += -std=gnu89
+#CFLAGS += -std=c99
+CFLAGS += -std=gnu99
+
+
+
+# Optional assembler flags.
+#  -Wa,...:   tell GCC to pass this to the assembler.
+#  -ahlms:    create listing
+#  -gstabs:   have the assembler create line number information; note that
+#             for use in COFF files, additional information about filenames
+#             and function names needs to be present in the assembler source
+#             files -- see avr-libc docs [FIXME: not yet described there]
+ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs 
+
+
+
+# Optional linker flags.
+#  -Wl,...:   tell GCC to pass this to linker.
+#  -Map:      create map file
+#  --cref:    add cross reference to  map file
+LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
+
+
+
+# Additional libraries
+
+# Minimalistic printf version
+#LDFLAGS += -Wl,-u,vfprintf -lprintf_min
+
+# Floating point printf version (requires -lm below)
+#LDFLAGS += -Wl,-u,vfprintf -lprintf_flt
+
+# -lm = math library
+LDFLAGS += -lm
+
+
+
+
+# Programming support using avrdude. Settings and variables.
+
+# Programming hardware: alf avr910 avrisp bascom bsd 
+# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
+#
+# Type: avrdude -c ?
+# to get a full listing.
+#
+
+#AVRDUDE_PROGRAMMER = AVR910
+AVRDUDE_PROGRAMMER = usbtiny
+# AVRDUDE_PROGRAMMER = USBasp
+
+AVRDUDE_PORT = usb        # programmer connected to USB port
+#AVRDUDE_PORT = com1	   # programmer connected to serial device
+#AVRDUDE_PORT = lpt1	       # programmer connected to parallel port
+
+AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex $(FUSE_BITS)
+#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
+
+#AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -b 115200 -c $(AVRDUDE_PROGRAMMER)
+AVRDUDE_FLAGS = -B 1 -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
+
+# Uncomment the following if you want avrdude's erase cycle counter.
+# Note that this counter needs to be initialized first using -Yn,
+# see avrdude manual.
+#AVRDUDE_ERASE += -y
+
+# Uncomment the following if you do /not/ wish a verification to be
+# performed after programming the device.
+#AVRDUDE_FLAGS += -V
+
+# Increase verbosity level.  Please use this when submitting bug
+# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> 
+# to submit bug reports.
+#AVRDUDE_FLAGS += -v -v
+
+
+
+
+# ---------------------------------------------------------------------------
+
+# Define programs and commands.
+SHELL = sh
+
+CC = avr-gcc
+
+OBJCOPY = avr-objcopy
+OBJDUMP = avr-objdump
+SIZE = avr-size
+
+
+# Programming support using avrdude.
+AVRDUDE = avrdude
+
+
+REMOVE = rm -f
+COPY = cp
+
+HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
+ELFSIZE = $(SIZE) -A $(TARGET).elf
+
+
+
+# Define Messages
+# English
+MSG_ERRORS_NONE = Errors: none
+MSG_BEGIN = -------- begin --------
+MSG_END = --------  end  --------
+MSG_SIZE_BEFORE = Size before: 
+MSG_SIZE_AFTER = Size after:
+MSG_COFF = Converting to AVR COFF:
+MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
+MSG_FLASH = Creating load file for Flash:
+MSG_EEPROM = Creating load file for EEPROM:
+MSG_EXTENDED_LISTING = Creating Extended Listing:
+MSG_SYMBOL_TABLE = Creating Symbol Table:
+MSG_LINKING = Linking:
+MSG_COMPILING = Compiling:
+MSG_ASSEMBLING = Assembling:
+MSG_CLEANING = Cleaning project:
+
+
+
+
+# Define all object files.
+OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) 
+
+# Define all listing files.
+LST = $(ASRC:.S=.lst) $(SRC:.c=.lst)
+
+# Combine all necessary flags and optional flags.
+# Add target processor to flags.
+ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS)
+ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
+
+
+
+# Default target.
+all: begin gccversion sizebefore $(TARGET).elf $(TARGET).hex $(TARGET).eep \
+	$(TARGET).lss $(TARGET).sym sizeafter finished end
+
+
+# Eye candy.
+# AVR Studio 3.x does not check make's exit code but relies on
+# the following magic strings to be generated by the compile job.
+begin:
+	@echo
+	@echo $(MSG_BEGIN)
+
+finished:
+	@echo $(MSG_ERRORS_NONE)
+
+end:
+	@echo $(MSG_END)
+	@echo
+
+
+# Display size of file.
+sizebefore:
+	@if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); echo; fi
+
+sizeafter:
+	@if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi
+
+
+
+# Display compiler version information.
+gccversion : 
+	@$(CC) --version
+
+
+
+
+# Convert ELF to COFF for use in debugging / simulating in
+# AVR Studio or VMLAB.
+COFFCONVERT=$(OBJCOPY) --debugging \
+	--change-section-address .data-0x800000 \
+	--change-section-address .bss-0x800000 \
+	--change-section-address .noinit-0x800000 \
+	--change-section-address .eeprom-0x810000 
+
+
+coff: $(TARGET).elf
+	@echo
+	@echo $(MSG_COFF) $(TARGET).cof
+	$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
+
+
+extcoff: $(TARGET).elf
+	@echo
+	@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
+	$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
+
+
+
+
+# Program the device.  
+program: $(TARGET).hex $(TARGET).eep
+	$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
+
+
+
+
+# Create final output files (.hex, .eep) from ELF output file.
+%.hex: %.elf
+	@echo
+	@echo $(MSG_FLASH) $@
+	$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
+
+%.eep: %.elf
+	@echo
+	@echo $(MSG_EEPROM) $@
+	-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
+	--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
+
+# Create extended listing file from ELF output file.
+%.lss: %.elf
+	@echo
+	@echo $(MSG_EXTENDED_LISTING) $@
+	$(OBJDUMP) -h -S $< > $@
+
+# Create a symbol table from ELF output file.
+%.sym: %.elf
+	@echo
+	@echo $(MSG_SYMBOL_TABLE) $@
+	avr-nm -n $< > $@
+
+
+
+# Link: create ELF output file from object files.
+.SECONDARY : $(TARGET).elf
+.PRECIOUS : $(OBJ)
+%.elf: $(OBJ)
+	@echo
+	@echo $(MSG_LINKING) $@
+	$(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS)
+
+
+# Compile: create object files from C source files.
+%.o : %.c
+	@echo
+	@echo $(MSG_COMPILING) $<
+	$(CC) -c $(ALL_CFLAGS) $< -o $@
+
+
+# Compile: create assembler files from C source files.
+%.s : %.c
+	$(CC) -S $(ALL_CFLAGS) $< -o $@
+
+
+# Assemble: create object files from assembler source files.
+%.o : %.S
+	@echo
+	@echo $(MSG_ASSEMBLING) $<
+	$(CC) -c $(ALL_ASFLAGS) $< -o $@
+
+
+
+
+
+
+# Target: clean project.
+clean: begin clean_list finished end
+
+clean_list :
+	@echo
+	@echo $(MSG_CLEANING)
+#	$(REMOVE) $(TARGET).hex
+	$(REMOVE) $(TARGET).eep
+	$(REMOVE) $(TARGET).obj
+	$(REMOVE) $(TARGET).cof
+	$(REMOVE) $(TARGET).elf
+	$(REMOVE) $(TARGET).map
+	$(REMOVE) $(TARGET).obj
+	$(REMOVE) $(TARGET).a90
+	$(REMOVE) $(TARGET).sym
+	$(REMOVE) $(TARGET).lnk
+	$(REMOVE) $(TARGET).lss
+	$(REMOVE) $(OBJ)
+	$(REMOVE) $(LST)
+	$(REMOVE) $(SRC:.c=.s)
+	$(REMOVE) $(SRC:.c=.d)
+
+
+# Automatically generate C source code dependencies. 
+# (Code originally taken from the GNU make user manual and modified 
+# (See README.txt Credits).)
+#
+# Note that this will work with sh (bash) and sed that is shipped with WinAVR
+# (see the SHELL variable defined above).
+# This may not work with other shells or other seds.
+#
+%.d: %.c
+	set -e; $(CC) -MM $(ALL_CFLAGS) $< \
+	| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > $@; \
+	[ -s $@ ] || rm -f $@
+
+
+# Remove the '-' if you want to see the dependency files generated.
+-include $(SRC:.c=.d)
+
+
+
+# Listing of phony targets.
+.PHONY : all begin finish end sizebefore sizeafter gccversion coff extcoff \
+	clean clean_list program
+
diff --git a/ATMegaCard/applications/applications.h b/ATMegaCard/applications/applications.h
new file mode 100644
index 0000000..b0bd87c
--- /dev/null
+++ b/ATMegaCard/applications/applications.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "../ISO7816-card.h"
+
+typedef uint8_t application_id_t[5];
+
+struct application_t{
+	application_id_t aid;
+	void (*init)(void);
+	apdu_handler_t (*select)(void);
+	void (*deselect)(void);
+} typedef application_t;
+
+
+/* ****** Place application defined here ****** */
+
+#include "portal/portal.h"
+#define NUM_APPLICATIONS 1
+#define APPLICATIONS {APP_PORTAL}
+
+void portal_init(void);
+apdu_handler_t portal_select(void);
+void portal_deselect(void);
+
diff --git a/ATMegaCard/applications/portal/portal.c b/ATMegaCard/applications/portal/portal.c
new file mode 100644
index 0000000..2e1ed6a
--- /dev/null
+++ b/ATMegaCard/applications/portal/portal.c
@@ -0,0 +1,126 @@
+#include <string.h>
+#include "portal.h"
+#include "../../ISO7816-card.h"
+#include "keystore.h"
+#include "../../rng.h"
+
+#define PORTAL_INS_QUERY_VERSION 0x00
+#define PORTAL_INS_INIT_KEY      0x01
+#define PORTAL_INS_AUTH          0x02
+#define PORTAL_INS_UPDATE_KEY    0x03
+
+uint16_t portal_handle_adpu(ISO7816_APDU_Header* header,
+							 uint8_t* payload,
+							 uint8_t payload_length,
+							 uint8_t* answer_buffer,
+							 uint8_t* answer_length);
+
+sha1_ctx_t sha1_state;
+uint8_t challenge[sizeof(SALT)];
+uint8_t current_auth_key = 1;
+
+void portal_init(void){
+	rnd_get_bytes(challenge, sizeof(SALT));
+}
+
+apdu_handler_t portal_select(void){
+	return portal_handle_adpu;
+}
+
+uint16_t portal_handle_adpu(ISO7816_APDU_Header* header,
+							 uint8_t* payload,
+							 uint8_t payload_length,
+							 uint8_t* answer_buffer,
+							 uint8_t* answer_length){
+	
+	switch (header->instruction){
+		case PORTAL_INS_QUERY_VERSION:
+			if (*answer_length < 1) return ISO7816_STATUS_ERR_WRONG_LENGTH;
+			
+			*answer_length = 1;
+			answer_buffer[0] = 2;
+			return ISO7816_STATUS_OK;
+			break;
+			
+			
+		case PORTAL_INS_INIT_KEY:
+			if (payload_length != sizeof(KEY)) return ISO7816_STATUS_ERR_WRONG_LENGTH + payload_length+1;
+			
+			*answer_length = 0;
+			if (keystore_is_empty()){
+				keystore_init_key(payload);
+				return ISO7816_STATUS_OK;
+			} else {
+				return ISO7816_STATUS_ERR_CONDITIONS_NOT_SATISFIED;
+			}
+			break;
+			
+			
+		case PORTAL_INS_AUTH:
+			if (*answer_length < sizeof(HASH) + sizeof(SALT)) return ISO7816_STATUS_ERR_WRONG_LENGTH;
+			if (payload_length != sizeof(SALT)) return ISO7816_STATUS_ERR_WRONG_LENGTH;
+			
+			current_auth_key = !current_auth_key;
+			*answer_length = sizeof(HASH) + sizeof(SALT);
+			sha1_init(&sha1_state);
+			sha1_nextBlock(&sha1_state, keystore_get_key(current_auth_key));
+			sha1_lastBlock(&sha1_state, payload, sizeof(SALT)*8);
+			sha1_ctx2hash(answer_buffer, &sha1_state);
+			memcpy(answer_buffer + sizeof(HASH), challenge, sizeof(SALT));
+			
+			return ISO7816_STATUS_OK;
+			break;
+			
+			
+		case PORTAL_INS_UPDATE_KEY:
+			if (payload_length != sizeof(KEY)+ sizeof(HASH)) return ISO7816_STATUS_ERR_WRONG_LENGTH;
+			*answer_length = 0;
+			
+			uint8_t* new_key_delta = payload;
+			uint8_t* challange_response = payload + sizeof(KEY);
+			
+			sha1_init(&sha1_state);
+			sha1_nextBlock(&sha1_state, keystore_get_key(current_auth_key));
+			sha1_lastBlock(&sha1_state, challenge, sizeof(SALT)*8);
+			if (! sha1_ctx_hash_compare(challange_response, &sha1_state)){
+				return ISO7816_STATUS_ERR_SECURITY_STATUS_NOT_SATISFIED;
+// 				*answer_length = 20;
+// 				memcpy(answer_buffer, (const void*)challange_response, 20);
+// 				return ISO7816_STATUS_OK;
+			}
+			
+			
+			keystore_update_key(new_key_delta, current_auth_key);
+			
+			return ISO7816_STATUS_OK;
+			break;
+			
+			
+		case 0xFE:
+			if (*answer_length < sizeof(KEY)) return ISO7816_STATUS_ERR_WRONG_LENGTH;
+			
+			memset(answer_buffer, 0xBB, sizeof(KEY));
+			memcpy(answer_buffer, keystore_get_key(0), sizeof(KEY));
+			if (*answer_length < 2*sizeof(KEY)){
+				*answer_length = sizeof(KEY);
+			} else {
+				memcpy(answer_buffer + sizeof(KEY), keystore_get_key(1), sizeof(KEY));
+				*answer_length = 2*sizeof(KEY);
+			}
+			return ISO7816_STATUS_OK;
+			break;
+			
+			
+		case 0xFF:
+			*answer_length = 0;
+			keystore_clear();
+			
+			return ISO7816_STATUS_OK;
+			break;
+	}
+	return ISO7816_STATUS_ERR_INS_NOT_SUPPORTED;
+}
+
+void portal_deselect(void){
+	
+}
diff --git a/ATMegaCard/applications/portal/portal.h b/ATMegaCard/applications/portal/portal.h
new file mode 100644
index 0000000..3a8f574
--- /dev/null
+++ b/ATMegaCard/applications/portal/portal.h
@@ -0,0 +1,7 @@
+#include "../applications.h"
+
+void portal_init(void);
+apdu_handler_t portal_select(void);
+void portal_deselect(void);
+
+#define APP_PORTAL {"\x23\x23\x00\x42\x42", portal_init, portal_select, portal_deselect}
\ No newline at end of file
diff --git a/ATMegaCard/common.h b/ATMegaCard/common.h
new file mode 100644
index 0000000..3c7f217
--- /dev/null
+++ b/ATMegaCard/common.h
@@ -0,0 +1 @@
+#define F_CPU 3579500
\ No newline at end of file
diff --git a/ATMegaCard/keystore.c b/ATMegaCard/keystore.c
new file mode 100644
index 0000000..b23e9e3
--- /dev/null
+++ b/ATMegaCard/keystore.c
@@ -0,0 +1,77 @@
+/**
+ * This Keystore manages two keyslots, a "primary" and a "secondary" slot
+ * The key locations (0 and 1) are at EEPROM location EEP_KEY_OFFSET and EEP_KEY_OFFSET+sizeof(KEY)
+ * The value at EEP_PRIMARY_KEY_SLOT declares which keyslot (0 or 1) ist the "primary" slot.
+ * The remaining one is the "secondary"
+ * 
+ * If the "primary" key is requested, the value at EEP_PRIMARY_KEY_SLOT is looked up and the key is read from the indicated location
+ * If the "secondary" key is requested the key is read from the alternate location.
+ * 
+ * When the "primary" key is updated (parameter "update_secondary" = false) the "secondary" keyslot is overwritten
+ * with the new key and then declared as "primary" by flipping the value stored at EEP_PRIMARY_KEY_SLOT.
+ * This procedure ensures that there is always one valid key in the store.
+ * 
+ * When the "secondary" key is updated (parameter "update_secondary" = false) the "primary" keyslot is overwritten
+ * with the new key. The value at EEP_PRIMARY_KEY_SLOT stays unchanged, declaring the new key as "primary".
+ * The old secondary key stays at place.
+ * This procedure ensures that there is always one valid key in the store.
+ */
+
+#include "keystore.h"
+
+
+#define EEP_PRIMARY_KEY_SLOT 127
+#define EEP_KEY_OFFSET 128
+
+static uint8_t get_keyslot_index(uint8_t secondary);
+static void write_new_primary_key(uint8_t* key, uint8_t slotindex);
+void xor(uint8_t* src1dst, uint8_t* src2, uint8_t length);
+
+uint8_t keybuffer[sizeof(KEY)];
+
+uint8_t keystore_is_empty(void){
+	return (eeprom_read_byte((const uint8_t*)EEP_PRIMARY_KEY_SLOT) == 0xFF);
+}
+uint8_t* keystore_get_key(int8_t secondary){
+	uint8_t slotindex = get_keyslot_index(secondary);
+	
+	eeprom_read_block(keybuffer, (const void*)EEP_KEY_OFFSET + (slotindex*sizeof(KEY)), sizeof(KEY));
+	return keybuffer;
+}
+
+void keystore_init_key(uint8_t* key){
+	uint8_t slotindex = get_keyslot_index(0);
+	write_new_primary_key(key, slotindex);
+}
+
+void keystore_update_key(uint8_t* new_key_delta, uint8_t update_secondary){
+	uint8_t read_slotindex = get_keyslot_index(update_secondary); //read from the valid slot
+	
+	eeprom_read_block(keybuffer, (const void*)EEP_KEY_OFFSET + (read_slotindex*sizeof(KEY)), sizeof(KEY));
+	xor(keybuffer, new_key_delta, sizeof(KEY));
+	
+	uint8_t write_slotindex = get_keyslot_index(!update_secondary); //write to the invalid slot
+	write_new_primary_key(keybuffer, write_slotindex);
+}
+
+void keystore_clear(void){
+	for (uint8_t i = 0; i < sizeof(KEY)*2; i++){
+		eeprom_write_byte((uint8_t*)(EEP_KEY_OFFSET+i), 0xFF);
+	}
+	eeprom_write_byte((uint8_t*)EEP_PRIMARY_KEY_SLOT, 0xFF);
+}
+
+static uint8_t get_keyslot_index(uint8_t secondary){
+	uint8_t primary_slot = eeprom_read_byte((const uint8_t*)EEP_PRIMARY_KEY_SLOT);
+	if (primary_slot > 1) primary_slot = 0;
+	return secondary ? !primary_slot : primary_slot;
+}
+static void write_new_primary_key(uint8_t* key, uint8_t slotindex){
+	eeprom_write_block(key, (void*)EEP_KEY_OFFSET + (slotindex*sizeof(KEY)) , sizeof(KEY));
+	eeprom_write_byte((uint8_t*)EEP_PRIMARY_KEY_SLOT, slotindex);
+}
+void xor(uint8_t* src1dst, uint8_t* src2, uint8_t length){
+	for (uint8_t i = 0; i < length; i++){
+		src1dst[i] ^= src2[i];
+	}
+}
diff --git a/ATMegaCard/keystore.h b/ATMegaCard/keystore.h
new file mode 100644
index 0000000..1b52a7e
--- /dev/null
+++ b/ATMegaCard/keystore.h
@@ -0,0 +1,31 @@
+#include <avr/eeprom.h>
+#include "../common/card_common.h"
+
+/**
+ * Returns non-zero result if the keystore is empty.
+ * Returns zero if at least one key has been stored.
+ */
+uint8_t keystore_is_empty(void);
+
+/**
+ * Initializes the "primary" key of the keystore
+ */
+void keystore_init_key(uint8_t* key);
+
+/**
+ * Loads a key to the keybuffer and returns the pointer to it. The pointer is valid until the next call to a keystore_ method.
+ * @param secondary  0 - load the primary key, 1 - load the secondary key
+ */
+uint8_t* keystore_get_key(int8_t secondary);
+
+/**
+ * Update a key with the given key_delta. 
+ * @param new_key_delta bitwise XOR between the old key and the given key_delta is performed and the result is stored.
+ * @param update_secondary 0 - update the primary key (and mark it as primary) 1 - update the secondary key (and mark it as primary)
+ */
+void keystore_update_key(uint8_t* new_key_delta, uint8_t update_secondary);
+
+/**
+ * Delete all keys from the keystore
+ */
+void keystore_clear(void);
\ No newline at end of file
diff --git a/ATMegaCard/main.c b/ATMegaCard/main.c
new file mode 100644
index 0000000..270701f
--- /dev/null
+++ b/ATMegaCard/main.c
@@ -0,0 +1,77 @@
+#include "common.h"
+#include <avr/io.h>
+#include <util/delay.h>
+#include <string.h>
+#include "rng.h"
+
+#include "ISO7816-card.h"
+#include "applications/applications.h"
+
+#define INS_APPLICATION_MANAGER 0xA4
+#define APPLICATION_MANAGER_P1_SELECT 0x04
+
+application_t applications[NUM_APPLICATIONS] = APPLICATIONS;
+
+uint16_t main_handle_adpu(ISO7816_APDU_Header* header,
+						  uint8_t* payload,
+						  uint8_t payload_length,
+						  uint8_t* answer_buffer,
+						  uint8_t* answer_length);
+
+uint8_t current_application = 0xFF;
+
+int main(void){
+	//DDRB = (1 << 5) | (1 << 7);
+// 	ISO7816_init();
+	ISO7816_set_apdu_handler(main_handle_adpu);
+	ISO7816_sendATR();
+	sei();
+	rnd_init();
+	
+	
+	for (uint8_t i = 0; i < NUM_APPLICATIONS; i++){
+		applications[i].init();
+	}
+	
+	while(1){
+		if (ISO7816_data_available()){
+			ISO7816_process();
+		}
+	}
+}
+
+uint16_t main_handle_adpu(ISO7816_APDU_Header* header,
+						  uint8_t* payload,
+						  uint8_t payload_length,
+						  uint8_t* answer_buffer,
+						  uint8_t* answer_length){
+	
+	*answer_length = 0;
+	
+	
+	if (header->instruction == INS_APPLICATION_MANAGER){
+		
+		if (header->param1 == APPLICATION_MANAGER_P1_SELECT){
+			for (uint8_t i = 0; i < NUM_APPLICATIONS; i++){
+				if (memcmp(applications[i].aid, payload, sizeof(application_id_t)) == 0){
+					if (current_application != 0xFF) applications[current_application].deselect();
+					ISO7816_set_apdu_handler(applications[i].select());
+					return APDU_RESULT_OK;
+				}
+			}
+			return ISO7816_STATUS_ERR_FILE_NOT_FOUND;
+		} else {
+			return ISO7816_STATUS_ERR_WRONG_P1P2;
+		}
+	} else if (header->instruction == 0x11){
+		for (uint8_t i = 0; i < 32; i++){
+			answer_buffer[i] = rnd_get_byte();
+		}
+		*answer_length = 32;
+		return APDU_RESULT_OK;
+		
+	} else {
+		return ISO7816_STATUS_ERR_INS_NOT_SUPPORTED;
+	}
+	
+}
\ No newline at end of file
diff --git a/ATMegaCard/rnd b/ATMegaCard/rnd
new file mode 100644
index 0000000000000000000000000000000000000000..d36f2af328a4c177221926377bd8c3d53dd2880d
GIT binary patch
literal 95808
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
O2K7K?3^`piVE+Tecfnf#

literal 0
HcmV?d00001

diff --git a/ATMegaCard/rng.c b/ATMegaCard/rng.c
new file mode 100644
index 0000000..de84364
--- /dev/null
+++ b/ATMegaCard/rng.c
@@ -0,0 +1,45 @@
+#include <avr/io.h>
+#include <util/crc16.h>
+
+#define ADC_RNG_CHANNEL 0
+
+uint16_t seed;
+
+uint8_t rnd_adc_read(void);
+
+void rnd_init(void){
+	seed = 0xFFFF;
+	seed = _crc16_update(seed, rnd_adc_read());
+	seed = _crc16_update(seed, rnd_adc_read());
+}
+
+uint8_t rnd_adc_read(void){
+	uint8_t result = 0;
+	
+	ADMUX = ADC_RNG_CHANNEL | (1 << REFS0); // Select channel,  AVCC Reference voltage.
+	
+	ADCSR = (1<<ADEN) | (1 << ADPS1); // Enable ADC (Prescaler 4)
+	
+// 	for (uint8_t i = 0; i < 8; i++){
+	ADCSR |= (1<<ADSC);
+	while (ADCSR & (1<<ADSC)) {;}
+// 		
+// 		result = (ADCL & 1) << i;
+// 		ADCH;         
+// 	}
+	result = ADCL;
+	ADCH;
+	
+	return result;
+}
+
+uint8_t rnd_get_byte(void){
+	seed = _crc16_update(seed, rnd_adc_read());
+	return ((seed & 0xFF) ^ (seed >> 8));
+}
+
+void rnd_get_bytes(uint8_t* buffer, uint8_t length){
+	for (uint8_t i = 0; i < length; i++){
+		buffer[i] = rnd_get_byte();
+	}
+}
\ No newline at end of file
diff --git a/ATMegaCard/rng.h b/ATMegaCard/rng.h
new file mode 100644
index 0000000..c309ffe
--- /dev/null
+++ b/ATMegaCard/rng.h
@@ -0,0 +1,3 @@
+void rnd_init(void);
+uint8_t rnd_get_byte(void);
+void rnd_get_bytes(uint8_t* buffer, uint8_t length);
\ No newline at end of file
diff --git a/ATMegaCard/software_serial.c b/ATMegaCard/software_serial.c
new file mode 100644
index 0000000..bd9fb39
--- /dev/null
+++ b/ATMegaCard/software_serial.c
@@ -0,0 +1,221 @@
+#include "software_serial.h"
+
+#ifdef UART_USE_AS_STDOUT //Sets up the serial port as a stream for stdout. With this printf and stuff will write to the serial port.
+	#include <stdio.h>
+	
+	void UART_transmit_stdout(char c, FILE* stream){
+		UART_transmit_char((unsigned char)c);
+	}
+
+    static FILE UART_stdout = FDEV_SETUP_STREAM(UART_transmit_stdout, NULL, _FDEV_SETUP_WRITE);
+#endif
+
+
+/**
+ * Initializes the Software UART
+ */
+void UART_init(void){
+	#ifdef UART_USE_AS_STDOUT
+		stdout = &UART_stdout; //assign serial output stream as stdout.
+	#endif
+	
+	UART_recv_init();
+}
+
+/**
+ * Switches the UART to transmit mode
+ */
+void UART_transmit_init(void){
+	cli(); //interrupts disable (messes up send timings otherwise)
+	SWSERIAL_PORT |= (1 << SWSERIAL_LINE); //data line to high level (otherwise we might trigger a start bit)
+	SWSERIAL_PORT_DR |= (1 << SWSERIAL_LINE); //output
+}
+
+/**
+ * Sends a 0-terminated string
+ * Note: The caller must to switch to transmit mode before calling this
+ */
+void UART_transmit_buffer_sz(char* buffer){
+	while (buffer[0] != 0){
+		UART_transmit_char(buffer[0]);
+		buffer++;
+	}
+}
+
+/**
+ * Sends a byte coverted to hex digits
+ * Note: The caller must to switch to transmit mode before calling this
+ */
+void UART_transmit_byte_hex(unsigned char b){
+
+	unsigned char n;
+	n = '0' + (b >> 4 & 0xF);
+	UART_transmit_char((n > '9') ? n + 7 : n);
+	n = '0' + (b & 0xF);
+	UART_transmit_char((n > '9') ? n + 7 : n);
+}
+
+
+/**
+ * Writes a single character to the data line, bit-by-bit
+ * Note: The caller must to switch to transmit mode before calling this
+ */
+void UART_transmit_char(unsigned char x){
+
+	_delay_us(BIT_LENGTH); //guard time beween bytes
+	
+	WRITE(0); //start bit
+	
+	#if SWSERIAL_PARITY == EVEN
+		uint8_t parity = 0;
+	#endif
+	#if SWSERIAL_PARITY == ODD
+		uint8_t parity = 1;
+	#endif
+	for (unsigned char i = 0; i < 8; i++){
+		_delay_us(BIT_LENGTH - INST_LENGTH(8));
+		WRITE(x & 1);
+		#if SWSERIAL_PARITY != NONE
+			parity ^= x & 1;
+		#endif
+		x >>= 1;
+	}
+	
+	#if (SWSERIAL_PARITY != NONE)
+		_delay_us(BIT_LENGTH - INST_LENGTH(8));
+		WRITE(parity);		
+	#endif
+	
+	_delay_us(BIT_LENGTH - INST_LENGTH(8));
+	WRITE(1); //stop bit
+	
+	#if SWSERIAL_STOPBITS == 2
+	_delay_us(BIT_LENGTH - INST_LENGTH(8));
+	WRITE(1); //stop bit 2
+	#endif
+	
+	_delay_us(BIT_LENGTH); //guard time beween bytes
+	_delay_us(BIT_LENGTH); //guard time beween bytes
+}
+
+
+//------------------------- Receive code ----------------------------
+
+uint8_t recv_buffer1 = 0;          //Byte currently beeing received (only used by timer interrupt handler)
+uint8_t recv_bits = 0;             //Number of bits done in current receive (only used by timer interrupt handler)
+volatile uint8_t recv_buffer2 = 0; //Last Byte that finished receiving
+volatile uint8_t recv_avail = 0;   //Is a byte ready to be processed?
+volatile uint8_t recv_parity;
+volatile uint8_t recv_valid = 0;    //Did we receive 1 for the stop bits and valid parity
+
+/**
+ * Switch UART into receive mode
+ */
+void UART_recv_init(void){
+	SWSERIAL_PORT_DR &= ~(1 << SWSERIAL_LINE); //set Serial pin to input
+	SWSERIAL_PORT |= (1 << SWSERIAL_LINE); //pullup
+	
+	DDRB |= (1 << 5) | (1 << 7);
+	
+	TIFR = (1 << ICF1); //clear old interrupt flag.
+	TIMSK = 1 << TICIE1; //enable ICP interrupt, disable timer compare interrupt
+	TCCR1B =  (1 << CS10)   //Timer prescaler = 1
+// #ifdef CTC1
+			| (1 << CTC1)   //Clear timer on compare match (important for exact timing, don't do it in software)
+// #else
+// 			| (1 << WGM12)
+// #endif
+			| (1 << ICNC1) //Capture interrupt noise canceler enable (filters out very short spikes  < 4 clks)
+// #ifdef ICES1
+// 			| (1 << ICES1)
+// #endif
+			;
+	
+	OCR1A  = 372; //Default smartcard conversion factor 3571200Hz/372(clks/bit) = 9600bit/s
+	
+	sei(); //global interrupt enable
+}
+
+/**
+ * Is a byte available to be processed?
+ */
+inline uint8_t UART_data_available(void){
+	return recv_avail != 0;
+}
+/**
+ * Reads the last byte that was received.
+ * Resets the availability flag.
+ */
+uint8_t UART_read_char(void){
+	recv_avail = 0;
+	return recv_buffer2;
+}
+
+uint16_t UART_receive_char_timeout(uint16_t timeout){
+	while ((timeout > 0) && (recv_avail == 0)) {_delay_us(100); timeout--;}
+	if (recv_avail == 0) return UART_ERR_TIMEOUT;
+	
+	return UART_read_char();
+}
+
+/**
+ * Enables the timer (interrupt) that samples the data line to receive the bits.
+ * Disables the Capture (ICP) interrupt that triggered on the start bit.
+ */
+void UART_start_read(void){
+	recv_bits = 0;
+	
+	#if SWSERIAL_PARITY == EVEN
+		recv_parity = 0;
+	#endif
+	#if SWSERIAL_PARITY == ODD
+		recv_parity = 1;
+	#endif
+	
+	TCNT1 = 0xFFFF-70; //Timer value. We start above the match counter, instead of starting af 0, this makes the first tick take a little longer, moving the sampling further inside the bit, not at the very beginning.
+
+	TIFR = (1 << OCF1A); //clear old interrupt flag
+	TIMSK = (1 << OCIE1A); //Disable ICP interrupt, Enable timer Compare Interrupt.
+}
+
+/**
+ * Capture interrupt, trigered by a falling edge on the data line (start bit)
+ */
+ISR(TIMER1_CAPT_vect){
+	PORTB |= (1 << 5); //Debug
+	UART_start_read();
+	PORTB &= ~(1 << 5); //Debug
+}
+
+/**
+ * Timer interrupt, samples the data line and writes the bits to the recv buffer.
+ * If all bits are read it returns control to the Capture interrupt and disables itself.
+ */
+ISR(TIMER1_COMPA_vect){
+	PORTB |= (1 << 7); //Debug
+	
+	uint8_t bit = (SWSERIAL_PIN & (1 << SWSERIAL_LINE)) ? 1 : 0;
+	
+	if (recv_bits < 8){
+		recv_buffer1 >>= 1;
+		recv_buffer1 |= (bit ? 0x80 : 0);
+		if (bit) recv_parity = !recv_parity;
+	}
+	if (recv_bits == 8){
+		recv_valid = bit == recv_parity;
+	}
+	if (recv_bits == 9){
+		if (!bit) recv_valid = 0;
+	}
+	
+	recv_bits++;
+	if (recv_bits == 10){
+		if (recv_valid){
+			recv_buffer2 = recv_buffer1;
+			recv_avail = 1;
+		}
+		recv_bits = 0;
+		UART_recv_init();
+	}
+	PORTB &= ~(1 << 7); //Debug
+}
diff --git a/ATMegaCard/software_serial.h b/ATMegaCard/software_serial.h
new file mode 100644
index 0000000..e7a423a
--- /dev/null
+++ b/ATMegaCard/software_serial.h
@@ -0,0 +1,58 @@
+#include "common.h"
+#include <avr/io.h>
+#include <util/delay_basic.h>
+#include <util/delay.h>
+#include <avr/interrupt.h>
+
+//Serial Data Line: PD6  (ICP)
+
+#define BAUD 9600
+#define SWSERIAL_PARITY EVEN
+#define SWSERIAL_STOPBITS 2
+#define SWSERIAL_PORT_NAME D
+#define SWSERIAL_LINE 6
+
+#define UART_ERR_TIMEOUT 0xFFFF
+
+#ifndef XPASTE
+	//Macro magic to glue #defined names together. See http://groups.google.com/group/comp.lang.c/msg/8c085fe5a8ad1296?hl=en
+	#define PASTE(a,b) a ## b
+	#define XPASTE(a,b) PASTE(a,b)
+#endif
+
+#define EVEN 1
+#define ODD  2
+#define NONE 0
+#ifndef SWSERIAL_PARITY
+	#define SWSERIAL_PARITY NONE
+#endif
+#ifndef SWSERIAL_STOPBITS
+	#define SWSERIAL_STOPBITS 1
+#endif
+
+#define BIT_LENGTH 1000000/BAUD //(µSec) Duration of a RS232 Bit
+
+#define SWSERIAL_PORT_DR XPASTE(DDR, SWSERIAL_PORT_NAME)
+#define SWSERIAL_PORT    XPASTE(PORT,SWSERIAL_PORT_NAME)
+#define SWSERIAL_PIN     XPASTE(PIN, SWSERIAL_PORT_NAME)
+
+#define WRITE(x) if ((x) != 0) {SWSERIAL_PORT |= (1 << SWSERIAL_LINE);} else {SWSERIAL_PORT &= (unsigned char)~(1 << SWSERIAL_LINE);}
+
+
+#define INST_LENGTH(count) ((1000000*count)/F_CPU)  //(µSec) Duration of count CPU Instructions
+
+void UART_transmit_char(unsigned char data);
+
+void UART_transmit_buffer_sz(char* buffer);
+void UART_transmit_byte_hex(unsigned char b);
+
+void UART_init(void);
+
+void UART_transmit_init(void);
+void UART_recv_init(void);
+
+void UART_transmit_char(unsigned char x);
+
+uint8_t UART_data_available(void);
+uint8_t UART_read_char(void);
+uint16_t UART_receive_char_timeout(uint16_t timeout);
\ No newline at end of file
-- 
GitLab