def encode()

in python3/frodokem.py [0:0]


    def encode(self, k):
        """Encode a bitstring (represented in Python as a bytes object) as a mod-q 
        integer matrix (FrodoKEM specification, Algorithm 1)"""
        l = self.B * self.mbar * self.nbar
        K = [[0 for j in range(self.nbar)] for i in range(self.mbar)]
        kbits = FrodoKEM.__bytes_to_bit_array(k)
        # 1. for i = 0; i < mbar; i += 1
        for i in range(self.mbar):
            # 2. for j = 0; j < nbar; j += 1
            for j in range(self.nbar):
                # 3. tmp = sum_{l=0}^{B-1} k_{(i*nbar+j)*B+l} 2^l
                tmp = 0
                for l in range(self.B):
                    if kbits[(i * self.nbar + j) * self.B + l]: tmp += 2 ** l
                # 4. K[i][j] = ec(tmp) = tmp * q/2^B
                K[i][j] = tmp * int(self.q / (2 ** self.B))
        return K