smartcard.util

# ``smartcard`.`util``

package documentation

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

From `__init__.py`:

Function | `BinStringToHexList` | No summary
Function | `bs2hl` | An alias for BinStringToHexList
Function | `HexListToBinString` | No summary
Function | `hl2bs` | An alias for HexListToBinString
Function | `padd` | Padds a byte list with a constant byte value (default is x0FF)
Function | `toASCIIBytes` | Returns a list of ASCII bytes from a string.
Function | `toASCIIString` | Returns a string representing a list of ASCII bytes.
Function | `toBytes` | Returns a list of bytes from a byte string
Function | `toGSM3_38Bytes` | Returns a list of bytes from a string using GSM 3.38 conversion table.
Function | `toHexString` | Returns an hex string representing bytes
Constant | `COMMA` | Undocumented
Constant | `HEX` | Undocumented
Constant | `PACK` | Undocumented
Constant | `UPPERCASE` | Undocumented
Variable | `__dic_GSM_3_38__` | Undocumented

PACK: `int` =

Undocumented

Value
    1

HEX: `int` =

Undocumented

Value
    2

UPPERCASE: `int` =

Undocumented

Value
    4

COMMA: `int` =

Undocumented

Value
    8

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

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]

def toASCIIBytes(stringtoconvert):

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]

def toASCIIString(bytelist):

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'
    >>> toASCIIString([0x01, 0x20, 0x80, 0x7E, 0xF0])
    ". .~."

def toBytes(bytestring):

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]

__dic_GSM_3_38__: `dict[str, int]` =

Undocumented

def toGSM3_38Bytes(stringtoconvert):

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]

def toHexString(bytes=[], format=0):

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)
    '3B6500009C11010103'
    >>> 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'

def HexListToBinString(hexlist):

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

def BinStringToHexList(binstring):

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

def hl2bs(hexlist):

An alias for HexListToBinString

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

def bs2hl(binstring):

An alias for BinStringToHexList

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