diff options
| author | Devendra | 2014-03-25 11:47:03 +0530 |
|---|---|---|
| committer | Devendra | 2014-03-25 11:47:03 +0530 |
| commit | 9ac3ccf6283772b404a0c80945e3cdf3406ac5bf (patch) | |
| tree | 11ff9dc1a4e585617a522bc9cb56172dfa4adda9 /common/PubnubCrypto.py | |
| parent | b8d1dd86a0d8c4261d4f3765f3ca227d7b555c84 (diff) | |
| download | pubnub-python-9ac3ccf6283772b404a0c80945e3cdf3406ac5bf.tar.bz2 | |
making version 2 and version 3 work same timepython3
Diffstat (limited to 'common/PubnubCrypto.py')
| -rw-r--r-- | common/PubnubCrypto.py | 79 |
1 files changed, 78 insertions, 1 deletions
diff --git a/common/PubnubCrypto.py b/common/PubnubCrypto.py index 1f5fc8d..3489216 100644 --- a/common/PubnubCrypto.py +++ b/common/PubnubCrypto.py @@ -4,7 +4,84 @@ from base64 import encodestring, decodestring import hashlib import hmac -class PubnubCrypto() : +class PubnubCrypto2() : + """ + #** + #* PubnubCrypto + #* + #** + + ## Initiate Class + pc = PubnubCrypto + + """ + + def pad( self, msg, block_size=16 ): + """ + #** + #* pad + #* + #* pad the text to be encrypted + #* appends a padding character to the end of the String + #* until the string has block_size length + #* @return msg with padding. + #** + """ + padding = block_size - (len(msg) % block_size) + return msg + chr(padding)*padding + + def depad( self, msg ): + """ + #** + #* depad + #* + #* depad the decryptet message" + #* @return msg without padding. + #** + """ + return msg[0:-ord(msg[-1])] + + def getSecret( self, key ): + """ + #** + #* getSecret + #* + #* hases the key to MD5 + #* @return key in MD5 format + #** + """ + return hashlib.sha256(key).hexdigest() + + def encrypt( self, key, msg ): + """ + #** + #* encrypt + #* + #* encrypts the message + #* @return message in encrypted format + #** + """ + secret = self.getSecret(key) + Initial16bytes='0123456789012345' + cipher = AES.new(secret[0:32],AES.MODE_CBC,Initial16bytes) + enc = encodestring(cipher.encrypt(self.pad(msg))) + return enc + def decrypt( self, key, msg ): + """ + #** + #* decrypt + #* + #* decrypts the message + #* @return message in decryped format + #** + """ + secret = self.getSecret(key) + Initial16bytes='0123456789012345' + cipher = AES.new(secret[0:32],AES.MODE_CBC,Initial16bytes) + return self.depad((cipher.decrypt(decodestring(msg)))) + + +class PubnubCrypto3() : """ #** #* PubnubCrypto |
