def createRC4(key, IV, implList=None): """Create a new RC4 object. @type key: str @param key: A 16 to 32 byte string. @type IV: object @param IV: Ignored, whatever it is. @rtype: L{tlslite.utils.RC4} @return: An RC4 object. """ if implList is None: implList = ["openssl", "pycrypto", "python"] if len(IV) != 0: raise AssertionError() for impl in implList: if impl == "openssl" and cryptomath.m2cryptoLoaded: return openssl_rc4.new(key) elif impl == "pycrypto" and cryptomath.pycryptoLoaded: return pycrypto_rc4.new(key) elif impl == "python": return python_rc4.new(key) raise NotImplementedError()