PageRenderTime 24ms CodeModel.GetById 14ms app.highlight 5ms RepoModel.GetById 2ms app.codeStats 0ms

/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
 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)