add generateAESKey method