Skip to content

Commit

Permalink
Adding support for enc 8, blowfish.
Browse files Browse the repository at this point in the history
  • Loading branch information
linsomniac committed Dec 9, 2015
1 parent fbe7965 commit 9ef6735
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions pynsca.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,21 @@ def _encrypt_packet(self, toserver_pkt, iv, mode, password):
myDes = Crypto.Cipher.DES3.new(password, Crypto.Cipher.DES3.MODE_CFB,iv)
toserver_pkt = ''.join(myDes.encrypt(toserver_pkt))
#print "toserver_pkt: "+toserver_pkt
elif mode == 8:
import Crypto.Cipher.Blowfish
import Crypto.Util.randpool

max_key_size = Crypto.Cipher.Blowfish.key_size[-1]
password = (password + ('\0' * max_key_size))[:max_key_size]
iv_size = 8
if len(iv) >= Crypto.Cipher.Blowfish.block_size:
iv = iv[:iv_size]
else:
iv += self.random_pool.get_bytes(iv_size - iv)
e = Crypto.Cipher.Blowfish.new(
password, Crypto.Cipher.Blowfish.MODE_CFB, iv)
toserver_pkt = ''.join(e.encrypt(toserver_pkt))
#print "toserver_pkt: "+toserver_pkt
elif mode == 0:
return toserver_pkt
else:
Expand Down

0 comments on commit 9ef6735

Please sign in to comment.