/gdata/tlslite/utils/OpenSSL_RC4.py

http://radioappz.googlecode.com/ · Python · 25 lines · 16 code · 8 blank · 1 comment · 1 complexity · f37b1080854f20c94e830a0e3a014abf MD5 · raw file

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