File: RC4.py

package info (click to toggle)
m2crypto 0.16-1.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 2,064 kB
  • ctags: 3,165
  • sloc: python: 16,936; makefile: 69; sh: 12; ansic: 10
file content (31 lines) | stat: -rw-r--r-- 692 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"""M2Crypto wrapper for OpenSSL RC4 API.

Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved."""

from m2 import rc4_new, rc4_free, rc4_set_key, rc4_update

class RC4:

    """Object interface to the stream cipher RC4."""

    rc4_free = rc4_free

    def __init__(self, key=None):
        self.cipher = rc4_new()
        if key:
            rc4_set_key(self.cipher, key)
            
    def __del__(self):
        if getattr(self, 'cipher', None):        
            self.rc4_free(self.cipher)

    def set_key(self, key):
        rc4_set_key(self.cipher, key)   

    def update(self, data):
        return rc4_update(self.cipher, data)

    def final(self):
        return ''