function encryptData() { var passwd = retrievePasswd(); if (crypto.subtle) { crypto.subtle.digest({ name: "SHA-256" }, passwd).then( function (result1) { digestHash = result1; return crypto.subtle.importKey("raw", digestHash, { name: "AES-CBC" }, true, ['encrypt']); } ).then( function (result2) { digestKey = result2; salt = window.crypto.getRandomValues(new Uint8Array(16)); var aesAlgorithmEncrypt = { name: "AES-CBC", iv: salt }; return crypto.subtle.encrypt(aesAlgorithmEncrypt, digestKey, data); } ).then( function (result3) { ciphertext = result3; } ), function (e2) { console.log("Encryption function failed"); }); } }