I am sending some data through socket using python and receive using JavaScript. At sender I am applying AES256 encryption and at receiver I have to decrypt the data back.
For sender I am using pycrypto library
Sender python
class AES_256(object):
def __init__(self, key):
self.bs = AES.block_size
self.key = hashlib.sha256(key.encode("utf-8")).digest()
def encrypt(self, raw):
private_key = self.key
#raw = pad(raw)
iv = Random.new().read(AES.block_size)
cipher = AES.new(private_key, AES.MODE_CBC, iv)
return base64.b64encode(iv + cipher.encrypt(raw))
..........................................
..........................................
encryption_256 = AES_256("password")
encrData = encryption_256.encrypt(bytes(buffer))
And at Javascript receiver side I am using crypto-js to decrypt this data, where I am receiving data as ArrayBuffer.
JavaScript receiver
var i8a = new Uint8Array(encodedFrame.data); // is of type ArrayBuffer
var wordArray = CryptoJS.lib.WordArray.create(i8a);
var key = CryptoJS.enc.Hex.parse(CryptoJS.SHA256("password").toString().toUpperCase());
var bytes = CryptoJS.AES.decrypt(wordArray, cryptkey, { iv:CryptoJS.enc.Hex.parse('00000000000000000000000000000000'), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7});
But I am getting bytes
length 0 after decryption. I am referring code here How to decrypt an ArrayBuffer?
Please give some advice how I can fix it.