I have an encrypted string that I was able to decrypt in nodejs using the following code
let decrypt = crypto.createDecipheriv('aes-256-cbc-hmac-sha1', derived, iv);
decrypt.setAutoPadding(false);
let decrypted = decrypt.update(new_buf, 'binary', 'utf8') + decrypt.final('utf8');
I have to be able to decrypt the same buffer in a go program and I wrote this
fmt.Printf("buf size=%d
", len(derivedKey))
block, err := aes.NewCipher(derivedKey)
if err != nil {
fmt.Printf("%v
", err)
return ("0")
}
fmt.Printf("block size=%d
", block.BlockSize())
cbc := cipher.NewCBCDecrypter(block, ivKey)
fmt.Printf("cbc block size=%d
", cbc.BlockSize())
decr := make([]byte, len(encr))
cbc.CryptBlocks(decr, []byte(encr))
This isn't working (I suppose I won't be posting here otherwise :p) but I also noticed that when I print the length of the derived key I get 32 but when I read the block.BlockSize() or the cbc.BlockSize() I get 16 as an answer so I'm wondering if I don't have to setup something because it is detecting my algorithm as aes128 instead of aes256.