Changeset 200

Show
Ignore:
Timestamp:
06/25/10 23:41:30 (4 years ago)
Author:
lrousseau
Message:

add .toDict() and .str() methods to CK_SLOT_INFO, CK_INFO,
CK_SESSION_INFO and CK_TOKEN_INFO.

It is now possible to just print an object of these classes and have a
human readable version.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pykcs11/trunk/PyKCS11/__init__.py

    r199 r200  
    9292        return r 
    9393 
     94    def toDict(self): 
     95        """ 
     96        return a dictionnary with all the fields of the class 
     97        """ 
     98        return {"slotDescription": self.slotDescription.strip(), 
     99                "manufacturerID": self.manufacturerID.strip(), 
     100                "flags": ", ".join(self.flags2text()), 
     101                "hardwareVersion": self.hardwareVersion, 
     102                "firmwareVersion": self.firmwareVersion} 
     103 
     104    def __str__(self): 
     105        dico = self.toDict() 
     106        lines = list() 
     107        for key in dico.keys(): 
     108            lines.append("%s: %s" % (key, dico[key])) 
     109        return "\n".join(lines) 
     110 
    94111 
    95112class CK_INFO(object): 
     
    109126    """ 
    110127 
     128    def toDict(self): 
     129        """ 
     130        return a dictionnary with all the fields of the class 
     131        """ 
     132        return {"cryptokiVersion": "%d.%d" % self.cryptokiVersion, 
     133                "manufacturerID": self.manufacturerID.strip(), 
     134                "flags": self.flags, 
     135                "libraryDescription": self.libraryDescription.strip(), 
     136                "libraryVersion": "%d.%d" % self.libraryVersion} 
     137 
     138    def __str__(self): 
     139        dico = self.toDict() 
     140        lines = list() 
     141        for key in dico.keys(): 
     142            lines.append("%s: %s" % (key, dico[key])) 
     143        return "\n".join(lines) 
     144 
    111145 
    112146class CK_SESSION_INFO(object): 
     
    152186        """ 
    153187        return CKS[self.state] 
     188 
     189    def toDict(self): 
     190        """ 
     191        return a dictionnary with all the fields of the class 
     192        """ 
     193        return {"slotID": self.slotID, 
     194                "state": self.state2text(), 
     195                "flags": ", ".join(self.flags2text()), 
     196                "ulDeviceError": self.ulDeviceError} 
     197 
     198    def __str__(self): 
     199        dico = self.toDict() 
     200        lines = list() 
     201        for key in dico.keys(): 
     202            lines.append("%s: %s" % (key, dico[key])) 
     203        return "\n".join(lines) 
    154204 
    155205 
     
    231281        return r 
    232282 
     283    def toDict(self): 
     284        """ 
     285        return a dictionnary with all the fields of the class 
     286        """ 
     287        return {"label": self.label, 
     288                "manufacturerID": self.manufacturerID, 
     289                "model": self.model, 
     290                "serialNumber": self.serialNumber, 
     291                "flags": ", ".join(self.flags2text()), 
     292                "ulMaxSessionCount": self.ulMaxSessionCount, 
     293                "ulSessionCount": self.ulSessionCount, 
     294                "ulMaxRwSessionCount": self.ulMaxRwSessionCount, 
     295                "ulRwSessionCount": self.ulRwSessionCount, 
     296                "ulMaxPinLen": self.ulMaxPinLen, 
     297                "ulMinPinLen": self.ulMinPinLen, 
     298                "ulTotalPublicMemory": self.ulTotalPublicMemory, 
     299                "ulFreePublicMemory": self.ulFreePublicMemory, 
     300                "ulTotalPrivateMemory": self.ulTotalPrivateMemory, 
     301                "ulFreePrivateMemory": self.ulFreePrivateMemory, 
     302                "hardwareVersion": "%d.%d" % self.hardwareVersion, 
     303                "firmwareVersion": "%d.%d" % self.firmwareVersion, 
     304                "utcTime": self.utcTime} 
     305 
     306    def __str__(self): 
     307        dico = self.toDict() 
     308        lines = list() 
     309        for key in dico.keys(): 
     310            lines.append("%s: %s" % (key, dico[key])) 
     311        return "\n".join(lines) 
     312 
    233313 
    234314class CK_MECHANISM_INFO(object): 
     
    9521032 
    9531033    print "getInfo" 
    954     i = p.getInfo() 
    955     print "cryptokiVersion: %d.%d" % i.cryptokiVersion 
    956     print "manufacturerID:", i.manufacturerID 
    957     print "flags:", i.flags 
    958     print "libraryDescription:", i.libraryDescription 
    959     print "libraryVersion: %d.%d" % i.libraryVersion 
     1034    print p.getInfo() 
    9601035 
    9611036    print 
     
    9681043    print 
    9691044    print "getSlotInfo" 
    970     i = p.getSlotInfo(slot) 
    971     print "slotDescription:", i.slotDescription.strip() 
    972     print "manufacturerID:", i.manufacturerID 
    973     print "flags:", i.flags 
    974     print "flags:", i.flags2text() 
    975     print "hardwareVersion:", i.hardwareVersion 
    976     print "firmwareVersion:", i.firmwareVersion 
     1045    print p.getSlotInfo(slot) 
    9771046 
    9781047    print 
    9791048    print "getTokenInfo" 
    980     t = p.getTokenInfo(slot) 
    981     print "label:", t.label 
    982     print "manufacturerID:", t.manufacturerID 
    983     print "model:", t.model 
    984     print "serialNumber:", t.serialNumber 
    985     print "flags:", t.flags 
    986     print "flags:", t.flags2text() 
    987     print "ulMaxSessionCount:", t.ulMaxSessionCount 
    988     print "ulSessionCount:", t.ulSessionCount 
    989     print "ulMaxRwSessionCount:", t.ulMaxRwSessionCount 
    990     print "ulRwSessionCount:", t.ulRwSessionCount 
    991     print "ulMaxPinLen:", t.ulMaxPinLen 
    992     print "ulMinPinLen:", t.ulMinPinLen 
    993     print "ulTotalPublicMemory:", t.ulTotalPublicMemory 
    994     print "ulFreePublicMemory:", t.ulFreePublicMemory 
    995     print "ulTotalPrivateMemory:", t.ulTotalPrivateMemory 
    996     print "ulFreePrivateMemory:", t.ulFreePrivateMemory 
    997     print "hardwareVersion: %d.%d" % t.hardwareVersion 
    998     print "firmwareVersion: %d.%d" % t.firmwareVersion 
    999     print "utcTime:", t.utcTime 
     1049    print p.getTokenInfo(slot) 
    10001050 
    10011051    print 
     
    10051055    print 
    10061056    print "sessionInfo" 
    1007     si = se.getSessionInfo() 
    1008     print "slotID:", si.slotID 
    1009     print "state:", si.state 
    1010     print "state:", si.state2text() 
    1011     print "flags:", si.flags 
    1012     print "flags:", si.flags2text() 
    1013     print "ulDeviceError:", si.ulDeviceError 
     1057    print se.getSessionInfo() 
    10141058 
    10151059    print 
     
    10251069    print 
    10261070    print "login" 
    1027     se.login(pin="12345678") 
     1071    se.login(pin="0000") 
    10281072 
    10291073    print 
    10301074    print "sessionInfo" 
    1031     si = se.getSessionInfo() 
    1032     print "slotID:", si.slotID 
    1033     print "state:", si.state 
    1034     print "state:", si.state2text() 
    1035     print "flags:", si.flags 
    1036     print "flags:", si.flags2text() 
    1037     print "ulDeviceError:", si.ulDeviceError 
     1075    print se.getSessionInfo() 
    10381076 
    10391077    print 
(C) 2006 bit4id srl, for informations please contact info@bit4id.com
visitors since August 21, 2006