The unified diff between revisions [455efdbb..] and [e94fdd3f..] is displayed below. It can also be downloaded as a raw diff.

#
#
# patch "mifare.py"
#  from [c5e94d81f17816ea1cf476a6f883e7f1d7de4c15]
#    to [cf6486313163353b16b0a553a71932b547b15c90]
#
============================================================
--- mifare.py	c5e94d81f17816ea1cf476a6f883e7f1d7de4c15
+++ mifare.py	cf6486313163353b16b0a553a71932b547b15c90
@@ -38,6 +38,8 @@ class MIFAREReader:
         self.address = '\x00\x00'

     def _get_absolute_block(self, vector):
+        if not isinstance(vector, tuple) or len(vector) != 2:
+            raise ValueError, 'Inappropriate sector/block vector'
         if vector[0] < 32:
             return vector[0] * 4 + vector[1]
         else:
@@ -126,8 +128,12 @@ class MIFAREReader:

         return

-    def read_block(self, blocknum):
-        pass
+    def read_block(self, blockvect):
+        "Read the 16-byte block at vector (sector, block)."
+        block = self.get_absolute_block(blockvect)
+
+        result = self.send_packet('\x08\x02' + chr(block))
+        return result[3:19]

     def write_block(self, blocknum, data):
         pass