tlslite.utils.chacha module

Pure Python implementation of ChaCha cipher

Implementation that follows RFC 7539 closely.

class tlslite.utils.chacha.ChaCha(key, nonce, counter=0, rounds=20)

Bases: object

Pure python implementation of ChaCha cipher

__init__(key, nonce, counter=0, rounds=20)

Set the initial state for the ChaCha cipher

static chacha_block(key, counter, nonce, rounds)

Generate a state of a single block

constants = [1634760805, 857760878, 2036477234, 1797285236]
decrypt(ciphertext)

Decrypt the data

classmethod double_round(x)

Perform two rounds of ChaCha cipher

encrypt(plaintext)

Encrypt the data

static quarter_round(x, a, b, c, d)

Perform a ChaCha quarter round

static rotl32(v, c)

Rotate left a 32 bit integer v by c bits

static word_to_bytearray(state)

Convert state to little endian bytestream