Package smartcard :: Package util
[hide private]
[frames] | no frames]

Package util

source code

smartcard.util package

__author__ = "http://www.gemalto.com"

Copyright 2001-2012 gemalto Author: Jean-Daniel Aussel, mailto:jean-daniel.aussel@gemalto.com

This file is part of pyscard.

pyscard is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

pyscard is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with pyscard; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Functions [hide private]
 
padd(bytelist, length, padding='FF')
Padds a byte list with a constant byte value (default is x0FF)
source code
 
toASCIIBytes(stringtoconvert)
Returns a list of ASCII bytes from a string.
source code
 
toASCIIString(bytelist)
Returns a string representing a list of ASCII bytes.
source code
 
toBytes(bytestring)
Returns a list of bytes from a byte string
source code
 
toGSM3_38Bytes(stringtoconvert)
Returns a list of bytes from a string using GSM 3.38 conversion table.
source code
 
toHexString(bytes=[], format=0)
Returns an hex string representing bytes
source code
 
HexListToBinString(hexlist) source code
 
BinStringToHexList(binstring) source code
 
hl2bs(hexlist)
An alias for HexListToBinString
source code
 
bs2hl(binstring)
An alias for BinStringToHexList
source code
Variables [hide private]
  PACK = 1
  HEX = 2
  UPPERCASE = 4
  COMMA = 8
  __dic_GSM_3_38__ = ...
  __package__ = None
hash(x)
Function Details [hide private]

padd(bytelist, length, padding='FF')

source code 

Padds a byte list with a constant byte value (default is x0FF)

Parameters:
  • bytelist - the byte list to padd
  • length - the total length of the resulting byte list; no padding if length is smaller than the byte list length
  • padding - padding value (default is 0xff)
Returns:
the padded bytelist
>>> padd([59, 101, 0, 0, 156, 17, 1, 1, 3], 16)
[59, 101, 0, 0, 156, 17, 1, 1, 3, 255, 255, 255, 255, 255, 255, 255]
>>> padd([59, 101, 0, 0, 156, 17, 1, 1, 3], 12, '80')
[59, 101, 0, 0, 156, 17, 1, 1, 3, 128, 128, 128]
>>> padd([59, 101, 0, 0, 156, 17, 1, 1, 3], 8)
[59, 101, 0, 0, 156, 17, 1, 1, 3]

toASCIIBytes(stringtoconvert)

source code 

Returns a list of ASCII bytes from a string.

Parameters:
  • stringtoconvert - the string to convert into a byte list
Returns:
a byte list of the ASCII codes of the string characters

toASCIIBytes() is the reverse of toASCIIString()

>>> toASCIIBytes("Number 101")
[78, 117, 109, 98, 101, 114, 32, 49, 48, 49]

toASCIIString(bytelist)

source code 

Returns a string representing a list of ASCII bytes.

Parameters:
  • bytelist - list of ASCII bytes to convert into a string
Returns:
a string from the ASCII code list

toASCIIString() is the reverse of toASCIIBytes()

>>> toASCIIString([0x4E,0x75,0x6D,0x62,0x65,0x72,0x20,0x31,0x30,0x31])
'Number 101'

toBytes(bytestring)

source code 

Returns a list of bytes from a byte string

bytestring: a byte string

>>> toBytes("3B 65 00 00 9C 11 01 01 03")
[59, 101, 0, 0, 156, 17, 1, 1, 3]
>>> toBytes("3B6500009C11010103")
[59, 101, 0, 0, 156, 17, 1, 1, 3]
>>> toBytes("3B6500   009C1101  0103")
[59, 101, 0, 0, 156, 17, 1, 1, 3]

toGSM3_38Bytes(stringtoconvert)

source code 

Returns a list of bytes from a string using GSM 3.38 conversion table.

Parameters:
  • stringtoconvert - string to convert
Returns:
a list of bytes
>>> toGSM3_38Bytes("@ùPascal")
[0, 6, 80, 97, 115, 99, 97, 108]

toHexString(bytes=[], format=0)

source code 

Returns an hex string representing bytes

Parameters:
  • bytes - a list of bytes to stringify, e.g. [59, 22, 148, 32, 2, 1, 0, 0, 13]
  • format - a logical OR of
    • COMMA: add a comma between bytes
    • HEX: add the 0x chars before bytes
    • UPPERCASE: use 0X before bytes (need HEX)
    • PACK: remove blanks
    >>> vals = [0x3B, 0x65, 0x00, 0x00, 0x9C, 0x11, 0x01, 0x01, 0x03]
    >>> toHexString(vals)
    '3B 65 00 00 9C 11 01 01 03'
    >>> toHexString(vals, COMMA)
    '3B, 65, 00, 00, 9C, 11, 01, 01, 03'
    >>> toHexString(vals, HEX)
    '0x3B 0x65 0x00 0x00 0x9C 0x11 0x01 0x01 0x03'
    >>> toHexString(vals, HEX | COMMA)
    '0x3B, 0x65, 0x00, 0x00, 0x9C, 0x11, 0x01, 0x01, 0x03'
    >>> toHexString(vals, PACK)
    >>> toHexString(vals, HEX | UPPERCASE)
    '0X3B 0X65 0X00 0X00 0X9C 0X11 0X01 0X01 0X03'
    >>> toHexString(vals, HEX | UPPERCASE | COMMA)
    '0X3B, 0X65, 0X00, 0X00, 0X9C, 0X11, 0X01, 0X01, 0X03'

hl2bs(hexlist)

source code 

An alias for HexListToBinString

>>> hl2bs([78, 117, 109, 98, 101, 114, 32, 49, 48, 49])
'Number 101'

bs2hl(binstring)

source code 

An alias for BinStringToHexList

>>> bs2hl("Number 101")
[78, 117, 109, 98, 101, 114, 32, 49, 48, 49]

Variables Details [hide private]

__dic_GSM_3_38__

Value:
{u'''
''': 10,
 u'
': 13,
 u' ': 32,
 u'!': 33,
 u'"': 34,
 u'#': 35,
 u'$': 2,
...