def __init__()

in python3/frodokem.py [0:0]


    def __init__(self, variant = "FrodoKEM-640-AES"):
        """Construct a new FrodoKEM instance
        
        - variant: One of FrodoKEM-{640,976,1344}-{AES,SHAKE}"""
        self.print_intermediate_values = False
        self.variant = variant
        self.randombytes = lambda k : bytes((secrets.randbits(8) for i in range(k)))
        if variant == "FrodoKEM-640-AES":
            self.setParamsFrodo640()
            self.gen = self.genAES128
        elif variant == "FrodoKEM-640-SHAKE":
            self.setParamsFrodo640()
            self.gen = self.genSHAKE128
        elif variant == "FrodoKEM-976-AES":
            self.setParamsFrodo976()
            self.gen = self.genAES128
        elif variant == "FrodoKEM-976-SHAKE":
            self.setParamsFrodo976()
            self.gen = self.genSHAKE128
        elif variant == "FrodoKEM-1344-AES":
            self.setParamsFrodo1344()
            self.gen = self.genAES128
        elif variant == "FrodoKEM-1344-SHAKE":
            self.setParamsFrodo1344()
            self.gen = self.genSHAKE128
        else:
            assert "Unknown variant"
        warnings.warn("WARNING: This Python3 implementation of FrodoKEM is not designed to be fast or secure, and may leak secret information via timing or other side channels; it should not be used in production environments.")