Home | History | Annotate | Download | only in utils
      1 """OpenSSL/M2Crypto RC4 implementation."""
      2 
      3 from cryptomath import *
      4 from RC4 import RC4
      5 
      6 if 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