{"ScriptPreparationCode":null,"TestCases":[{"Name":"CTR","Code":"(async () =\u003E {\r\n\tlet ciphertext;\r\n\tlet counter;\r\n \r\n const message = \u0022esto es prueba\u0022;\r\n\tlet enc = new TextEncoder();\r\n\tlet encoded = enc.encode(message);\r\n const key = await window.crypto.subtle.generateKey(\r\n {\r\n name: \u0022AES-CTR\u0022,\r\n length: 256\r\n },\r\n true,\r\n [\u0022encrypt\u0022, \u0022decrypt\u0022]\r\n );\r\n \r\n\tcounter = window.crypto.getRandomValues(new Uint8Array(16));\r\n \r\n\tciphertext = await window.crypto.subtle.encrypt(\r\n {\r\n name: \u0022AES-CTR\u0022,\r\n counter,\r\n length: 64\r\n },\r\n key,\r\n encoded\r\n );\r\n})();","IsDeferred":false},{"Name":"GCM","Code":"(async () =\u003E {\r\n let ciphertext;\r\n let iv;\r\n \r\n const message = \u0022esto es prueba\u0022;\r\n let enc = new TextEncoder();\r\n const key = await window.crypto.subtle.generateKey(\r\n {\r\n name: \u0022AES-GCM\u0022,\r\n length: 256,\r\n },\r\n true,\r\n [\u0022encrypt\u0022, \u0022decrypt\u0022]\r\n );\r\n \r\n \r\n let encoded = enc.encode(message);\r\n iv = window.crypto.getRandomValues(new Uint8Array(12));\r\n ciphertext = await window.crypto.subtle.encrypt(\r\n {\r\n name: \u0022AES-GCM\u0022,\r\n iv: iv\r\n },\r\n key,\r\n encoded\r\n );\r\n})();","IsDeferred":false},{"Name":"CBC","Code":"(async () =\u003E {\r\n let ciphertext;\r\n let iv;\r\n\r\n const message = \u0022esto es prueba\u0022;\r\n let enc = new TextEncoder();\r\n const key = await window.crypto.subtle.generateKey(\r\n {\r\n name: \u0022AES-CBC\u0022,\r\n length: 256\r\n },\r\n true,\r\n [\u0022encrypt\u0022, \u0022decrypt\u0022]\r\n );\r\n\r\n let encoded = enc.encode(message);\r\n\r\n iv = window.crypto.getRandomValues(new Uint8Array(16));\r\n ciphertext = await window.crypto.subtle.encrypt(\r\n {\r\n name: \u0022AES-CBC\u0022,\r\n iv\r\n },\r\n key,\r\n encoded\r\n );\r\n})();","IsDeferred":false}]}