make writing SMSP optional

Change-Id: Ic5fdd397244cfe73b5b6a12883316072cc10f7b4
diff --git a/pySim/cards.py b/pySim/cards.py
index cb42d83..55282aa 100644
--- a/pySim/cards.py
+++ b/pySim/cards.py
@@ -394,8 +394,9 @@
 			data, sw = self._scc.update_binary('6f78', lpad(p['acc'], 4))
 
 		# EF.SMSP
-		r = self._scc.select_file(['3f00', '7f10', '6f42'])
-		data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 80))
+                if p.get('smsp'):
+			r = self._scc.select_file(['3f00', '7f10', '6f42'])
+			data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 80))
 
 		# Set the Ki using proprietary command
 		pdu = '80d4020010' + p['ki']
@@ -535,7 +536,8 @@
 		r = self._scc.select_file(['3f00', '7f10'])
 		
 		# write EF.SMSP
-		data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 80))
+                if p.get('smsp'):
+			data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 80))
 
 	def erase(self):
 		return
@@ -614,8 +616,9 @@
 				print("Programming AD failed with code %s"%sw)
 
 		# EF.SMSP
-		r = self._scc.select_file(['3f00', '7f10'])
-		data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 104), force_len=True)
+		if p.get('smsp'):
+			r = self._scc.select_file(['3f00', '7f10'])
+			data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 104), force_len=True)
 
 	def erase(self):
 		return