openssl_rc4.py revision c5cede9ae108bb15f6b7a8aea21c7e1fefa2834c
1"""OpenSSL/M2Crypto RC4 implementation.""" 2 3from cryptomath import * 4from rc4 import RC4 5 6if m2cryptoLoaded: 7 8 def new(key): 9 return OpenSSL_RC4(key) 10 11 class OpenSSL_RC4(RC4): 12 13 def __init__(self, key): 14 RC4.__init__(self, key, "openssl") 15 self.rc4 = m2.rc4_new() 16 m2.rc4_set_key(self.rc4, key) 17 18 def __del__(self): 19 m2.rc4_free(self.rc4) 20 21 def encrypt(self, plaintext): 22 return m2.rc4_update(self.rc4, plaintext) 23 24 def decrypt(self, ciphertext): 25 return self.encrypt(ciphertext) 26