Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.3 / 3....
  • LibreOffice 3.6.6 / 4.0.3
  • MPlayer 1.1.1
  • systemd 204
  • Arch Linux 2013.05.01
  • Blender 2.67a
  • KDE Software Compilatio...
  • CrunchBang Linux Stable...
  • Elementary OS 0.1 / 0.2...
  • SystemRescueCd 3.6.0
  • Home > Linux > Security

    pyTickets 0.9.2.1

    Download button

    No screenshots available
    Downloads: 200  Tell us about an update
    User Rating:
    Rated by:
    NOT RATED
    0 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Krister Hedfors | More programs
    GPL / FREE
    January 17th, 2012, 20:57 GMT
    ROOT / Security

     Read user reviews (0)  Refer to a friend  Subscribe

    pyTickets description

    Light-weight symmetrically signed data containers with optional encryption, serialization and compression of their contents

    pyTickets provides light-weight symmetrically signed data containers with optional encryption, serialization and compression of their contents.

    SecureTicketService is used to create and validate SecureTickets. SecureTickets are light-weight symmetrically signed data sets with a limited lifestpan.

    The key passed to SecureTicketService is the password and the security relies heavily on its strength. It really should be a 32 byte random string as you gain integrity AND performance by using a key of 32 bytes length (it's padded or replaced by SHA256-hashes of itself to make it 32 bytes anyways). For your convenience, classmethod create_random_key() is provided:

    >>> key = SecureTicketService.create_random_key()
    >>> assert len(key) == 32
    >>> sts = SecureTicketService(key)


    A SecureTicket ticket which is successfully validated using SecureTicketService.validate_ticket() can only be created by someone who has knowledge of key. The entire contents of ticket is securely hashed using key and any change to ticket breaks the hash validation.

    >>> key = 'Io5IpK9ZTsKpG1ybaLCHkOH4kvHaTEO2imHvkqLVn7I='
    >>> sts = SecureTicketService(key.decode('base64'))
    >>> ticket = sts.create_ticket('someData')
    >>> ticket.data
    'someData'
    >>> sts.validate_ticket(ticket)
    True
    >>> sts2 = SecureTicketService('someOtherKey')
    >>> sts2.validate_ticket(ticket)
    False


    entropy

    The optional second argument entropy to create_ticket(), which must be a string if supplied, cannot be obtained from a ticket; it's just concatinated together with the rest of ticket when the hash is created. The same entropy value must therefore be used in SecureTicketService.validate_hash() or else validation fails.

    >>> ticket = sts.create_ticket('someKey', 'someEntropy')
    >>> sts.validate_ticket(ticket)
    False
    >>> sts.validate_ticket(ticket, 'someEntropy')
    True


    session

    Many use cases for secure tickets involves (or should involve) the concept of a session to prevent various types of attacks. The optional second argument session to SecureTicketService() is used in the same manner as entropy, but is supplied during SecureTicketService instantiation instead of during ticket creation.

    >>> sts = SecureTicketService(key, 'someSessionIdentifier')

    options

    Encryption, serialization and compression of ticket's contents is optional. Encrypted tickets will have all its data and metadata encrypted with the key supplied to SecureTicketService. Serialization allows complex data types in data instead of just strings. Compression (zlib) is useful if the data argument is inconveniently large. Options and their default values:

     serialize=False
     encrypt=False
     compress=False


    Encrypted ticket attributes must be viewed through a SecureTicketService instance which provide transparent decryption:

    >>> key = SecureTicketService.create_random_key()
    >>> sts = SecureTicketService(key, serialize=1, compress=1, encrypt=1)
    >>> ticket = sts.create_ticket(['asd', 123], 'ee')
    >>> assert sts.get_data(ticket) == sts(ticket).data == ['asd', 123]



    Product's homepage

    Requirements:

    · Python

      


    TAGS:

    symmetrically signed | content encryption | content compression | symmetrically | signed | encryption

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM