1445 lines
733 KiB
HTML
1445 lines
733 KiB
HTML
<!DOCTYPE html><html lang="es" style=height:100%><head><meta http-equiv=X-UA-Compatible content="IE=edge"><meta content="text/html;charset=utf-8" http-equiv=Content-Type><meta name=format-detection content="telephone=no"><link rel="icon" type=image/png href="data:image/png;base64,iVBORw0KGgo="><style>body{height:100%;max-height:100%;overflow:hidden;font-family:arial, helvetica, sans-serif;font-size:9pt;color:black;background:white;margin-top:0;margin-left:0;margin-right:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}li{margin:0;padding:0;} a:visited{text-decoration:none;color:#04f;}a:link{text-decoration:none;color:#04f;}a:hover{color:#a32;}h1{font-size:11pt;font-weight:bold;color:black;margin-left:5px;margin-top:10px;margin-bottom:6px;}h2{font-size:9pt;font-weight:bold;color:black;margin-left:6px;margin-top:6px;margin-bottom:0;}p{margin-left:6px;margin-top:4px;margin-bottom:0;margin-right:2px;}td{font-size:9pt;}th{font-size:9pt;}th:hover{cursor:pointer;background:#aaa;}.header{position:fixed;top:0;left:0;right:0;height:24px;background:#c0c0c0;}.progressbar{position:fixed;top:24px;left:0;right:0;height:2px;background:#ff9e30;}.in{margin-left:40px;}.log{background:#bbbab5;}.log1{background:#bbbab5;}.log tbody tr:nth-child(odd){background:#e8eefe;}.fullcell{position:fixed;top:26px;right:0;bottom:0;left:0px;overflow:hidden;}.maincell{position:fixed;top:26px;right:0;bottom:0;left:156px;overflow:auto;padding-left:2px;vertical-align:top;}.navbar{position:fixed;top:26px;left:0;bottom:0;width:156px;border-right:2px solid #ff9e30;vertical-align:top;background:#72726f;background:linear-gradient(45deg, #72726f 0%,#a6a5a0 100%);}.nav1{padding:1px 0px 1px 8px;margin:0px;font-weight:bold;color:black;white-space:nowrap;cursor:pointer;}.nav2{margin-left:32px;margin-top:0;color:black;cursor:pointer;}.r{font-size:11pt;}.r0{background:white;}.r1{border-bottom:1px solid gray;text-align:left;}.r2{text-align:left;}.r3{border-bottom:1px solid gray;text-align:left;}.r3:hover{background-color:#83827b;cursor:pointer;}.spread{height:100%;width:100%;background-color:white;}.timer{border:1px solid #abcae1;background-color:#abcae1;}.tm{font-size:7pt;}.top1{font-size:14pt;font-weight:bold;color:white;margin-top:11px;}.top2{color:white;}.warn{font-weight:bold;color:#c00000;}.icon1{width:14px;height:15px;background-repeat:no-repeat;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMISURBVHjadJPPb9t0GMY//rbJaEKSxoPFQQ1WxhQ7RaGoIDEpTBMqgk7iBvwNKJdJXDnssEMl7pMGfwOH9YBYh0AglYiBBNKa0cSGNpiRxs7aJE2aH7aTmkPXqTvwXt7L8z56pef5SEEQcHYMwyjWarX3rLr1tu3YOQAlpZhqVv1J1/VvNU0rn9VLpwbtdlspb5ZLNdNcuZBKF1NKmuS8DECn28axm7ScZlnP5b4vXinelmXZfmrQbreVjbsbN3r9YSmTLbA/Ps92K8FgFAbAdYcsLXRRk10af/9BPBa5vXpt9aYsy7YAKG+WS73+sJS+eJmKneZe5QWEiHHreoJb1xNEInHu/Bzw3cM45zNv0usPS+XNcglAGIZRrJnmSiZbYOtRhF93ZvHcHoPRlN3GkL4Ho5HHeOxRqbv8sHVM+uVFaqa5YhhGUVpfXw+6hwP86DJ3fgkzK44hOGZuLkH7KIQIxuw9dkk812Hqu0wmPh9djZIKG8wnogirbpFS0jy0YOqPcMcurjvh3Vc7fPHpHF9//iLLyja75p/sNWxazj73t9qklDRW3ULYjk1yXmb3Xw/P9fA9n35/AMD0yAIgGQ8zOtxnMhFM/ClG/YjkvIzt2Mye5un5Lr4HY9el5RwA2tOsY9FzCCFBICCYOdlPRigphU63jZKEwWDAweMDJt7kmXINBhOkIEAQQiLMpczzJzcpBaFmVRy7iZ4RdA/7TKcBknTymOd5APT6PiAhghlmpHO8ocdw7CZqVkXour7Ycppriwsuy7koEgKQANDy+dPCIokQkhTiciFG4aJPy2mu6bq+OKtpWlXPmZWGtc2H77yOhOD+gxE7//T45sdHzEjQ7Y0IgmPeKszxwdUwTuM39Fyuomla9bTKyY27Gx/3+sMvlYU8lXqI36sef+1UkCS4pMZZyuu89oqL09gmHot8snpt9StZljtnYUqWN8vv10yzcCGV/ux/YFrTc7lK8UrxnizLnWdoPINzvlarLVl1K2879ktPcN5Ts2pV1/UHmqZVz+r/GwBWYYCoNUz0KwAAAABJRU5ErkJggg==");}.icon2{width:14px;height:15px;background-repeat:no-repeat;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAIuSURBVHjalJNBTBNBFIb/2S4tlliFdLBNW0mktibaeivBm9eejFeDZw81kROXHj2SyIEDB65wI3iBI5iYmEjSREtIpI1tQdOm20KBdkuX3ZnnYUVq2Cb6kklm3vxv3vdm3oCI4DTazZ3p3HpM5NZjot3cmR6kY0QEJ9vdnNJcaoMP3xyB3vI2EunP4046xcl5WttK99olHn4URSA2AaNT5qe1rbST1pFgd3NKU93H/P6TJADg8GthIMU1gqODtZlep8QjiegfXzBuUxwdrM1cy9Z/IVIYSn4jpe1vx8jsviAABIBM/Tl9/5Sg/EZKk8JQ+mP+ImiUVjJGp8xDDycB2b1KIgSC0RCMTpk3SisZxxKkpXvqhaXs7aAfnhtukBBXKmFCHVLgj4yjXljKSkv3XDugXlyeM/QKDz24CxIWSJhXBKYJMk2MT3AYeoXXi8tzl3sqAFgXLV+zvJrxhzkUqwdxQQARZl+FbbqeXY7CGHjEj2Z5NcMnXy6o7tEzRkT4mX/7Tisuvok/joBJC5ACl8/LmAIov0EVBZIYvn35gUD89UI4mZ1lRrca2N9+lh8bPeG3RgCyTEBKgAi+1CEAoJ27B6gqGGMAY2idCbRORhvxp++TanVvviaMQ/g8XshzAxACIIn+/pLGOWAqYIoLAODzuKB1K7y6N19j+Y0U3fG3MCw6IMsCyM4Oxvob1l4ze84YQ5u8OD7jUNWhMXz4uI//tx4Syfjg3/iv9msAKbs79bi84QcAAAAASUVORK5CYII=");}.icon3{width:14px;height:15px;background-repeat:no-repeat;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAANGSURBVHjadJNNTBwFAIW//UFWfrbsgDuzBTvu0s6OWhHwYMhCOEAbSESC4dpL07TFg9GkxIRDjT3YhEBNPUjC0SbaJjVNQyJQaxtDpzYmlDYUOjuUrhspO0N0gQVWl/0ZD5ZmPfiSd3t5l/c+h23bFCsajR7Rdf1GPBbHtEwAJFFCDsqoqno0HA7/WJx37BUkk8k6bUYb0g2jxy8G6kQpgK9KAGB9I4llJlizEiuqokxE2iJfCIKw8qIgmUzWTU1OfZXaSve9KQep3tzA9fQJhfhvZHd3yfl85OUg26F6os9W8FaWXevq7vpIEIQVJ4A2ow2lttJ9LTU1hH64Tt1qHHv8a0rnH/LS4iPsK9/iixnUXr1Ck3cfqa10nzajDQG4o9HoEd0wet493Ij/zm18n3yMJxQivbND7Px58thUD3xI+egoBcMgd+FLlO73mTUWe5Ro9Jqrs7Nz2eUu9YbSacriT8lms5Q3NlLR3s6uaVJQFISRC1SUuFm9dInJ6WlCfpGMFPBub6eOueOxOMobb+H4+Ta/f3cZz927FPJ5hOPHqRkZgT/+xFniIjY6yveDg0gOB9l6BbHpBMbiPE7TMvFVCWSXl3DU7secnWXu9GniFy+ymctRIfhYHxvj6pkzBG2bA0Du8SN8VQKmZeLc2zOXybA2P8+mbeNpbydTWUmJ203etvGIInV+PxVA9t/pXvzALYkS6xtJqoRq/rJtqoNB/KdO8Up/P+atWxSA8t5e3vN6mT55kgOrq5TUH2J9I4kkSjjloIxlJiiEDiK2tREYHkbq7yd57x6XOzr4paMD59IS+7q7+WB8nPtuNyVN72CZCeSgjFNV1dY1K6H9fbiBDWk/uwsL5G7e5JuWFhTgVUBrbmZX11memyMgv0a64W3WrISmqmqrw7ZtJq5PfP4sYZ0Nl5ayPjJM4fECKdtGAF5+bt3pxBt+HWXwU37NZKgNiOd6ens+27uyNDU5dTa1lR44JAXwPHiA/fA++ScGTsB1UMHV1MxOQyOGmcBbWTbW1d11ThAEsxgmSZvRBnTD6PCLgcj/wKSpivJTpC0yJgiC+R8ai3CO6Lp+NB6Lt5qWqTzH2ZCD8h1VVW+Ew2GtOP/PAFZGexs+cGPjAAAAAElFTkSuQmCC");}.itemBar{padding:7px;min-height:20px;margin-top:4px;margin-right:8px;width:auto;border-radius:8px;background-color:#7e7d74;cursor:pointer;}.computeritem{cursor:pointer;width:auto;border-radius:5px;background-color:#a6a5a0;height:28px;margin:4px;padding:2px;}.computeritem:hover{background-color:#83827b;}.us{-webkit-touch-callout:initial;-webkit-user-select:auto;-khtml-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;}.rb{cursor:pointer;border:none;float:right;font-size:130%;margin-right:4px;}.fileIcon1{background:url(data:image/gif;base64,R0lGODlhEAAQAJEDAPb49Y2Sj9LT2f///yH5BAEAAAMALAAAAAAQABAAAAImnI+py+1vhJwyUYAzHTL4D3qdlJWaIFJqmKod607sDKIiDUP63hQAOw==);height:16px;width:16px;cursor:pointer;border:none;float:left;margin-top:1px;}.fileIcon2{background:url(data:image/gif;base64,R0lGODlhEAAQAJEDAM2xV/Xur+XPgP///yH5BAEAAAMALAAAAAAQABAAAAJD3ISZIGHWUGihznesYDYATFVM+D2hJ4lgN1olxALAtAlmPCJvuMmJd6PJckDYwicrHhTD5o7plJmg0Uc0asNMkphHAQA7);height:16px;width:16px;cursor:pointer;border:none;float:left;margin-top:1px;}.fileIcon3{background:url(data:image/gif;base64,R0lGODlhEAAQAJEDAPb19IGBgbq6uv///yH5BAEAAAMALAAAAAAQABAAAAIy3ISpxgcPH2ouQgFEw1YmxnUXKEaaEZZnVWZk66JwzKpvuwZzwOgwb/C1gIOA8Yg8DgoAOw==);height:16px;width:16px;cursor:pointer;border:none;float:left;margin-top:1px;}.filelist{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;cursor:default;-khtml-user-drag:element;background-color:white;clear:both;}.fsize{float:right;text-align:right;width:180px;}</style><body onunload="cleanup()" oncontextmenu=handleContextMenu(event)><div id=0 class=header><table id=1 cellpadding=0 cellspacing=0 style=width:100%;padding:0px;padding:0px;margin-top:0px><tbody><tr><td id=2 class=style6><div> <input type=button class=connectbutton id=xconnectbutton1 value=Conectar onclick="connectButtonfunction(event, false)" onkeypress="return false" onkeydown="return false"> <span id=constatus></span></div></table><div class=progressbar><div id=3 style=height:2px;width:0%;background-color:red></div></div></div><div id=4 class=fullcell style=text-align:center;padding-top:100px;font-size:20px><span id=5>Desconectado</span></div><div id=6 style=height:100%;display:none><div id=7 class=navbar><br><p id=go1 class=nav1 onclick=go(1)><a>Estado del sistema</a><p id=go14 class=nav1 onclick=go(14)><a>Escritorio remoto</a><p id=go24 class=nav1 onclick=go(24)> <a>Archivos</a><p id=go13 class=nav1 onclick=go(13)><a>Serie sobre LAN</a><p id=go2 class=nav1 onclick=go(2)><a>Información de hardware</a><p id=go6 class=nav1 onclick=go(6)><a>Registro de eventos</a><p id=go15 class=nav1 onclick=go(15)><a>Registro de auditoría</a><p id=go21 class=nav1 onclick=go(21)><a>Almacenamiento</a><p id=go8 class=nav1 onclick=go(8)><a>Configuración de red</a><p id=go17 class=nav1 onclick=go(17)><a>Configuraciones de internet</a><p id=go16 class=nav1 onclick=go(16)><a>Configuracion seguridad</a><p id=go19 class=nav1 onclick=go(19)><a>Presencia de agente</a><p id=go18 class=nav1 onclick=go(18)><a>Defensa del sistema</a><p id=go11 class=nav1 onclick=go(11)><a>Cuentas de usuario</a><p id=go22 class=nav1 onclick=go(22)><a>Suscripciones</a><p id=go23 class=nav1 onclick=go(23)><a>Wake Alarms</a><p id=go12 class=nav1 onclick=go(12)><a>Navegador WSMAN</a></div><div id=8 class=maincell><div id=9 style=position:relative;height:21px;background:#8fac8d;padding:5px;margin-bottom:1px;display:none;z-index:1000><div style=float:right><input id=IDERDiskMapButton type=button value="Mapa de disco" onclick=iderToggleDiskMap()><input type=button value="Detener sesión IDE-R" onclick=iderStop()></div><div style=font-size:16px;padding-top:2px> <span id=10></span></div><div id=iderHeatmap style="z-index:1000;position:absolute;top:31px;right:8px;border:1px solid black;box-shadow:0px 0px 10px;border-radius:5px;padding:8px;width:600px;background-color:#99CC99;display:none"><div id=floppyHeatMap style=display:none><div id=floppyHeatMapText style=margin:2px>Disquete, los bloques son 512 bytes.</div><canvas id=floppyHeatMapCanvas width=600 height=0></canvas></div><div id=cdromHeatMap style=display:none><div id=cdromHeatMapText style=margin:2px>CDROM, los bloques son 2048 bytes.</div><canvas id=cdromHeatMapCanvas width=600 height=0></canvas></div></div></div><div id=11 style=height:21px;background:#8fac8d;padding:5px;margin-bottom:1px;display:none><div style=font-size:16px;float:right;cursor:pointer;padding-right:5px;padding-left:5px;padding-top:2px;font-size:15px onclick="QV(11, false)">✖</div><div style=font-size:14px;padding-top:2px> <b>El firmware de esta computadora debe actualizarse, <a style=cursor:pointer href="https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00075&languageid=en-fr" rel="noreferrer noopener" target="_blank"><u>por favor verifique aquí</u></a>.</b></div></div><div id=12 style=width:100%;height:100%><iframe id=13 style=width:100%;height:100%;border:0></iframe></div><div id=14 style=padding:8px;overflow-x:hidden><div id=p0><h1>Cargando...</h1></div><div id=p1 style=display:none><h1>Estado del sistema</h1><span id=15></span></div><div id=p2 style=display:none><h1 style=margin-bottom:16px>Información de hardware</h1><span id=16></span></div><div id=p6 style=display:none><h1>Registro de eventos</h1><span id=17></span><span id=18></span></div><div id=p8 style=display:none><h1>Configuración de red</h1><span id=19></span><span id=20></span></div><div id=p11 style=display:none><h1>Cuentas de usuario</h1><span id=21></span></div><div id=p12 style=display:none><h1>Navegador WSMAN</h1><div><table class=log1 cellpadding=0 cellspacing=0 style=width:100%;border-radius:8px><tbody><tr><td><div style=padding:4px><select id=22 multiple="multiple" style=width:100%;height:120px></select></div><tr><td><input id=23 type=button value=Consulta style=margin:4px onclick=wsmanQuery()><input type=button value=Claro style=margin:4px onclick="QH(24, '')"><input id=c0 placeholder=Filtrar style=margin:4px onkeyup=wsmanFilter()></table></div><br><div class=us id=24></div></div><div id=p13 style=display:none;min-width:780px><h1>Terminal de serie sobre LAN</h1><br><div id=25 style=max-width:100%;display:none;cursor:pointer;margin-bottom:5px onclick=showFeaturesDlg()><div class=icon2 style=float:left;margin:7px></div><div style=width:auto;border-radius:8px;padding:8px;background-color:lightsalmon>El puerto Intel® AMT Redirection o la función Serial-over-LAN está deshabilitada<span id=26>, haga clic aquí para habilitarlo.</span></div></div><div id=27 style=max-width:100%;display:none;cursor:pointer;margin-bottom:5px onclick=showPowerActionDlg()><div class=icon2 style=float:left;margin:7px></div><div style=width:auto;border-radius:8px;padding:8px;background-color:lightsalmon>La computadora remota no está encendida, haga clic aquí para emitir un comando de encendido.</div></div><table cellpadding=0 cellspacing=0 style=width:100%;padding:0px;padding:0px;margin-top:0px><tbody><tr><td style=padding-top:2px;padding-bottom:2px;background:#CCC><div style=float:right;text-align:right><input onkeyup=sendTermInputKeys(event) autocorrect=off autocapitalize=off style=opacity:0;width:0;height:0;font-size:1px onblur="keyInputBlur()"><span id=28></span> <div id=termRecordIcon title="Server is recording this session" style=display:none;float:right;background-color:red;width:12px;height:12px;border-radius:6px;margin-top:5px;margin-right:4px></div><input type=button onkeypress="return false" onkeydown="return false" class=cadbutton value="Acciones de poder ..." onclick=showPowerActionDlg() style=margin-right:3px><input type=button id=c1 value=SIDER title="Start server-side remote disk mount operation" onkeypress="return false" onkeydown="return false" onclick=iderServerStart() style=margin-right:3px><input type=button id=c2 value=IDER title="Iniciar la operación remota de montaje en disco" onkeypress="return false" onkeydown="return false" onclick=iderStart(event) style=margin-right:3px><input id=c3 type=button onkeypress="return false" onkeydown="return false" class=cadbutton value="Iniciar captura" title="Toggle start/stop of terminal capture, when stopping the content of the capture buffer will be saved to a file." onclick=terminalCaptureToggle(event) style=margin-right:3px></div><div> <input type=button id=c4 value=Conectar onclick=connectTerminal(event) disabled="disabled"> <span id=29>Desconectado.</span></div><tr><td style=background:#000;text-align:center><pre id=Term></pre><tr><td style=padding-top:2px;padding-bottom:2px;background:#CCC><div style=float:right;text-align:right><input id=30 type=button onkeypress="return false" onkeydown="if (event.keyCode == 13) handleKeyPress(event);return false" class=bottombutton value="CR + LF" title="Alternar lo que enviará la tecla de retorno" onclick="termToggleCr();Q(30).blur()"><input id=31 type=button onkeypress="return false" onkeydown="if (event.keyCode == 13) handleKeyPress(event); return false" class=bottombutton value=80x25 title="Cambiar tamaño de terminal" onclick="termToggleSize();Q(31).blur()"><input id=32 type=button onkeypress="return false" onkeydown="if (event.keyCode == 13) handleKeyPress(event);return false" class=bottombutton value="Intel (F10 = ESC + [OM)" title="Cambiar el tipo de emulación de teclas F1 a F10" onclick="termToggleFx();Q(32).blur()"><input id=33 type=button onkeypress="return false" onkeydown="if (event.keyCode == 13) handleKeyPress(event);return false" class=bottombutton value="Ascii extendido" title="Cambiar el tipo de emulación de terminal" onclick="termToggleType();Q(33).blur()"> </div><div><span id=termkeysspan><select style=margin-left:6px id=termkeys><option value=3>Ctrl-C<option value=24>Ctrl-X<option value=27>ESC<option value=8>Retroceso<option value=1001>F1<option value=1002>F2<option value=1003>F3<option value=1004>F4<option value=1005>F5<option value=1006>F6<option value=1007>F7<option value=1008>F8<option value=1009>F9<option value=1010>F10<option value=1011>F11<option value=1012>F12</select><input id=TermWD type=button value=Enviar onkeypress="return false" onkeydown="return false" onclick=termSendKeys()> </span><input id=34 type=button onkeypress="return false" onkeydown="return false" class=cadbutton value=Pegar disabled="disabled" onclick="setDialogMode(3,'Paste',3,termPaste)"></div></table></div><div id=p14 style=display:none;min-width:780px><div id=35><h1>Escritorio remoto</h1><br></div><div id=36 style=max-width:100%;display:none;cursor:pointer;margin-bottom:5px onclick=showFeaturesDlg()><div class=icon2 style=float:left;margin:7px></div><div style=width:auto;border-radius:8px;padding:8px;background-color:lightsalmon>El puerto Intel® AMT Redirection o la función KVM están deshabilitados<span id=37>, haga clic aquí para habilitarlo.</span></div></div><div id=38 style=max-width:100%;display:none;cursor:pointer;margin-bottom:5px onclick=showPowerActionDlg()><div class=icon2 style=float:left;margin:7px></div><div style=width:auto;border-radius:8px;padding:8px;background-color:lightsalmon>La computadora remota no está encendida, haga clic aquí para emitir un comando de encendido.</div></div><table cellpadding=0 cellspacing=0 style=width:100%;padding:0px;padding:0px;margin-top:0px><tbody><tr><td style=padding-top:2px;padding-bottom:2px;background:#CCC><div style=float:right;text-align:right><span id=39></span> <div class=rb title="Girar a la izquierda" onclick=drotate(-1)>↺</div><div class=rb title="Gira a la derecha" onclick=drotate(1)>↻</div><div id=deskRecordIcon title="Server is recording this session" style=display:none;float:right;background-color:red;width:12px;height:12px;border-radius:6px;margin-top:5px;margin-right:4px></div><input id=c5 type=button title="Alternar el modo de pantalla completa" onkeypress="return false" onkeydown="return false" value=Completo onclick=deskToggleFull() style=margin-right:3px><input id=c6 type=button title="Guardar una captura de pantalla del escritorio remoto" onkeypress="return false" onkeydown="return false" value=Salvar... onclick=deskSaveImage() style=margin-right:3px><input type=button value="Configuraciones ..." title="Editar configuraciones de escritorio remoto" onkeypress="return false" onkeydown="return false" onclick=showDesktopSettings() style=margin-right:3px><input type=button id=c7 value=SIDER title="Start server-side remote disk mount operation" onkeypress="return false" onkeydown="return false" onclick=iderServerStart() style=margin-right:3px><input type=button id=c8 value=IDER title="Iniciar la operación remota de montaje en disco" onkeypress="return false" onkeydown="return false" onclick=iderStart(event) style=margin-right:3px><input type=button title="Cambiar el estado de energía de la máquina remota" onkeypress="return false" onkeydown="return false" value="Acciones de poder ..." onclick=showPowerActionDlg() style=margin-right:3px></div><div><div id=c9 onclick=deskToggleFull() style=float:left;cursor:pointer;font-size:15px;display:none> ✖</div> <input type=button id=c10 value=Conectar onclick=connectDesktopButton(event) onkeypress="return false" onkeydown="return false" disabled="disabled"> <span id=40>Desconectado.</span></div><tr><td id=41 style=background:black;text-align:center;position:relative><canvas id=Desk width=640 height=400 style=-ms-touch-action:none;margin-left:0px oncontextmenu="return false" onmousedown=dmousedown(event) onmouseup=dmouseup(event) onmousemove=dmousemove(event) onmousewheel="dmousewheel(event)" moz-opaque=""></canvas><tr><td style=padding-top:2px;padding-bottom:2px;background:#CCC><div id=42 style=float:right></div><div> <span id=deskkeysspan><select style=margin-left:6px id=deskkeys><option value=0>Ganar<option value=1>Win + Down<option value=2>Win + Up<option value=3>Win + L<option value=4>Win + M<option value=20>Win + R<option value=23>Win + Izquierda<option value=24>Win + Right<option value=5>Shift + Win + M<option value=19>Alt-Tab<option value=21>Alt-F4<option value=22>Ctrl-W<option value=6>F1<option value=7>F2<option value=8>F3<option value=9>F4<option value=10>F5<option value=11>F6<option value=12>F7<option value=13>F8<option value=14>F9<option value=15>F10<option value=16>F11<option value=17>F12</select><input id=DeskWD type=button value=Enviar onkeypress="return false" onkeydown="return false" onclick=deskSendKeys()> </span><input id=43 type=button value=Ctrl-Alt-Del onkeypress="return false" onkeydown="return false" onclick=sendCAD()> <input id=44 type=button value=Tipo onkeypress="return false" onkeydown="return false" onclick=deskShowTypeDialog()> <span id=45><input id=46 type=checkbox>Pantalla en blanco </span><span id=47><input id=48 type=checkbox>Sólo vista </span></div></table></div><div id=p15 style=display:none><span id=49></span><h1>Registro de auditoría</h1><span id=50></span></div><div id=p16 style=display:none><h1>Configuracion seguridad</h1><span id=51></span></div><div id=p17 style=display:none><h1>Configuraciones de internet</h1><span id=52></span></div><div id=p18 style=display:none><h1>Defensa del sistema</h1><span id=53></span></div><div id=p19 style=display:none><h1>Presencia de agente</h1><span id=54></span></div><div id=p21 style=display:none><h1>Almacenamiento</h1><span id=55></span></div><div id=p22 style=display:none><h1>Suscripciones a eventos</h1><span id=56></span></div><div id=p23 style=display:none><h1>Wake Alarms</h1><span id=57></span></div><div id=p24 style=display:none;position:absolute;top:0px;bottom:0px;left:8px;right:24px><h1>Archivos</h1><br><table id=p24toolbar style=width:100%;position:absolute;top:35px cellpadding=0 cellspacing=0><tbody><tr><td style=width:100%;background-color:#d3d9d6;text-align:left;padding:4px valign="bottom"><div id=p24rightOfButtons style=float:right;margin-top:3px></div><div><input type=button id=p24FolderUp disabled="disabled" onclick=p24folderup() value=Arriba> <input type=button id=p24SelectAllButton disabled="disabled" onclick=p24selectallfile() value="Seleccionar todo" onkeypress="return false" onkeydown="return false"> <input type=button id=p24RenameFileButton disabled="disabled" value=Rebautizar onclick=p24renamefile() onkeypress="return false" onkeydown="return false"> <input type=button id=p24DeleteFileButton disabled="disabled" value=Eliminar onclick=p24deletefile() onkeypress="return false" onkeydown="return false"> <input type=button id=p24NewFolderButton disabled="disabled" value="Nueva carpeta" onclick=p24createfolder() onkeypress="return false" onkeydown="return false"> <input type=button id=p24UploadButton disabled="disabled" value=Subir onclick=p24uploadFile() onkeypress="return false" onkeydown="return false"> <input type=button id=p24CutButton disabled="disabled" value=Cortar onclick=p24copyFile(1) onkeypress="return false" onkeydown="return false"> <input type=button id=p24CopyButton disabled="disabled" value=Copiar onclick=p24copyFile(0) onkeypress="return false" onkeydown="return false"> <input type=button id=p24PasteButton disabled="disabled" value=Pegar onclick=p24pasteFile() onkeypress="return false" onkeydown="return false"> <input type=button id=p24RefreshButton disabled="disabled" value=Actualizar onclick=p24folderup(9999) onkeypress="return false" onkeydown="return false"> </div><tr><td style=background-color:#E4E9E7;height:28px><div style=float:right;margin-right:4px><select id=p24sortdropdown onchange=p24updateFiles()><option value=1 selected="selected">Ordenar por nombre<option value=2>Ordenado por tamaño<option value=3>Ordenar por fecha<option value=4>Desciende por nombre<option value=5>Descender por tamaño<option value=6>Descender por fecha</select></div><div> <span id=p24currentpath></span></div></table><div id=p24filetable style=width:100%;overflow:auto;-webkit-user-select:none;position:absolute;top:92px;bottom:30px><div id=p24bigok style=width:256px;overflow:hidden;position:absolute;top:80px;width:100%;text-align:center;font-size:1600%;color:#AAAAAA;display:none><b>✓</b></div><div id=p24bigfail style=width:256px;overflow:hidden;position:absolute;top:80px;width:100%;text-align:center;font-size:1600%;color:#AAAAAA;display:none><b>✗</b></div><span id=p24files></span></div><table id=p24toolbarBottom style=width:100%;position:absolute;bottom:10px cellpadding=0 cellspacing=0><tbody><tr><td style=text-align:left;padding:3px;text-align:center;background-color:#D3D9D6> <span id=p24bottomstatus></span></table></div></div></div></div><div id=dialog style="z-index:1000;background-color:#EEE;box-shadow:0px 0px 15px #666;font-family:Arial, Helvetica, sans-serif;border-radius:5px;position:fixed;overflow:hidden;top:75px;width:400px;max-height:550px;display:none"><div style="width:100%;background-color:#003366;color:#FFF;border-radius:5px 5px 0 0"><div id=58 style=float:right;padding:1px;margin-right:5px;cursor:pointer;font-size:15px onclick=setDialogMode()>✖</div><div id=59 style=padding:5px></div><div style=width:100%;margin:6px></div></div><div style=margin-right:16px;margin-left:8px><div id=dialog1 style=margin:auto;text-align:center;margin:3px><div id=60 style=padding:10px></div></div><div id=dialog2 style=margin:auto;margin:3px><br><div style=height:26px><input id=d2username style=float:right;width:200px onkeyup=updateAccountDialog()><div>Nombre de usuario</div></div><div style=height:26px><input id=d2password1 type=password autocomplete="off" style=float:right;width:200px onkeyup=updateAccountDialog()><div>Contraseña*</div></div><div style=height:26px><input id=d2password2 type=password autocomplete="off" style=float:right;width:200px onkeyup=updateAccountDialog()><div>Confirmar contraseña</div></div><div id=61><div style=height:26px><select id=d2permission style=float:right;width:200px><option value=0>Local<option value=1>Red<option value=2>Ninguna</select><div>Permiso</div></div><div>Permisos concedidos</div><ul id=62 style="list-style-type:none;height:100px;overflow:auto;width:100%;border:1px solid #000;background-color:white;overflow-x:hidden;margin:0;padding:0"></ul></div><div style=font-size:10px><br>* Mínimo 8 caracteres con mayúsculas, minúsculas, 0-9 y uno de! @ # $% ^ & * () + -</div></div><div id=dialog3 style=margin:auto;text-align:center;margin:3px><textarea id=d3pastetextarea maxlength="4096" style=width:100%;height:200px;resize:none></textarea></div><div id=dialog5 style=margin:auto;margin:3px><br><div style=height:26px><select id=d5actionSelect style=float:right;width:200px></select><div>Acción de poder</div></div><div><span style=color:red>Advertencia:</span>Algunas acciones de energía pueden provocar la pérdida de datos y pueden desconectar las sesiones de redirección de escritorio, terminal o disco.</div></div><div id=dialog6 style=margin:auto;margin:3px><br><div style=height:26px><input id=d6ConsentText style=float:right;width:200px maxlength="6" onkeyup=consentChanged() onkeypress="if (event.keyCode == 13) return dialogclose(1); else return numbersOnly(event)"><div>Código de consentimiento</div></div><div style=height:26px><select id=d6Display onchange=changeConsentDisplay() style=float:right;width:200px><option value=0>Pantalla principal<option value=1>Pantalla secundaria<option id=d6ThirdDisplay value=2 style=display:none>Tercera pantalla</select><div>Visualización de consentimiento</div></div></div><div id=dialog7 style=margin:auto;margin:3px><br><div style=height:26px><select id=c11 style=float:right;width:200px></select><div>Codificación de imagen</div></div><div style=height:80px><div style="float:right;border:1px solid #666;width:200px;height:80px;overflow-y:scroll;background-color:white"><span id=d7decimationspan><label><input type=checkbox id=d7decimation>Prefer Downscale</label><br></span><label><input type=checkbox id=d7showcursor>Mostrar cursor del mouse local</label><br><label><input type=checkbox id=d7showcad>Mostrar Ctrl-Alt-Supr</label><br><label><input type=checkbox id=d7limitFrameRate>Límite de velocidad de fotogramas</label><br><label><input type=checkbox id=d7noMouseRotate>No gire el mouse</label><br></div><div>Otros ajustes</div></div><div id=d7softkvmsettings style=display:none><h4 style="width:100%;border-bottom:1px solid gray">Software KVM</h4><div style="margin:3px 0 3px 0"><select id=d7bitmapquality style=float:right;width:200px;height:20px dir="rtl"><option value=50>50%<option value=40>40%<option selected="selected" value=30>30%<option value=20>20%<option value=10>10%<option value=5>5%<option value=1>1%</select><div style=height:20px>Calidad</div></div><div style="margin:3px 0 3px 0"><select id=d7bitmapscaling style=float:right;width:200px;height:20px dir="rtl"><option selected="selected" value=1024>100%<option value=896>87,5%<option value=768>75%<option value=640>62,5%<option value=512>50%<option value=384>37,5%<option value=256>25%<option value=128>12,5%</select><div style=height:20px>Escalada</div></div></div></div><div id=dialog8 style=display:table;margin:3px><div style="margin:3px 0 3px 0;padding-top:5px"><input id=c12 value=administración style=float:right;width:220px><div style=height:20px>Nombre de usuario</div></div><div style="margin:3px 0 3px 0"><input id=c13 type=password autocomplete="off" style=float:right;width:220px><div style=height:20px>Contraseña</div></div></div><div id=dialog9 style=margin:auto;margin:3px><label style=display:block><input type=checkbox id=c14>Puerto de redireccionamiento</label><label id=c15 style=display:block><input type=checkbox id=c16>Escritorio remoto KVM</label><label style=display:block><input type=checkbox id=c17>Redirección IDE<br></label><label style=display:block><input type=checkbox id=c18>Serie sobre LAN<br></label></div><div id=dialog10 style=margin:auto;margin:3px><label><input type=radio name=d10 id=c19 value=0>No requerido<br></label><label><input type=radio name=d10 id=c20 value=1>Requerido solo para KVM<br></label><label><input type=radio name=d10 id=c21 value=4294967295>Siempre requerido<br></label></div><div id=dialog11 style=margin:auto;margin:3px><div id=63></div></div><div id=dialog12 style=margin:auto;margin:3px><br><div style=height:26px><input id=c22 style=float:right;width:200px maxlength="32" onkeyup=updateWifiDialog() title="Máximo 32 caracteres"><div title="Máximo 32 caracteres">Nombre de perfil</div></div><div style=height:26px><input id=c23 style=float:right;width:200px maxlength="32" onkeyup=updateWifiDialog() title="Máximo 32 caracteres"><div title="Máximo 32 caracteres">SSID</div></div><div style=height:26px><select id=c24 style=float:right;width:200px onclick=updateWifiDialog()></select><div>Prioridad</div></div><div style=height:26px><select id=c25 style=float:right;width:200px onclick=updateWifiDialog()><option id=c26 value=32768>WPA3 SAE<option value=6>WPA2 PSK<option value=4>PSK WPA</select><div>Autenticación</div></div><div style=height:26px><select id=c27 style=float:right;width:200px onclick=updateWifiDialog()><option id=64 value=4>CCMP-AES<option id=65 value=3>TKIP-RC4<option id=66 value=2>WEP<option id=67 value=5>Ninguna</select><div>Cifrado</div></div><div style=height:26px><input id=c28 type=password style=float:right;width:200px maxlength="63" onkeyup=updateWifiDialog() title="Longitud entre 8 y 63 caracteres."><div title="Longitud entre 8 y 63 caracteres.">Contraseña*</div></div><div style=height:26px><input id=c29 type=password style=float:right;width:200px maxlength="63" onkeyup=updateWifiDialog() title="Longitud entre 8 y 63 caracteres."><div title="Longitud entre 8 y 63 caracteres.">Confirmar contraseña</div></div></div><div id=dialog19 style=margin:auto;margin:3px>Esto guardará todo el estado de Intel® AMT para esta máquina en un archivo. Las contraseñas no se guardarán, pero se pueden incluir algunos datos confidenciales.<br><br><input id=c30 style=width:100% value=amtstate.json></div><div id=dialog20 style=margin:auto;margin:3px><input type=radio name=d20 id=d20a value=0>Discapacitado<br><input type=radio name=d20 id=d20b value=1>Respuesta ICMP<br><input type=radio name=d20 id=d20c value=2>Respuesta RMCP<br><input type=radio name=d20 id=d20d value=3>Respuesta ICMP y RMCP<br><br></div><div id=dialog21 style=margin:auto;margin:3px><div id=68><label><input type=checkbox name=d21 id=d21ipsync onclick=updateIPSetupDlg()>Sincronización de dirección IP del sistema operativo</label><br></div><label><input type=radio name=d21 id=d21o0 onclick=updateIPSetupDlg()><span id=d21l0></span></label><br><label><input type=radio name=d21 id=d21o1 onclick=updateIPSetupDlg()><span id=d21l1></span></label><br><div id=69><label><input type=radio name=d21 id=d21o2 onclick=updateIPSetupDlg()><span id=d21l2></span></label><br><br><div style=margin-left:20px><div style=height:26px><input id=c31 onkeyup=updateIPSetupDlg() style=float:right;width:230px><div>dirección IP</div></div><div style=height:26px id=70><input id=c32 onkeyup=updateIPSetupDlg() style=float:right;width:230px><div>Marca de subred</div></div><div style=height:26px><input id=c33 onkeyup=updateIPSetupDlg() style=float:right;width:230px><div>Puerta</div></div><div style=height:26px><input id=c34 onkeyup=updateIPSetupDlg() style=float:right;width:230px><div>DNS primario</div></div><div style=height:26px><input id=c35 onkeyup=updateIPSetupDlg() style=float:right;width:230px><div>DNS alternativo</div></div></div></div></div><div id=dialog23 style=margin:auto;margin:3px><br><div style=height:26px><select id=c36 style=float:right;width:200px onchange=showEditDnsDlgChange()><option value=0>Discapacitado<option value=1>Desactivado, actualización de DHCP<option value=2>Habilitado</select><div>Cliente DNS dinámico</div></div><div style=height:26px><input id=c37 style=float:right;width:200px><div>Intervalo de actualización (minutos)</div></div><div style=height:26px><input id=c38 style=float:right;width:200px><div>TTL (segundos)</div></div><div style=font-size:10px><br>El intervalo predeterminado es de 1440 minutos, el TTL predeterminado es de 900 segundos.</div></div><div id=dialog24 style=margin:auto;margin:3px><br><div style=height:26px><select id=c39 style=float:right;width:200px onchange=showAdvPowerDlgChange()><option value=2>Encender<option value=10>Reiniciar<option value=5>Ciclo de poder<option value=8>Corriente cortada<option id=d24p500 value=500>OS Wake desde Standby<option id=d24p501 value=501>Ahorro de energía del sistema operativo<option value=999>Establecer opciones de arranque</select><div>Comando remoto</div></div><div style=height:80px><div id=c40 style="float:right;border:1px solid #666;width:200px;height:72px;overflow-y:scroll;background-color:white"><div id=d24dBiosPause><label><input type=checkbox id=d24BiosPause onchange=showAdvPowerDlgChange()>Pausa del BIOS</label><br></div><div id=d24dBiosSecureBoot><label><input type=checkbox id=d24BiosSecureBoot onchange=showAdvPowerDlgChange()>Hacer cumplir el arranque seguro</label><br></div><div id=d24dBiosSetup><label><input type=checkbox id=d24BiosSetup onchange=showAdvPowerDlgChange()>Configuración del BIOS</label><br></div><div id=d24dForceProgressEvents><label><input type=checkbox id=d24ForceProgressEvents onchange=showAdvPowerDlgChange()>Forzar eventos de progreso</label><br></div><div id=d24dLockPowerButton><label><input type=checkbox id=d24LockPowerButton onchange=showAdvPowerDlgChange()>Botón de encendido de bloqueo</label><br></div><div id=d24dLockResetButton><label><input type=checkbox id=d24LockResetButton onchange=showAdvPowerDlgChange()>Botón de reinicio de bloqueo</label><br></div><div id=d24dLockSleepButton><label><input type=checkbox id=d24LockSleepButton onchange=showAdvPowerDlgChange()>Botón de bloqueo</label><br></div><div id=d24dLockKeyboard><label><input type=checkbox id=d24LockKeyboard onchange=showAdvPowerDlgChange()>Bloqueo de teclado</label><br></div><div id=d24dUserPasswordBypass><label><input type=checkbox id=d24UserPasswordBypass onchange=showAdvPowerDlgChange()>BIOS bypass de contraseña</label><br></div><div id=d24dReflashBios><label><input type=checkbox id=d24ReflashBios onchange=showAdvPowerDlgChange()>Reflash BIOS</label><br></div><div id=d24dSafeMode><label><input type=checkbox id=d24SafeMode onchange=showAdvPowerDlgChange()>Modo seguro</label><br></div><div id=d24dUseIDER><label><input type=checkbox id=d24UseIDER onchange=showAdvPowerDlgChange()>Use IDER</label><br></div><div id=d24dSerialOverLan><label><input type=checkbox id=d24SerialOverLan onchange=showAdvPowerDlgChange()>Serie sobre LAN</label><br></div><div id=d24dSecureErase><label><input type=checkbox id=d24SecureErase onchange=showAdvPowerDlgChange()>Borrado seguro remoto Intel®</label><br></div><div id=d24dPlatformErase><label><input type=checkbox id=d24PlatformErase onchange=showAdvPowerDlgChange()>Remote Platform Erase</label><br></div><div id=d24dFirmwareReset><label><input type=checkbox id=d24FirmwareReset onchange=showAdvPowerDlgChange()>Clear Intel® ME Settings</label><br></div></div><div>Configuración de arranque</div></div><div style=height:26px><select id=c41 style=float:right;width:200px onchange=showAdvPowerDlgChange()><option value=0>Ninguna<option id=ForceDVDBootOption value=1>Forzar arranque de CD / DVD<option id=ForcePXEBootOption value=2>Arranque Force PXE<option id=ForceHDBootOption value=3>Forzar arranque de disco duro<option id=ForceDiagBootOption value=4>Arranque de diagnóstico de fuerza</select><div>Fuente de arranque</div></div><div id=c42 style=height:26px><select id=c43 style=float:right;width:200px onchange=showAdvPowerDlgChange()><option value=0>Ninguna<option value=1>Índice 1<option value=2>Índice 2<option value=3>Índice 3<option value=3>Índice 4</select><div>Boot Media</div></div><div style=height:26px id=idd_d24IDERBootDevice><select id=c44 style=float:right;width:200px onchange=showAdvPowerDlgChange()><option value=0>Arrancar en disquete<option value=1>Arrancar en CDROM</select><div>Dispositivo de arranque IDER</div></div><div style=height:26px><select id=c45 style=float:right;width:200px onchange=showAdvPowerDlgChange()><option value=0>Sistema por defecto<option id=c46 value=1>Tranquilo<option id=c47 value=2>Verboso<option id=c48 value=3>Pantalla en blanco</select><div>Verbocidad</div></div><div style=height:26px id=idd_d24RSEPass><div style=float:right;width:200px><input type=password id=d24rsepass maxlength="32" style=float:right;width:100%></div><div>Contraseña RSE</div></div></div><div id=dialog25 style=margin:auto;margin:3px><div style=text-align:left><div style=height:26px;margin-top:4px><input id=d25alarm_name style=float:right;width:180px maxlength="32" onkeyup=alertDialogUpdate()><div style=padding-top:4px>Nombre de alarma</div></div><div style=height:26px;margin-top:4px><div style=float:right><input id=d25alarm_sdate style=width:180px maxlength="10" onkeyup=alertDialogUpdate() onkeypress="return numbersOnly(event,45)"></div><div style=padding-top:4px>Fecha de activación (año-mes-día)</div></div><div style=height:26px;margin-top:4px><div style=float:right><input id=d25alarm_stime style=width:180px maxlength="10" onkeyup=alertDialogUpdate() onkeypress="return numbersOnly(event,58)"></div><div style=padding-top:4px>Tiempo de activación (hora: min: seg)</div></div><div style=height:26px;margin-top:4px><div style=float:right><input id=d25alarm_interval style=width:180px maxlength="10" onkeyup=alertDialogUpdate() onkeypress="return numbersOnly(event,45)"></div><div style=padding-top:4px>Intervalo (días-horas-min)</div></div><div style=height:26px;margin-top:4px><div style=float:right;width:180px><select id=d25alarm_doc style=width:100% onchange=showAdvPowerDlgChange()><option value=0>Mantener alarma<option value=1>Eliminar al finalizar</select></div><div style=padding-top:4px>Despues de despertar</div></div></div></div><div id=dialog26 style=margin:auto;margin:3px><div id=d26rpediv><div>Remote Platform Erase (RPE)</div><label><input type=radio name=d26b id=c49 value=2>Habilitado<br></label><label><input type=radio name=d26b id=c50 value=0>Discapacitado<br></label><hr></div><div>One One Click Recovery (OCR)</div><label><input type=radio name=d26a id=c51 value=1>Habilitado<br></label><label><input type=radio name=d26a id=c52 value=0>Discapacitado<br></label></div></div><div style=padding:10px;margin-bottom:4px><input id=c53 type=button value=Cancelar style=float:right;width:80px;margin-left:5px onclick=dialogclose(0)><input id=c54 type=button value=Okay style=float:right;width:80px onclick=dialogclose(1)><div style=height:25px><input id=c55 type=button value=Eliminar style=width:80px;display:none onclick=dialogclose(2)></div></div></div><script>var $jscomp={scope:{},getGlobal:function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global?global:b}};$jscomp.global=$jscomp.getGlobal(this);$jscomp.initSymbol=function(){$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol);$jscomp.initSymbol=function(){}};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(b){return"jscomp_symbol_"+b+$jscomp.symbolCounter_++};
|
|
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();$jscomp.global.Symbol.iterator||($jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));$jscomp.initSymbolIterator=function(){}};
|
|
$jscomp.makeIterator=function(b){$jscomp.initSymbolIterator();if(b[$jscomp.global.Symbol.iterator])return b[$jscomp.global.Symbol.iterator]();if(!(b instanceof Array||"string"==typeof b||b instanceof String))throw new TypeError(b+" is not iterable");var c=0;return{next:function(){return c==b.length?{done:!0}:{done:!1,value:b[c++]}}}};$jscomp.arrayFromIterator=function(b){for(var c,a=[];!(c=b.next()).done;)a.push(c.value);return a};
|
|
$jscomp.arrayFromIterable=function(b){return b instanceof Array?b:$jscomp.arrayFromIterator($jscomp.makeIterator(b))};$jscomp.arrayFromArguments=function(b){for(var c=[],a=0;a<b.length;a++)c.push(b[a]);return c};
|
|
$jscomp.inherits=function(b,c){function a(){}a.prototype=c.prototype;b.prototype=new a;b.prototype.constructor=b;for(var d in c)if($jscomp.global.Object.defineProperties){var e=$jscomp.global.Object.getOwnPropertyDescriptor(c,d);void 0!==e&&$jscomp.global.Object.defineProperty(b,d,e)}else b[d]=c[d]};String.prototype.startsWith||(String.prototype.startsWith=function(b){return 0===this.lastIndexOf(b,0)});
|
|
String.prototype.endsWith||(String.prototype.endsWith=function(b){return-1!==this.indexOf(b,this.length-b.length)});function Q(b){return document.getElementById(b)}function QS(b){try{return Q(b).style}catch(c){}}function QE(b,c){try{Q(b).disabled=!c}catch(a){}}function QV(b,c){try{QS(b).display=c?"":"none"}catch(a){}}function QA(b,c){Q(b).innerHTML+=c}function QH(b,c){Q(b).innerHTML=c}function inputBoxFocus(b){Q(b).focus();var c=Q(b).value;Q(b).value="";Q(b).value=c}
|
|
function ReadShort(b,c){return(b.charCodeAt(c)<<8)+b.charCodeAt(c+1)}function ReadShortX(b,c){return(b.charCodeAt(c+1)<<8)+b.charCodeAt(c)}function ReadInt(b,c){return 16777216*b.charCodeAt(c)+(b.charCodeAt(c+1)<<16)+(b.charCodeAt(c+2)<<8)+b.charCodeAt(c+3)}function ReadSInt(b,c){return(b.charCodeAt(c)<<24)+(b.charCodeAt(c+1)<<16)+(b.charCodeAt(c+2)<<8)+b.charCodeAt(c+3)}function ReadIntX(b,c){return 16777216*b.charCodeAt(c+3)+(b.charCodeAt(c+2)<<16)+(b.charCodeAt(c+1)<<8)+b.charCodeAt(c)}
|
|
function ShortToStr(b){return String.fromCharCode(b>>8&255,b&255)}function ShortToStrX(b){return String.fromCharCode(b&255,b>>8&255)}function IntToStr(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}function IntToStrX(b){return String.fromCharCode(b&255,b>>8&255,b>>16&255,b>>24&255)}function MakeToArray(b){return b&&null!=b&&"object"!=typeof b?[b]:b}function SplitArray(b){return b.split(",")}function Clone(b){return JSON.parse(JSON.stringify(b))}
|
|
function EscapeHtml(b){if("string"==typeof b)return b.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,""").replace(/'/g,"'");if("boolean"==typeof b||"number"==typeof b)return b}function NoBreak(b){return b.split(" ").join(" ")}function ArrayElementMove(b,c,a){b.splice(a,0,b.splice(c,1)[0])}
|
|
function ObjectToStringEx(b,c){var a="";if(0!=b&&(!b||null==b))return"(Null)";if(b instanceof Array)for(var d in b)a+="<br />"+gap(c)+"Item #"+d+": "+ObjectToStringEx(b[d],c+1);else if(b instanceof Object)for(d in b)a+="<br />"+gap(c)+d+" = "+ObjectToStringEx(b[d],c+1);else a+=EscapeHtml(b);return a}
|
|
function ObjectToStringEx2(b,c){var a="";if(0!=b&&(!b||null==b))return"(Null)";if(b instanceof Array)for(var d in b)a+="\r\n"+gap2(c)+"Item #"+d+": "+ObjectToStringEx2(b[d],c+1);else if(b instanceof Object)for(d in b)a+="\r\n"+gap2(c)+d+" = "+ObjectToStringEx2(b[d],c+1);else a+=EscapeHtml(b);return a}function gap(b){for(var c="",a=0;a<4*b;a++)c+=" ";return c}function gap2(b){for(var c="",a=0;a<4*b;a++)c+=" ";return c}function ObjectToString(b){return ObjectToStringEx(b,0)}
|
|
function ObjectToString2(b){return ObjectToStringEx2(b,0)}function hex2rstr(b){if("string"!=typeof b||0==b.length)return"";var c="";b=(""+b).match(/../g);for(var a;a=b.shift();)c+=String.fromCharCode("0x"+a);return c}function char2hex(b){return(b+256).toString(16).substr(-2).toUpperCase()}function rstr2hex(b){var c="",a;for(a=0;a<b.length;a++)c+=char2hex(b.charCodeAt(a));return c}function encode_utf8(b){return unescape(encodeURIComponent(b))}
|
|
function decode_utf8(b){return decodeURIComponent(escape(b))}function data2blob(b){for(var c=Array(b.length),a=0;a<b.length;a++)c[a]=b.charCodeAt(a);return new Blob([new Uint8Array(c)])}function random(b){return Math.floor(Math.random()*b)}function trademarks(b){return b.replace(/\(R\)/g,"®").replace(/\(TM\)/g,"™")}function format(b){var c=Array.prototype.slice.call(arguments,1);return b.replace(/{(\d+)}/g,function(a,b){return"undefined"!=typeof c[b]?c[b]:a})}
|
|
function makeUefiBootParam(b,c,a){"number"==typeof c&&(1==a&&(c=String.fromCharCode(c&255)),2==a&&(c=ShortToStrX(c)),4==a&&(c=IntToStrX(c)));return ShortToStrX(32902)+ShortToStrX(b)+IntToStrX(c.length)+c}
|
|
var CreateAmtRemoteIder=function(){function b(){urlvars&&urlvars.idertrace&&console.log(arguments)}function c(c,d,C,H){switch(d.charCodeAt(0)){case 0:b("SCSI: TEST_UNIT_READY",c);switch(c){case 160:if(null==e.floppy)return e.SendCommandEndResponse(1,2,c,58,0),-1;if(0==e.floppyReady)return e.floppyReady=!0,e.SendCommandEndResponse(1,6,c,40,0),-1;break;case 176:if(null==e.cdrom)return e.SendCommandEndResponse(1,2,c,58,0),-1;if(0==e.cdromReady)return e.cdromReady=!0,e.SendCommandEndResponse(1,6,c,40,
|
|
0),-1;break;default:return b("SCSI Internal error 3",c),-1}e.SendCommandEndResponse(1,0,c,0,0);break;case 8:H=((d.charCodeAt(1)&31)<<16)+(d.charCodeAt(2)<<8)+d.charCodeAt(3);d=d.charCodeAt(4);0==d&&(d=256);b("SCSI: READ_6",c,H,d);a(c,H,d,C);break;case 10:return H=((d.charCodeAt(1)&31)<<16)+(d.charCodeAt(2)<<8)+d.charCodeAt(3),d=d.charCodeAt(4),0==d&&(d=256),b("SCSI: WRITE_6",c,H,d),e.SendCommandEndResponse(1,2,c,58,0),-1;case 26:b("SCSI: MODE_SENSE_6",c);if(63==d.charCodeAt(2)&&0==d.charCodeAt(3)){H=
|
|
d=0;switch(c){case 160:if(null==e.floppy)return e.SendCommandEndResponse(1,2,c,58,0),-1;d=0;H=128;break;case 176:if(null==e.cdrom)return e.SendCommandEndResponse(1,2,c,58,0),-1;d=5;H=128;break;default:return b("SCSI Internal error 6",c),-1}e.SendDataToHost(c,!0,String.fromCharCode(0,d,H,0),C&1);return}e.SendCommandEndResponse(1,5,c,36,0);break;case 27:e.SendCommandEndResponse(1,0,c);break;case 30:b("SCSI: ALLOW_MEDIUM_REMOVAL",c);if(160==c&&null==e.floppy||176==c&&null==e.cdrom)return e.SendCommandEndResponse(1,
|
|
2,c,58,0),-1;e.SendCommandEndResponse(1,0,c,0,0);break;case 35:b("SCSI: READ_FORMAT_CAPACITIES",c);H=ReadShort(d,7);switch(c){case 160:if(null==e.floppy||0==e.floppy.size)return e.SendCommandEndResponse(0,5,c,36,0),-1;break;case 176:if(null==e.cdrom||0==e.cdrom.size)return e.SendCommandEndResponse(0,5,c,36,0),-1;break;default:return b("SCSI Internal error 4",c),-1}e.SendDataToHost(c,!0,IntToStr(8)+String.fromCharCode(0,0,11,64,2,0,2,0),C&1);break;case 37:b("SCSI: READ_CAPACITY",c);d=0;switch(c){case 160:if(null==
|
|
e.floppy||0==e.floppy.size)return e.SendCommandEndResponse(0,2,c,58,0),-1;null!=e.floppy&&(d=(e.floppy.size>>9)-1);b("DEV_FLOPPY",d);break;case 176:if(null==e.cdrom||0==e.cdrom.size)return e.SendCommandEndResponse(0,2,c,58,0),-1;null!=e.cdrom&&(d=(e.cdrom.size>>11)-1);b("DEV_CDDVD",d);break;default:return b("SCSI Internal error 4",c),-1}b("SCSI: READ_CAPACITY2",c,H);e.SendDataToHost(H,!0,IntToStr(d)+String.fromCharCode(0,0,176==c?8:2,0),C&1);break;case 40:H=ReadInt(d,2);d=ReadShort(d,7);b("SCSI: READ_10",
|
|
c,H,d);a(c,H,d,C);break;case 42:case 46:H=ReadInt(d,2);d=ReadShort(d,7);b("SCSI: WRITE_10",c,H,d);e.SendGetDataFromHost(c,512*d);break;case 67:H=ReadShort(d,7);var r=d.charCodeAt(1)&2,J=d.charCodeAt(2)&7;0==J&&(J=d.charCodeAt(9)>>6);b("SCSI: READ_TOC, dev="+c+", buflen="+H+", msf="+r+", format="+J);switch(c){case 160:return e.SendCommandEndResponse(1,5,c,32,0),-1;case 176:break;default:return b("SCSI Internal error 9",c),-1}1==J?e.SendDataToHost(c,!0,String.fromCharCode(0,10,1,1,0,20,1,0,0,0,0,0),
|
|
C&1):0==J&&(r?e.SendDataToHost(c,!0,String.fromCharCode(0,18,1,1,0,20,1,0,0,0,2,0,0,20,170,0,0,0,52,19),C&1):e.SendDataToHost(c,!0,String.fromCharCode(0,18,1,1,0,20,1,0,0,0,0,0,0,20,170,0,0,0,0,0),C&1));break;case 70:var J=2!=d.charCodeAt(1),P=ReadShort(d,2);H=ReadShort(d,7);b("SCSI: GET_CONFIGURATION",c,J,P,H);if(0==H)return e.SendDataToHost(c,!0,IntToStr(60)+IntToStr(8),C&1),-1;r=IntToStr(8);0==P&&(r+=m);if(1==P||J&&1>P)r+=k;if(2==P||J&&2>P)r+=g;if(3==P||J&&3>P)r+=u;if(16==P||J&&16>P)r+=O;if(30==
|
|
P||J&&30>P)r+=D;if(256==P||J&&256>P)r+=y;if(261==P||J&&261>P)r+=z;r=IntToStr(r.length)+r;r.length>H&&(r=r.substring(0,H));e.SendDataToHost(c,!0,r,C&1);return-1;case 74:b("SCSI: GET_EVENT_STATUS_NOTIFICATION",c,d.charCodeAt(1),d.charCodeAt(4),d.charCodeAt(9));if(1!=d.charCodeAt(1)&&16!=d.charCodeAt(4)){b("SCSI ERROR");e.SendCommandEndResponse(1,5,c,38,1);break}d=0;160==c&&null!=e.floppy?d=2:176==c&&null!=e.cdrom&&(d=2);e.SendDataToHost(c,!0,String.fromCharCode(0,d,128,0),C&1);break;case 76:e.SendCommand(81,
|
|
IntToStrX(0)+IntToStrX(0)+IntToStrX(0)+String.fromCharCode(135,80,3,0,0,0,176,81,5,32,0),!0);break;case 81:return b("SCSI READ_DISC_INFO",c),e.SendCommandEndResponse(0,5,c,32,0),-1;case 85:return b("SCSI ERROR: MODE_SELECT_10",c),e.SendCommandEndResponse(1,5,c,32,0),-1;case 90:b("SCSI: MODE_SENSE_10",c,d.charCodeAt(2)&63);H=ReadShort(d,7);r=null;if(0==H)return e.SendDataToHost(c,!0,IntToStr(60)+IntToStr(8),C&1),-1;H=0;160==c?null!=e.floppy&&(H=e.floppy.size>>9):null!=e.cdrom&&(H=e.cdrom.size>>11);
|
|
switch(d.charCodeAt(2)&63){case 1:r=160==c?2880>=H?A:R:x;break;case 5:160==c&&(r=2880>=H?p:n);break;case 63:r=160==c?2880>=H?q:l:E;break;case 26:176==c&&(r=h);break;case 29:176==c&&(r=B);break;case 42:176==c&&(r=w)}null==r?e.SendCommandEndResponse(0,5,c,32,0):e.SendDataToHost(c,!0,r,C&1);break;default:return b("IDER: Unknown SCSI command",d.charCodeAt(0)),e.SendCommandEndResponse(0,5,c,32,0),-1}return 0}function a(a,b,y,c){var h=null,x=0;160==a&&(h=e.floppy,null!=e.floppy&&(x=e.floppy.size>>9));176==
|
|
a&&(h=e.cdrom,null!=e.cdrom&&(x=e.cdrom.size>>11));if(0>y||b+y>x)return e.SendCommandEndResponse(1,5,a,33,0),0;if(0==y)return e.SendCommandEndResponse(1,0,a,0,0),0;null!=h&&(e.sectorStats&&e.sectorStats(1,160==a?0:1,x,b,y),160==a?(b<<=9,y<<=9):(b<<=11,y<<=11),null!==J?C.push({media:h,dev:a,lba:b,len:y,fr:c}):(J=h,P=a,r=b,N=y,d(c)))}function d(a){var b=N,y=r;N>e.iderinfo.readbfr&&(b=e.iderinfo.readbfr);N-=b;r+=b;var c=new FileReader;c.onload=function(){var b=this.result;"object"==typeof b&&(b=new Uint8Array(b),
|
|
b=String.fromCharCode.apply(null,b));e.SendDataToHost(P,0==N,b,a&1);0<N&&0==H?d(a):(J=null,H?(e.SendCommand(71),C=[],H=!1):0<C.length&&(b=C.shift(),J=b.media,P=b.dev,r=b.lba,N=b.len,d(b.fr)))};c.readAsBinaryString?c.readAsBinaryString(J.slice(y,y+b)):c.readAsArrayBuffer(J.slice(y,y+b))}var e={protocol:3,bytesToAmt:0,bytesFromAmt:0,rx_timeout:3E4,tx_timeout:0,heartbeat:2E4,version:1,acc:"",inSequence:0,outSequence:0,iderinfo:null,enabled:!1,iderStart:0,floppy:null,cdrom:null,floppyReady:!1,cdromReady:!1,
|
|
sectorStats:null},v=null;urlvars&&urlvars.iderlog&&(v=require("fs").createWriteStream(urlvars.iderlog,{flags:"w"}));var n=String.fromCharCode(0,38,49,128,0,0,0,0,5,30,16,169,8,32,2,0,3,195,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,2,208,0,0),l=String.fromCharCode(0,92,36,128,0,0,0,0,1,10,0,1,0,0,0,0,2,0,0,0,3,22,0,160,0,0,0,0,0,18,2,0,0,0,0,0,0,0,160,0,0,0,5,30,16,169,8,32,2,0,3,195,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,2,208,0,0,8,10,0,0,0,0,0,0,0,0,0,0,11,6,0,0,0,17,36,49),p=String.fromCharCode(0,38,
|
|
36,128,0,0,0,0,5,30,4,176,2,18,2,0,0,80,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,2,208,0,0),q=String.fromCharCode(0,92,36,128,0,0,0,0,1,10,0,1,0,0,0,0,2,0,0,0,3,22,0,160,0,0,0,0,0,18,2,0,0,0,0,0,0,0,160,0,0,0,5,30,4,176,2,18,2,0,0,80,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,2,208,0,0,8,10,0,0,0,0,0,0,0,0,0,0,11,6,0,0,0,17,36,49),h=String.fromCharCode(0,18,1,128,0,0,0,0,26,10,0,0,0,0,0,0,0,0,0,0),B=String.fromCharCode(0,18,1,128,0,0,0,0,29,10,0,0,0,0,0,0,0,0,0,0),w=String.fromCharCode(0,32,1,128,0,0,0,0,42,
|
|
24,0,0,0,0,32,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0),E=String.fromCharCode(0,40,1,128,0,0,0,0,1,6,0,255,0,0,0,0,42,24,0,0,0,0,2,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0);String.fromCharCode(0,0,0,40,0,0,0,8);var m=String.fromCharCode(0,0,3,4,0,8,1,0),k=String.fromCharCode(0,1,3,4,0,0,0,2),g=String.fromCharCode(0,2,3,4,0,0,0,0),u=String.fromCharCode(0,3,3,4,41,0,0,2),O=String.fromCharCode(0,16,1,8,0,0,8,0,0,1,0,0),D=String.fromCharCode(0,30,3,0),y=String.fromCharCode(1,0,3,0),z=String.fromCharCode(1,
|
|
5,3,0),A=String.fromCharCode(0,18,36,128,0,0,0,0,1,10,0,1,0,0,0,0,2,0,0,0),R=String.fromCharCode(0,18,49,128,0,0,0,0,1,10,0,1,0,0,0,0,2,0,0,0),x=String.fromCharCode(0,14,1,128,0,0,0,0,1,6,0,255,0,0,0,0);e.xxStateChange=function(a){b("IDER-StateChange",a);0==a&&e.Stop();3==a&&e.Start()};e.Start=function(){b("IDER-Start");b(e.floppy,e.cdrom);e.bytesToAmt=0;e.bytesFromAmt=0;e.inSequence=0;e.outSequence=0;C=[];e.SendCommand(64,ShortToStrX(e.rx_timeout)+ShortToStrX(e.tx_timeout)+ShortToStrX(e.heartbeat)+
|
|
IntToStrX(e.version));e.sectorStats&&(e.sectorStats(0,0,e.floppy?e.floppy.size>>9:0),e.sectorStats(0,1,e.cdrom?e.cdrom.size>>11:0))};e.Stop=function(){b("IDER-Stop");e.parent.Stop()};e.ProcessData=function(a){e.bytesFromAmt+=a.length;e.acc+=a;null!=v&&v.write("IDERRECV: "+rstr2hex(a)+"\r\n");for(b("IDER-ProcessData",e.acc.length,rstr2hex(e.acc));;){a=e.ProcessDataEx();if(0==a)break;if(e.inSequence!=ReadIntX(e.acc,4)){b("ERROR: Out of sequence",e.inSequence,ReadIntX(e.acc,4));e.Stop();break}e.inSequence++;
|
|
e.acc=e.acc.substring(a)}};e.SendCommand=function(a,y,c,h){null==y&&(y="");c=50<a&&1==c?2:0;h&&(c+=1);y=String.fromCharCode(a,0,0,c)+IntToStrX(e.outSequence++)+y;e.parent.xxSend(y);e.bytesToAmt+=y.length;null!=v&&v.write("IDERSEND: "+rstr2hex(y)+"\r\n");75!=a&&b("IDER-SendData",y.length,rstr2hex(y))};e.SendCommandEndResponse=function(a,b,y,c,h){a?e.SendCommand(81,String.fromCharCode(0,0,0,0,0,0,0,0,0,0,0,0,197,0,3,0,0,0,y,80,0,0,0),!0):e.SendCommand(81,String.fromCharCode(0,0,0,0,0,0,0,0,0,0,0,0,
|
|
135,b<<4,3,0,0,0,y,81,b,c,h),!0)};e.SendDataToHost=function(a,b,y,c){var h=c?0:y.length;1==b?e.SendCommand(84,String.fromCharCode(0,y.length&255,y.length>>8,0,c?180:181,0,2,0,h&255,h>>8,a,88,133,0,3,0,0,0,a,80,0,0,0,0,0,0)+y,b,c):e.SendCommand(84,String.fromCharCode(0,y.length&255,y.length>>8,0,c?180:181,0,2,0,h&255,h>>8,a,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0)+y,b,c)};e.SendGetDataFromHost=function(a,b){e.SendCommand(82,String.fromCharCode(0,b&255,b>>8,0,181,0,0,0,b&255,b>>8,a,88,0,0,0,0,0,0,0,0,0,0,0),
|
|
!1)};e.SendDisableEnableFeatures=function(a,b){null==b&&(b="");e.SendCommand(72,String.fromCharCode(a)+b)};e.ProcessDataEx=function(){if(8>e.acc.length)return 0;switch(e.acc.charCodeAt(0)){case 65:if(30>e.acc.length)break;var a=e.acc.charCodeAt(29);if(e.acc.length<30+a)break;e.iderinfo={};e.iderinfo.major=e.acc.charCodeAt(8);e.iderinfo.minor=e.acc.charCodeAt(9);e.iderinfo.fwmajor=e.acc.charCodeAt(10);e.iderinfo.fwminor=e.acc.charCodeAt(11);e.iderinfo.readbfr=ReadShortX(e.acc,16);e.iderinfo.writebfr=
|
|
ReadShortX(e.acc,18);e.iderinfo.proto=e.acc.charCodeAt(21);e.iderinfo.iana=ReadIntX(e.acc,25);b(e.iderinfo);0!=e.iderinfo.proto&&(b("Unknown proto",e.iderinfo.proto),e.Stop());8192<e.iderinfo.readbfr&&(b("Illegal read buffer size",e.iderinfo.readbfr),e.Stop());8192<e.iderinfo.writebfr&&(b("Illegal write buffer size",e.iderinfo.writebfr),e.Stop());0==e.iderStart?e.SendDisableEnableFeatures(3,IntToStrX(9)):1==e.iderStart?e.SendDisableEnableFeatures(3,IntToStrX(17)):2==e.iderStart&&e.SendDisableEnableFeatures(3,
|
|
IntToStrX(25));return 30+a;case 67:return b("CLOSE"),e.Stop(),8;case 68:return e.SendCommand(69),8;case 69:return b("PONG"),8;case 70:if(9>e.acc.length)break;a=e.acc.charCodeAt(8);null===J?(e.SendCommand(71),b("RESETOCCURED1",a)):(H=!0,b("RESETOCCURED2",a));return 9;case 73:if(13>e.acc.length)break;var a=e.acc.charCodeAt(8),y=ReadIntX(e.acc,9);b("STATUS_DATA",a,y);switch(a){case 1:y&1&&(0==e.iderStart?e.SendDisableEnableFeatures(3,IntToStrX(9)):1==e.iderStart?e.SendDisableEnableFeatures(3,IntToStrX(17)):
|
|
2==e.iderStart&&e.SendDisableEnableFeatures(3,IntToStrX(25)));break;case 2:e.enabled=y&2?!0:!1;b("IDER Status: "+e.enabled);break;case 3:1!=y&&b("Register toggle failure")}return 13;case 74:if(11>e.acc.length)break;b("IDER: ABORT",e.acc.charCodeAt(8));return 11;case 75:return 8;case 80:if(28>e.acc.length)break;var a=e.acc.charCodeAt(14)&16?176:160,y=e.acc.charCodeAt(14),h=e.acc.substring(16,28),x=e.acc.charCodeAt(9);b("SCSI_CMD",a,rstr2hex(h),x,y);c(a,h,x,y);return 28;case 83:if(14>e.acc.length)break;
|
|
a=ReadShortX(e.acc,9);if(e.acc.length<14+a)break;b("SCSI_WRITE, len = "+(14+a));e.SendCommand(81,String.fromCharCode(0,0,0,0,0,0,0,0,0,0,0,0,135,112,3,0,0,0,160,81,7,39,0),!0);return 14+a;default:b("Unknown IDER command",e.acc[0]),e.Stop()}return 0};var C=[],H=!1,J=null,P,r,N;return e},CreateAmtRemoteServerIder=function(){function b(){urlvars&&urlvars.idertrace&&console.log.apply(console,[].concat($jscomp.arrayFromArguments(arguments)))}var c={protocol:4,iderStart:0,floppy:null,cdrom:null,state:0,
|
|
onStateChanged:null,m:{sectorStats:null,onDialogPrompt:null,dialogPrompt:function(a){c.socket.send(JSON.stringify({action:"dialogResponse",args:a}))},bytesToAmt:0,bytesFromAmt:0,server:!0,Stop:function(){c.Stop()}},xxStateChange:function(a){if(c.state!=a&&(b("SIDER-StateChange",a),c.state=a,null!=c.onStateChanged))c.onStateChanged(c,c.state)},Start:function(a,d,e,v,n){b("SIDER-Start",a,d,e,v,n);c.host=a;c.port=d;c.user=e;c.pass=v;c.connectstate=0;c.socket=new WebSocket(window.location.protocol.replace("http",
|
|
"ws")+"//"+window.location.host+window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/"))+"/webider.ashx?host="+a+"&port="+d+"&tls="+n+("*"==e?"&serverauth=1":"")+("undefined"===typeof v?"&serverauth=1&user="+e:"")+"&tls1only="+c.tlsv1only);c.socket.onopen=c.xxOnSocketConnected;c.socket.onmessage=c.xxOnMessage;c.socket.onclose=c.xxOnSocketClosed;c.xxStateChange(1)},Stop:function(){b("SIDER-Stop");null!=c.socket&&(c.socket.close(),c.socket=null);c.xxStateChange(0)},xxOnSocketConnected:function(){c.xxStateChange(2);
|
|
c.socket.send(JSON.stringify({action:"start"}))},xxOnMessage:function(a){var b=null;try{b=JSON.parse(a.data)}catch(e){}if(null!=b&&"string"==typeof b.action)switch(b.action){case "dialog":if(null!=c.m.onDialogPrompt)c.m.onDialogPrompt(c,b.args,b.buttons);break;case "state":2==b.state&&c.xxStateChange(3);break;case "stats":c.m.bytesToAmt=b.toAmt;c.m.bytesFromAmt=b.fromAmt;c.m.sectorStats&&c.m.sectorStats(b.mode,b.dev,b.total,b.start,b.len);break;case "error":console.log("IDER Error: "+";Floppy disk image does not exist;Invalid floppy disk image;Unable to open floppy disk image;CDROM disk image does not exist;Invalid CDROM disk image;Unable to open CDROM disk image;Can't perform IDER with no disk images".split(";")[b.code]);
|
|
break;default:console.log("Unknown Server IDER action: "+b.action),breal}},xxOnSocketClosed:function(){c.Stop()}};return c},CreateWsmanComm=function(b,c,a,d,e){function v(a){return a.split(",").reduce(function(a,b){a.ic?a.st[a.st.length-1]+=","+b:a.st.push(b);0==b.split('"').length%2&&(a.ic=!a.ic);return a},{st:[],ic:!1}).st}function n(){q.socketState=2;q.socketParseState=0;q.socketAccumulator="";q.socketHeader=null;q.socketData="";for(i in q.pendingAjaxCall)q.sendRequest(q.pendingAjaxCall[i][0],
|
|
q.pendingAjaxCall[i][3],q.pendingAjaxCall[i][4])}function l(a){var b=q.socketAccumulator;a=new Uint8Array(a.data);a=String.fromCharCode.apply(null,a);for(q.socketAccumulator=b+a;;){if(0==q.socketParseState){b=q.socketAccumulator.indexOf("\r\n\r\n");if(0>b)break;q.socketHeader=q.socketAccumulator.substring(0,b).split("\r\n");if(null==q.amtVersion)for(var c in q.socketHeader)0==q.socketHeader[c].indexOf("Server: Intel(R) Active Management Technology ")&&(q.amtVersion=q.socketHeader[c].substring(46));
|
|
q.socketAccumulator=q.socketAccumulator.substring(b+4);q.socketParseState=1;q.socketData="";q.socketXHeader={Directive:q.socketHeader[0].split(" ")};for(c in q.socketHeader)0!=c&&(b=q.socketHeader[c].indexOf(":"),q.socketXHeader[q.socketHeader[c].substring(0,b).toLowerCase()]=q.socketHeader[c].substring(b+2))}if(1==q.socketParseState){b=-1;if(void 0==q.socketXHeader.connection||"close"!=q.socketXHeader.connection.toLowerCase()||void 0!=q.socketXHeader["transfer-encoding"]&&"chunked"==q.socketXHeader["transfer-encoding"].toLowerCase())if(void 0!=
|
|
q.socketXHeader["content-length"]){b=parseInt(q.socketXHeader["content-length"]);if(q.socketAccumulator.length<b)break;a=q.socketAccumulator.substring(0,b);q.socketAccumulator=q.socketAccumulator.substring(b);q.socketData=a;b=0}else{var p=q.socketAccumulator.indexOf("\r\n");if(0>p)break;b=parseInt(q.socketAccumulator.substring(0,p),16);if(isNaN(b)){q.websocket&&q.websocket.close();break}if(q.socketAccumulator.length<p+2+b+2)break;a=q.socketAccumulator.substring(p+2,p+2+b);q.socketAccumulator=q.socketAccumulator.substring(p+
|
|
2+b+2);q.socketData+=a}else b=0;if(0==b){p=q.socketXHeader;b=q.socketData;urlvars&&urlvars.wsmantrace&&console.log("WSMAN-RECV("+b.length+"): "+b);a=parseInt(p.Directive[1]);isNaN(a)&&(a=602);if(401==a&&3>++q.authcounter){if(q.challengeParams=q.parseDigest(p["www-authenticate"]),null!=q.challengeParams.qop){b=q.challengeParams.qop.split(",");a=void 0;for(a in b)b[a]=b[a].trim();0<=b.indexOf("auth-int")?q.challengeParams.qop="auth-int":q.challengeParams.qop="auth"}}else p=q.pendingAjaxCall.shift(),
|
|
q.authcounter=0,q.ActiveAjaxCount--,q.gotNextMessages(b,"success",{status:a},p),q.PerformNextAjax();q.socketParseState=0;q.socketHeader=null}}}}function p(a){0==q.inDataCount&&(q.tlsv1only=1-q.tlsv1only);q.socketState=0;null!=q.socket&&(q.socket.close(),q.socket=null);if(0<q.pendingAjaxCall.length){a=q.pendingAjaxCall.shift();var b=a[5];q.PerformAjaxExNodeJS2(a[0],a[1],a[2],a[3],a[4],--b)}}var q={PendingAjax:[],ActiveAjaxCount:0,MaxActiveAjaxCount:1,FailAllError:0,challengeParams:null,noncecounter:1,
|
|
authcounter:0,socket:null,socketState:0};q.host=b;q.port=c;q.user=a;q.pass=d;q.tls=e;q.tlsv1only=0;q.inDataCount=0;q.amtVersion=null;q.digestRealmMatch=null;q.digestRealm=null;q.PerformAjax=function(a,b,c,p,d,k){q.ActiveAjaxCount<q.MaxActiveAjaxCount&&0==q.PendingAjax.length?q.PerformAjaxEx(a,b,c,d,k):1==p?q.PendingAjax.unshift([a,b,c,d,k]):q.PendingAjax.push([a,b,c,d,k])};q.PerformNextAjax=function(){if(!(q.ActiveAjaxCount>=q.MaxActiveAjaxCount||0==q.PendingAjax.length)){var a=q.PendingAjax.shift();
|
|
q.PerformAjaxEx(a[0],a[1],a[2],a[3],a[4]);q.PerformNextAjax()}};q.PerformAjaxEx=function(a,b,c,p,d){if(0!=q.FailAllError)q.gotNextMessagesError({status:q.FailAllError},"error",null,[a,b,c,p,d]);else return a||(a=""),urlvars&&urlvars.wsmantrace&&console.log("WSMAN-SEND("+a.length+"): "+a),q.ActiveAjaxCount++,q.PerformAjaxExNodeJS(a,b,c,p,d)};q.pendingAjaxCall=[];q.PerformAjaxExNodeJS=function(a,b,c,p,d){q.PerformAjaxExNodeJS2(a,b,c,p,d,5)};q.PerformAjaxExNodeJS2=function(a,b,c,p,d,k){0>=k||0!=q.FailAllError?
|
|
(q.ActiveAjaxCount--,999!=q.FailAllError&&q.gotNextMessages(null,"error",{status:0==q.FailAllError?408:q.FailAllError},[a,b,c,p,d]),q.PerformNextAjax()):(q.pendingAjaxCall.push([a,b,c,p,d,k]),0==q.socketState?q.xxConnectHttpSocket():2==q.socketState&&q.sendRequest(a,p,d))};q.sendRequest=function(a,b,c){b=b?b:"/wsman";c=c?c:"POST";var p=c+" "+b+" HTTP/1.1\r\n";if(null!=q.challengeParams){q.digestRealm=q.challengeParams.realm;if(q.digestRealmMatch&&q.digestRealm!=q.digestRealmMatch){q.FailAllError=
|
|
997;q.CancelAllQueries(997);return}var d=Math.random().toString(36).substring(7);c=hex_md5(hex_md5(q.user+":"+q.challengeParams.realm+":"+q.pass)+":"+q.challengeParams.nonce+":"+q.noncecounter+":"+d+":"+q.challengeParams.qop+":"+hex_md5(c+":"+b+("auth-int"==q.challengeParams.qop?":"+hex_md5(a):"")));p+="Authorization: "+q.renderDigest({username:q.user,realm:q.challengeParams.realm,nonce:q.challengeParams.nonce,uri:b,qop:q.challengeParams.qop,response:c,nc:q.noncecounter++,cnonce:d})+"\r\n"}a=p+="Host: "+
|
|
q.host+":"+q.port+"\r\nContent-Length: "+a.length+"\r\n\r\n"+a;if(2==q.socketState&&null!=q.socket&&q.socket.readyState==WebSocket.OPEN){b=new Uint8Array(a.length);for(p=0;p<a.length;++p)b[p]=a.charCodeAt(p);try{q.socket.send(b.buffer)}catch(k){}}};q.parseDigest=function(a){return v(a.substring(7)).reduce(function(a,b){var c=b.trim().split("=");a[c[0]]=c[1].replace(RegExp('"',"g"),"");return a},{})};q.renderDigest=function(a){var b=[];for(i in a)b.push(i);return"Digest "+b.reduce(function(b,c){return b+
|
|
","+c+'="'+a[c]+'"'},"").substring(1)};q.xxConnectHttpSocket=function(){q.inDataCount=0;q.socketState=1;q.socket=new WebSocket(window.location.protocol.replace("http","ws")+"//"+window.location.host+window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/"))+"/webrelay.ashx?p=1&host="+q.host+"&port="+q.port+"&tls="+q.tls+"&tls1only="+q.tlsv1only+("*"==a?"&serverauth=1":"")+("undefined"===typeof d?"&serverauth=1&user="+a:""));q.socket.binaryType="arraybuffer";q.socket.onopen=n;
|
|
q.socket.onmessage=l;q.socket.onclose=p};q.gotNextMessages=function(a,b,c,p){if(999!=q.FailAllError)if(0!=q.FailAllError)p[1](null,q.FailAllError,p[2]);else p[1](a,c.status,p[2])};q.gotNextMessagesError=function(a,b,c,p){if(999!=q.FailAllError)if(0!=q.FailAllError)p[1](null,q.FailAllError,p[2]);else p[1](q,null,{Header:{HttpError:a.status}},a.status,p[2])};q.CancelAllQueries=function(a){for(;0<q.PendingAjax.length;){var b=q.PendingAjax.shift();b[1](null,a,b[2])}null!=q.websocket&&(q.websocket.close(),
|
|
q.websocket=null,q.socketState=0)};return q},CreateAmtRedirect=function(b,c){function a(a){return String.fromCharCode.apply(null,a)}var d={};d.m=b;b.parent=d;d.authCookie=c;d.State=0;d.socket=null;d.host=null;d.port=0;d.user=null;d.pass=null;d.authuri="/RedirectionService";d.tlsv1only=0;d.inDataCount=0;d.connectstate=0;d.protocol=b.protocol;d.acc=null;d.amtsequence=1;d.amtkeepalivetimer=null;d.onStateChanged=null;d.Start=function(a,b,n,l,p){d.host=a;d.port=b;d.user=n;d.pass=l;d.connectstate=0;d.inDataCount=
|
|
0;a=window.location.protocol.replace("http","ws")+"//"+window.location.host+window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/"))+"/webrelay.ashx?p=2&host="+a+"&port="+b+"&tls="+p+("*"==n?"&serverauth=1":"")+("undefined"===typeof l?"&serverauth=1&user="+n:"");null!=c&&""!=c&&(a+="&auth="+c);d.socket=new WebSocket(a);d.socket.binaryType="arraybuffer";d.socket.onopen=d.xxOnSocketConnected;d.socket.onmessage=d.xxOnMessage;d.socket.onclose=d.xxOnSocketClosed;d.xxStateChange(1)};
|
|
d.xxOnSocketConnected=function(){d.xxStateChange(2);1==d.protocol&&d.directSend(new Uint8Array([16,0,0,0,83,79,76,32]));2==d.protocol&&d.directSend(new Uint8Array([16,1,0,0,75,86,77,82]));3==d.protocol&&d.directSend(new Uint8Array([16,0,0,0,73,68,69,82]))};d.xxOnMessage=function(b){if(b.data&&-1!=d.connectstate){d.inDataCount++;if(1==d.connectstate&&(2==d.protocol||3==d.protocol))return d.m.ProcessBinaryData?d.m.ProcessBinaryData(b.data):d.m.ProcessData(a(new Uint8Array(b.data)));if(null==d.acc)d.acc=
|
|
b.data;else{var c=new Uint8Array(d.acc.byteLength+b.data.byteLength);c.set(new Uint8Array(d.acc),0);c.set(new Uint8Array(b.data),d.acc.byteLength);d.acc=c.buffer}for(;null!=d.acc&&1<=d.acc.byteLength;){b=0;var n=new Uint8Array(d.acc);switch(n[0]){case 17:if(4>n.byteLength)return;switch(n[1]){case 0:if(13>n.byteLength)return;b=n[12];if(n.byteLength<13+b)return;d.directSend(new Uint8Array([19,0,0,0,0,0,0,0,0]));b=13+b;break;default:d.Stop(1)}break;case 20:if(9>n.byteLength)return;b=(new DataView(d.acc)).getUint32(5,
|
|
!0);if(n.byteLength<9+b)return;var l=n[1],c=n[4],p=[];for(i=0;i<b;i++)p.push(n[9+i]);n=new Uint8Array(d.acc.slice(9,9+b));b=9+b;if(0==c)0<=p.indexOf(4)?d.xxSend(String.fromCharCode(19,0,0,0,4)+IntToStrX(d.user.length+d.authuri.length+8)+String.fromCharCode(d.user.length)+d.user+String.fromCharCode(0,0)+String.fromCharCode(d.authuri.length)+d.authuri+String.fromCharCode(0,0,0,0)):0<=p.indexOf(3)?d.xxSend(String.fromCharCode(19,0,0,0,3)+IntToStrX(d.user.length+d.authuri.length+7)+String.fromCharCode(d.user.length)+
|
|
d.user+String.fromCharCode(0,0)+String.fromCharCode(d.authuri.length)+d.authuri+String.fromCharCode(0,0,0)):0<=p.indexOf(1)?d.xxSend(String.fromCharCode(19,0,0,0,1)+IntToStrX(d.user.length+d.pass.length+2)+String.fromCharCode(d.user.length)+d.user+String.fromCharCode(d.pass.length)+d.pass):d.Stop(2);else if(3!=c&&4!=c||1!=l)if(0==l)switch(d.protocol){case 1:d.xxSend(String.fromCharCode(32,0,0,0)+IntToStrX(d.amtsequence++)+ShortToStrX(1E4)+ShortToStrX(100)+ShortToStrX(0)+ShortToStrX(1E4)+ShortToStrX(100)+
|
|
ShortToStrX(0)+IntToStrX(0));break;case 2:d.directSend(new Uint8Array([64,0,0,0,0,0,0,0]));break;case 3:d.connectstate=1,d.xxStateChange(3)}else d.Stop(3);else{var q=0,p=n[q],l=a(new Uint8Array(n.buffer.slice(q+1,q+1+p))),q=q+(p+1),h=n[q],p=a(new Uint8Array(n.buffer.slice(q+1,q+1+h))),q=q+(h+1),h=0,h=null,B;B="";for(var w=0;32>w;w++)B+="abcdef0123456789".charAt(Math.floor(16*Math.random()));w="";4==c&&(h=n[q],h=a(new Uint8Array(n.buffer.slice(q+1,q+1+h))),w="00000002:"+B+":"+h+":");n=hex_md5(hex_md5(d.user+
|
|
":"+l+":"+d.pass)+":"+p+":"+w+hex_md5("POST:"+d.authuri));q=d.user.length+l.length+p.length+d.authuri.length+B.length+8+n.length+7;4==c&&(q+=h.length+1);n=String.fromCharCode(19,0,0,0,c)+IntToStrX(q)+String.fromCharCode(d.user.length)+d.user+String.fromCharCode(l.length)+l+String.fromCharCode(p.length)+p+String.fromCharCode(d.authuri.length)+d.authuri+String.fromCharCode(B.length)+B+String.fromCharCode(8)+"00000002"+String.fromCharCode(n.length)+n;4==c&&(n+=String.fromCharCode(h.length)+h);d.xxSend(n)}break;
|
|
case 33:if(23>n.byteLength)break;b=23;d.xxSend(String.fromCharCode(39,0,0,0)+IntToStrX(d.amtsequence++)+String.fromCharCode(0,0,27,0,0,0));1==d.protocol&&(d.amtkeepalivetimer=setInterval(d.xxSendAmtKeepAlive,2E3));d.connectstate=1;d.xxStateChange(3);break;case 41:if(10>n.byteLength)break;b=10;break;case 42:if(10>n.byteLength)break;c=10+(n[9]<<8)+n[8];if(n.byteLength<c)break;d.m.ProcessBinaryData?d.m.ProcessBinaryData(new Uint8Array(n.buffer.slice(10,c))):d.m.ProcessData(a(new Uint8Array(n.buffer.slice(10,
|
|
c))));b=c;break;case 43:if(8>n.byteLength)break;b=8;break;case 65:if(8>n.byteLength)break;d.connectstate=1;d.m.Start();8<n.byteLength&&(d.m.ProcessBinaryData?d.m.ProcessBinaryData(new Uint8Array(n.buffer.slice(8))):d.m.ProcessData(a(new Uint8Array(n.buffer.slice(8)))));b=n.byteLength;break;case 240:d.serverIsRecording=!0;b=1;break;default:console.log("Unknown Intel AMT command: "+n[0]+" acclen="+n.byteLength);d.Stop(4);return}if(0==b)break;d.acc=b!=d.acc.byteLength?d.acc.slice(b):null}}};d.directSend=
|
|
function(a){try{d.socket.send(a.buffer)}catch(b){}};d.xxSend=function(a){if(null!=d.socket&&d.socket.readyState==WebSocket.OPEN){for(var b=new Uint8Array(a.length),c=0;c<a.length;++c)b[c]=a.charCodeAt(c);try{d.socket.send(b.buffer)}catch(l){}}};d.Send=d.send=function(a){null!=d.socket&&1==d.connectstate&&(1==d.protocol?d.xxSend(String.fromCharCode(40,0,0,0)+IntToStrX(d.amtsequence++)+ShortToStrX(a.length)+a):d.xxSend(a))};d.xxSendAmtKeepAlive=function(){null!=d.socket&&d.xxSend(String.fromCharCode(43,
|
|
0,0,0)+IntToStrX(d.amtsequence++))};d.xxOnSocketClosed=function(){0==d.inDataCount&&0==d.tlsv1only?(d.tlsv1only=1,d.socket=new WebSocket(window.location.protocol.replace("http","ws")+"//"+window.location.host+window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/"))+"/webrelay.ashx?p=2&host="+d.host+"&port="+d.port+"&tls="+d.tls+"&tls1only=1"+("*"==d.user?"&serverauth=1":"")+("undefined"===typeof pass?"&serverauth=1&user="+d.user:"")),d.socket.binaryType="arraybuffer",d.socket.onopen=
|
|
d.xxOnSocketConnected,d.socket.onmessage=d.xxOnMessage,d.socket.onclose=d.xxOnSocketClosed):d.Stop(5)};d.xxStateChange=function(a){if(d.State!=a&&(d.State=a,d.m.xxStateChange(d.State),null!=d.onStateChanged))d.onStateChanged(d,d.State)};d.Stop=function(a){d.xxStateChange(0);d.connectstate=-1;d.acc=null;null!=d.socket&&(d.socket.close(),d.socket=null);null!=d.amtkeepalivetimer&&(clearInterval(d.amtkeepalivetimer),d.amtkeepalivetimer=null)};return d},WsmanStackCreateService=function(b,c,a,d,e,v){function n(a){for(var b,
|
|
c={},p=0;p<a.childNodes.length;p++){var d=a.childNodes[p];b=null==d.childElementCount||0==d.childElementCount?d.textContent:n(d);"true"==b&&(b=!0);"false"==b&&(b=!1);parseInt(b)+""===b&&(b=parseInt(b));var k=b;if(null!=d.attributes&&0<d.attributes.length)for(k={Value:b},b=0;b<d.attributes.length;b++)k["@"+d.attributes[b].name]=d.attributes[b].value;c[d.localName]instanceof Array?c[d.localName].push(k):c[d.localName]=null==c[d.localName]?k:[c[d.localName],k]}return c}function l(a){if(!a)return"";var b=
|
|
"",c;for(c in a)a.hasOwnProperty(c)&&0===c.indexOf("@")&&(b+=" "+c.substring(1)+'="'+a[c]+'"');return b}function p(a){if(!a)return"";if("string"==typeof a)return a;if(a.InstanceID)return'<w:SelectorSet><w:Selector Name="InstanceID">'+a.InstanceID+"</w:Selector></w:SelectorSet>";var b="<w:SelectorSet>",c;for(c in a)if(a.hasOwnProperty(c)){b+='<w:Selector Name="'+c+'">';if(a[c].ReferenceParameters){var b=b+"<a:EndpointReference>",b=b+("<a:Address>"+a[c].Address+"</a:Address><a:ReferenceParameters><w:ResourceURI>"+
|
|
a[c].ReferenceParameters.ResourceURI+"</w:ResourceURI><w:SelectorSet>"),p=a[c].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(p))for(var d=0;d<p.length;d++)b+="<w:Selector"+l(p[d])+">"+p[d].Value+"</w:Selector>";else b+="<w:Selector"+l(p)+">"+p.Value+"</w:Selector>";b+="</w:SelectorSet></a:ReferenceParameters></a:EndpointReference>"}else b+=a[c];b+="</w:Selector>"}return b+"</w:SelectorSet>"}var q={NextMessageId:1,Address:"/wsman"};q.comm=CreateWsmanComm(b,c,a,d,e,v);q.PerformAjax=function(a,
|
|
b,c,p,d){null==d&&(d="");q.comm.PerformAjax('<?xml version="1.0" encoding="utf-8"?><Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:w="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns="http://www.w3.org/2003/05/soap-envelope" '+d+"><Header><a:Action>"+a,function(a,c,p){var d=q.ParseWsman(a);if(null==a||d&&null!=d||200!=c){if(200!=c){null==d&&(d={Header:{}});d.Header.HttpError=
|
|
c;try{d.Header.WsmanError=d.Body.Reason.Text.Value}catch(h){}}b(q,d.Header.ResourceURI,d,c,p)}else b(q,null,{Header:{HttpError:c}},601,p)},c,p)};q.CancelAllQueries=function(a){q.comm.CancelAllQueries(a)};q.GetNameFromUrl=function(a){var b=a.lastIndexOf("/");return-1==b?a:a.substring(b+1)};q.ExecSubscribe=function(a,b,c,d,m,k,g,u,e,l){var y="",z="";u="";null!=e&&null!=l&&(y='<t:IssuedTokens xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust" xmlns:se="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><t:RequestSecurityTokenResponse><t:TokenType>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken</t:TokenType><t:RequestedSecurityToken><se:UsernameToken><se:Username>'+
|
|
e+'</se:Username><se:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd#PasswordText">'+l+"</se:Password></se:UsernameToken></t:RequestedSecurityToken></t:RequestSecurityTokenResponse></t:IssuedTokens>",z='<w:Auth Profile="http://schemas.dmtf.org/wbem/wsman/1/wsman/secprofile/http/digest"/>');null!=u&&(u="<a:ReferenceParameters><m:arg>"+u+"</m:arg></a:ReferenceParameters>");"PushWithAck"==b?b="dmtf.org/wbem/wsman/1/wsman/PushWithAck":"Push"==b&&(b="xmlsoap.org/ws/2004/08/eventing/DeliveryModes/Push");
|
|
a="http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe</a:Action><a:To>"+q.Address+"</a:To><w:ResourceURI>"+a+"</w:ResourceURI><a:MessageID>"+q.NextMessageId++ +"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo>"+p(g)+y+'</Header><Body><e:Subscribe><e:Delivery Mode="http://schemas.'+b+'"><e:NotifyTo><a:Address>'+c+"</a:Address>"+u+"</e:NotifyTo>"+z+"</e:Delivery></e:Subscribe>";q.PerformAjax(a+"</Body></Envelope>",d,m,
|
|
k,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing" xmlns:m="http://x.com"')};q.ExecUnSubscribe=function(a,b,c,d,m){a="http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe</a:Action><a:To>"+q.Address+"</a:To><w:ResourceURI>"+a+"</w:ResourceURI><a:MessageID>"+q.NextMessageId++ +"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo>"+p(m)+"</Header><Body><e:Unsubscribe/>";q.PerformAjax(a+"</Body></Envelope>",b,c,d,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing"')};
|
|
q.ExecPut=function(a,b,c,d,m,k){k="http://schemas.xmlsoap.org/ws/2004/09/transfer/Put</a:Action><a:To>"+q.Address+"</a:To><w:ResourceURI>"+a+"</w:ResourceURI><a:MessageID>"+q.NextMessageId++ +"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60.000S</w:OperationTimeout>"+p(k)+"</Header><Body>";if(a&&null!=b){var g=q.GetNameFromUrl(a);a="<r:"+g+' xmlns:r="'+a+'">';for(var u in b)if(b.hasOwnProperty(u)&&
|
|
0!==u.indexOf("__")&&0!==u.indexOf("@")&&null!=b[u]&&"function"!==typeof b[u])if("object"===typeof b[u]&&b[u].ReferenceParameters){a+="<r:"+u+"><a:Address>"+b[u].Address+"</a:Address><a:ReferenceParameters><w:ResourceURI>"+b[u].ReferenceParameters.ResourceURI+"</w:ResourceURI><w:SelectorSet>";var e=b[u].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(e))for(var D=0;D<e.length;D++)a+="<w:Selector"+l(e[D])+">"+e[D].Value+"</w:Selector>";else a+="<w:Selector"+l(e)+">"+e.Value+"</w:Selector>";
|
|
a+="</w:SelectorSet></a:ReferenceParameters></r:"+u+">"}else if(Array.isArray(b[u]))for(D=0;D<b[u].length;D++)a+="<r:"+u+">"+b[u][D].toString()+"</r:"+u+">";else a+="<r:"+u+">"+b[u].toString()+"</r:"+u+">";b=a+("</r:"+g+">")}else b="";q.PerformAjax(k+b+"</Body></Envelope>",c,d,m)};q.ExecCreate=function(a,b,c,d,m,k){var g=q.GetNameFromUrl(a);a="http://schemas.xmlsoap.org/ws/2004/09/transfer/Create</a:Action><a:To>"+q.Address+"</a:To><w:ResourceURI>"+a+"</w:ResourceURI><a:MessageID>"+q.NextMessageId++ +
|
|
"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout>"+p(k)+"</Header><Body><g:"+g+' xmlns:g="'+a+'">';for(var e in b)a+="<g:"+e+">"+b[e]+"</g:"+e+">";q.PerformAjax(a+"</g:"+g+"></Body></Envelope>",c,d,m)};q.ExecDelete=function(a,b,c,d,m){a="http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete</a:Action><a:To>"+q.Address+"</a:To><w:ResourceURI>"+a+"</w:ResourceURI><a:MessageID>"+q.NextMessageId++ +
|
|
"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout>"+p(b)+"</Header><Body /></Envelope>";q.PerformAjax(a,c,d,m)};q.ExecGet=function(a,b,c,p){q.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Get</a:Action><a:To>"+q.Address+"</a:To><w:ResourceURI>"+a+"</w:ResourceURI><a:MessageID>"+q.NextMessageId++ +"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout></Header><Body /></Envelope>",
|
|
b,c,p)};q.ExecMethod=function(a,b,c,p,d,k,g){var e="",l;for(l in c)if(null!=c[l])if(Array.isArray(c[l]))for(var D in c[l])e+="<r:"+l+">"+c[l][D]+"</r:"+l+">";else e+="<r:"+l+">"+c[l]+"</r:"+l+">";q.ExecMethodXml(a,b,e,p,d,k,g)};q.ExecMethodXml=function(a,b,c,d,m,k,g){q.PerformAjax(a+"/"+b+"</a:Action><a:To>"+q.Address+"</a:To><w:ResourceURI>"+a+"</w:ResourceURI><a:MessageID>"+q.NextMessageId++ +"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout>"+
|
|
p(g)+"</Header><Body><r:"+b+'_INPUT xmlns:r="'+a+'">'+c+"</r:"+b+"_INPUT></Body></Envelope>",d,m,k)};q.ExecEnum=function(a,b,c,p){q.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate</a:Action><a:To>"+q.Address+"</a:To><w:ResourceURI>"+a+"</w:ResourceURI><a:MessageID>"+q.NextMessageId++ +'</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout></Header><Body><Enumerate xmlns="http://schemas.xmlsoap.org/ws/2004/09/enumeration" /></Body></Envelope>',
|
|
b,c,p)};q.ExecPull=function(a,b,c,p,d){q.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull</a:Action><a:To>"+q.Address+"</a:To><w:ResourceURI>"+a+"</w:ResourceURI><a:MessageID>"+q.NextMessageId++ +'</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout></Header><Body><Pull xmlns="http://schemas.xmlsoap.org/ws/2004/09/enumeration"><EnumerationContext>'+b+"</EnumerationContext></Pull></Body></Envelope>",
|
|
c,p,d)};q.ParseWsman=function(a){if(null==a)return null;var b={Header:{}};try{if(!a.childNodes){var c=a;if(window.DOMParser)a=(new DOMParser).parseFromString(c,"text/xml");else{var p=new ActiveXObject("Microsoft.XMLDOM");p.async=!1;p.loadXML(c);a=p}}var d=a.getElementsByTagName("Header")[0],k;d||(d=a.getElementsByTagName("a:Header")[0]);if(!d)return null;for(c=0;c<d.childNodes.length;c++){var g=d.childNodes[c];b.Header[g.localName]=g.textContent}var q=a.getElementsByTagName("Body")[0];q||(q=a.getElementsByTagName("a:Body")[0]);
|
|
if(!q)return null;if(0<q.childNodes.length){k=q.childNodes[0].localName;var e=k.indexOf("_OUTPUT");-1!=e&&e==k.length-7&&(k=k.substring(0,k.length-7));b.Header.Method=k;try{b.Body=n(q.childNodes[0])}catch(l){return console.log("_ParseWsmanRec failed",q,l),null}}}catch(l){return console.log("Unable to parse XML: "+a+", "+l),null}return b};return q};
|
|
function AmtStackCreateService(b){function c(){var a=h.GetPendingActions();B<a&&(B=a);null!=h.onProcessChanged&&w!=a&&(w=a,h.onProcessChanged(a,B));0==a&&(B=0)}function a(a,b,c,p,x,C,g){200!=x?(c(h,a,null,x,C),e(1)):null!=b&&"EnumerateResponse"==b.Header.Method&&b.Body.EnumerationContext?h.wsman.ExecPull(p,b.Body.EnumerationContext,function(b,p,x,h){d(a,x,c,p,[],h,C,g)}):(c(h,a,null,603,C),e(1))}function d(a,b,p,g,x,C,k,m){if(200!=C)p(h,a,null,C,k),e(1);else if(null==b||"PullResponse"!=b.Header.Method)p(h,
|
|
a,null,604,k),e(1);else{for(var q in b.Body.Items)if(b.Body.Items[q]instanceof Array)for(var u in b.Body.Items[q])"function"!=typeof b.Body.Items[q][u]&&x.push(b.Body.Items[q][u]);else"function"!=typeof b.Body.Items[q]&&x.push(b.Body.Items[q]);b.Body.EnumerationContext?h.wsman.ExecPull(g,b.Body.EnumerationContext,function(b,c,h,z){d(a,h,p,c,x,z,k,1)}):(e(1),p(h,a,x,C,k),c())}}function e(a){h.ActiveEnumsCount-=a;h.ActiveEnumsCount>=h.MaxActiveEnumsCount||0==h.PendingEnums.length?c():(a=h.PendingEnums.shift(),
|
|
h.Enum(a[0],a[1],a[2]),e(0))}function v(a){a.names.length<=a.current?a.callback(h,a.name,a.responses,200,a.tag):(h.wsman.ExecGet(h.CompleteName(a.names[a.current]),function(b,c,p,d){null==p||200!=d?a.callback(h,a.name,null,d,a.tag):(a.responses[p.Header.Method]=p,v(a))},a.pri),a.current++);c()}function n(a,b,c,p,d){if(200!=p||"0"!=c.Body.ReturnValue)d[0](h,null,d[2]);else h.AMT_MessageLog_GetRecords(c.Body.IterationIdentifier,390,l,d)}function l(a,b,c,d,x){if(200!=d||"0"!=c.Body.ReturnValue)x[0](h,
|
|
null,x[2]);else{var C,g,m;b=x[2];d=new Date;var q=c.Body.RecordArray;"string"===typeof q&&(c.Body.RecordArray=[c.Body.RecordArray]);for(C in q){a=null;try{a=window.atob(q[C])}catch(e){}if(null!=a&&(g=ReadIntX(a,0),0<g&&4294967295>g)){m={DeviceAddress:a.charCodeAt(4),EventSensorType:a.charCodeAt(5),EventType:a.charCodeAt(6),EventOffset:a.charCodeAt(7),EventSourceType:a.charCodeAt(8),EventSeverity:a.charCodeAt(9),SensorNumber:a.charCodeAt(10),Entity:a.charCodeAt(11),EntityInstance:a.charCodeAt(12),
|
|
EventData:[],Time:new Date(1E3*(g+60*d.getTimezoneOffset()))};for(g=13;21>g;g++)m.EventData.push(a.charCodeAt(g));m.EntityStr=k[m.Entity];m.Desc=p(m.EventSensorType,m.EventOffset,m.EventData,m.Entity);m.EntityStr||(m.EntityStr="Unknown");b.push(m)}}if(1!=c.Body.NoMoreRecords)h.AMT_MessageLog_GetRecords(c.Body.IterationIdentifier,390,l,[x[0],b,x[2]]);else x[0](h,b,x[2])}}function p(a,b,c,p){if(15==a){if(235==c[0])return"Datos inv\u00e1lidos";if(0==b)return E[c[1]];if(3==b){if(170==c[0]&&48==c[1])return format("AMT One Click Recovery: {0}",
|
|
u[c[2]]);if(170==c[0]&&64==c[1]){if(1==c[2])return"Got an error erasing Device SSD";if(2==c[2])return"Erasing Device TPM is not supported";if(3==c[2])return"Reached Max Counter"}else return"OEM Specific Firmware Error event"}else if(5==b){if(170==c[0]&&48==c[1])return 1==c[2]?format("AMT One Click Recovery: CSME Boot Option {0}:{1} added successfully",c[3],O[c[3]]):7>c[2]?format("AMT One Click Recovery: {0}",g[c[2]]):format("AMT One Click Recovery: Unknown progress event {0}",c[2]);if(170==c[0]&&
|
|
64==c[1]){if(1==c[2]){if(2==c[3])return"Started erasing Device SSD";if(3==c[3])return"Started erasing Device TPM";if(5==c[3])return"Started erasing Device BIOS Reload of Golden Config"}if(2==c[2]){if(2==c[3])return"Erasing Device SSD ended successfully";if(3==c[3])return"Erasing Device TPM ended successfully";if(5==c[3])return"Erasing Device BIOS Reload of Golden Config ended successfully"}if(3==c[2])return"Beginning Platform Erase";if(4==c[2])return"Clear Reserved Parameters";if(5==c[2])return"All setting decremented"}else return"OEM Specific Firmware Progress event"}else return m[c[1]]}if(18==
|
|
a&&170==c[0])return"Agente de vigilancia"+char2hex(c[4])+char2hex(c[3])+char2hex(c[2])+char2hex(c[1])+"-"+char2hex(c[6])+char2hex(c[5])+"-... cambiado a"+h.WatchdogCurrentStates[c[7]];if(5==a&&0==b)return"Intrusi\u00f3n de casos";if(192==a&&0==b&&170==c[0]&&48==c[1]){if(0==c[2])return"Se estableci\u00f3 una sesi\u00f3n remota Serial Over LAN.";if(1==c[2])return"Sesi\u00f3n remota serie en LAN finalizada. Se restableci\u00f3 el control del usuario.";if(2==c[2])return"Se estableci\u00f3 una sesi\u00f3n remota de redirecci\u00f3n de IDE.";
|
|
if(3==c[2])return"Sesi\u00f3n remota de redirecci\u00f3n de IDE finalizada. Se restableci\u00f3 el control del usuario."}if(36==a)return a=(c[1]<<24)+(c[2]<<16)+(c[3]<<8)+c[4],b="#"+c[0],170==c[0]&&(b="cableado"),4294967293==a?"Todos los filtros de paquetes recibidos coinciden"+b+" interfaz.":4294967292==a?"Todos los filtros de paquetes salientes coincidieron con"+b+" interfaz.":4294967290==a?"El filtro de paquetes falsificado se hizo coincidir"+b+" interfaz.":"Filtrar"+a+" fue emparejado en"+b+" interfaz.";
|
|
if(192==a)return 0==c[2]?"Pol\u00edtica de seguridad invocada. Se detuvo parte o todo el tr\u00e1fico de red (TX).":2==c[2]?"Pol\u00edtica de seguridad invocada. Se detuvo parte o todo el tr\u00e1fico de red (RX).":"Pol\u00edtica de seguridad invocada.";if(193==a){if(170==c[0]&&48==c[1]&&0==c[2]&&0==c[3])return"Solicitud del usuario para conexi\u00f3n remota.";if(170==c[0]&&32==c[1]&&3==c[2]&&1==c[3])return"Error de EAC: intente obtener una postura mientras NAC en Intel\u00ae AMT est\u00e1 desactivado.";
|
|
if(170==c[0]&&32==c[1]&&4==c[2]&&0==c[3])return"Error de HWA: error general"}return 6==a?"Autenticaci\u00f3n fallida"+(c[1]+(c[2]<<8))+" veces. El sistema puede estar bajo ataque.":30==a?"No hay medios de arranque":32==a?"Bloqueo del sistema operativo o interrupci\u00f3n de energ\u00eda":35==a?64==c[0]?"BIOS POST (Power On Self-Test) Watchdog Timeout.":"Falla de arranque del sistema":37==a?"Se inici\u00f3 el firmware del sistema (al menos una CPU se est\u00e1 ejecutando correctamente).":"Tipo de sensor desconocido #"+
|
|
a}function q(a,b,c,p,d){if(200!=p)d[0](h,[],p);else{var C,g,k=d[1],m=new Date,e;if(0<c.Body.RecordsReturned)for(g in c.Body.EventRecords=MakeToArray(c.Body.EventRecords),c.Body.EventRecords){a=null;try{a=window.atob(c.Body.EventRecords[g])}catch(u){console.log(u+" "+c.Body.EventRecords[g])}b={AuditAppID:ReadShort(a,0),EventID:ReadShort(a,2),InitiatorType:a.charCodeAt(4)};b.AuditApp=D[b.AuditAppID];b.Event=D[100*b.AuditAppID+b.EventID];b.Event||(b.Event="#"+b.EventID);0==b.InitiatorType&&(C=a.charCodeAt(5),
|
|
b.Initiator=a.substring(6,6+C),C=6+C);1==b.InitiatorType&&(b.KerberosUserInDomain=ReadInt(a,5),C=a.charCodeAt(9),b.Initiator=GetSidString(a.substring(10,10+C)),C=10+C);2==b.InitiatorType&&(b.Initiator="<i>Local</i>",C=5);3==b.InitiatorType&&(b.Initiator="<i>Puerto predeterminado de KVM</i>",C=5);e=ReadInt(a,C);b.Time=new Date(1E3*(e+60*m.getTimezoneOffset()));C+=4;b.MCLocationType=a.charCodeAt(C++);e=a.charCodeAt(C++);b.NetAddress=a.substring(C,C+e);C+=e;e=a.charCodeAt(C++);b.Ex=a.substring(C,C+e);
|
|
b.ExStr=h.GetAuditLogExtendedDataStr(100*b.AuditAppID+b.EventID,b.Ex);k.push(b)}if(c.Body.TotalRecordCount>k.length)h.AMT_AuditLog_ReadRecords(k.length+1,q,[d[0],k]);else d[0](h,k,p)}}var h={};h.wsman=b;h.pfx=["http://intel.com/wbem/wscim/1/amt-schema/1/","http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/","http://intel.com/wbem/wscim/1/ips-schema/1/"];h.PendingEnums=[];h.PendingBatchOperations=0;h.ActiveEnumsCount=0;h.MaxActiveEnumsCount=1;h.onProcessChanged=null;var B=0,w=0;h.GetPendingActions=
|
|
function(){return 2*h.PendingEnums.length+h.ActiveEnumsCount+h.wsman.comm.PendingAjax.length+h.wsman.comm.ActiveAjaxCount+h.PendingBatchOperations};h.Subscribe=function(a,b,p,d,x,g,k,m,q,e){h.wsman.ExecSubscribe(h.CompleteName(a),b,p,function(b,p,A,z){c();d(h,a,A,z,x)},0,g,k,m,q,e);c()};h.UnSubscribe=function(a,b,p,d,x){h.wsman.ExecUnSubscribe(h.CompleteName(a),function(d,x,g,k){c();b(h,a,g,k,p)},0,d,x);c()};h.Get=function(a,b,p,d){h.wsman.ExecGet(h.CompleteName(a),function(d,g,k,m){c();b(h,a,k,m,
|
|
p)},0,d);c()};h.Put=function(a,b,p,d,x,g){h.wsman.ExecPut(h.CompleteName(a),b,function(b,x,z,g){c();p(h,a,z,g,d)},0,x,g);c()};h.Create=function(a,b,p,d,x){h.wsman.ExecCreate(h.CompleteName(a),b,function(b,x,z,g){c();p(h,a,z,g,d)},0,x);c()};h.Delete=function(a,b,p,d,x){h.wsman.ExecDelete(h.CompleteName(a),b,function(b,x,z,g){c();p(h,a,z,g,d)},0,x);c()};h.Exec=function(a,b,p,d,x,g,k){h.wsman.ExecMethod(h.CompleteName(a),b,p,function(b,p,A,z){c();d(h,a,h.CompleteExecResponse(A),z,x)},0,g,k);c()};h.ExecWithXml=
|
|
function(a,b,p,d,x,g,k){h.wsman.ExecMethodXml(h.CompleteName(a),b,execArgumentsToXml(p),function(b,p,A,z){c();d(h,a,h.CompleteExecResponse(A),z,x)},0,g,k);c()};h.Enum=function(b,p,d,g){h.ActiveEnumsCount<h.MaxActiveEnumsCount?(h.ActiveEnumsCount++,h.wsman.ExecEnum(h.CompleteName(b),function(d,h,A,g,k){c();a(b,A,p,h,g,k)},d,g)):h.PendingEnums.push([b,p,d,g]);c()};h.BatchEnum=function(a,b,p,d,x,g){x={_pending:b.length};h.PendingBatchOperations+=b.length;for(var k in b){var m=b[k],q=h.Enum;"*"==m[0]&&
|
|
(q=h.Get,m=m.substring(1));q(m,function(b,x,z,g,C){h.PendingBatchOperations--;c();C[2][x]={response:null==z?null:z.Body,responses:z,status:g};0==--C[2]._pending&&(delete C[2]._pending,p.call(h,h,a,C[2],g,d))},[a,b,x,q==h.Get?"Get":"Enum"],g)}};h.BatchGet=function(a,b,p,d,x){v({name:a,names:b,callback:p,current:0,responses:{},tag:d,pri:x});c()};h.CompleteName=function(a){if(0==a.indexOf("AMT_"))return h.pfx[0]+a;if(0==a.indexOf("CIM_"))return h.pfx[1]+a;if(0==a.indexOf("IPS_"))return h.pfx[2]+a};h.CompleteExecResponse=
|
|
function(a){a&&null!=a&&a.Body&&void 0!=a.Body.ReturnValue&&(a.Body.ReturnValueStr=h.AmtStatusToStr(a.Body.ReturnValue));return a};h.RequestPowerStateChange=function(a,b){h.CIM_PowerManagementService_RequestPowerStateChange(a,'<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2004/08/addressing</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ComputerSystem</ResourceURI><SelectorSet xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><Selector Name="CreationClassName">CIM_ComputerSystem</Selector><Selector Name="Name">ManagedSystem</Selector></SelectorSet></ReferenceParameters>',
|
|
null,null,b)};h.RequestOSPowerStateChange=function(a,b){h.IPS_PowerManagementService_RequestOSPowerSavingStateChange(a,'<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2004/08/addressing</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ComputerSystem</ResourceURI><SelectorSet xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><Selector Name="CreationClassName">CIM_ComputerSystem</Selector><Selector Name="Name">ManagedSystem</Selector></SelectorSet></ReferenceParameters>',
|
|
null,null,b)};h.SetBootConfigRole=function(a,b){h.CIM_BootService_SetBootConfigRole('<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2004/08/addressing</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootConfigSetting</ResourceURI><SelectorSet xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><Selector Name="InstanceID">Intel(r) AMT: Boot Configuration 0</Selector></SelectorSet></ReferenceParameters>',
|
|
a,b)};h.CancelAllQueries=function(a){h.wsman.CancelAllQueries(a)};h.AMT_AgentPresenceWatchdog_RegisterAgent=function(a){h.Exec("AMT_AgentPresenceWatchdog","RegisterAgent",{},a)};h.AMT_AgentPresenceWatchdog_AssertPresence=function(a,b){h.Exec("AMT_AgentPresenceWatchdog","AssertPresence",{SequenceNumber:a},b)};h.AMT_AgentPresenceWatchdog_AssertShutdown=function(a,b){h.Exec("AMT_AgentPresenceWatchdog","AssertShutdown",{SequenceNumber:a},b)};h.AMT_AgentPresenceWatchdog_AddAction=function(a,b,c,p,d,g,
|
|
k,m,q){h.Exec("AMT_AgentPresenceWatchdog","AddAction",{OldState:a,NewState:b,EventOnTransition:c,ActionSd:p,ActionEac:d},g,k,m,q)};h.AMT_AgentPresenceWatchdog_DeleteAllActions=function(a,b,c,p){h.Exec("AMT_AgentPresenceWatchdog","DeleteAllActions",{},a,b,c,p)};h.AMT_AgentPresenceWatchdogAction_GetActionEac=function(a){h.Exec("AMT_AgentPresenceWatchdogAction","GetActionEac",{},a)};h.AMT_AgentPresenceWatchdogVA_RegisterAgent=function(a){h.Exec("AMT_AgentPresenceWatchdogVA","RegisterAgent",{},a)};h.AMT_AgentPresenceWatchdogVA_AssertPresence=
|
|
function(a,b){h.Exec("AMT_AgentPresenceWatchdogVA","AssertPresence",{SequenceNumber:a},b)};h.AMT_AgentPresenceWatchdogVA_AssertShutdown=function(a,b){h.Exec("AMT_AgentPresenceWatchdogVA","AssertShutdown",{SequenceNumber:a},b)};h.AMT_AgentPresenceWatchdogVA_AddAction=function(a,b,c,p,d,g){h.Exec("AMT_AgentPresenceWatchdogVA","AddAction",{OldState:a,NewState:b,EventOnTransition:c,ActionSd:p,ActionEac:d},g)};h.AMT_AgentPresenceWatchdogVA_DeleteAllActions=function(a,b){h.Exec("AMT_AgentPresenceWatchdogVA",
|
|
"DeleteAllActions",{_method_dummy:a},b)};h.AMT_AuditLog_ClearLog=function(a){h.Exec("AMT_AuditLog","ClearLog",{},a)};h.AMT_AuditLog_RequestStateChange=function(a,b,c){h.Exec("AMT_AuditLog","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.AMT_AuditLog_ReadRecords=function(a,b,c){h.Exec("AMT_AuditLog","ReadRecords",{StartIndex:a},b,c)};h.AMT_AuditLog_SetAuditLock=function(a,b,c,p){h.Exec("AMT_AuditLog","SetAuditLock",{LockTimeoutInSeconds:a,Flag:b,Handle:c},p)};h.AMT_AuditLog_ExportAuditLogSignature=
|
|
function(a,b){h.Exec("AMT_AuditLog","ExportAuditLogSignature",{SigningMechanism:a},b)};h.AMT_AuditLog_SetSigningKeyMaterial=function(a,b,c,p,d){h.Exec("AMT_AuditLog","SetSigningKeyMaterial",{SigningMechanismType:a,SigningKey:b,LengthOfCertificates:c,Certificates:p},d)};h.AMT_AuditPolicyRule_SetAuditPolicy=function(a,b,c,p,d){h.Exec("AMT_AuditPolicyRule","SetAuditPolicy",{Enable:a,AuditedAppID:b,EventID:c,PolicyType:p},d)};h.AMT_AuditPolicyRule_SetAuditPolicyBulk=function(a,b,c,p,d){h.Exec("AMT_AuditPolicyRule",
|
|
"SetAuditPolicyBulk",{Enable:a,AuditedAppID:b,EventID:c,PolicyType:p},d)};h.AMT_AuthorizationService_AddUserAclEntryEx=function(a,b,c,p,d,g){h.Exec("AMT_AuthorizationService","AddUserAclEntryEx",{DigestUsername:a,DigestPassword:b,KerberosUserSid:c,AccessPermission:p,Realms:d},g)};h.AMT_AuthorizationService_EnumerateUserAclEntries=function(a,b){h.Exec("AMT_AuthorizationService","EnumerateUserAclEntries",{StartIndex:a},b)};h.AMT_AuthorizationService_GetUserAclEntryEx=function(a,b,c){h.Exec("AMT_AuthorizationService",
|
|
"GetUserAclEntryEx",{Handle:a},b,c)};h.AMT_AuthorizationService_UpdateUserAclEntryEx=function(a,b,c,p,d,g,k){h.Exec("AMT_AuthorizationService","UpdateUserAclEntryEx",{Handle:a,DigestUsername:b,DigestPassword:c,KerberosUserSid:p,AccessPermission:d,Realms:g},k)};h.AMT_AuthorizationService_RemoveUserAclEntry=function(a,b){h.Exec("AMT_AuthorizationService","RemoveUserAclEntry",{Handle:a},b)};h.AMT_AuthorizationService_SetAdminAclEntryEx=function(a,b,c){h.Exec("AMT_AuthorizationService","SetAdminAclEntryEx",
|
|
{Username:a,DigestPassword:b},c)};h.AMT_AuthorizationService_GetAdminAclEntry=function(a){h.Exec("AMT_AuthorizationService","GetAdminAclEntry",{},a)};h.AMT_AuthorizationService_GetAdminAclEntryStatus=function(a){h.Exec("AMT_AuthorizationService","GetAdminAclEntryStatus",{},a)};h.AMT_AuthorizationService_GetAdminNetAclEntryStatus=function(a){h.Exec("AMT_AuthorizationService","GetAdminNetAclEntryStatus",{},a)};h.AMT_AuthorizationService_SetAclEnabledState=function(a,b,c,p){h.Exec("AMT_AuthorizationService",
|
|
"SetAclEnabledState",{Handle:a,Enabled:b},c,p)};h.AMT_AuthorizationService_GetAclEnabledState=function(a,b,c){h.Exec("AMT_AuthorizationService","GetAclEnabledState",{Handle:a},b,c)};h.AMT_EndpointAccessControlService_RequestStateChange=function(a,b,c){h.Exec("AMT_EndpointAccessControlService","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.AMT_EndpointAccessControlService_GetPosture=function(a,b){h.Exec("AMT_EndpointAccessControlService","GetPosture",{PostureType:a},b)};h.AMT_EndpointAccessControlService_GetPostureHash=
|
|
function(a,b){h.Exec("AMT_EndpointAccessControlService","GetPostureHash",{PostureType:a},b)};h.AMT_EndpointAccessControlService_UpdatePostureState=function(a,b){h.Exec("AMT_EndpointAccessControlService","UpdatePostureState",{UpdateType:a},b)};h.AMT_EndpointAccessControlService_GetEacOptions=function(a){h.Exec("AMT_EndpointAccessControlService","GetEacOptions",{},a)};h.AMT_EndpointAccessControlService_SetEacOptions=function(a,b,c){h.Exec("AMT_EndpointAccessControlService","SetEacOptions",{EacVendors:a,
|
|
PostureHashAlgorithm:b},c)};h.AMT_EnvironmentDetectionSettingData_SetSystemDefensePolicy=function(a,b){h.Exec("AMT_EnvironmentDetectionSettingData","SetSystemDefensePolicy",{Policy:a},b)};h.AMT_EnvironmentDetectionSettingData_EnableVpnRouting=function(a,b){h.Exec("AMT_EnvironmentDetectionSettingData","EnableVpnRouting",{Enable:a},b)};h.AMT_EthernetPortSettings_SetLinkPreference=function(a,b,c){h.Exec("AMT_EthernetPortSettings","SetLinkPreference",{LinkPreference:a,Timeout:b},c)};h.AMT_GeneralSettings_AMTAuthenticate=
|
|
function(a,b){h.Exec("AMT_GeneralSettings","AMTAuthenticate",{MC_Nonce:a},b)};h.AMT_HeuristicPacketFilterStatistics_ResetSelectedStats=function(a,b){h.Exec("AMT_HeuristicPacketFilterStatistics","ResetSelectedStats",{SelectedStatistics:a},b)};h.AMT_KerberosSettingData_GetCredentialCacheState=function(a){h.Exec("AMT_KerberosSettingData","GetCredentialCacheState",{},a)};h.AMT_KerberosSettingData_SetCredentialCacheState=function(a,b){h.Exec("AMT_KerberosSettingData","SetCredentialCacheState",{Enable:a},
|
|
b)};h.AMT_MessageLog_CancelIteration=function(a,b){h.Exec("AMT_MessageLog","CancelIteration",{IterationIdentifier:a},b)};h.AMT_MessageLog_RequestStateChange=function(a,b,c){h.Exec("AMT_MessageLog","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.AMT_MessageLog_ClearLog=function(a){h.Exec("AMT_MessageLog","ClearLog",{},a)};h.AMT_MessageLog_GetRecords=function(a,b,c,p){h.Exec("AMT_MessageLog","GetRecords",{IterationIdentifier:a,MaxReadRecords:b},c,p)};h.AMT_MessageLog_GetRecord=function(a,
|
|
b,c){h.Exec("AMT_MessageLog","GetRecord",{IterationIdentifier:a,PositionToNext:b},c)};h.AMT_MessageLog_PositionAtRecord=function(a,b,c,p){h.Exec("AMT_MessageLog","PositionAtRecord",{IterationIdentifier:a,MoveAbsolute:b,RecordNumber:c},p)};h.AMT_MessageLog_PositionToFirstRecord=function(a,b){h.Exec("AMT_MessageLog","PositionToFirstRecord",{},a,b)};h.AMT_MessageLog_FreezeLog=function(a,b){h.Exec("AMT_MessageLog","FreezeLog",{Freeze:a},b)};h.AMT_PublicKeyManagementService_AddCRL=function(a,b,c){h.Exec("AMT_PublicKeyManagementService",
|
|
"AddCRL",{Url:a,SerialNumbers:b},c)};h.AMT_PublicKeyManagementService_ResetCRLList=function(a,b){h.Exec("AMT_PublicKeyManagementService","ResetCRLList",{_method_dummy:a},b)};h.AMT_PublicKeyManagementService_AddCertificate=function(a,b){h.Exec("AMT_PublicKeyManagementService","AddCertificate",{CertificateBlob:a},b)};h.AMT_PublicKeyManagementService_AddTrustedRootCertificate=function(a,b){h.Exec("AMT_PublicKeyManagementService","AddTrustedRootCertificate",{CertificateBlob:a},b)};h.AMT_PublicKeyManagementService_AddKey=
|
|
function(a,b){h.Exec("AMT_PublicKeyManagementService","AddKey",{KeyBlob:a},b)};h.AMT_PublicKeyManagementService_GeneratePKCS10Request=function(a,b,c,p){h.Exec("AMT_PublicKeyManagementService","GeneratePKCS10Request",{KeyPair:a,DNName:b,Usage:c},p)};h.AMT_PublicKeyManagementService_GeneratePKCS10RequestEx=function(a,b,c,p){h.Exec("AMT_PublicKeyManagementService","GeneratePKCS10RequestEx",{KeyPair:a,SigningAlgorithm:b,NullSignedCertificateRequest:c},p)};h.AMT_PublicKeyManagementService_GenerateKeyPair=
|
|
function(a,b,c){h.Exec("AMT_PublicKeyManagementService","GenerateKeyPair",{KeyAlgorithm:a,KeyLength:b},c)};h.AMT_RedirectionService_RequestStateChange=function(a,b){h.Exec("AMT_RedirectionService","RequestStateChange",{RequestedState:a},b)};h.AMT_RedirectionService_TerminateSession=function(a,b){h.Exec("AMT_RedirectionService","TerminateSession",{SessionType:a},b)};h.AMT_RemoteAccessService_AddMpServer=function(a,b,c,p,d,g,k,m,q){h.Exec("AMT_RemoteAccessService","AddMpServer",{AccessInfo:a,InfoFormat:b,
|
|
Port:c,AuthMethod:p,Certificate:d,Username:g,Password:k,CN:m},q)};h.AMT_RemoteAccessService_AddRemoteAccessPolicyRule=function(a,b,c,p,d,g){h.Exec("AMT_RemoteAccessService","AddRemoteAccessPolicyRule",{Trigger:a,TunnelLifeTime:b,ExtendedData:c,MpServer:p,InternalMpServer:d},g)};h.AMT_RemoteAccessService_CloseRemoteAccessConnection=function(a,b){h.Exec("AMT_RemoteAccessService","CloseRemoteAccessConnection",{_method_dummy:a},b)};h.AMT_SetupAndConfigurationService_CommitChanges=function(a,b){h.Exec("AMT_SetupAndConfigurationService",
|
|
"CommitChanges",{_method_dummy:a},b)};h.AMT_SetupAndConfigurationService_Unprovision=function(a,b){h.Exec("AMT_SetupAndConfigurationService","Unprovision",{ProvisioningMode:a},b)};h.AMT_SetupAndConfigurationService_PartialUnprovision=function(a,b){h.Exec("AMT_SetupAndConfigurationService","PartialUnprovision",{_method_dummy:a},b)};h.AMT_SetupAndConfigurationService_ResetFlashWearOutProtection=function(a,b){h.Exec("AMT_SetupAndConfigurationService","ResetFlashWearOutProtection",{_method_dummy:a},b)};
|
|
h.AMT_SetupAndConfigurationService_ExtendProvisioningPeriod=function(a,b){h.Exec("AMT_SetupAndConfigurationService","ExtendProvisioningPeriod",{Duration:a},b)};h.AMT_SetupAndConfigurationService_SetMEBxPassword=function(a,b){h.Exec("AMT_SetupAndConfigurationService","SetMEBxPassword",{Password:a},b)};h.AMT_SetupAndConfigurationService_SetTLSPSK=function(a,b,c){h.Exec("AMT_SetupAndConfigurationService","SetTLSPSK",{PID:a,PPS:b},c)};h.AMT_SetupAndConfigurationService_GetProvisioningAuditRecord=function(a){h.Exec("AMT_SetupAndConfigurationService",
|
|
"GetProvisioningAuditRecord",{},a)};h.AMT_SetupAndConfigurationService_GetUuid=function(a){h.Exec("AMT_SetupAndConfigurationService","GetUuid",{},a)};h.AMT_SetupAndConfigurationService_GetUnprovisionBlockingComponents=function(a){h.Exec("AMT_SetupAndConfigurationService","GetUnprovisionBlockingComponents",{},a)};h.AMT_SetupAndConfigurationService_GetProvisioningAuditRecordV2=function(a){h.Exec("AMT_SetupAndConfigurationService","GetProvisioningAuditRecordV2",{},a)};h.AMT_SystemDefensePolicy_GetTimeout=
|
|
function(a){h.Exec("AMT_SystemDefensePolicy","GetTimeout",{},a)};h.AMT_SystemDefensePolicy_SetTimeout=function(a,b){h.Exec("AMT_SystemDefensePolicy","SetTimeout",{Timeout:a},b)};h.AMT_SystemDefensePolicy_UpdateStatistics=function(a,b,c,p,d,g){h.Exec("AMT_SystemDefensePolicy","UpdateStatistics",{NetworkInterface:a,ResetOnRead:b},c,p,d,g)};h.AMT_SystemPowerScheme_SetPowerScheme=function(a,b,c){h.Exec("AMT_SystemPowerScheme","SetPowerScheme",{},a,c,0,{InstanceID:b})};h.AMT_TimeSynchronizationService_GetLowAccuracyTimeSynch=
|
|
function(a,b){h.Exec("AMT_TimeSynchronizationService","GetLowAccuracyTimeSynch",{},a,b)};h.AMT_TimeSynchronizationService_SetHighAccuracyTimeSynch=function(a,b,c,p,d){h.Exec("AMT_TimeSynchronizationService","SetHighAccuracyTimeSynch",{Ta0:a,Tm1:b,Tm2:c},p,d)};h.AMT_UserInitiatedConnectionService_RequestStateChange=function(a,b,c){h.Exec("AMT_UserInitiatedConnectionService","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.AMT_WebUIService_RequestStateChange=function(a,b,c){h.Exec("AMT_WebUIService",
|
|
"RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.AMT_WiFiPortConfigurationService_AddWiFiSettings=function(a,b,c,p,d,g){h.ExecWithXml("AMT_WiFiPortConfigurationService","AddWiFiSettings",{WiFiEndpoint:a,WiFiEndpointSettingsInput:b,IEEE8021xSettingsInput:c,ClientCredential:p,CACredential:d},g)};h.AMT_WiFiPortConfigurationService_UpdateWiFiSettings=function(a,b,c,p,d,g){h.ExecWithXml("AMT_WiFiPortConfigurationService","UpdateWiFiSettings",{WiFiEndpointSettings:a,WiFiEndpointSettingsInput:b,
|
|
IEEE8021xSettingsInput:c,ClientCredential:p,CACredential:d},g)};h.AMT_WiFiPortConfigurationService_DeleteAllITProfiles=function(a,b){h.Exec("AMT_WiFiPortConfigurationService","DeleteAllITProfiles",{_method_dummy:a},b)};h.AMT_WiFiPortConfigurationService_DeleteAllUserProfiles=function(a,b){h.Exec("AMT_WiFiPortConfigurationService","DeleteAllUserProfiles",{_method_dummy:a},b)};h.CIM_Account_RequestStateChange=function(a,b,c){h.Exec("CIM_Account","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},
|
|
c)};h.CIM_AccountManagementService_CreateAccount=function(a,b,c){h.Exec("CIM_AccountManagementService","CreateAccount",{System:a,AccountTemplate:b},c)};h.CIM_BootConfigSetting_ChangeBootOrder=function(a,b){h.Exec("CIM_BootConfigSetting","ChangeBootOrder",{Source:a},b)};h.CIM_BootService_SetBootConfigRole=function(a,b,c){h.Exec("CIM_BootService","SetBootConfigRole",{BootConfigSetting:a,Role:b},c,0,1)};h.CIM_BootService_RequestStateChange=function(a,b,c,p){h.Exec("CIM_BootService","RequestStateChange",
|
|
{RequestedState:a,TimeoutPeriod:b},c,p,1)};h.CIM_Card_ConnectorPower=function(a,b,c){h.Exec("CIM_Card","ConnectorPower",{Connector:a,PoweredOn:b},c)};h.CIM_Card_IsCompatible=function(a,b){h.Exec("CIM_Card","IsCompatible",{ElementToCheck:a},b)};h.CIM_Chassis_IsCompatible=function(a,b){h.Exec("CIM_Chassis","IsCompatible",{ElementToCheck:a},b)};h.CIM_Fan_SetSpeed=function(a,b){h.Exec("CIM_Fan","SetSpeed",{DesiredSpeed:a},b)};h.CIM_KVMRedirectionSAP_RequestStateChange=function(a,b,c){h.Exec("CIM_KVMRedirectionSAP",
|
|
"RequestStateChange",{RequestedState:a},c)};h.CIM_MediaAccessDevice_LockMedia=function(a,b){h.Exec("CIM_MediaAccessDevice","LockMedia",{Lock:a},b)};h.CIM_MediaAccessDevice_SetPowerState=function(a,b,c){h.Exec("CIM_MediaAccessDevice","SetPowerState",{PowerState:a,Time:b},c)};h.CIM_MediaAccessDevice_Reset=function(a){h.Exec("CIM_MediaAccessDevice","Reset",{},a)};h.CIM_MediaAccessDevice_EnableDevice=function(a,b){h.Exec("CIM_MediaAccessDevice","EnableDevice",{Enabled:a},b)};h.CIM_MediaAccessDevice_OnlineDevice=
|
|
function(a,b){h.Exec("CIM_MediaAccessDevice","OnlineDevice",{Online:a},b)};h.CIM_MediaAccessDevice_QuiesceDevice=function(a,b){h.Exec("CIM_MediaAccessDevice","QuiesceDevice",{Quiesce:a},b)};h.CIM_MediaAccessDevice_SaveProperties=function(a){h.Exec("CIM_MediaAccessDevice","SaveProperties",{},a)};h.CIM_MediaAccessDevice_RestoreProperties=function(a){h.Exec("CIM_MediaAccessDevice","RestoreProperties",{},a)};h.CIM_MediaAccessDevice_RequestStateChange=function(a,b,c){h.Exec("CIM_MediaAccessDevice","RequestStateChange",
|
|
{RequestedState:a,TimeoutPeriod:b},c)};h.CIM_PhysicalFrame_IsCompatible=function(a,b){h.Exec("CIM_PhysicalFrame","IsCompatible",{ElementToCheck:a},b)};h.CIM_PhysicalPackage_IsCompatible=function(a,b){h.Exec("CIM_PhysicalPackage","IsCompatible",{ElementToCheck:a},b)};h.CIM_PowerManagementService_RequestPowerStateChange=function(a,b,c,p,d){h.Exec("CIM_PowerManagementService","RequestPowerStateChange",{PowerState:a,ManagedElement:b,Time:c,TimeoutPeriod:p},d,0,1)};h.CIM_PowerSupply_SetPowerState=function(a,
|
|
b,c){h.Exec("CIM_PowerSupply","SetPowerState",{PowerState:a,Time:b},c)};h.CIM_PowerSupply_Reset=function(a){h.Exec("CIM_PowerSupply","Reset",{},a)};h.CIM_PowerSupply_EnableDevice=function(a,b){h.Exec("CIM_PowerSupply","EnableDevice",{Enabled:a},b)};h.CIM_PowerSupply_OnlineDevice=function(a,b){h.Exec("CIM_PowerSupply","OnlineDevice",{Online:a},b)};h.CIM_PowerSupply_QuiesceDevice=function(a,b){h.Exec("CIM_PowerSupply","QuiesceDevice",{Quiesce:a},b)};h.CIM_PowerSupply_SaveProperties=function(a){h.Exec("CIM_PowerSupply",
|
|
"SaveProperties",{},a)};h.CIM_PowerSupply_RestoreProperties=function(a){h.Exec("CIM_PowerSupply","RestoreProperties",{},a)};h.CIM_PowerSupply_RequestStateChange=function(a,b,c){h.Exec("CIM_PowerSupply","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.CIM_Processor_SetPowerState=function(a,b,c){h.Exec("CIM_Processor","SetPowerState",{PowerState:a,Time:b},c)};h.CIM_Processor_Reset=function(a){h.Exec("CIM_Processor","Reset",{},a)};h.CIM_Processor_EnableDevice=function(a,b){h.Exec("CIM_Processor",
|
|
"EnableDevice",{Enabled:a},b)};h.CIM_Processor_OnlineDevice=function(a,b){h.Exec("CIM_Processor","OnlineDevice",{Online:a},b)};h.CIM_Processor_QuiesceDevice=function(a,b){h.Exec("CIM_Processor","QuiesceDevice",{Quiesce:a},b)};h.CIM_Processor_SaveProperties=function(a){h.Exec("CIM_Processor","SaveProperties",{},a)};h.CIM_Processor_RestoreProperties=function(a){h.Exec("CIM_Processor","RestoreProperties",{},a)};h.CIM_Processor_RequestStateChange=function(a,b,c){h.Exec("CIM_Processor","RequestStateChange",
|
|
{RequestedState:a,TimeoutPeriod:b},c)};h.CIM_RecordLog_ClearLog=function(a){h.Exec("CIM_RecordLog","ClearLog",{},a)};h.CIM_RecordLog_RequestStateChange=function(a,b,c){h.Exec("CIM_RecordLog","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.CIM_RedirectionService_RequestStateChange=function(a,b,c){h.Exec("CIM_RedirectionService","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.CIM_Sensor_SetPowerState=function(a,b,c){h.Exec("CIM_Sensor","SetPowerState",{PowerState:a,Time:b},
|
|
c)};h.CIM_Sensor_Reset=function(a){h.Exec("CIM_Sensor","Reset",{},a)};h.CIM_Sensor_EnableDevice=function(a,b){h.Exec("CIM_Sensor","EnableDevice",{Enabled:a},b)};h.CIM_Sensor_OnlineDevice=function(a,b){h.Exec("CIM_Sensor","OnlineDevice",{Online:a},b)};h.CIM_Sensor_QuiesceDevice=function(a,b){h.Exec("CIM_Sensor","QuiesceDevice",{Quiesce:a},b)};h.CIM_Sensor_SaveProperties=function(a){h.Exec("CIM_Sensor","SaveProperties",{},a)};h.CIM_Sensor_RestoreProperties=function(a){h.Exec("CIM_Sensor","RestoreProperties",
|
|
{},a)};h.CIM_Sensor_RequestStateChange=function(a,b,c){h.Exec("CIM_Sensor","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.CIM_StatisticalData_ResetSelectedStats=function(a,b){h.Exec("CIM_StatisticalData","ResetSelectedStats",{SelectedStatistics:a},b)};h.CIM_Watchdog_KeepAlive=function(a){h.Exec("CIM_Watchdog","KeepAlive",{},a)};h.CIM_Watchdog_SetPowerState=function(a,b,c){h.Exec("CIM_Watchdog","SetPowerState",{PowerState:a,Time:b},c)};h.CIM_Watchdog_Reset=function(a){h.Exec("CIM_Watchdog",
|
|
"Reset",{},a)};h.CIM_Watchdog_EnableDevice=function(a,b){h.Exec("CIM_Watchdog","EnableDevice",{Enabled:a},b)};h.CIM_Watchdog_OnlineDevice=function(a,b){h.Exec("CIM_Watchdog","OnlineDevice",{Online:a},b)};h.CIM_Watchdog_QuiesceDevice=function(a,b){h.Exec("CIM_Watchdog","QuiesceDevice",{Quiesce:a},b)};h.CIM_Watchdog_SaveProperties=function(a){h.Exec("CIM_Watchdog","SaveProperties",{},a)};h.CIM_Watchdog_RestoreProperties=function(a){h.Exec("CIM_Watchdog","RestoreProperties",{},a)};h.CIM_Watchdog_RequestStateChange=
|
|
function(a,b,c){h.Exec("CIM_Watchdog","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.CIM_WiFiPort_SetPowerState=function(a,b,c){h.Exec("CIM_WiFiPort","SetPowerState",{PowerState:a,Time:b},c)};h.CIM_WiFiPort_Reset=function(a){h.Exec("CIM_WiFiPort","Reset",{},a)};h.CIM_WiFiPort_EnableDevice=function(a,b){h.Exec("CIM_WiFiPort","EnableDevice",{Enabled:a},b)};h.CIM_WiFiPort_OnlineDevice=function(a,b){h.Exec("CIM_WiFiPort","OnlineDevice",{Online:a},b)};h.CIM_WiFiPort_QuiesceDevice=function(a,
|
|
b){h.Exec("CIM_WiFiPort","QuiesceDevice",{Quiesce:a},b)};h.CIM_WiFiPort_SaveProperties=function(a){h.Exec("CIM_WiFiPort","SaveProperties",{},a)};h.CIM_WiFiPort_RestoreProperties=function(a){h.Exec("CIM_WiFiPort","RestoreProperties",{},a)};h.CIM_WiFiPort_RequestStateChange=function(a,b,c){h.Exec("CIM_WiFiPort","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.IPS_HostBasedSetupService_Setup=function(a,b,c,p,d,g,k){h.Exec("IPS_HostBasedSetupService","Setup",{NetAdminPassEncryptionType:a,
|
|
NetworkAdminPassword:b,McNonce:c,Certificate:p,SigningAlgorithm:d,DigitalSignature:g},k)};h.IPS_HostBasedSetupService_AddNextCertInChain=function(a,b,c,p){h.Exec("IPS_HostBasedSetupService","AddNextCertInChain",{NextCertificate:a,IsLeafCertificate:b,IsRootCertificate:c},p)};h.IPS_HostBasedSetupService_AdminSetup=function(a,b,c,p,d,g){h.Exec("IPS_HostBasedSetupService","AdminSetup",{NetAdminPassEncryptionType:a,NetworkAdminPassword:b,McNonce:c,SigningAlgorithm:p,DigitalSignature:d},g)};h.IPS_HostBasedSetupService_UpgradeClientToAdmin=
|
|
function(a,b,c,p){h.Exec("IPS_HostBasedSetupService","UpgradeClientToAdmin",{McNonce:a,SigningAlgorithm:b,DigitalSignature:c},p)};h.IPS_HostBasedSetupService_DisableClientControlMode=function(a,b){h.Exec("IPS_HostBasedSetupService","DisableClientControlMode",{_method_dummy:a},b)};h.IPS_KVMRedirectionSettingData_TerminateSession=function(a){h.Exec("IPS_KVMRedirectionSettingData","TerminateSession",{},a)};h.IPS_KVMRedirectionSettingData_DataChannelRead=function(a){h.Exec("IPS_KVMRedirectionSettingData",
|
|
"DataChannelRead",{},a)};h.IPS_KVMRedirectionSettingData_DataChannelWrite=function(a,b){h.Exec("IPS_KVMRedirectionSettingData","DataChannelWrite",{DataMessage:a},b)};h.IPS_OptInService_StartOptIn=function(a){h.Exec("IPS_OptInService","StartOptIn",{},a)};h.IPS_OptInService_CancelOptIn=function(a){h.Exec("IPS_OptInService","CancelOptIn",{},a)};h.IPS_OptInService_SendOptInCode=function(a,b){h.Exec("IPS_OptInService","SendOptInCode",{OptInCode:a},b)};h.IPS_OptInService_StartService=function(a){h.Exec("IPS_OptInService",
|
|
"StartService",{},a)};h.IPS_OptInService_StopService=function(a){h.Exec("IPS_OptInService","StopService",{},a)};h.IPS_OptInService_RequestStateChange=function(a,b,c){h.Exec("IPS_OptInService","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.IPS_PowerManagementService_RequestOSPowerSavingStateChange=function(a,b,c,p,d){h.Exec("IPS_PowerManagementService","RequestOSPowerSavingStateChange",{OSPowerSavingState:a,ManagedElement:b,Time:c,TimeoutPeriod:p},d,0,1)};h.IPS_ProvisioningRecordLog_RequestStateChange=
|
|
function(a,b,c){h.Exec("IPS_ProvisioningRecordLog","RequestStateChange",{RequestedState:a,TimeoutPeriod:b},c)};h.IPS_ProvisioningRecordLog_ClearLog=function(a,b){h.Exec("IPS_ProvisioningRecordLog","ClearLog",{_method_dummy:a},b)};h.IPS_ScreenConfigurationService_SetSessionState=function(a,b,c){h.Exec("IPS_ScreenConfigurationService","SetSessionState",{SessionState:a,ConsecutiveRebootsNum:b},c)};h.IPS_SecIOService_RequestStateChange=function(a,b,c){h.Exec("IPS_SecIOService","RequestStateChange",{RequestedState:a,
|
|
TimeoutPeriod:b},c)};h.IPS_HTTPProxyService_AddProxyAccessPoint=function(a,b,c,p,d){h.Exec("IPS_HTTPProxyService","AddProxyAccessPoint",{AccessInfo:a,InfoFormat:b,Port:c,NetworkDnsSuffix:p},d)};h.AmtStatusToStr=function(a){return h.AmtStatusCodes[a]?h.AmtStatusCodes[a]:"UNKNOWN_ERROR"};h.AmtStatusCodes={0:"SUCCESS",1:"INTERNAL_ERROR",2:"NOT_READY",3:"INVALID_PT_MODE",4:"INVALID_MESSAGE_LENGTH",5:"TABLE_FINGERPRINT_NOT_AVAILABLE",6:"INTEGRITY_CHECK_FAILED",7:"UNSUPPORTED_ISVS_VERSION",8:"APPLICATION_NOT_REGISTERED",
|
|
9:"INVALID_REGISTRATION_DATA",10:"APPLICATION_DOES_NOT_EXIST",11:"NOT_ENOUGH_STORAGE",12:"INVALID_NAME",13:"BLOCK_DOES_NOT_EXIST",14:"INVALID_BYTE_OFFSET",15:"INVALID_BYTE_COUNT",16:"NOT_PERMITTED",17:"NOT_OWNER",18:"BLOCK_LOCKED_BY_OTHER",19:"BLOCK_NOT_LOCKED",20:"INVALID_GROUP_PERMISSIONS",21:"GROUP_DOES_NOT_EXIST",22:"INVALID_MEMBER_COUNT",23:"MAX_LIMIT_REACHED",24:"INVALID_AUTH_TYPE",25:"AUTHENTICATION_FAILED",26:"INVALID_DHCP_MODE",27:"INVALID_IP_ADDRESS",28:"INVALID_DOMAIN_NAME",29:"UNSUPPORTED_VERSION",
|
|
30:"REQUEST_UNEXPECTED",31:"INVALID_TABLE_TYPE",32:"INVALID_PROVISIONING_STATE",33:"UNSUPPORTED_OBJECT",34:"INVALID_TIME",35:"INVALID_INDEX",36:"INVALID_PARAMETER",37:"INVALID_NETMASK",38:"FLASH_WRITE_LIMIT_EXCEEDED",39:"INVALID_IMAGE_LENGTH",40:"INVALID_IMAGE_SIGNATURE",41:"PROPOSE_ANOTHER_VERSION",42:"INVALID_PID_FORMAT",43:"INVALID_PPS_FORMAT",44:"BIST_COMMAND_BLOCKED",45:"CONNECTION_FAILED",46:"CONNECTION_TOO_MANY",47:"RNG_GENERATION_IN_PROGRESS",48:"RNG_NOT_READY",49:"CERTIFICATE_NOT_READY",
|
|
1024:"DISABLED_BY_POLICY",2048:"NETWORK_IF_ERROR_BASE",2049:"UNSUPPORTED_OEM_NUMBER",2050:"UNSUPPORTED_BOOT_OPTION",2051:"INVALID_COMMAND",2052:"INVALID_SPECIAL_COMMAND",2053:"INVALID_HANDLE",2054:"INVALID_PASSWORD",2055:"INVALID_REALM",2056:"STORAGE_ACL_ENTRY_IN_USE",2057:"DATA_MISSING",2058:"DUPLICATE",2059:"EVENTLOG_FROZEN",2060:"PKI_MISSING_KEYS",2061:"PKI_GENERATING_KEYS",2062:"INVALID_KEY",2063:"INVALID_CERT",2064:"CERT_KEY_NOT_MATCH",2065:"MAX_KERB_DOMAIN_REACHED",2066:"UNSUPPORTED",2067:"INVALID_PRIORITY",
|
|
2068:"NOT_FOUND",2069:"INVALID_CREDENTIALS",2070:"INVALID_PASSPHRASE",2072:"NO_ASSOCIATION",2075:"AUDIT_FAIL",2076:"BLOCKING_COMPONENT",2081:"USER_CONSENT_REQUIRED",4096:"APP_INTERNAL_ERROR",4097:"NOT_INITIALIZED",4098:"LIB_VERSION_UNSUPPORTED",4099:"INVALID_PARAM",4100:"RESOURCES",4101:"HARDWARE_ACCESS_ERROR",4102:"REQUESTOR_NOT_REGISTERED",4103:"NETWORK_ERROR",4104:"PARAM_BUFFER_TOO_SHORT",4105:"COM_NOT_INITIALIZED_IN_THREAD",4106:"URL_REQUIRED"};h.GetMessageLog=function(a,b){h.AMT_MessageLog_PositionToFirstRecord(n,
|
|
[a,b,[]])};var E="Sin especificar. No hay memoria del sistema instalada f\u00edsicamente en el sistema. No hay memoria utilizable del sistema, toda la memoria instalada ha experimentado una falla irrecuperable. Falla irrecuperable del disco duro / dispositivo ATAPI / IDE. Falla irrecuperable de la placa del sistema. falla del subsistema. ; Falla irrecuperable del controlador del disco duro. ; Falla irrecuperable del teclado PS / 2 o USB. ; No se encontr\u00f3 el medio de arranque extra\u00edble. ; Falla irrecuperable del controlador de video. ; No se detect\u00f3 ning\u00fan dispositivo de video. ; Se detect\u00f3 corrupci\u00f3n de ROM del firmware (BIOS). ; Falta de coincidencia de voltaje de la CPU (los procesadores que comparten el mismo suministro tienen requisitos de voltaje no coincidentes)".split(";"),
|
|
m="Sin especificar. ; Inicializaci\u00f3n de memoria. ; Inicio de inicializaci\u00f3n y prueba de disco duro ; Inicializaci\u00f3n de procesador (es) secundario (s) ; Autenticaci\u00f3n de usuario ; Configuraci\u00f3n del sistema iniciada por el usuario ; Configuraci\u00f3n de recursos USB ; Configuraci\u00f3n de recursos PCI ; Inicializaci\u00f3n de ROM opcional ; Inicializaci\u00f3n de cach\u00e9 ; SM inicializaci\u00f3n Inicializaci\u00f3n del bus ; Inicializaci\u00f3n del controlador del teclado ; Inicializaci\u00f3n del controlador integrado / controlador de gesti\u00f3n ; Conexi\u00f3n de la estaci\u00f3n de acoplamiento ; Habilitaci\u00f3n de la estaci\u00f3n de acoplamiento ; Expulsi\u00f3n de la estaci\u00f3n de acoplamiento ; Inhabilitaci\u00f3n de la estaci\u00f3n de acoplamiento ; Llamada del vector de activaci\u00f3n del sistema operativo ; Inicio del proceso de arranque del sistema operativo ; Inicializaci\u00f3n de la placa base o placa base ; reservado ; Inicializaci\u00f3n de disquete ; Prueba de teclado ; Prueba de dispositivo se\u00f1alador ; Inicializaci\u00f3n del procesador primario".split(";"),
|
|
k="Sin especificar ; Otro ; Desconocido ; Procesador ; Disco ; Perif\u00e9rico ; M\u00f3dulo de gesti\u00f3n del sistema ; Placa del sistema ; M\u00f3dulo de memoria ; M\u00f3dulo del procesador ; Fuente de alimentaci\u00f3n ; Agregar tarjeta ; Placa del panel frontal ; Placa del panel posterior ; Placa del sistema de alimentaci\u00f3n ; Placa posterior de la unidad ; Expansi\u00f3n interna del sistema placa ; Otra placa del sistema ; Placa del procesador ; Unidad de potencia ; M\u00f3dulo de potencia ; Placa de administraci\u00f3n de energ\u00eda ; Placa del panel posterior del chasis ; Chasis del sistema ; Chasis secundario ; Otra placa del chasis ; Compartimento de la unidad de disco ; Compartimento perif\u00e9rico ; Compartimento del dispositivo ; Refrigeraci\u00f3n del ventilador ; Unidad de refrigeraci\u00f3n ; Interconexi\u00f3n de cables ; Dispositivo de memoria ; Software de gesti\u00f3n del sistema ; BIOS ; Intel (r) ME ; Bus del sistema ; Grupo ; Intel (r) ME ; Entorno externo ; Bater\u00eda ; Blade de procesamiento ; Interruptor de conectividad ; M\u00f3dulo de procesador / memoria ; M\u00f3dulo de E / S ; M\u00f3dulo de E / S del procesador ; Firmware del controlador de gesti\u00f3n ; Canal IPMI ; Bus PCI ; Bus PCI express ; Bus SCSI ; Bus SATA / SAS ; Bus frontal del procesador".split(";");
|
|
h.RealmNames=";; Redirecci\u00f3n ;; Activo de hardware ; Control remoto ; Almacenamiento ; Administrador de eventos ; Administrador de almacenamiento ; Presencia de agente local ; Presencia de agente remoto ; Disyuntor ; Tiempo de red ; Informaci\u00f3n general ; Actualizaci\u00f3n de firmware ; EIT ; LocalUN ; Control de acceso de punto final ; Control de acceso de punto final Admin ; Lector de registro de eventos ; Registro de auditor\u00eda ; Reino ACL ;;; Sistema local".split(";");h.WatchdogCurrentStates=
|
|
{1:"No empezado",2:"Detenido",4:"Corriendo",8:"Caducado",16:"Suspendido"};var g="Boot parameters received from CSME;CSME Boot Option % added successfully;HTTPS URI name resolved;HTTPS connected successfully;HTTPSBoot download is completed;Attempt to boot;Exit boot services".split(";"),u=";No network connection available;Name resolution of URI failed;Connect to URI failed;OEM app not found at local URI;HTTPS TLS Auth failed;HTTPS Digest Auth failed;Verified boot failed (bad image);HTTPS Boot File not found".split(";"),
|
|
O={1:"",2:"HTTPS",4:"Local PBA",8:"WinRE"},D={16:"Administrador de seguridad",17:"RCO",18:"Gerente de redireccionamiento",19:"Administrador de actualizaci\u00f3n de firmware",20:"Registro de auditor\u00eda de seguridad",21:"Tiempo de red",22:"Administraci\u00f3n de red",23:"Administraci\u00f3n de almacenamiento",24:"Administrador de evento",25:"Gerente de disyuntores",26:"Gerente de presencia de agente",27:"Configuraci\u00f3n inal\u00e1mbrica",28:"EAC",29:"KVM",30:"Eventos de aceptaci\u00f3n del usuario",
|
|
32:"Pantalla en blanco",33:"Eventos de vigilancia",1600:"Aprovisionamiento iniciado",1601:"Aprovisionamiento completado",1602:"Entrada de ACL agregada",1603:"Entrada de ACL modificada",1604:"Entrada de ACL eliminada",1605:"Acceso a ACL con credenciales no v\u00e1lidas",1606:"Estado de entrada de ACL",1607:"Estado de TLS cambiado",1608:"Conjunto de certificados de servidor TLS",1609:"Certificado de servidor TLS Eliminar",1610:"Certificado TLS Trusted Root agregado",1611:"Certificado ra\u00edz de confianza TLS eliminado",
|
|
1612:"Juego de llaves TLS previamente compartidas",1613:"Configuraci\u00f3n de Kerberos modificada",1614:"Clave principal de Kerberos modificada",1615:"Restablecimiento de contadores de desgaste de flash",1616:"Paquete de energ\u00eda modificado",1617:"Establecer modo de autenticaci\u00f3n de reino",1618:"Actualizar cliente al modo de control de administrador",1619:"Desaprovisionamiento iniciado",1700:"Encendido realizado",1701:"Apagado realizado",1702:"Ciclo de energ\u00eda realizado",1703:"Reinicio realizado",
|
|
1704:"Establecer opciones de arranque",1800:"Sesi\u00f3n IDER abierta",1801:"Sesi\u00f3n IDER cerrada",1802:"IDER habilitado",1803:"IDER deshabilitado",1804:"Sesi\u00f3n de SoL abierta",1805:"Sesi\u00f3n de SoL cerrada",1806:"SoL habilitado",1807:"SoL deshabilitado",1808:"Sesi\u00f3n KVM iniciada",1809:"Sesi\u00f3n KVM finalizada",1810:"KVM habilitado",1811:"KVM deshabilitado",1812:"La contrase\u00f1a de VNC fall\u00f3 3 veces",1900:"Firmware actualizado",1901:"Error de actualizaci\u00f3n de firmware",
|
|
2E3:"Registro de auditor\u00eda de seguridad borrado",2001:"Pol\u00edtica de auditor\u00eda de seguridad modificada",2002:"Registro de auditor\u00eda de seguridad deshabilitado",2003:"Registro de auditor\u00eda de seguridad habilitado",2004:"Registro de auditor\u00eda de seguridad exportado",2005:"Registro de auditor\u00eda de seguridad recuperado",2100:"Intel® ME Time Set",2200:"Conjunto de par\u00e1metros TCPIP",2201:"Conjunto de nombres de host",2202:"Conjunto de nombres de dominio",2203:"Conjunto de par\u00e1metros de VLAN",
|
|
2204:"Conjunto de pol\u00edticas de enlace",2205:"Conjunto de par\u00e1metros de IPv6",2300:"Conjunto de atributos de almacenamiento global",2301:"Almacenamiento EACL modificado",2302:"Almacenamiento FPACL modificado",2303:"Operaci\u00f3n de escritura de almacenamiento",2400:"Alerta suscrita",2401:"Alerta sin suscripci\u00f3n",2402:"Registro de eventos borrado",2403:"Registro de eventos congelado",2500:"Filtro CB agregado",2501:"Filtro CB eliminado",2502:"Pol\u00edtica de CB agregada",2503:"Pol\u00edtica de CB eliminada",
|
|
2504:"Conjunto de pol\u00edticas predeterminadas de CB",2505:"Conjunto de opciones de heur\u00edstica CB",2506:"Estado de heur\u00edstica de CB aprobado",2600:"Agente de vigilancia agregado",2601:"Agente de vigilancia eliminado",2602:"Conjunto de acciones del agente de vigilancia",2700:"Perfil inal\u00e1mbrico agregado",2701:"Perfil inal\u00e1mbrico eliminado",2702:"Perfil inal\u00e1mbrico actualizado",2800:"EAC Posture Signer SET",2801:"EAC habilitado",2802:"EAC deshabilitado",2803:"Estado de postura de EAC",
|
|
2804:"Opciones de configuraci\u00f3n de EAC",2900:"Opci\u00f3n KVM habilitada",2901:"Opci\u00f3n KVM desactivada",2902:"Contrase\u00f1a KVM modificada",2903:"Consentimiento de KVM exitoso",2904:"Consentimiento de KVM fallido",3E3:"Cambio de pol\u00edtica de aceptaci\u00f3n",3001:"Enviar evento de c\u00f3digo de consentimiento",3002:"Iniciar evento bloqueado de aceptaci\u00f3n"};h.GetAuditLogExtendedDataStr=function(a,b){if((1602==a||1604==a)&&0==b.charCodeAt(0))return b.substring(2,2+b.charCodeAt(1));
|
|
if(1603==a)return 0==b.charCodeAt(1)?b.substring(3):null;if(1605==a)return["Acceso inv\u00e1lido a m\u00ed","Acceso no v\u00e1lido a MEBx"][b.charCodeAt(0)];if(1606==a){var c=["Discapacitado","Habilitado"][b.charCodeAt(0)];0==b.charCodeAt(1)&&(c+=","+b.substring(3));return c}return 1607==a?"Remoto"+["NoAuth","ServerAuth","MutualAuth"][b.charCodeAt(0)]+", Local"+["NoAuth","ServerAuth","MutualAuth"][b.charCodeAt(1)]:1617==a?h.RealmNames[ReadInt(b,0)]+","+["NoAuth","Autenticaci\u00f3n","Discapacitado"][b.charCodeAt(4)]:
|
|
1619==a?["BIOS","MEBx","MEI local","WSMAN local","WSAMN remota"][b.charCodeAt(0)]:1900==a?"Desde"+ReadShort(b,0)+"."+ReadShort(b,2)+"."+ReadShort(b,4)+"."+ReadShort(b,6)+" a"+ReadShort(b,8)+"."+ReadShort(b,10)+"."+ReadShort(b,12)+"."+ReadShort(b,14):2100==a?(c=new Date,c.setTime(1E3*ReadInt(b,0)+6E4*(new Date).getTimezoneOffset()),c.toLocaleString()):3E3==a?"Desde"+["Ninguna","KVM","Todas"][b.charCodeAt(0)]+" a"+["Ninguna","KVM","Todas"][b.charCodeAt(1)]:3001==a?["\u00c9xito","Fall\u00f3 3 veces"][b.charCodeAt(0)]:
|
|
null};h.GetAuditLog=function(a){h.AMT_AuditLog_ReadRecords(1,q,[a,[]])};return h}function hex_md5(b){null==b&&(b="");return forge.md.md5.create().update(b).digest().toHex()}function rstr_md5(b){return hex2rstr(hex_md5(b))}function execArgumentsToXml(b){if(void 0===b||null===b)return null;var c="",a;for(a in b){var d=b[a];d&&(c="reference"===d.__parameterType?c+referenceToXml(a,d):c+instanceToXml(a,d))}return c}
|
|
function instanceToXml(b,c){if(void 0===c||null===c)return null;var a=!!c.__namespace,d=a?"<q:":"<",e=a?"</q:":"</",a="<r:"+b+(a?' xmlns:q="'+c.__namespace+'"':"")+">",v;for(v in c)c.hasOwnProperty(v)&&0!==v.indexOf("__")&&("function"===typeof c[v]||Array.isArray(c[v])||("object"===typeof c[v]?console.error("only convert one level down..."):a+=d+v+">"+c[v].toString()+e+v+">"));return a+("</r:"+b+">")}
|
|
function referenceToXml(b,c){if(void 0===c||null===c)return null;var a="<r:"+b+"><a:Address>/wsman</a:Address><a:ReferenceParameters><w:ResourceURI>"+c.__resourceUri+"</w:ResourceURI><w:SelectorSet>",d;for(d in c)c.hasOwnProperty(d)&&0!==d.indexOf("__")&&("function"===typeof c[d]||"object"===typeof c[d]||Array.isArray(c[d])||(a+='<w:Selector Name="'+d+'">'+c[d].toString()+"</w:Selector>"));return a+("</w:SelectorSet></a:ReferenceParameters></r:"+b+">")}
|
|
function GetSidString(b){for(var c="S-"+b.charCodeAt(0)+"-"+b.charCodeAt(7),a=2;a<b.length/4;a++)c+="-"+ReadIntX(b,4*a);return c}
|
|
function GetSidByteArray(b){if(!b||null==b)return null;b=b.split("-");if(4>b.length||"s"!=b[0]&&"S"!=b[0])return null;for(var c=1;c<b.length;c++){var a=parseInt(b[c]);if(a!=b[c])return null;b[c]=a}a=String.fromCharCode(b[1])+String.fromCharCode(b.length-3)+ShortToStr(Math.floor(b[2]/Math.pow(2,32)))+IntToStr(b[2]&65535);for(c=3;c<b.length;c++)a+=IntToStrX(b[c]);return a}
|
|
(function(b,c){"function"===typeof define&&define.amd?define([],c):b.forge=c()})(this,function(){var b,c,a;(function(d){function e(a,b){var c,p,d,h,y,g,k,m,q,e=b&&b.split("/"),w=u.map,l=w&&w["*"]||{};if(a&&"."===a.charAt(0))if(b){e=e.slice(0,e.length-1);a=a.split("/");y=a.length-1;u.nodeIdCompat&&z.test(a[y])&&(a[y]=a[y].replace(z,""));a=e.concat(a);for(y=0;y<a.length;y+=1)if(c=a[y],"."===c)a.splice(y,1),--y;else if(".."===c)if(1!==y||".."!==a[2]&&".."!==a[0])0<y&&(a.splice(y-1,2),y-=2);else break;
|
|
a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((e||l)&&w){c=a.split("/");for(y=c.length;0<y;--y){p=c.slice(0,y).join("/");if(e)for(q=e.length;0<q;--q)if(d=w[e.slice(0,q).join("/")])if(d=d[p]){h=d;g=y;break}if(h)break;!k&&l&&l[p]&&(k=l[p],m=y)}!h&&k&&(h=k,g=m);h&&(c.splice(0,g,h),a=c.join("/"))}return a}function v(a,b){return function(){return w.apply(d,y.call(arguments,0).concat([a,b]))}}function n(a){return function(b){return e(b,a)}}function l(a){return function(b){k[a]=b}}function p(a){if(D.call(g,
|
|
a)){var b=g[a];delete g[a];O[a]=!0;B.apply(d,b)}if(!D.call(k,a)&&!D.call(O,a))throw Error("No "+a);return k[a]}function q(a){var b,c=a?a.indexOf("!"):-1;-1<c&&(b=a.substring(0,c),a=a.substring(c+1,a.length));return[b,a]}function h(a){return function(){return u&&u.config&&u.config[a]||{}}}var B,w,E,m,k={},g={},u={},O={},D=Object.prototype.hasOwnProperty,y=[].slice,z=/\.js$/;E=function(a,b){var c,d=q(a),h=d[0];a=d[1];h&&(h=e(h,b),c=p(h));h?a=c&&c.normalize?c.normalize(a,n(b)):e(a,b):(a=e(a,b),d=q(a),
|
|
h=d[0],a=d[1],h&&(c=p(h)));return{f:h?h+"!"+a:a,n:a,pr:h,p:c}};m={require:function(a){return v(a)},exports:function(a){var b=k[a];return"undefined"!==typeof b?b:k[a]={}},module:function(a){return{id:a,uri:"",exports:k[a],config:h(a)}}};B=function(a,b,c,h){var y,q,e,z,u=[];q=typeof c;var w;h=h||a;if("undefined"===q||"function"===q){b=!b.length&&c.length?["require","exports","module"]:b;for(z=0;z<b.length;z+=1)if(e=E(b[z],h),q=e.f,"require"===q)u[z]=m.require(a);else if("exports"===q)u[z]=m.exports(a),
|
|
w=!0;else if("module"===q)y=u[z]=m.module(a);else if(D.call(k,q)||D.call(g,q)||D.call(O,q))u[z]=p(q);else if(e.p)e.p.load(e.n,v(h,!0),l(q),{}),u[z]=k[q];else throw Error(a+" missing "+q);b=c?c.apply(k[a],u):void 0;a&&(y&&y.exports!==d&&y.exports!==k[a]?k[a]=y.exports:b===d&&w||(k[a]=b))}else a&&(k[a]=c)};b=c=w=function(a,b,c,h,y){if("string"===typeof a)return m[a]?m[a](b):p(E(a,b).f);if(!a.splice){u=a;u.deps&&w(u.deps,u.callback);if(!b)return;b.splice?(a=b,b=c,c=null):a=d}b=b||function(){};"function"===
|
|
typeof c&&(c=h,h=y);h?B(d,a,b,c):setTimeout(function(){B(d,a,b,c)},4);return w};w.config=function(a){return w(a)};b._defined=k;a=function(a,b,c){b.splice||(c=b,b=[]);D.call(k,a)||D.call(g,a)||(g[a]=[a,b,c])};a.amd={jQuery:!0}})();a("node_modules/almond/almond",function(){});(function(){function b(a){function c(a){this.data="";this.read=0;if("string"===typeof a)this.data=a;else if(d.isArrayBuffer(a)||d.isArrayBufferView(a)){a=new Uint8Array(a);try{this.data=String.fromCharCode.apply(null,a)}catch(b){for(var p=
|
|
0;p<a.length;++p)this.putByte(a[p])}}else if(a instanceof c||"object"===typeof a&&"string"===typeof a.data&&"number"===typeof a.read)this.data=a.data,this.read=a.read;this._constructedStringLength=0}var d=a.util=a.util||{};(function(){if("undefined"!==typeof process&&process.nextTick)d.nextTick=process.nextTick,d.setImmediate="function"===typeof setImmediate?setImmediate:d.nextTick;else if("function"===typeof setImmediate)d.setImmediate=setImmediate,d.nextTick=function(a){return setImmediate(a)};
|
|
else{d.setImmediate=function(a){setTimeout(a,0)};if("undefined"!==typeof window&&"function"===typeof window.postMessage){var a=[];d.setImmediate=function(b){a.push(b);1===a.length&&window.postMessage("forge.setImmediate","*")};window.addEventListener("message",function(b){b.source===window&&"forge.setImmediate"===b.data&&(b.stopPropagation(),b=a.slice(),a.length=0,b.forEach(function(a){a()}))},!0)}if("undefined"!==typeof MutationObserver){var b=Date.now(),c=!0,p=document.createElement("div"),a=[];
|
|
(new MutationObserver(function(){var b=a.slice();a.length=0;b.forEach(function(a){a()})})).observe(p,{attributes:!0});var x=d.setImmediate;d.setImmediate=function(d){15<Date.now()-b?(b=Date.now(),x(d)):(a.push(d),1===a.length&&p.setAttribute("a",c=!c))}}d.nextTick=d.setImmediate}})();d.isArray=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)};d.isArrayBuffer=function(a){return"undefined"!==typeof ArrayBuffer&&a instanceof ArrayBuffer};d.isArrayBufferView=function(a){return a&&
|
|
d.isArrayBuffer(a.buffer)&&void 0!==a.byteLength};d.ByteBuffer=c;d.ByteStringBuffer=c;d.ByteStringBuffer.prototype._optimizeConstructedString=function(a){this._constructedStringLength+=a;4096<this._constructedStringLength&&(this.data.substr(0,1),this._constructedStringLength=0)};d.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};d.ByteStringBuffer.prototype.isEmpty=function(){return 0>=this.length()};d.ByteStringBuffer.prototype.putByte=function(a){return this.putBytes(String.fromCharCode(a))};
|
|
d.ByteStringBuffer.prototype.fillWithByte=function(a,b){a=String.fromCharCode(a);for(var c=this.data;0<b;)b&1&&(c+=a),b>>>=1,0<b&&(a+=a);this.data=c;this._optimizeConstructedString(b);return this};d.ByteStringBuffer.prototype.putBytes=function(a){this.data+=a;this._optimizeConstructedString(a.length);return this};d.ByteStringBuffer.prototype.putString=function(a){return this.putBytes(d.encodeUtf8(a))};d.ByteStringBuffer.prototype.putInt16=function(a){return this.putBytes(String.fromCharCode(a>>8&
|
|
255)+String.fromCharCode(a&255))};d.ByteStringBuffer.prototype.putInt24=function(a){return this.putBytes(String.fromCharCode(a>>16&255)+String.fromCharCode(a>>8&255)+String.fromCharCode(a&255))};d.ByteStringBuffer.prototype.putInt32=function(a){return this.putBytes(String.fromCharCode(a>>24&255)+String.fromCharCode(a>>16&255)+String.fromCharCode(a>>8&255)+String.fromCharCode(a&255))};d.ByteStringBuffer.prototype.putInt16Le=function(a){return this.putBytes(String.fromCharCode(a&255)+String.fromCharCode(a>>
|
|
8&255))};d.ByteStringBuffer.prototype.putInt24Le=function(a){return this.putBytes(String.fromCharCode(a&255)+String.fromCharCode(a>>8&255)+String.fromCharCode(a>>16&255))};d.ByteStringBuffer.prototype.putInt32Le=function(a){return this.putBytes(String.fromCharCode(a&255)+String.fromCharCode(a>>8&255)+String.fromCharCode(a>>16&255)+String.fromCharCode(a>>24&255))};d.ByteStringBuffer.prototype.putInt=function(a,b){var c="";do b-=8,c+=String.fromCharCode(a>>b&255);while(0<b);return this.putBytes(c)};
|
|
d.ByteStringBuffer.prototype.putSignedInt=function(a,b){0>a&&(a+=2<<b-1);return this.putInt(a,b)};d.ByteStringBuffer.prototype.putBuffer=function(a){return this.putBytes(a.getBytes())};d.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};d.ByteStringBuffer.prototype.getInt16=function(){var a=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);this.read+=2;return a};d.ByteStringBuffer.prototype.getInt24=function(){var a=this.data.charCodeAt(this.read)<<
|
|
16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);this.read+=3;return a};d.ByteStringBuffer.prototype.getInt32=function(){var a=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);this.read+=4;return a};d.ByteStringBuffer.prototype.getInt16Le=function(){var a=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;this.read+=2;return a};d.ByteStringBuffer.prototype.getInt24Le=
|
|
function(){var a=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;this.read+=3;return a};d.ByteStringBuffer.prototype.getInt32Le=function(){var a=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;this.read+=4;return a};d.ByteStringBuffer.prototype.getInt=function(a){var b=0;do b=(b<<8)+this.data.charCodeAt(this.read++),a-=8;while(0<a);return b};d.ByteStringBuffer.prototype.getSignedInt=
|
|
function(a){var b=this.getInt(a);a=2<<a-2;b>=a&&(b-=a<<1);return b};d.ByteStringBuffer.prototype.getBytes=function(a){var b;a?(a=Math.min(this.length(),a),b=this.data.slice(this.read,this.read+a),this.read+=a):0===a?b="":(b=0===this.read?this.data:this.data.slice(this.read),this.clear());return b};d.ByteStringBuffer.prototype.bytes=function(a){return"undefined"===typeof a?this.data.slice(this.read):this.data.slice(this.read,this.read+a)};d.ByteStringBuffer.prototype.at=function(a){return this.data.charCodeAt(this.read+
|
|
a)};d.ByteStringBuffer.prototype.setAt=function(a,b){this.data=this.data.substr(0,this.read+a)+String.fromCharCode(b)+this.data.substr(this.read+a+1);return this};d.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};d.ByteStringBuffer.prototype.copy=function(){var a=d.createBuffer(this.data);a.read=this.read;return a};d.ByteStringBuffer.prototype.compact=function(){0<this.read&&(this.data=this.data.slice(this.read),this.read=0);return this};d.ByteStringBuffer.prototype.clear=
|
|
function(){this.data="";this.read=0;return this};d.ByteStringBuffer.prototype.truncate=function(a){a=Math.max(0,this.length()-a);this.data=this.data.substr(this.read,a);this.read=0;return this};d.ByteStringBuffer.prototype.toHex=function(){for(var a="",b=this.read;b<this.data.length;++b){var c=this.data.charCodeAt(b);16>c&&(a+="0");a+=c.toString(16)}return a};d.ByteStringBuffer.prototype.toString=function(){return d.decodeUtf8(this.bytes())};d.DataBuffer=function(a,b){b=b||{};this.read=b.readOffset||
|
|
0;this.growSize=b.growSize||1024;var c=d.isArrayBuffer(a),p=d.isArrayBufferView(a);c||p?(this.data=c?new DataView(a):new DataView(a.buffer,a.byteOffset,a.byteLength),this.write="writeOffset"in b?b.writeOffset:this.data.byteLength):(this.data=new DataView(new ArrayBuffer(0)),this.write=0,null!==a&&void 0!==a&&this.putBytes(a),"writeOffset"in b&&(this.write=b.writeOffset))};d.DataBuffer.prototype.length=function(){return this.write-this.read};d.DataBuffer.prototype.isEmpty=function(){return 0>=this.length()};
|
|
d.DataBuffer.prototype.accommodate=function(a,b){if(this.length()>=a)return this;b=Math.max(b||this.growSize,a);var c=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),d=new Uint8Array(this.length()+b);d.set(c);this.data=new DataView(d.buffer);return this};d.DataBuffer.prototype.putByte=function(a){this.accommodate(1);this.data.setUint8(this.write++,a);return this};d.DataBuffer.prototype.fillWithByte=function(a,b){this.accommodate(b);for(var c=0;c<b;++c)this.data.setUint8(a);
|
|
return this};d.DataBuffer.prototype.putBytes=function(a,b){if(d.isArrayBufferView(a)){var c=new Uint8Array(a.buffer,a.byteOffset,a.byteLength),p=c.byteLength-c.byteOffset;this.accommodate(p);var x=new Uint8Array(this.data.buffer,this.write);x.set(c);this.write+=p;return this}if(d.isArrayBuffer(a))return c=new Uint8Array(a),this.accommodate(c.byteLength),x=new Uint8Array(this.data.buffer),x.set(c,this.write),this.write+=c.byteLength,this;if(a instanceof d.DataBuffer||"object"===typeof a&&"number"===
|
|
typeof a.read&&"number"===typeof a.write&&d.isArrayBufferView(a.data))return c=new Uint8Array(a.data.byteLength,a.read,a.length()),this.accommodate(c.byteLength),x=new Uint8Array(a.data.byteLength,this.write),x.set(c),this.write+=c.byteLength,this;a instanceof d.ByteStringBuffer&&(a=a.data,b="binary");b=b||"binary";if("string"===typeof a){if("hex"===b)return this.accommodate(Math.ceil(a.length/2)),c=new Uint8Array(this.data.buffer,this.write),this.write+=d.binary.hex.decode(a,c,this.write),this;if("base64"===
|
|
b)return this.accommodate(3*Math.ceil(a.length/4)),c=new Uint8Array(this.data.buffer,this.write),this.write+=d.binary.base64.decode(a,c,this.write),this;"utf8"===b&&(a=d.encodeUtf8(a),b="binary");if("binary"===b||"raw"===b)return this.accommodate(a.length),c=new Uint8Array(this.data.buffer,this.write),this.write+=d.binary.raw.decode(c),this;if("utf16"===b)return this.accommodate(2*a.length),c=new Uint16Array(this.data.buffer,this.write),this.write+=d.text.utf16.encode(c),this;throw Error("Invalid encoding: "+
|
|
b);}throw Error("Invalid parameter: "+a);};d.DataBuffer.prototype.putBuffer=function(a){this.putBytes(a);a.clear();return this};d.DataBuffer.prototype.putString=function(a){return this.putBytes(a,"utf16")};d.DataBuffer.prototype.putInt16=function(a){this.accommodate(2);this.data.setInt16(this.write,a);this.write+=2;return this};d.DataBuffer.prototype.putInt24=function(a){this.accommodate(3);this.data.setInt16(this.write,a>>8&65535);this.data.setInt8(this.write,a>>16&255);this.write+=3;return this};
|
|
d.DataBuffer.prototype.putInt32=function(a){this.accommodate(4);this.data.setInt32(this.write,a);this.write+=4;return this};d.DataBuffer.prototype.putInt16Le=function(a){this.accommodate(2);this.data.setInt16(this.write,a,!0);this.write+=2;return this};d.DataBuffer.prototype.putInt24Le=function(a){this.accommodate(3);this.data.setInt8(this.write,a>>16&255);this.data.setInt16(this.write,a>>8&65535,!0);this.write+=3;return this};d.DataBuffer.prototype.putInt32Le=function(a){this.accommodate(4);this.data.setInt32(this.write,
|
|
a,!0);this.write+=4;return this};d.DataBuffer.prototype.putInt=function(a,b){this.accommodate(b/8);do b-=8,this.data.setInt8(this.write++,a>>b&255);while(0<b);return this};d.DataBuffer.prototype.putSignedInt=function(a,b){this.accommodate(b/8);0>a&&(a+=2<<b-1);return this.putInt(a,b)};d.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};d.DataBuffer.prototype.getInt16=function(){var a=this.data.getInt16(this.read);this.read+=2;return a};d.DataBuffer.prototype.getInt24=
|
|
function(){var a=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);this.read+=3;return a};d.DataBuffer.prototype.getInt32=function(){var a=this.data.getInt32(this.read);this.read+=4;return a};d.DataBuffer.prototype.getInt16Le=function(){var a=this.data.getInt16(this.read,!0);this.read+=2;return a};d.DataBuffer.prototype.getInt24Le=function(){var a=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;this.read+=3;return a};d.DataBuffer.prototype.getInt32Le=function(){var a=
|
|
this.data.getInt32(this.read,!0);this.read+=4;return a};d.DataBuffer.prototype.getInt=function(a){var b=0;do b=(b<<8)+this.data.getInt8(this.read++),a-=8;while(0<a);return b};d.DataBuffer.prototype.getSignedInt=function(a){var b=this.getInt(a);a=2<<a-2;b>=a&&(b-=a<<1);return b};d.DataBuffer.prototype.getBytes=function(a){var b;a?(a=Math.min(this.length(),a),b=this.data.slice(this.read,this.read+a),this.read+=a):0===a?b="":(b=0===this.read?this.data:this.data.slice(this.read),this.clear());return b};
|
|
d.DataBuffer.prototype.bytes=function(a){return"undefined"===typeof a?this.data.slice(this.read):this.data.slice(this.read,this.read+a)};d.DataBuffer.prototype.at=function(a){return this.data.getUint8(this.read+a)};d.DataBuffer.prototype.setAt=function(a,b){this.data.setUint8(a,b);return this};d.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};d.DataBuffer.prototype.copy=function(){return new d.DataBuffer(this)};d.DataBuffer.prototype.compact=function(){if(0<this.read){var a=
|
|
new Uint8Array(this.data.buffer,this.read),b=new Uint8Array(a.byteLength);b.set(a);this.data=new DataView(b);this.write-=this.read;this.read=0}return this};d.DataBuffer.prototype.clear=function(){this.data=new DataView(new ArrayBuffer(0));this.read=this.write=0;return this};d.DataBuffer.prototype.truncate=function(a){this.write=Math.max(0,this.length()-a);this.read=Math.min(this.read,this.write);return this};d.DataBuffer.prototype.toHex=function(){for(var a="",b=this.read;b<this.data.byteLength;++b){var c=
|
|
this.data.getUint8(b);16>c&&(a+="0");a+=c.toString(16)}return a};d.DataBuffer.prototype.toString=function(a){var b=new Uint8Array(this.data,this.read,this.length());a=a||"utf8";if("binary"===a||"raw"===a)return d.binary.raw.encode(b);if("hex"===a)return d.binary.hex.encode(b);if("base64"===a)return d.binary.base64.encode(b);if("utf8"===a)return d.text.utf8.decode(b);if("utf16"===a)return d.text.utf16.decode(b);throw Error("Invalid encoding: "+a);};d.createBuffer=function(a,b){void 0!==a&&"utf8"===
|
|
(b||"raw")&&(a=d.encodeUtf8(a));return new d.ByteBuffer(a)};d.fillString=function(a,b){for(var c="";0<b;)b&1&&(c+=a),b>>>=1,0<b&&(a+=a);return c};d.xorBytes=function(a,b,c){for(var d="",p="",g="",h=0,k=0;0<c;--c,++h)p=a.charCodeAt(h)^b.charCodeAt(h),10<=k&&(d+=g,g="",k=0),g+=String.fromCharCode(p),++k;return d+g};d.hexToBytes=function(a){var b="",c=0;a.length&1&&(c=1,b+=String.fromCharCode(parseInt(a[0],16)));for(;c<a.length;c+=2)b+=String.fromCharCode(parseInt(a.substr(c,2),16));return b};d.bytesToHex=
|
|
function(a){return d.createBuffer(a).toHex()};d.int32ToBytes=function(a){return String.fromCharCode(a>>24&255)+String.fromCharCode(a>>16&255)+String.fromCharCode(a>>8&255)+String.fromCharCode(a&255)};var e=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];d.encode64=function(a,b){for(var c="",d="",p,g,h,k=0;k<a.length;)p=
|
|
a.charCodeAt(k++),g=a.charCodeAt(k++),h=a.charCodeAt(k++),c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(p>>2),c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt((p&3)<<4|g>>4),isNaN(g)?c+="==":(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt((g&15)<<2|h>>6),c+=isNaN(h)?"=":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(h&63)),b&&c.length>b&&(d+=c.substr(0,b)+"\r\n",c=c.substr(b));return d+
|
|
c};d.decode64=function(a){a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var b="",c,d,p,g,h=0;h<a.length;)c=e[a.charCodeAt(h++)-43],d=e[a.charCodeAt(h++)-43],p=e[a.charCodeAt(h++)-43],g=e[a.charCodeAt(h++)-43],b+=String.fromCharCode(c<<2|d>>4),64!==p&&(b+=String.fromCharCode((d&15)<<4|p>>2),64!==g&&(b+=String.fromCharCode((p&3)<<6|g)));return b};d.encodeUtf8=function(a){return unescape(encodeURIComponent(a))};d.decodeUtf8=function(a){return decodeURIComponent(escape(a))};d.binary={raw:{},hex:{},base64:{}};
|
|
d.binary.raw.encode=function(a){return String.fromCharCode.apply(null,a)};d.binary.raw.decode=function(a,b,c){var d=b;d||(d=new Uint8Array(a.length));for(var p=c=c||0,g=0;g<a.length;++g)d[p++]=a.charCodeAt(g);return b?p-c:d};d.binary.hex.encode=d.bytesToHex;d.binary.hex.decode=function(a,b,c){var d=b;d||(d=new Uint8Array(Math.ceil(a.length/2)));c=c||0;var p=0,g=c;a.length&1&&(p=1,d[g++]=parseInt(a[0],16));for(;p<a.length;p+=2)d[g++]=parseInt(a.substr(p,2),16);return b?g-c:d};d.binary.base64.encode=
|
|
function(a,b){for(var c="",d="",p,g,h,k=0;k<a.byteLength;)p=a[k++],g=a[k++],h=a[k++],c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(p>>2),c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt((p&3)<<4|g>>4),isNaN(g)?c+="==":(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt((g&15)<<2|h>>6),c+=isNaN(h)?"=":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(h&63)),b&&c.length>b&&(d+=c.substr(0,
|
|
b)+"\r\n",c=c.substr(b));return d+c};d.binary.base64.decode=function(a,b,c){var d=b;d||(d=new Uint8Array(3*Math.ceil(a.length/4)));a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");c=c||0;for(var p,g,h,k,m=0,q=c;m<a.length;)p=e[a.charCodeAt(m++)-43],g=e[a.charCodeAt(m++)-43],h=e[a.charCodeAt(m++)-43],k=e[a.charCodeAt(m++)-43],d[q++]=p<<2|g>>4,64!==h&&(d[q++]=(g&15)<<4|h>>2,64!==k&&(d[q++]=(h&3)<<6|k));return b?q-c:d.subarray(0,q)};d.text={utf8:{},utf16:{}};d.text.utf8.encode=function(a,b,c){a=d.encodeUtf8(a);
|
|
var p=b;p||(p=new Uint8Array(a.length));for(var x=c=c||0,g=0;g<a.length;++g)p[x++]=a.charCodeAt(g);return b?x-c:p};d.text.utf8.decode=function(a){return d.decodeUtf8(String.fromCharCode.apply(null,a))};d.text.utf16.encode=function(a,b,c){var d=b;d||(d=new Uint8Array(2*a.length));for(var p=new Uint16Array(d.buffer),g=c=c||0,h=c,k=0;k<a.length;++k)p[h++]=a.charCodeAt(k),g+=2;return b?g-c:d};d.text.utf16.decode=function(a){return String.fromCharCode.apply(null,new Uint16Array(a.buffer))};d.deflate=function(a,
|
|
b,c){b=d.decode64(a.deflate(d.encode64(b)).rval);c&&(a=2,b.charCodeAt(1)&32&&(a=6),b=b.substring(a,b.length-4));return b};d.inflate=function(a,b,c){a=a.inflate(d.encode64(b)).rval;return null===a?null:d.decode64(a)};var w=function(a,b,c){if(!a)throw Error("WebStorage not available.");null===c?a=a.removeItem(b):(c=d.encode64(JSON.stringify(c)),a=a.setItem(b,c));if("undefined"!==typeof a&&!0!==a.rval)throw b=Error(a.error.message),b.id=a.error.id,b.name=a.error.name,b;},l=function(a,b){if(!a)throw Error("WebStorage not available.");
|
|
var c=a.getItem(b);if(a.init)if(null===c.rval){if(c.error){var p=Error(c.error.message);p.id=c.error.id;p.name=c.error.name;throw p;}c=null}else c=c.rval;null!==c&&(c=JSON.parse(d.decode64(c)));return c},m=function(a,b,c,d){var p=l(a,b);null===p&&(p={});p[c]=d;w(a,b,p)},k=function(a,b,c){a=l(a,b);null!==a&&(a=c in a?a[c]:null);return a},g=function(a,b,c){var d=l(a,b);if(null!==d&&c in d){delete d[c];c=!0;for(var p in d){c=!1;break}c&&(d=null);w(a,b,d)}},u=function(a,b){w(a,b,null)},O=function(a,b,
|
|
c){var d=null;"undefined"===typeof c&&(c=["web","flash"]);var p,g=!1,h=null,k;for(k in c){p=c[k];try{if("flash"===p||"both"===p){if(null===b[0])throw Error("Flash local storage not available.");d=a.apply(this,b);g="flash"===p}if("web"===p||"both"===p)b[0]=localStorage,d=a.apply(this,b),g=!0}catch(m){h=m}if(g)break}if(!g)throw h;return d};d.setItem=function(a,b,c,d,p){O(m,arguments,p)};d.getItem=function(a,b,c,d){return O(k,arguments,d)};d.removeItem=function(a,b,c,d){O(g,arguments,d)};d.clearItems=
|
|
function(a,b,c){O(u,arguments,c)};d.parseUrl=function(a){var b=/^(https?):\/\/([^:&^\/]*):?(\d*)(.*)$/g;b.lastIndex=0;b=b.exec(a);if(a=null===b?null:{full:a,scheme:b[1],host:b[2],port:b[3],path:b[4]})a.fullHost=a.host,a.port?80!==a.port&&"http"===a.scheme?a.fullHost+=":"+a.port:443!==a.port&&"https"===a.scheme&&(a.fullHost+=":"+a.port):"http"===a.scheme?a.port=80:"https"===a.scheme&&(a.port=443),a.full=a.scheme+"://"+a.fullHost;return a};var D=null;d.getQueryVariables=function(a){var b=function(a){var b=
|
|
{};a=a.split("&");for(var c=0;c<a.length;c++){var d=a[c].indexOf("="),p;0<d?(p=a[c].substring(0,d),d=a[c].substring(d+1)):(p=a[c],d=null);p in b||(b[p]=[]);p in Object.prototype||null===d||b[p].push(unescape(d))}return b};"undefined"===typeof a?(null===D&&(D="undefined"!==typeof window&&window.location&&window.location.search?b(window.location.search.substring(1)):{}),a=D):a=b(a);return a};d.parseFragment=function(a){var b=a,c="",p=a.indexOf("?");0<p&&(b=a.substring(0,p),c=a.substring(p+1));a=b.split("/");
|
|
0<a.length&&""===a[0]&&a.shift();p=""===c?{}:d.getQueryVariables(c);return{pathString:b,queryString:c,path:a,query:p}};d.makeRequest=function(a){var b=d.parseFragment(a),c={path:b.pathString,query:b.queryString,getPath:function(a){return"undefined"===typeof a?b.path:b.path[a]},getQuery:function(a,c){var d;"undefined"===typeof a?d=b.query:(d=b.query[a])&&"undefined"!==typeof c&&(d=d[c]);return d},getQueryLast:function(a,b){var d=c.getQuery(a);return d?d[d.length-1]:b}};return c};d.makeLink=function(a,
|
|
b,c){a=jQuery.isArray(a)?a.join("/"):a;b=jQuery.param(b||{});c=c||"";return a+(0<b.length?"?"+b:"")+(0<c.length?"#"+c:"")};d.setPath=function(a,b,c){if("object"===typeof a&&null!==a)for(var d=0,p=b.length;d<p;){var g=b[d++];if(d==p)a[g]=c;else{var h=g in a;if(!h||h&&"object"!==typeof a[g]||h&&null===a[g])a[g]={};a=a[g]}}};d.getPath=function(a,b,c){for(var d=0,p=b.length,g=!0;g&&d<p&&"object"===typeof a&&null!==a;){var h=b[d++];(g=h in a)&&(a=a[h])}return g?a:c};d.deletePath=function(a,b){if("object"===
|
|
typeof a&&null!==a)for(var c=0,d=b.length;c<d;){var p=b[c++];if(c==d)delete a[p];else{if(!(p in a)||"object"!==typeof a[p]||null===a[p])break;a=a[p]}}};d.isEmpty=function(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0};d.format=function(a){var b=/%./g,c,d,p=0,g=[];for(d=0;c=b.exec(a);)switch(d=a.substring(d,b.lastIndex-2),0<d.length&&g.push(d),d=b.lastIndex,c=c[0][1],c){case "s":case "o":p<arguments.length?g.push(arguments[p++ +1]):g.push("<?>");break;case "%":g.push("%");break;default:g.push("<#"+
|
|
c+"?>")}g.push(a.substring(d));return g.join("")};d.formatNumber=function(a,b,c,d){var p=isNaN(b=Math.abs(b))?2:b;b=void 0===c?",":c;d=void 0===d?".":d;c=0>a?"-":"";var g=parseInt(a=Math.abs(+a||0).toFixed(p),10)+"",h=3<g.length?g.length%3:0;return c+(h?g.substr(0,h)+d:"")+g.substr(h).replace(/(\d{3})(?=\d)/g,"$1"+d)+(p?b+Math.abs(a-g).toFixed(p).slice(2):"")};d.formatSize=function(a){return a=1073741824<=a?d.formatNumber(a/1073741824,2,".","")+" GiB":1048576<=a?d.formatNumber(a/1048576,2,".","")+
|
|
" MiB":1024<=a?d.formatNumber(a/1024,0)+" KiB":d.formatNumber(a,0)+" bytes"};d.bytesFromIP=function(a){return-1!==a.indexOf(".")?d.bytesFromIPv4(a):-1!==a.indexOf(":")?d.bytesFromIPv6(a):null};d.bytesFromIPv4=function(a){a=a.split(".");if(4!==a.length)return null;for(var b=d.createBuffer(),c=0;c<a.length;++c){var p=parseInt(a[c],10);if(isNaN(p))return null;b.putByte(p)}return b.getBytes()};d.bytesFromIPv6=function(a){var b=0;a=a.split(":").filter(function(a){0===a.length&&++b;return!0});for(var c=
|
|
2*(8-a.length+b),p=d.createBuffer(),x=0;8>x;++x)if(a[x]&&0!==a[x].length){var g=d.hexToBytes(a[x]);2>g.length&&p.putByte(0);p.putBytes(g)}else p.fillWithByte(0,c),c=0;return p.getBytes()};d.bytesToIP=function(a){return 4===a.length?d.bytesToIPv4(a):16===a.length?d.bytesToIPv6(a):null};d.bytesToIPv4=function(a){if(4!==a.length)return null;for(var b=[],c=0;c<a.length;++c)b.push(a.charCodeAt(c));return b.join(".")};d.bytesToIPv6=function(a){if(16!==a.length)return null;for(var b=[],c=[],p=0,x=0;x<a.length;x+=
|
|
2){for(var g=d.bytesToHex(a[x]+a[x+1]);"0"===g[0]&&"0"!==g;)g=g.substr(1);if("0"===g){var k=c[c.length-1],m=b.length;k&&m===k.end+1?(k.end=m,k.end-k.start>c[p].end-c[p].start&&(p=c.length-1)):c.push({start:m,end:m})}b.push(g)}0<c.length&&(a=c[p],0<a.end-a.start&&(b.splice(a.start,a.end-a.start+1,""),0===a.start&&b.unshift(""),7===a.end&&b.push("")));return b.join(":")};d.estimateCores=function(a,b){function c(a,k,m){if(0===k){var q=Math.floor(a.reduce(function(a,b){return a+b},0)/a.length);d.cores=
|
|
Math.max(1,q);URL.revokeObjectURL(g);return b(null,d.cores)}p(m,function(b,d){a.push(x(m,d));c(a,k-1,m)})}function p(a,b){for(var c=[],d=[],x=0;x<a;++x){var h=new Worker(g);h.addEventListener("message",function(p){d.push(p.data);if(d.length===a){for(p=0;p<a;++p)c[p].terminate();b(null,d)}});c.push(h)}for(x=0;x<a;++x)c[x].postMessage(x)}function x(a,b){for(var c=[],d=0;d<a;++d)for(var p=b[d],x=c[d]=[],g=0;g<a;++g)if(d!==g){var h=b[g];(p.st>h.st&&p.st<h.et||h.st>p.st&&h.st<p.et)&&x.push(g)}return c.reduce(function(a,
|
|
b){return Math.max(a,b.length)},0)}"function"===typeof a&&(b=a,a={});a=a||{};if("cores"in d&&!a.update)return b(null,d.cores);if("undefined"!==typeof navigator&&"hardwareConcurrency"in navigator&&0<navigator.hardwareConcurrency)return d.cores=navigator.hardwareConcurrency,b(null,d.cores);if("undefined"===typeof Worker)return d.cores=1,b(null,d.cores);if("undefined"===typeof Blob)return d.cores=2,b(null,d.cores);var g=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(a){a=
|
|
Date.now();for(var b=a+4;Date.now()<b;);self.postMessage({st:a,et:b})})}.toString(),")()"],{type:"application/javascript"}));c([],5,16)}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var q=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.util)return c.util;c.defined.util=!0;for(var e=0;e<q.length;++e)q[e](c);
|
|
return c.util}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/util",["require","module"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){a.cipher=a.cipher||{};a.cipher.algorithms=a.cipher.algorithms||{};a.cipher.createCipher=function(b,c){var d=b;"string"===typeof d&&(d=a.cipher.getAlgorithm(d))&&
|
|
(d=d());if(!d)throw Error("Unsupported algorithm: "+b);return new a.cipher.BlockCipher({algorithm:d,key:c,decrypt:!1})};a.cipher.createDecipher=function(b,c){var d=b;"string"===typeof d&&(d=a.cipher.getAlgorithm(d))&&(d=d());if(!d)throw Error("Unsupported algorithm: "+b);return new a.cipher.BlockCipher({algorithm:d,key:c,decrypt:!0})};a.cipher.registerAlgorithm=function(b,c){b=b.toUpperCase();a.cipher.algorithms[b]=c};a.cipher.getAlgorithm=function(b){b=b.toUpperCase();return b in a.cipher.algorithms?
|
|
a.cipher.algorithms[b]:null};var c=a.cipher.BlockCipher=function(a){this.algorithm=a.algorithm;this.mode=this.algorithm.mode;this.blockSize=this.mode.blockSize;this._finish=!1;this.output=this._input=null;this._op=a.decrypt?this.mode.decrypt:this.mode.encrypt;this._decrypt=a.decrypt;this.algorithm.initialize(a)};c.prototype.start=function(b){b=b||{};var c={},d;for(d in b)c[d]=b[d];c.decrypt=this._decrypt;this._finish=!1;this._input=a.util.createBuffer();this.output=b.output||a.util.createBuffer();
|
|
this.mode.start(c)};c.prototype.update=function(a){for(a&&this._input.putBuffer(a);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};c.prototype.finish=function(a){!a||"ECB"!==this.mode.name&&"CBC"!==this.mode.name||(this.mode.pad=function(b){return a(this.blockSize,b,!1)},this.mode.unpad=function(b){return a(this.blockSize,b,!0)});var b={};b.decrypt=this._decrypt;b.overflow=this._input.length()%this.blockSize;if(!this._decrypt&&this.mode.pad&&
|
|
!this.mode.pad(this._input,b))return!1;this._finish=!0;this.update();return this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,b)||this.mode.afterFinish&&!this.mode.afterFinish(this.output,b)?!1:!0}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var q=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.cipher)return c.cipher;
|
|
c.defined.cipher=!0;for(var e=0;e<q.length;++e)q[e](c);return c.cipher}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/cipher",["require","module","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(b){"string"===typeof b&&(b=a.util.createBuffer(b));if(a.util.isArray(b)&&
|
|
4<b.length){var d=b;b=a.util.createBuffer();for(var h=0;h<d.length;++h)b.putByte(d[h])}a.util.isArray(b)||(b=[b.getInt32(),b.getInt32(),b.getInt32(),b.getInt32()]);return b}function d(a){a[a.length-1]=a[a.length-1]+1&4294967295}function e(a){return[a/4294967296|0,a&4294967295]}a.cipher=a.cipher||{};var w=a.cipher.modes=a.cipher.modes||{};w.ecb=function(a){a=a||{};this.name="ECB";this.cipher=a.cipher;this.blockSize=a.blockSize||16;this._ints=this.blockSize/4;this._inBlock=Array(this._ints);this._outBlock=
|
|
Array(this._ints)};w.ecb.prototype.start=function(a){};w.ecb.prototype.encrypt=function(a,b,c){if(a.length()<this.blockSize&&!(c&&0<a.length()))return!0;for(c=0;c<this._ints;++c)this._inBlock[c]=a.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(c=0;c<this._ints;++c)b.putInt32(this._outBlock[c])};w.ecb.prototype.decrypt=function(a,b,c){if(a.length()<this.blockSize&&!(c&&0<a.length()))return!0;for(c=0;c<this._ints;++c)this._inBlock[c]=a.getInt32();this.cipher.decrypt(this._inBlock,
|
|
this._outBlock);for(c=0;c<this._ints;++c)b.putInt32(this._outBlock[c])};w.ecb.prototype.pad=function(a,b){var c=a.length()===this.blockSize?this.blockSize:this.blockSize-a.length();a.fillWithByte(c,c);return!0};w.ecb.prototype.unpad=function(a,b){if(0<b.overflow)return!1;var c=a.length(),c=a.at(c-1);if(c>this.blockSize<<2)return!1;a.truncate(c);return!0};w.cbc=function(a){a=a||{};this.name="CBC";this.cipher=a.cipher;this.blockSize=a.blockSize||16;this._ints=this.blockSize/4;this._inBlock=Array(this._ints);
|
|
this._outBlock=Array(this._ints)};w.cbc.prototype.start=function(a){if(null===a.iv){if(!this._prev)throw Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in a)this._iv=c(a.iv),this._prev=this._iv.slice(0);else throw Error("Invalid IV parameter.");};w.cbc.prototype.encrypt=function(a,b,c){if(a.length()<this.blockSize&&!(c&&0<a.length()))return!0;for(c=0;c<this._ints;++c)this._inBlock[c]=this._prev[c]^a.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(c=0;c<this._ints;++c)b.putInt32(this._outBlock[c]);
|
|
this._prev=this._outBlock};w.cbc.prototype.decrypt=function(a,b,c){if(a.length()<this.blockSize&&!(c&&0<a.length()))return!0;for(c=0;c<this._ints;++c)this._inBlock[c]=a.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(c=0;c<this._ints;++c)b.putInt32(this._prev[c]^this._outBlock[c]);this._prev=this._inBlock.slice(0)};w.cbc.prototype.pad=function(a,b){var c=a.length()===this.blockSize?this.blockSize:this.blockSize-a.length();a.fillWithByte(c,c);return!0};w.cbc.prototype.unpad=function(a,
|
|
b){if(0<b.overflow)return!1;var c=a.length(),c=a.at(c-1);if(c>this.blockSize<<2)return!1;a.truncate(c);return!0};w.cfb=function(b){b=b||{};this.name="CFB";this.cipher=b.cipher;this.blockSize=b.blockSize||16;this._ints=this.blockSize/4;this._inBlock=null;this._outBlock=Array(this._ints);this._partialBlock=Array(this._ints);this._partialOutput=a.util.createBuffer();this._partialBytes=0};w.cfb.prototype.start=function(a){if(!("iv"in a))throw Error("Invalid IV parameter.");this._iv=c(a.iv);this._inBlock=
|
|
this._iv.slice(0);this._partialBytes=0};w.cfb.prototype.encrypt=function(a,b,c){var d=a.length();if(0===d)return!0;this.cipher.encrypt(this._inBlock,this._outBlock);if(0===this._partialBytes&&d>=this.blockSize)for(var p=0;p<this._ints;++p)this._inBlock[p]=a.getInt32()^this._outBlock[p],b.putInt32(this._inBlock[p]);else{var h=(this.blockSize-d)%this.blockSize;0<h&&(h=this.blockSize-h);this._partialOutput.clear();for(p=0;p<this._ints;++p)this._partialBlock[p]=a.getInt32()^this._outBlock[p],this._partialOutput.putInt32(this._partialBlock[p]);
|
|
if(0<h)a.read-=this.blockSize;else for(p=0;p<this._ints;++p)this._inBlock[p]=this._partialBlock[p];0<this._partialBytes&&this._partialOutput.getBytes(this._partialBytes);if(0<h&&!c)return b.putBytes(this._partialOutput.getBytes(h-this._partialBytes)),this._partialBytes=h,!0;b.putBytes(this._partialOutput.getBytes(d-this._partialBytes));this._partialBytes=0}};w.cfb.prototype.decrypt=function(a,b,c){var d=a.length();if(0===d)return!0;this.cipher.encrypt(this._inBlock,this._outBlock);if(0===this._partialBytes&&
|
|
d>=this.blockSize)for(var p=0;p<this._ints;++p)this._inBlock[p]=a.getInt32(),b.putInt32(this._inBlock[p]^this._outBlock[p]);else{var h=(this.blockSize-d)%this.blockSize;0<h&&(h=this.blockSize-h);this._partialOutput.clear();for(p=0;p<this._ints;++p)this._partialBlock[p]=a.getInt32(),this._partialOutput.putInt32(this._partialBlock[p]^this._outBlock[p]);if(0<h)a.read-=this.blockSize;else for(p=0;p<this._ints;++p)this._inBlock[p]=this._partialBlock[p];0<this._partialBytes&&this._partialOutput.getBytes(this._partialBytes);
|
|
if(0<h&&!c)return b.putBytes(this._partialOutput.getBytes(h-this._partialBytes)),this._partialBytes=h,!0;b.putBytes(this._partialOutput.getBytes(d-this._partialBytes));this._partialBytes=0}};w.ofb=function(b){b=b||{};this.name="OFB";this.cipher=b.cipher;this.blockSize=b.blockSize||16;this._ints=this.blockSize/4;this._inBlock=null;this._outBlock=Array(this._ints);this._partialOutput=a.util.createBuffer();this._partialBytes=0};w.ofb.prototype.start=function(a){if(!("iv"in a))throw Error("Invalid IV parameter.");
|
|
this._iv=c(a.iv);this._inBlock=this._iv.slice(0);this._partialBytes=0};w.ofb.prototype.encrypt=function(a,b,c){var d=a.length();if(0===a.length())return!0;this.cipher.encrypt(this._inBlock,this._outBlock);if(0===this._partialBytes&&d>=this.blockSize)for(var p=0;p<this._ints;++p)b.putInt32(a.getInt32()^this._outBlock[p]),this._inBlock[p]=this._outBlock[p];else{var h=(this.blockSize-d)%this.blockSize;0<h&&(h=this.blockSize-h);this._partialOutput.clear();for(p=0;p<this._ints;++p)this._partialOutput.putInt32(a.getInt32()^
|
|
this._outBlock[p]);if(0<h)a.read-=this.blockSize;else for(p=0;p<this._ints;++p)this._inBlock[p]=this._outBlock[p];0<this._partialBytes&&this._partialOutput.getBytes(this._partialBytes);if(0<h&&!c)return b.putBytes(this._partialOutput.getBytes(h-this._partialBytes)),this._partialBytes=h,!0;b.putBytes(this._partialOutput.getBytes(d-this._partialBytes));this._partialBytes=0}};w.ofb.prototype.decrypt=w.ofb.prototype.encrypt;w.ctr=function(b){b=b||{};this.name="CTR";this.cipher=b.cipher;this.blockSize=
|
|
b.blockSize||16;this._ints=this.blockSize/4;this._inBlock=null;this._outBlock=Array(this._ints);this._partialOutput=a.util.createBuffer();this._partialBytes=0};w.ctr.prototype.start=function(a){if(!("iv"in a))throw Error("Invalid IV parameter.");this._iv=c(a.iv);this._inBlock=this._iv.slice(0);this._partialBytes=0};w.ctr.prototype.encrypt=function(a,b,c){var p=a.length();if(0===p)return!0;this.cipher.encrypt(this._inBlock,this._outBlock);if(0===this._partialBytes&&p>=this.blockSize)for(var q=0;q<
|
|
this._ints;++q)b.putInt32(a.getInt32()^this._outBlock[q]);else{var e=(this.blockSize-p)%this.blockSize;0<e&&(e=this.blockSize-e);this._partialOutput.clear();for(q=0;q<this._ints;++q)this._partialOutput.putInt32(a.getInt32()^this._outBlock[q]);0<e&&(a.read-=this.blockSize);0<this._partialBytes&&this._partialOutput.getBytes(this._partialBytes);if(0<e&&!c)return b.putBytes(this._partialOutput.getBytes(e-this._partialBytes)),this._partialBytes=e,!0;b.putBytes(this._partialOutput.getBytes(p-this._partialBytes));
|
|
this._partialBytes=0}d(this._inBlock)};w.ctr.prototype.decrypt=w.ctr.prototype.encrypt;w.gcm=function(b){b=b||{};this.name="GCM";this.cipher=b.cipher;this.blockSize=b.blockSize||16;this._ints=this.blockSize/4;this._inBlock=Array(this._ints);this._outBlock=Array(this._ints);this._partialOutput=a.util.createBuffer();this._partialBytes=0;this._R=3774873600};w.gcm.prototype.start=function(b){if(!("iv"in b))throw Error("Invalid IV parameter.");var c=a.util.createBuffer(b.iv);this._cipherLength=0;var k;
|
|
k="additionalData"in b?a.util.createBuffer(b.additionalData):a.util.createBuffer();this._tagLength="tagLength"in b?b.tagLength:128;this._tag=null;if(b.decrypt&&(this._tag=a.util.createBuffer(b.tag).getBytes(),this._tag.length!==this._tagLength/8))throw Error("Authentication tag does not match tag length.");this._hashBlock=Array(this._ints);this.tag=null;this._hashSubkey=Array(this._ints);this.cipher.encrypt([0,0,0,0],this._hashSubkey);this.componentBits=4;this._m=this.generateHashTable(this._hashSubkey,
|
|
this.componentBits);b=c.length();if(12===b)this._j0=[c.getInt32(),c.getInt32(),c.getInt32(),1];else{for(this._j0=[0,0,0,0];0<c.length();)this._j0=this.ghash(this._hashSubkey,this._j0,[c.getInt32(),c.getInt32(),c.getInt32(),c.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(e(8*b)))}this._inBlock=this._j0.slice(0);d(this._inBlock);this._partialBytes=0;k=a.util.createBuffer(k);this._aDataLength=e(8*k.length());(c=k.length()%this.blockSize)&&k.fillWithByte(0,this.blockSize-c);
|
|
for(this._s=[0,0,0,0];0<k.length();)this._s=this.ghash(this._hashSubkey,this._s,[k.getInt32(),k.getInt32(),k.getInt32(),k.getInt32()])};w.gcm.prototype.encrypt=function(a,b,c){var p=a.length();if(0===p)return!0;this.cipher.encrypt(this._inBlock,this._outBlock);if(0===this._partialBytes&&p>=this.blockSize){for(var q=0;q<this._ints;++q)b.putInt32(this._outBlock[q]^=a.getInt32());this._cipherLength+=this.blockSize}else{var e=(this.blockSize-p)%this.blockSize;0<e&&(e=this.blockSize-e);this._partialOutput.clear();
|
|
for(q=0;q<this._ints;++q)this._partialOutput.putInt32(a.getInt32()^this._outBlock[q]);if(0===e||c){c?(q=p%this.blockSize,this._cipherLength+=q,this._partialOutput.truncate(this.blockSize-q)):this._cipherLength+=this.blockSize;for(q=0;q<this._ints;++q)this._outBlock[q]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}0<this._partialBytes&&this._partialOutput.getBytes(this._partialBytes);if(0<e&&!c)return a.read-=this.blockSize,b.putBytes(this._partialOutput.getBytes(e-this._partialBytes)),
|
|
this._partialBytes=e,!0;b.putBytes(this._partialOutput.getBytes(p-this._partialBytes));this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock);d(this._inBlock)};w.gcm.prototype.decrypt=function(a,b,c){var p=a.length();if(p<this.blockSize&&!(c&&0<p))return!0;this.cipher.encrypt(this._inBlock,this._outBlock);d(this._inBlock);this._hashBlock[0]=a.getInt32();this._hashBlock[1]=a.getInt32();this._hashBlock[2]=a.getInt32();this._hashBlock[3]=a.getInt32();this._s=this.ghash(this._hashSubkey,
|
|
this._s,this._hashBlock);for(a=0;a<this._ints;++a)b.putInt32(this._outBlock[a]^this._hashBlock[a]);this._cipherLength=p<this.blockSize?this._cipherLength+p%this.blockSize:this._cipherLength+this.blockSize};w.gcm.prototype.afterFinish=function(b,c){var d=!0;c.decrypt&&c.overflow&&b.truncate(this.blockSize-c.overflow);this.tag=a.util.createBuffer();var g=this._aDataLength.concat(e(8*this._cipherLength));this._s=this.ghash(this._hashSubkey,this._s,g);g=[];this.cipher.encrypt(this._j0,g);for(var h=0;h<
|
|
this._ints;++h)this.tag.putInt32(this._s[h]^g[h]);this.tag.truncate(this.tag.length()%(this._tagLength/8));c.decrypt&&this.tag.bytes()!==this._tag&&(d=!1);return d};w.gcm.prototype.multiply=function(a,b){for(var c=[0,0,0,0],d=b.slice(0),p=0;128>p;++p)a[p/32|0]&1<<31-p%32&&(c[0]^=d[0],c[1]^=d[1],c[2]^=d[2],c[3]^=d[3]),this.pow(d,d);return c};w.gcm.prototype.pow=function(a,b){for(var c=a[3]&1,d=3;0<d;--d)b[d]=a[d]>>>1|(a[d-1]&1)<<31;b[0]=a[0]>>>1;c&&(b[0]^=this._R)};w.gcm.prototype.tableMultiply=function(a){for(var b=
|
|
[0,0,0,0],c=0;32>c;++c){var d=this._m[c][a[c/8|0]>>>4*(7-c%8)&15];b[0]^=d[0];b[1]^=d[1];b[2]^=d[2];b[3]^=d[3]}return b};w.gcm.prototype.ghash=function(a,b,c){b[0]^=c[0];b[1]^=c[1];b[2]^=c[2];b[3]^=c[3];return this.tableMultiply(b)};w.gcm.prototype.generateHashTable=function(a,b){for(var c=8/b,d=4*c,c=16*c,p=Array(c),h=0;h<c;++h){var q=[0,0,0,0];q[h/d|0]=1<<b-1<<(d-1-h%d)*b;p[h]=this.generateSubHashTable(this.multiply(q,a),b)}return p};w.gcm.prototype.generateSubHashTable=function(a,b){var c=1<<b,
|
|
d=c>>>1,p=Array(c);p[d]=a.slice(0);for(var h=d>>>1;0<h;)this.pow(p[2*h],p[h]=[]),h>>=1;for(h=2;h<d;){for(var q=1;q<h;++q){var e=p[h],w=p[q];p[h+q]=[e[0]^w[0],e[1]^w[1],e[2]^w[2],e[3]^w[3]]}h*=2}p[0]=[0,0,0,0];for(h=d+1;h<c;++h)q=p[h^d],p[h]=[a[0]^q[0],a[1]^q[1],a[2]^q[2],a[3]^q[3]];return p}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var q=
|
|
v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.cipherModes)return c.cipherModes;c.defined.cipherModes=!0;for(var e=0;e<q.length;++e)q[e](c);return c.cipherModes}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/cipherModes",["require","module","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,
|
|
0))})})();(function(){function b(a){function c(b,d){a.cipher.registerAlgorithm(b,function(){return new a.aes.Algorithm(b,d)})}function d(){m=!0;O=[0,1,2,4,8,16,32,64,128,27,54];for(var a=Array(256),b=0;128>b;++b)a[b]=b<<1,a[b+128]=b+128<<1^283;g=Array(256);u=Array(256);D=Array(4);y=Array(4);for(b=0;4>b;++b)D[b]=Array(256),y[b]=Array(256);for(var c=0,p=0,h,q,k,e,r,b=0;256>b;++b){e=p^p<<1^p<<2^p<<3^p<<4;e=e>>8^e&255^99;g[c]=e;u[e]=c;r=a[e];h=a[c];q=a[h];k=a[q];r^=r<<24^e<<16^e<<8^e;q=(h^q^k)<<24^(c^
|
|
k)<<16^(c^q^k)<<8^c^h^k;for(var w=0;4>w;++w)D[w][c]=r,y[w][e]=q,r=r<<24|r>>>8,q=q<<24|q>>>8;0===c?c=p=1:(c=h^a[a[a[h^k]]],p^=a[a[p]])}}function e(a,b){for(var c=a.slice(0),d,p=1,h=c.length,q=k*(h+6+1),m=h;m<q;++m)d=c[m-1],0===m%h?(d=g[d>>>16&255]<<24^g[d>>>8&255]<<16^g[d&255]<<8^g[d>>>24]^O[p]<<24,p++):6<h&&4===m%h&&(d=g[d>>>24]<<24^g[d>>>16&255]<<16^g[d>>>8&255]<<8^g[d&255]),c[m]=c[m-h]^d;if(b){for(var p=y[0],h=y[1],u=y[2],w=y[3],l=c.slice(0),q=c.length,m=0,L=q-k;m<q;m+=k,L-=k)if(0===m||m===q-k)l[m]=
|
|
c[L],l[m+1]=c[L+3],l[m+2]=c[L+2],l[m+3]=c[L+1];else for(var D=0;D<k;++D)d=c[L+D],l[m+(3&-D)]=p[g[d>>>24]]^h[g[d>>>16&255]]^u[g[d>>>8&255]]^w[g[d&255]];c=l}return c}function w(a,b,c,d){var p=a.length/4-1,h,q,k,m,e;d?(h=y[0],q=y[1],k=y[2],m=y[3],e=u):(h=D[0],q=D[1],k=D[2],m=D[3],e=g);var w,l,B,K,E,O;w=b[0]^a[0];l=b[d?3:1]^a[1];B=b[2]^a[2];b=b[d?1:3]^a[3];for(var n=3,v=1;v<p;++v)K=h[w>>>24]^q[l>>>16&255]^k[B>>>8&255]^m[b&255]^a[++n],E=h[l>>>24]^q[B>>>16&255]^k[b>>>8&255]^m[w&255]^a[++n],O=h[B>>>24]^
|
|
q[b>>>16&255]^k[w>>>8&255]^m[l&255]^a[++n],b=h[b>>>24]^q[w>>>16&255]^k[l>>>8&255]^m[B&255]^a[++n],w=K,l=E,B=O;c[0]=e[w>>>24]<<24^e[l>>>16&255]<<16^e[B>>>8&255]<<8^e[b&255]^a[++n];c[d?3:1]=e[l>>>24]<<24^e[B>>>16&255]<<16^e[b>>>8&255]<<8^e[w&255]^a[++n];c[2]=e[B>>>24]<<24^e[b>>>16&255]<<16^e[w>>>8&255]<<8^e[l&255]^a[++n];c[d?1:3]=e[b>>>24]<<24^e[w>>>16&255]<<16^e[l>>>8&255]<<8^e[B&255]^a[++n]}function l(b){b=b||{};var c="AES-"+(b.mode||"CBC").toUpperCase(),d;d=b.decrypt?a.cipher.createDecipher(c,b.key):
|
|
a.cipher.createCipher(c,b.key);var x=d.start;d.start=function(b,c){var h=null;c instanceof a.util.ByteBuffer&&(h=c,c={});c=c||{};c.output=h;c.iv=b;x.call(d,c)};return d}a.aes=a.aes||{};a.aes.startEncrypting=function(a,b,c,d){a=l({key:a,output:c,decrypt:!1,mode:d});a.start(b);return a};a.aes.createEncryptionCipher=function(a,b){return l({key:a,output:null,decrypt:!1,mode:b})};a.aes.startDecrypting=function(a,b,c,d){a=l({key:a,output:c,decrypt:!0,mode:d});a.start(b);return a};a.aes.createDecryptionCipher=
|
|
function(a,b){return l({key:a,output:null,decrypt:!0,mode:b})};a.aes.Algorithm=function(a,b){m||d();var c=this;c.name=a;c.mode=new b({blockSize:16,cipher:{encrypt:function(a,b){return w(c._w,a,b,!1)},decrypt:function(a,b){return w(c._w,a,b,!0)}}});c._init=!1};a.aes.Algorithm.prototype.initialize=function(b){if(!this._init){var c=b.key,d;if("string"===typeof c&&(16===c.length||24===c.length||32===c.length))c=a.util.createBuffer(c);else if(a.util.isArray(c)&&(16===c.length||24===c.length||32===c.length)){d=
|
|
c;for(var c=a.util.createBuffer(),x=0;x<d.length;++x)c.putByte(d[x])}if(!a.util.isArray(c)){d=c;var c=[],h=d.length();if(16===h||24===h||32===h)for(h>>>=2,x=0;x<h;++x)c.push(d.getInt32())}if(!a.util.isArray(c)||4!==c.length&&6!==c.length&&8!==c.length)throw Error("Invalid key parameter.");d=-1!==["CFB","OFB","CTR","GCM"].indexOf(this.mode.name);this._w=e(c,b.decrypt&&!d);this._init=!0}};a.aes._expandKey=function(a,b){m||d();return e(a,b)};a.aes._updateBlock=w;c("AES-ECB",a.cipher.modes.ecb);c("AES-CBC",
|
|
a.cipher.modes.cbc);c("AES-CFB",a.cipher.modes.cfb);c("AES-OFB",a.cipher.modes.ofb);c("AES-CTR",a.cipher.modes.ctr);c("AES-GCM",a.cipher.modes.gcm);var m=!1,k=4,g,u,O,D,y}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var q=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.aes)return c.aes;c.defined.aes=
|
|
!0;for(var e=0;e<q.length;++e)q[e](c);return c.aes}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/aes",["require","module","./cipher","./cipherModes","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){a.pki=a.pki||{};a=a.pki.oids=a.oids=a.oids||{};a["1.2.840.113549.1.1.1"]="rsaEncryption";
|
|
a.rsaEncryption="1.2.840.113549.1.1.1";a["1.2.840.113549.1.1.4"]="md5WithRSAEncryption";a.md5WithRSAEncryption="1.2.840.113549.1.1.4";a["1.2.840.113549.1.1.5"]="sha1WithRSAEncryption";a.sha1WithRSAEncryption="1.2.840.113549.1.1.5";a["1.2.840.113549.1.1.7"]="RSAES-OAEP";a["RSAES-OAEP"]="1.2.840.113549.1.1.7";a["1.2.840.113549.1.1.8"]="mgf1";a.mgf1="1.2.840.113549.1.1.8";a["1.2.840.113549.1.1.9"]="pSpecified";a.pSpecified="1.2.840.113549.1.1.9";a["1.2.840.113549.1.1.10"]="RSASSA-PSS";a["RSASSA-PSS"]=
|
|
"1.2.840.113549.1.1.10";a["1.2.840.113549.1.1.11"]="sha256WithRSAEncryption";a.sha256WithRSAEncryption="1.2.840.113549.1.1.11";a["1.2.840.113549.1.1.12"]="sha384WithRSAEncryption";a.sha384WithRSAEncryption="1.2.840.113549.1.1.12";a["1.2.840.113549.1.1.13"]="sha512WithRSAEncryption";a.sha512WithRSAEncryption="1.2.840.113549.1.1.13";a["1.3.14.3.2.7"]="desCBC";a.desCBC="1.3.14.3.2.7";a["1.3.14.3.2.26"]="sha1";a.sha1="1.3.14.3.2.26";a["2.16.840.1.101.3.4.2.1"]="sha256";a.sha256="2.16.840.1.101.3.4.2.1";
|
|
a["2.16.840.1.101.3.4.2.2"]="sha384";a.sha384="2.16.840.1.101.3.4.2.2";a["2.16.840.1.101.3.4.2.3"]="sha512";a.sha512="2.16.840.1.101.3.4.2.3";a["1.2.840.113549.2.5"]="md5";a.md5="1.2.840.113549.2.5";a["1.2.840.113549.1.7.1"]="data";a.data="1.2.840.113549.1.7.1";a["1.2.840.113549.1.7.2"]="signedData";a.signedData="1.2.840.113549.1.7.2";a["1.2.840.113549.1.7.3"]="envelopedData";a.envelopedData="1.2.840.113549.1.7.3";a["1.2.840.113549.1.7.4"]="signedAndEnvelopedData";a.signedAndEnvelopedData="1.2.840.113549.1.7.4";
|
|
a["1.2.840.113549.1.7.5"]="digestedData";a.digestedData="1.2.840.113549.1.7.5";a["1.2.840.113549.1.7.6"]="encryptedData";a.encryptedData="1.2.840.113549.1.7.6";a["1.2.840.113549.1.9.1"]="emailAddress";a.emailAddress="1.2.840.113549.1.9.1";a["1.2.840.113549.1.9.2"]="unstructuredName";a.unstructuredName="1.2.840.113549.1.9.2";a["1.2.840.113549.1.9.3"]="contentType";a.contentType="1.2.840.113549.1.9.3";a["1.2.840.113549.1.9.4"]="messageDigest";a.messageDigest="1.2.840.113549.1.9.4";a["1.2.840.113549.1.9.5"]=
|
|
"signingTime";a.signingTime="1.2.840.113549.1.9.5";a["1.2.840.113549.1.9.6"]="counterSignature";a.counterSignature="1.2.840.113549.1.9.6";a["1.2.840.113549.1.9.7"]="challengePassword";a.challengePassword="1.2.840.113549.1.9.7";a["1.2.840.113549.1.9.8"]="unstructuredAddress";a.unstructuredAddress="1.2.840.113549.1.9.8";a["1.2.840.113549.1.9.14"]="extensionRequest";a.extensionRequest="1.2.840.113549.1.9.14";a["1.2.840.113549.1.9.20"]="friendlyName";a.friendlyName="1.2.840.113549.1.9.20";a["1.2.840.113549.1.9.21"]=
|
|
"localKeyId";a.localKeyId="1.2.840.113549.1.9.21";a["1.2.840.113549.1.9.22.1"]="x509Certificate";a.x509Certificate="1.2.840.113549.1.9.22.1";a["1.2.840.113549.1.12.10.1.1"]="keyBag";a.keyBag="1.2.840.113549.1.12.10.1.1";a["1.2.840.113549.1.12.10.1.2"]="pkcs8ShroudedKeyBag";a.pkcs8ShroudedKeyBag="1.2.840.113549.1.12.10.1.2";a["1.2.840.113549.1.12.10.1.3"]="certBag";a.certBag="1.2.840.113549.1.12.10.1.3";a["1.2.840.113549.1.12.10.1.4"]="crlBag";a.crlBag="1.2.840.113549.1.12.10.1.4";a["1.2.840.113549.1.12.10.1.5"]=
|
|
"secretBag";a.secretBag="1.2.840.113549.1.12.10.1.5";a["1.2.840.113549.1.12.10.1.6"]="safeContentsBag";a.safeContentsBag="1.2.840.113549.1.12.10.1.6";a["1.2.840.113549.1.5.13"]="pkcs5PBES2";a.pkcs5PBES2="1.2.840.113549.1.5.13";a["1.2.840.113549.1.5.12"]="pkcs5PBKDF2";a.pkcs5PBKDF2="1.2.840.113549.1.5.12";a["1.2.840.113549.1.12.1.1"]="pbeWithSHAAnd128BitRC4";a.pbeWithSHAAnd128BitRC4="1.2.840.113549.1.12.1.1";a["1.2.840.113549.1.12.1.2"]="pbeWithSHAAnd40BitRC4";a.pbeWithSHAAnd40BitRC4="1.2.840.113549.1.12.1.2";
|
|
a["1.2.840.113549.1.12.1.3"]="pbeWithSHAAnd3-KeyTripleDES-CBC";a["pbeWithSHAAnd3-KeyTripleDES-CBC"]="1.2.840.113549.1.12.1.3";a["1.2.840.113549.1.12.1.4"]="pbeWithSHAAnd2-KeyTripleDES-CBC";a["pbeWithSHAAnd2-KeyTripleDES-CBC"]="1.2.840.113549.1.12.1.4";a["1.2.840.113549.1.12.1.5"]="pbeWithSHAAnd128BitRC2-CBC";a["pbeWithSHAAnd128BitRC2-CBC"]="1.2.840.113549.1.12.1.5";a["1.2.840.113549.1.12.1.6"]="pbewithSHAAnd40BitRC2-CBC";a["pbewithSHAAnd40BitRC2-CBC"]="1.2.840.113549.1.12.1.6";a["1.2.840.113549.3.7"]=
|
|
"des-EDE3-CBC";a["des-EDE3-CBC"]="1.2.840.113549.3.7";a["2.16.840.1.101.3.4.1.2"]="aes128-CBC";a["aes128-CBC"]="2.16.840.1.101.3.4.1.2";a["2.16.840.1.101.3.4.1.22"]="aes192-CBC";a["aes192-CBC"]="2.16.840.1.101.3.4.1.22";a["2.16.840.1.101.3.4.1.42"]="aes256-CBC";a["aes256-CBC"]="2.16.840.1.101.3.4.1.42";a["2.5.4.3"]="commonName";a.commonName="2.5.4.3";a["2.5.4.5"]="serialName";a.serialName="2.5.4.5";a["2.5.4.6"]="countryName";a.countryName="2.5.4.6";a["2.5.4.7"]="localityName";a.localityName="2.5.4.7";
|
|
a["2.5.4.8"]="stateOrProvinceName";a.stateOrProvinceName="2.5.4.8";a["2.5.4.10"]="organizationName";a.organizationName="2.5.4.10";a["2.5.4.11"]="organizationalUnitName";a.organizationalUnitName="2.5.4.11";a["2.16.840.1.113730.1.1"]="nsCertType";a.nsCertType="2.16.840.1.113730.1.1";a["2.5.29.1"]="authorityKeyIdentifier";a["2.5.29.2"]="keyAttributes";a["2.5.29.3"]="certificatePolicies";a["2.5.29.4"]="keyUsageRestriction";a["2.5.29.5"]="policyMapping";a["2.5.29.6"]="subtreesConstraint";a["2.5.29.7"]=
|
|
"subjectAltName";a["2.5.29.8"]="issuerAltName";a["2.5.29.9"]="subjectDirectoryAttributes";a["2.5.29.10"]="basicConstraints";a["2.5.29.11"]="nameConstraints";a["2.5.29.12"]="policyConstraints";a["2.5.29.13"]="basicConstraints";a["2.5.29.14"]="subjectKeyIdentifier";a.subjectKeyIdentifier="2.5.29.14";a["2.5.29.15"]="keyUsage";a.keyUsage="2.5.29.15";a["2.5.29.16"]="privateKeyUsagePeriod";a["2.5.29.17"]="subjectAltName";a.subjectAltName="2.5.29.17";a["2.5.29.18"]="issuerAltName";a.issuerAltName="2.5.29.18";
|
|
a["2.5.29.19"]="basicConstraints";a.basicConstraints="2.5.29.19";a["2.5.29.20"]="cRLNumber";a["2.5.29.21"]="cRLReason";a["2.5.29.22"]="expirationDate";a["2.5.29.23"]="instructionCode";a["2.5.29.24"]="invalidityDate";a["2.5.29.25"]="cRLDistributionPoints";a["2.5.29.26"]="issuingDistributionPoint";a["2.5.29.27"]="deltaCRLIndicator";a["2.5.29.28"]="issuingDistributionPoint";a["2.5.29.29"]="certificateIssuer";a["2.5.29.30"]="nameConstraints";a["2.5.29.31"]="cRLDistributionPoints";a["2.5.29.32"]="certificatePolicies";
|
|
a["2.5.29.33"]="policyMappings";a["2.5.29.34"]="policyConstraints";a["2.5.29.35"]="authorityKeyIdentifier";a["2.5.29.36"]="policyConstraints";a["2.5.29.37"]="extKeyUsage";a.extKeyUsage="2.5.29.37";a["2.5.29.46"]="freshestCRL";a["2.5.29.54"]="inhibitAnyPolicy";a["1.3.6.1.5.5.7.3.1"]="serverAuth";a.serverAuth="1.3.6.1.5.5.7.3.1";a["1.3.6.1.5.5.7.3.2"]="clientAuth";a.clientAuth="1.3.6.1.5.5.7.3.2";a["1.3.6.1.5.5.7.3.3"]="codeSigning";a.codeSigning="1.3.6.1.5.5.7.3.3";a["1.3.6.1.5.5.7.3.4"]="emailProtection";
|
|
a.emailProtection="1.3.6.1.5.5.7.3.4";a["1.3.6.1.5.5.7.3.8"]="timeStamping";a.timeStamping="1.3.6.1.5.5.7.3.8"}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var q=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.oids)return c.oids;c.defined.oids=!0;for(var e=0;e<q.length;++e)q[e](c);return c.oids}},
|
|
l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/oids",["require","module"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){var c=a.asn1=a.asn1||{};c.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};c.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,
|
|
ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};c.create=function(b,c,d,h){if(a.util.isArray(h)){for(var g=[],e=0;e<h.length;++e)void 0!==h[e]&&g.push(h[e]);h=g}return{tagClass:b,type:c,constructed:d,composed:d||a.util.isArray(h),value:h}};var d=c.getBerValueLength=function(a){var b=a.getByte();if(128!==b)return b&128?a.getInt((b&127)<<3):b};c.fromDer=function(b,e){void 0===e&&(e=!0);
|
|
"string"===typeof b&&(b=a.util.createBuffer(b));if(2>b.length()){var m=Error("Too few bytes to parse DER.");m.bytes=b.length();throw m;}var k=b.getByte(),m=k&192,g=k&31,u=d(b);if(b.length()<u){if(e)throw m=Error("Too few bytes to read ASN.1 value."),m.detail=b.length()+" < "+u,m;u=b.length()}var l,D=32===(k&32);l=D;if(!l&&m===c.Class.UNIVERSAL&&g===c.Type.BITSTRING&&1<u){var y=b.read;if(0===b.getByte()&&(k=b.getByte(),k&=192,k===c.Class.UNIVERSAL||k===c.Class.CONTEXT_SPECIFIC))try{if(l=d(b)===u-(b.read-
|
|
y))++y,--u}catch(z){}b.read=y}if(l)if(l=[],void 0===u)for(;;){if(b.bytes(2)===String.fromCharCode(0,0)){b.getBytes(2);break}l.push(c.fromDer(b,e))}else for(y=b.length();0<u;)l.push(c.fromDer(b,e)),u-=y-b.length(),y=b.length();else{if(void 0===u){if(e)throw Error("Non-constructed ASN.1 object of indefinite length.");u=b.length()}if(g===c.Type.BMPSTRING)for(l="",y=0;y<u;y+=2)l+=String.fromCharCode(b.getInt16());else l=b.getBytes(u)}return c.create(m,g,D,l)};c.toDer=function(b){var d=a.util.createBuffer(),
|
|
h=b.tagClass|b.type,k=a.util.createBuffer();if(b.composed){b.constructed?h|=32:k.putByte(0);for(var g=0;g<b.value.length;++g)void 0!==b.value[g]&&k.putBuffer(c.toDer(b.value[g]))}else if(b.type===c.Type.BMPSTRING)for(g=0;g<b.value.length;++g)k.putInt16(b.value.charCodeAt(g));else k.putBytes(b.value);d.putByte(h);if(127>=k.length())d.putByte(k.length()&127);else{g=k.length();b="";do b+=String.fromCharCode(g&255),g>>>=8;while(0<g);d.putByte(b.length|128);for(g=b.length-1;0<=g;--g)d.putByte(b.charCodeAt(g))}d.putBuffer(k);
|
|
return d};c.oidToDer=function(b){b=b.split(".");var c=a.util.createBuffer();c.putByte(40*parseInt(b[0],10)+parseInt(b[1],10));for(var d,h,g,e,q=2;q<b.length;++q){d=!0;h=[];g=parseInt(b[q],10);do e=g&127,g>>>=7,d||(e|=128),h.push(e),d=!1;while(0<g);for(d=h.length-1;0<=d;--d)c.putByte(h[d])}return c};c.derToOid=function(b){var c;"string"===typeof b&&(b=a.util.createBuffer(b));var d=b.getByte();c=Math.floor(d/40)+"."+d%40;for(var h=0;0<b.length();)d=b.getByte(),h<<=7,d&128?h+=d&127:(c+="."+(h+d),h=0);
|
|
return c};c.utcTimeToDate=function(a){var b=new Date,c=parseInt(a.substr(0,2),10),c=50<=c?1900+c:2E3+c,d=parseInt(a.substr(2,2),10)-1,p=parseInt(a.substr(4,2),10),h=parseInt(a.substr(6,2),10),e=parseInt(a.substr(8,2),10),q=0;if(11<a.length){var y=a.charAt(10),l=10;"+"!==y&&"-"!==y&&(q=parseInt(a.substr(10,2),10),l+=2)}b.setUTCFullYear(c,d,p);b.setUTCHours(h,e,q,0);l&&(y=a.charAt(l),"+"===y||"-"===y)&&(c=parseInt(a.substr(l+1,2),10),a=parseInt(a.substr(l+4,2),10),a=6E4*(60*c+a),"+"===y?b.setTime(+b-
|
|
a):b.setTime(+b+a));return b};c.generalizedTimeToDate=function(a){var b=new Date,c=parseInt(a.substr(0,4),10),d=parseInt(a.substr(4,2),10)-1,p=parseInt(a.substr(6,2),10),h=parseInt(a.substr(8,2),10),e=parseInt(a.substr(10,2),10),q=parseInt(a.substr(12,2),10),y=0,l=0,A=!1;"Z"===a.charAt(a.length-1)&&(A=!0);var R=a.length-5,x=a.charAt(R);if("+"===x||"-"===x)l=parseInt(a.substr(R+1,2),10),R=parseInt(a.substr(R+4,2),10),l=6E4*(60*l+R),"+"===x&&(l*=-1),A=!0;"."===a.charAt(14)&&(y=1E3*parseFloat(a.substr(14),
|
|
10));A?(b.setUTCFullYear(c,d,p),b.setUTCHours(h,e,q,y),b.setTime(+b+l)):(b.setFullYear(c,d,p),b.setHours(h,e,q,y));return b};c.dateToUtcTime=function(a){if("string"===typeof a)return a;var b="",c=[];c.push((""+a.getUTCFullYear()).substr(2));c.push(""+(a.getUTCMonth()+1));c.push(""+a.getUTCDate());c.push(""+a.getUTCHours());c.push(""+a.getUTCMinutes());c.push(""+a.getUTCSeconds());for(a=0;a<c.length;++a)2>c[a].length&&(b+="0"),b+=c[a];return b+"Z"};c.dateToGeneralizedTime=function(a){if("string"===
|
|
typeof a)return a;var b="",c=[];c.push(""+a.getUTCFullYear());c.push(""+(a.getUTCMonth()+1));c.push(""+a.getUTCDate());c.push(""+a.getUTCHours());c.push(""+a.getUTCMinutes());c.push(""+a.getUTCSeconds());for(a=0;a<c.length;++a)2>c[a].length&&(b+="0"),b+=c[a];return b+"Z"};c.integerToDer=function(b){var c=a.util.createBuffer();if(-128<=b&&128>b)return c.putSignedInt(b,8);if(-32768<=b&&32768>b)return c.putSignedInt(b,16);if(-8388608<=b&&8388608>b)return c.putSignedInt(b,24);if(-2147483648<=b&&2147483648>
|
|
b)return c.putSignedInt(b,32);c=Error("Integer too large; max is 32-bits.");c.integer=b;throw c;};c.derToInteger=function(b){"string"===typeof b&&(b=a.util.createBuffer(b));var c=8*b.length();if(32<c)throw Error("Integer too large; max is 32-bits.");return b.getSignedInt(c)};c.validate=function(b,d,h,e){var g=!1;if(b.tagClass!==d.tagClass&&"undefined"!==typeof d.tagClass||b.type!==d.type&&"undefined"!==typeof d.type)e&&(b.tagClass!==d.tagClass&&e.push("["+d.name+'] Expected tag class "'+d.tagClass+
|
|
'", got "'+b.tagClass+'"'),b.type!==d.type&&e.push("["+d.name+'] Expected type "'+d.type+'", got "'+b.type+'"'));else if(b.constructed===d.constructed||"undefined"===typeof d.constructed){g=!0;if(d.value&&a.util.isArray(d.value))for(var u=0,l=0;g&&l<d.value.length;++l)g=d.value[l].optional||!1,b.value[u]&&((g=c.validate(b.value[u],d.value[l],h,e))?++u:d.value[l].optional&&(g=!0)),!g&&e&&e.push("["+d.name+'] Tag class "'+d.tagClass+'", type "'+d.type+'" expected value length "'+d.value.length+'", got "'+
|
|
b.value.length+'"');g&&h&&(d.capture&&(h[d.capture]=b.value),d.captureAsn1&&(h[d.captureAsn1]=b))}else e&&e.push("["+d.name+'] Expected constructed "'+d.constructed+'", got "'+b.constructed+'"');return g};var e=/[^\\u0000-\\u00ff]/;c.prettyPrint=function(b,d,h){var k="";d=d||0;h=h||2;0<d&&(k+="\n");for(var g="",u=0;u<d*h;++u)g+=" ";k+=g+"Tag: ";switch(b.tagClass){case c.Class.UNIVERSAL:k+="Universal:";break;case c.Class.APPLICATION:k+="Application:";break;case c.Class.CONTEXT_SPECIFIC:k+="Context-Specific:";
|
|
break;case c.Class.PRIVATE:k+="Private:"}if(b.tagClass===c.Class.UNIVERSAL)switch(k+=b.type,b.type){case c.Type.NONE:k+=" (None)";break;case c.Type.BOOLEAN:k+=" (Boolean)";break;case c.Type.BITSTRING:k+=" (Bit string)";break;case c.Type.INTEGER:k+=" (Integer)";break;case c.Type.OCTETSTRING:k+=" (Octet string)";break;case c.Type.NULL:k+=" (Null)";break;case c.Type.OID:k+=" (Object Identifier)";break;case c.Type.ODESC:k+=" (Object Descriptor)";break;case c.Type.EXTERNAL:k+=" (External or Instance of)";
|
|
break;case c.Type.REAL:k+=" (Real)";break;case c.Type.ENUMERATED:k+=" (Enumerated)";break;case c.Type.EMBEDDED:k+=" (Embedded PDV)";break;case c.Type.UTF8:k+=" (UTF8)";break;case c.Type.ROID:k+=" (Relative Object Identifier)";break;case c.Type.SEQUENCE:k+=" (Sequence)";break;case c.Type.SET:k+=" (Set)";break;case c.Type.PRINTABLESTRING:k+=" (Printable String)";break;case c.Type.IA5String:k+=" (IA5String (ASCII))";break;case c.Type.UTCTIME:k+=" (UTC time)";break;case c.Type.GENERALIZEDTIME:k+=" (Generalized time)";
|
|
break;case c.Type.BMPSTRING:k+=" (BMP String)"}else k+=b.type;k=k+"\n"+(g+"Constructed: "+b.constructed+"\n");if(b.composed){for(var l=0,D="",u=0;u<b.value.length;++u)void 0!==b.value[u]&&(l+=1,D+=c.prettyPrint(b.value[u],d+1,h),u+1<b.value.length&&(D+=","));k+=g+"Sub values: "+l+D}else if(k+=g+"Value: ",b.type===c.Type.OID&&(d=c.derToOid(b.value),k+=d,a.pki&&a.pki.oids&&d in a.pki.oids&&(k+=" ("+a.pki.oids[d]+") ")),b.type===c.Type.INTEGER)try{k+=c.derToInteger(b.value)}catch(y){k+="0x"+a.util.bytesToHex(b.value)}else b.type===
|
|
c.Type.OCTETSTRING?(e.test(b.value)||(k+="("+b.value+") "),k+="0x"+a.util.bytesToHex(b.value)):k=b.type===c.Type.UTF8?k+a.util.decodeUtf8(b.value):b.type===c.Type.PRINTABLESTRING||b.type===c.Type.IA5String?k+b.value:e.test(b.value)?k+("0x"+a.util.bytesToHex(b.value)):0===b.value.length?k+"[null]":k+b.value;return k}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,
|
|
c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.asn1)return c.asn1;c.defined.asn1=!0;for(var q=0;q<e.length;++q)e[q](c);return c.asn1}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/asn1",["require","module","./util","./oids"],function(){n.apply(null,Array.prototype.slice.call(arguments,
|
|
0))})})();(function(){function b(a){function c(){l=String.fromCharCode(128);l+=a.util.fillString(String.fromCharCode(0),64);n=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,6,11,0,5,10,15,4,9,14,3,8,13,2,7,12,5,8,11,14,1,4,7,10,13,0,3,6,9,12,15,2,0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,9];m=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21];k=Array(64);for(var b=0;64>b;++b)k[b]=Math.floor(4294967296*
|
|
Math.abs(Math.sin(b+1)));g=!0}function d(a,b,c){for(var p,h,g,e,x,q,l,w=c.length();64<=w;){h=a.h0;g=a.h1;e=a.h2;x=a.h3;for(l=0;16>l;++l)b[l]=c.getInt32Le(),p=x^g&(e^x),p=h+p+k[l]+b[l],q=m[l],h=x,x=e,e=g,g+=p<<q|p>>>32-q;for(;32>l;++l)p=e^x&(g^e),p=h+p+k[l]+b[n[l]],q=m[l],h=x,x=e,e=g,g+=p<<q|p>>>32-q;for(;48>l;++l)p=g^e^x,p=h+p+k[l]+b[n[l]],q=m[l],h=x,x=e,e=g,g+=p<<q|p>>>32-q;for(;64>l;++l)p=e^(g|~x),p=h+p+k[l]+b[n[l]],q=m[l],h=x,x=e,e=g,g+=p<<q|p>>>32-q;a.h0=a.h0+h|0;a.h1=a.h1+g|0;a.h2=a.h2+e|0;a.h3=
|
|
a.h3+x|0;w-=64}}var e=a.md5=a.md5||{};a.md=a.md||{};a.md.algorithms=a.md.algorithms||{};a.md.md5=a.md.algorithms.md5=e;e.create=function(){g||c();var b=null,e=a.util.createBuffer(),k=Array(16),m={algorithm:"md5",blockLength:64,digestLength:16,messageLength:0,fullMessageLength:null,messageLengthSize:8,start:function(){m.messageLength=0;m.fullMessageLength=m.messageLength64=[];for(var c=m.messageLengthSize/4,d=0;d<c;++d)m.fullMessageLength.push(0);e=a.util.createBuffer();b={h0:1732584193,h1:4023233417,
|
|
h2:2562383102,h3:271733878};return m}};m.start();m.update=function(c,g){"utf8"===g&&(c=a.util.encodeUtf8(c));var q=c.length;m.messageLength+=q;for(var q=[q/4294967296>>>0,q>>>0],x=m.fullMessageLength.length-1;0<=x;--x)m.fullMessageLength[x]+=q[1],q[1]=q[0]+(m.fullMessageLength[x]/4294967296>>>0),m.fullMessageLength[x]>>>=0,q[0]=q[1]/4294967296>>>0;e.putBytes(c);d(b,k,e);(2048<e.read||0===e.length())&&e.compact();return m};m.digest=function(){var c=a.util.createBuffer();c.putBytes(e.bytes());c.putBytes(l.substr(0,
|
|
m.blockLength-(m.fullMessageLength[m.fullMessageLength.length-1]+m.messageLengthSize&m.blockLength-1)));for(var g,q=0,x=m.fullMessageLength.length-1;0<=x;--x)g=8*m.fullMessageLength[x]+q,q=g/4294967296>>>0,c.putInt32Le(g>>>0);g={h0:b.h0,h1:b.h1,h2:b.h2,h3:b.h3};d(g,k,c);c=a.util.createBuffer();c.putInt32Le(g.h0);c.putInt32Le(g.h1);c.putInt32Le(g.h2);c.putInt32Le(g.h3);return c};return m};var l=null,n=null,m=null,k=null,g=!1}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=
|
|
!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.md5)return c.md5;c.defined.md5=!0;for(var q=0;q<e.length;++q)e[q](c);return c.md5}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,
|
|
0))};a("js/md5",["require","module","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(a,b,d){for(var p,h,e,q,l,z,A,w,x=d.length();64<=x;){h=a.h0;e=a.h1;q=a.h2;l=a.h3;z=a.h4;for(w=0;16>w;++w)p=d.getInt32(),b[w]=p,A=l^e&(q^l),p=(h<<5|h>>>27)+A+z+1518500249+p,z=l,l=q,q=e<<30|e>>>2,e=h,h=p;for(;20>w;++w)p=b[w-3]^b[w-8]^b[w-14]^b[w-16],p=p<<1|p>>>31,b[w]=p,A=l^e&(q^l),p=(h<<5|h>>>27)+A+z+1518500249+p,z=l,l=q,q=e<<30|e>>>2,e=h,h=p;for(;32>
|
|
w;++w)p=b[w-3]^b[w-8]^b[w-14]^b[w-16],p=p<<1|p>>>31,b[w]=p,A=e^q^l,p=(h<<5|h>>>27)+A+z+1859775393+p,z=l,l=q,q=e<<30|e>>>2,e=h,h=p;for(;40>w;++w)p=b[w-6]^b[w-16]^b[w-28]^b[w-32],p=p<<2|p>>>30,b[w]=p,A=e^q^l,p=(h<<5|h>>>27)+A+z+1859775393+p,z=l,l=q,q=e<<30|e>>>2,e=h,h=p;for(;60>w;++w)p=b[w-6]^b[w-16]^b[w-28]^b[w-32],p=p<<2|p>>>30,b[w]=p,A=e&q|l&(e^q),p=(h<<5|h>>>27)+A+z+2400959708+p,z=l,l=q,q=e<<30|e>>>2,e=h,h=p;for(;80>w;++w)p=b[w-6]^b[w-16]^b[w-28]^b[w-32],p=p<<2|p>>>30,b[w]=p,A=e^q^l,p=(h<<5|h>>>
|
|
27)+A+z+3395469782+p,z=l,l=q,q=e<<30|e>>>2,e=h,h=p;a.h0=a.h0+h|0;a.h1=a.h1+e|0;a.h2=a.h2+q|0;a.h3=a.h3+l|0;a.h4=a.h4+z|0;x-=64}}var d=a.sha1=a.sha1||{};a.md=a.md||{};a.md.algorithms=a.md.algorithms||{};a.md.sha1=a.md.algorithms.sha1=d;d.create=function(){l||(e=String.fromCharCode(128),e+=a.util.fillString(String.fromCharCode(0),64),l=!0);var b=null,d=a.util.createBuffer(),h=Array(80),g={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8,start:function(){g.messageLength=
|
|
0;g.fullMessageLength=g.messageLength64=[];for(var c=g.messageLengthSize/4,h=0;h<c;++h)g.fullMessageLength.push(0);d=a.util.createBuffer();b={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520};return g}};g.start();g.update=function(e,l){"utf8"===l&&(e=a.util.encodeUtf8(e));var w=e.length;g.messageLength+=w;for(var w=[w/4294967296>>>0,w>>>0],y=g.fullMessageLength.length-1;0<=y;--y)g.fullMessageLength[y]+=w[1],w[1]=w[0]+(g.fullMessageLength[y]/4294967296>>>0),g.fullMessageLength[y]>>>=
|
|
0,w[0]=w[1]/4294967296>>>0;d.putBytes(e);c(b,h,d);(2048<d.read||0===d.length())&&d.compact();return g};g.digest=function(){var l=a.util.createBuffer();l.putBytes(d.bytes());l.putBytes(e.substr(0,g.blockLength-(g.fullMessageLength[g.fullMessageLength.length-1]+g.messageLengthSize&g.blockLength-1)));a.util.createBuffer();for(var w,D,y=8*g.fullMessageLength[0],z=0;z<g.fullMessageLength.length;++z)w=8*g.fullMessageLength[z+1],D=w/4294967296>>>0,y+=D,l.putInt32(y>>>0),y=w;w={h0:b.h0,h1:b.h1,h2:b.h2,h3:b.h3,
|
|
h4:b.h4};c(w,h,l);l=a.util.createBuffer();l.putInt32(w.h0);l.putInt32(w.h1);l.putInt32(w.h2);l.putInt32(w.h3);l.putInt32(w.h4);return l};return g};var e=null,l=!1}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.sha1)return c.sha1;c.defined.sha1=
|
|
!0;for(var q=0;q<e.length;++q)e[q](c);return c.sha1}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/sha1",["require","module","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(a,b,d){for(var p,h,e,q,l,A,w,x,C,H,J,B,r,v=d.length();64<=v;){for(l=0;16>l;++l)b[l]=d.getInt32();
|
|
for(;64>l;++l)p=b[l-2],p=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,h=b[l-15],h=(h>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,b[l]=p+b[l-7]+h+b[l-16]|0;A=a.h0;w=a.h1;x=a.h2;C=a.h3;H=a.h4;J=a.h5;B=a.h6;r=a.h7;for(l=0;64>l;++l)p=(H>>>6|H<<26)^(H>>>11|H<<21)^(H>>>25|H<<7),e=B^H&(J^B),h=(A>>>2|A<<30)^(A>>>13|A<<19)^(A>>>22|A<<10),q=A&w|x&(A^w),p=r+p+e+n[l]+b[l],h+=q,r=B,B=J,J=H,H=C+p|0,C=x,x=w,w=A,A=p+h|0;a.h0=a.h0+A|0;a.h1=a.h1+w|0;a.h2=a.h2+x|0;a.h3=a.h3+C|0;a.h4=a.h4+H|0;a.h5=a.h5+J|0;a.h6=a.h6+B|0;a.h7=a.h7+r|0;v-=
|
|
64}}var d=a.sha256=a.sha256||{};a.md=a.md||{};a.md.algorithms=a.md.algorithms||{};a.md.sha256=a.md.algorithms.sha256=d;d.create=function(){l||(e=String.fromCharCode(128),e+=a.util.fillString(String.fromCharCode(0),64),n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,
|
|
2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],l=!0);var b=null,d=a.util.createBuffer(),h=Array(64),u={algorithm:"sha256",blockLength:64,digestLength:32,
|
|
messageLength:0,fullMessageLength:null,messageLengthSize:8,start:function(){u.messageLength=0;u.fullMessageLength=u.messageLength64=[];for(var c=u.messageLengthSize/4,h=0;h<c;++h)u.fullMessageLength.push(0);d=a.util.createBuffer();b={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225};return u}};u.start();u.update=function(e,l){"utf8"===l&&(e=a.util.encodeUtf8(e));var y=e.length;u.messageLength+=y;for(var y=[y/4294967296>>>0,y>>>0],w=u.fullMessageLength.length-
|
|
1;0<=w;--w)u.fullMessageLength[w]+=y[1],y[1]=y[0]+(u.fullMessageLength[w]/4294967296>>>0),u.fullMessageLength[w]>>>=0,y[0]=y[1]/4294967296>>>0;d.putBytes(e);c(b,h,d);(2048<d.read||0===d.length())&&d.compact();return u};u.digest=function(){var l=a.util.createBuffer();l.putBytes(d.bytes());l.putBytes(e.substr(0,u.blockLength-(u.fullMessageLength[u.fullMessageLength.length-1]+u.messageLengthSize&u.blockLength-1)));a.util.createBuffer();for(var w,y,z=8*u.fullMessageLength[0],A=0;A<u.fullMessageLength.length;++A)w=
|
|
8*u.fullMessageLength[A+1],y=w/4294967296>>>0,z+=y,l.putInt32(z>>>0),z=w;w={h0:b.h0,h1:b.h1,h2:b.h2,h3:b.h3,h4:b.h4,h5:b.h5,h6:b.h6,h7:b.h7};c(w,h,l);l=a.util.createBuffer();l.putInt32(w.h0);l.putInt32(w.h1);l.putInt32(w.h2);l.putInt32(w.h3);l.putInt32(w.h4);l.putInt32(w.h5);l.putInt32(w.h6);l.putInt32(w.h7);return l};return u};var e=null,l=!1,n=null}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge=
|
|
{}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.sha256)return c.sha256;c.defined.sha256=!0;for(var q=0;q<e.length;++q)e[q](c);return c.sha256}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/sha256",["require","module","./util"],function(){n.apply(null,
|
|
Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(a,b,d){for(var p,h,e,q,k,x,C,l,w,B,r,n,v,L,Y,K,E,V,I,aa,ba,W,G,F,S,Z=d.length();128<=Z;){for(S=0;16>S;++S)b[S][0]=d.getInt32()>>>0,b[S][1]=d.getInt32()>>>0;for(;80>S;++S)k=b[S-2],w=k[0],k=k[1],p=((w>>>19|k<<13)^(k>>>29|w<<3)^w>>>6)>>>0,h=((w<<13|k>>>19)^(k<<3|w>>>29)^(w<<26|k>>>6))>>>0,k=b[S-15],w=k[0],k=k[1],e=((w>>>1|k<<31)^(w>>>8|k<<24)^w>>>7)>>>0,q=((w<<31|k>>>1)^(w<<24|k>>>8)^(w<<25|k>>>7))>>>0,w=b[S-7],B=b[S-
|
|
16],k=h+w[1]+q+B[1],b[S][0]=p+w[0]+e+B[0]+(k/4294967296>>>0)>>>0,b[S][1]=k>>>0;w=a[0][0];B=a[0][1];r=a[1][0];n=a[1][1];v=a[2][0];L=a[2][1];Y=a[3][0];K=a[3][1];E=a[4][0];V=a[4][1];I=a[5][0];aa=a[5][1];ba=a[6][0];W=a[6][1];G=a[7][0];F=a[7][1];for(S=0;80>S;++S)p=((E>>>14|V<<18)^(E>>>18|V<<14)^(V>>>9|E<<23))>>>0,k=((E<<18|V>>>14)^(E<<14|V>>>18)^(V<<23|E>>>9))>>>0,h=(ba^E&(I^ba))>>>0,x=(W^V&(aa^W))>>>0,e=((w>>>28|B<<4)^(B>>>2|w<<30)^(B>>>7|w<<25))>>>0,q=((w<<4|B>>>28)^(B<<30|w>>>2)^(B<<25|w>>>7))>>>0,
|
|
C=(w&r|v&(w^r))>>>0,l=(B&n|L&(B^n))>>>0,k=F+k+x+m[S][1]+b[S][1],p=G+p+h+m[S][0]+b[S][0]+(k/4294967296>>>0)>>>0,h=k>>>0,k=q+l,e=e+C+(k/4294967296>>>0)>>>0,q=k>>>0,G=ba,F=W,ba=I,W=aa,I=E,aa=V,k=K+h,E=Y+p+(k/4294967296>>>0)>>>0,V=k>>>0,Y=v,K=L,v=r,L=n,r=w,n=B,k=h+q,w=p+e+(k/4294967296>>>0)>>>0,B=k>>>0;k=a[0][1]+B;a[0][0]=a[0][0]+w+(k/4294967296>>>0)>>>0;a[0][1]=k>>>0;k=a[1][1]+n;a[1][0]=a[1][0]+r+(k/4294967296>>>0)>>>0;a[1][1]=k>>>0;k=a[2][1]+L;a[2][0]=a[2][0]+v+(k/4294967296>>>0)>>>0;a[2][1]=k>>>0;
|
|
k=a[3][1]+K;a[3][0]=a[3][0]+Y+(k/4294967296>>>0)>>>0;a[3][1]=k>>>0;k=a[4][1]+V;a[4][0]=a[4][0]+E+(k/4294967296>>>0)>>>0;a[4][1]=k>>>0;k=a[5][1]+aa;a[5][0]=a[5][0]+I+(k/4294967296>>>0)>>>0;a[5][1]=k>>>0;k=a[6][1]+W;a[6][0]=a[6][0]+ba+(k/4294967296>>>0)>>>0;a[6][1]=k>>>0;k=a[7][1]+F;a[7][0]=a[7][0]+G+(k/4294967296>>>0)>>>0;a[7][1]=k>>>0;Z-=128}}var d=a.sha512=a.sha512||{};a.md=a.md||{};a.md.algorithms=a.md.algorithms||{};a.md.sha512=a.md.algorithms.sha512=d;var e=a.sha384=a.sha512.sha384=a.sha512.sha384||
|
|
{};e.create=function(){return d.create("SHA-384")};a.md.sha384=a.md.algorithms.sha384=e;a.sha512.sha256=a.sha512.sha256||{create:function(){return d.create("SHA-512/256")}};a.md["sha512/256"]=a.md.algorithms["sha512/256"]=a.sha512.sha256;a.sha512.sha224=a.sha512.sha224||{create:function(){return d.create("SHA-512/224")}};a.md["sha512/224"]=a.md.algorithms["sha512/224"]=a.sha512.sha224;d.create=function(b){n||(l=String.fromCharCode(128),l+=a.util.fillString(String.fromCharCode(0),128),m=[[1116352408,
|
|
3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],
|
|
[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,
|
|
106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],
|
|
[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],k={"SHA-512":[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],
|
|
[528734635,4215389547],[1541459225,327033209]],"SHA-384":[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],"SHA-512/256":[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],"SHA-512/224":[[2352822216,424955298],[1944164710,
|
|
2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]]},n=!0);"undefined"===typeof b&&(b="SHA-512");if(!(b in k))throw Error("Invalid SHA-512 algorithm: "+b);for(var d=k[b],h=null,e=a.util.createBuffer(),y=Array(80),z=0;80>z;++z)y[z]=Array(2);var A={algorithm:b.replace("-","").toLowerCase(),blockLength:128,digestLength:64,messageLength:0,fullMessageLength:null,messageLengthSize:16,start:function(){A.messageLength=
|
|
0;A.fullMessageLength=A.messageLength128=[];for(var b=A.messageLengthSize/4,c=0;c<b;++c)A.fullMessageLength.push(0);e=a.util.createBuffer();h=Array(d.length);for(c=0;c<d.length;++c)h[c]=d[c].slice(0);return A}};A.start();A.update=function(b,d){"utf8"===d&&(b=a.util.encodeUtf8(b));var g=b.length;A.messageLength+=g;for(var g=[g/4294967296>>>0,g>>>0],k=A.fullMessageLength.length-1;0<=k;--k)A.fullMessageLength[k]+=g[1],g[1]=g[0]+(A.fullMessageLength[k]/4294967296>>>0),A.fullMessageLength[k]>>>=0,g[0]=
|
|
g[1]/4294967296>>>0;e.putBytes(b);c(h,y,e);(2048<e.read||0===e.length())&&e.compact();return A};A.digest=function(){var d=a.util.createBuffer();d.putBytes(e.bytes());d.putBytes(l.substr(0,A.blockLength-(A.fullMessageLength[A.fullMessageLength.length-1]+A.messageLengthSize&A.blockLength-1)));a.util.createBuffer();for(var x,k,m=8*A.fullMessageLength[0],u=0;u<A.fullMessageLength.length;++u)x=8*A.fullMessageLength[u+1],k=x/4294967296>>>0,m+=k,d.putInt32(m>>>0),m=x;x=Array(h.length);for(u=0;u<h.length;++u)x[u]=
|
|
h[u].slice(0);c(x,y,d);d=a.util.createBuffer();k="SHA-512"===b?x.length:"SHA-384"===b?x.length-2:x.length-4;for(u=0;u<k;++u)d.putInt32(x[u][0]),u===k-1&&"SHA-512/224"===b||d.putInt32(x[u][1]);return d};return A};var l=null,n=!1,m=null,k=null}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);
|
|
c=c||{};c.defined=c.defined||{};if(c.defined.sha512)return c.sha512;c.defined.sha512=!0;for(var q=0;q<e.length;++q)e[q](c);return c.sha512}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/sha512",["require","module","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){a.md=a.md||{};
|
|
a.md.algorithms={md5:a.md5,sha1:a.sha1,sha256:a.sha256};a.md.md5=a.md5;a.md.sha1=a.sha1;a.md.sha256=a.sha256}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.md)return c.md;c.defined.md=!0;for(var q=0;q<e.length;++q)e[q](c);return c.md}},l=a;a=function(b,
|
|
c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/md","require module ./md5 ./sha1 ./sha256 ./sha512".split(" "),function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){(a.hmac=a.hmac||{}).create=function(){var b=null,c=null,d=null,e={start:function(e,m){if(null!==e)if("string"===typeof e)if(e=e.toLowerCase(),e in a.md.algorithms)b=
|
|
a.md.algorithms[e].create();else throw Error('Unknown hash algorithm "'+e+'"');else b=e;if(null!==m){if("string"===typeof m)m=a.util.createBuffer(m);else if(a.util.isArray(m)){var k=m;m=a.util.createBuffer();for(var g=0;g<k.length;++g)m.putByte(k[g])}var l=m.length();l>b.blockLength&&(b.start(),b.update(m.bytes()),m=b.digest());c=a.util.createBuffer();d=a.util.createBuffer();l=m.length();for(g=0;g<l;++g)k=m.at(g),c.putByte(54^k),d.putByte(92^k);if(l<b.blockLength)for(k=b.blockLength-l,g=0;g<k;++g)c.putByte(54),
|
|
d.putByte(92);c=c.bytes();d=d.bytes()}b.start();b.update(c)},update:function(a){b.update(a)},getMac:function(){var a=b.digest().bytes();b.start();b.update(d);b.update(a);return b.digest()}};e.digest=e.getMac;return e}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||
|
|
{};if(c.defined.hmac)return c.hmac;c.defined.hmac=!0;for(var q=0;q<e.length;++q)e[q](c);return c.hmac}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/hmac",["require","module","./md","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(a){for(var b=a.name+": ",d=[],p=function(a,
|
|
b){return" "+b},h=0;h<a.values.length;++h)d.push(a.values[h].replace(/^(\S+\r\n)/,p));b+=d.join(",")+"\r\n";d=0;a=-1;for(h=0;h<b.length;++h,++d)if(65<d&&-1!==a)d=b[a],","===d?(++a,b=b.substr(0,a)+"\r\n "+b.substr(a)):b=b.substr(0,a)+"\r\n"+d+b.substr(a+1),d=h-a-1,a=-1,++h;else if(" "===b[h]||"\t"===b[h]||","===b[h])a=h;return b}var d=a.pem=a.pem||{};d.encode=function(b,d){d=d||{};var h="-----BEGIN "+b.type+"-----\r\n",e;b.procType&&(e={name:"Proc-Type",values:[String(b.procType.version),b.procType.type]},
|
|
h+=c(e));b.contentDomain&&(e={name:"Content-Domain",values:[b.contentDomain]},h+=c(e));b.dekInfo&&(e={name:"DEK-Info",values:[b.dekInfo.algorithm]},b.dekInfo.parameters&&e.values.push(b.dekInfo.parameters),h+=c(e));if(b.headers)for(e=0;e<b.headers.length;++e)h+=c(b.headers[e]);b.procType&&(h+="\r\n");h+=a.util.encode64(b.body,d.maxline||64)+"\r\n";return h+="-----END "+b.type+"-----\r\n"};d.decode=function(b){for(var c=[],d=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,
|
|
h=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,e=/\r?\n/,g;;){g=d.exec(b);if(!g)break;var q={type:g[1],procType:null,contentDomain:null,dekInfo:null,headers:[],body:a.util.decode64(g[3])};c.push(q);if(g[2]){for(var l=g[2].split(e),D=0;g&&D<l.length;){g=l[D].replace(/\s+$/,"");for(var y=D+1;y<l.length;++y){var z=l[y];if(!/\s/.test(z[0]))break;g+=z;D=y}if(g=g.match(h)){for(var y={name:g[1],values:[]},z=g[2].split(","),A=0;A<z.length;++A)y.values.push(z[A].replace(/^\s+/,""));if(q.procType)if(q.contentDomain||
|
|
"Content-Domain"!==y.name)if(q.dekInfo||"DEK-Info"!==y.name)q.headers.push(y);else{if(0===y.values.length)throw Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');q.dekInfo={algorithm:z[0],parameters:z[1]||null}}else q.contentDomain=z[0]||"";else{if("Proc-Type"!==y.name)throw Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(2!==y.values.length)throw Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');
|
|
q.procType={version:z[0],type:z[1]}}}++D}if("ENCRYPTED"===q.procType&&!q.dekInfo)throw Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".');}}if(0===c.length)throw Error("Invalid PEM formatted message.");return c}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);
|
|
c=c||{};c.defined=c.defined||{};if(c.defined.pem)return c.pem;c.defined.pem=!0;for(var q=0;q<e.length;++q)e[q](c);return c.pem}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/pem",["require","module","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(b,d){a.cipher.registerAlgorithm(b,
|
|
function(){return new a.des.Algorithm(b,d)})}function d(a,b,c,p){var h=32===a.length?3:9;p=3===h?p?[30,-2,-2]:[0,32,2]:p?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var e=b[0],q=b[1];b=(e>>>4^q)&252645135;q^=b;e^=b<<4;b=(e>>>16^q)&65535;q^=b;e^=b<<16;b=(q>>>2^e)&858993459;e^=b;q^=b<<2;b=(q>>>8^e)&16711935;e^=b;q^=b<<8;b=(e>>>1^q)&1431655765;for(var q=q^b,e=e^b<<1,e=e<<1|e>>>31,q=q<<1|q>>>31,J=0;J<h;J+=3){for(var B=p[J+1],r=p[J+2],N=p[J];N!=B;N+=r){var U=q^a[N],L=(q>>>4|q<<28)^a[N+1];b=e;
|
|
e=q;q=b^(n[U>>>24&63]|k[U>>>16&63]|u[U>>>8&63]|D[U&63]|l[L>>>24&63]|m[L>>>16&63]|g[L>>>8&63]|v[L&63])}b=e;e=q;q=b}e=e>>>1|e<<31;q=q>>>1|q<<31;b=(e>>>1^q)&1431655765;q^=b;e^=b<<1;b=(q>>>8^e)&16711935;e^=b;q^=b<<8;b=(q>>>2^e)&858993459;e^=b;q^=b<<2;b=(e>>>16^q)&65535;q^=b;e^=b<<16;b=(e>>>4^q)&252645135;c[0]=e^b<<4;c[1]=q^b}function e(b){b=b||{};var c="DES-"+(b.mode||"CBC").toUpperCase(),d;d=b.decrypt?a.cipher.createDecipher(c,b.key):a.cipher.createCipher(c,b.key);var h=d.start;d.start=function(b,c){var e=
|
|
null;c instanceof a.util.ByteBuffer&&(e=c,c={});c=c||{};c.output=e;c.iv=b;h.call(d,c)};return d}a.des=a.des||{};a.des.startEncrypting=function(a,b,c,d){a=e({key:a,output:c,decrypt:!1,mode:d||(null===b?"ECB":"CBC")});a.start(b);return a};a.des.createEncryptionCipher=function(a,b){return e({key:a,output:null,decrypt:!1,mode:b})};a.des.startDecrypting=function(a,b,c,d){a=e({key:a,output:c,decrypt:!0,mode:d||(null===b?"ECB":"CBC")});a.start(b);return a};a.des.createDecryptionCipher=function(a,b){return e({key:a,
|
|
output:null,decrypt:!0,mode:b})};a.des.Algorithm=function(a,b){var c=this;c.name=a;c.mode=new b({blockSize:8,cipher:{encrypt:function(a,b){return d(c._keys,a,b,!1)},decrypt:function(a,b){return d(c._keys,a,b,!0)}}});c._init=!1};a.des.Algorithm.prototype.initialize=function(b){if(!this._init){b=a.util.createBuffer(b.key);if(0===this.name.indexOf("3DES")&&24!==b.length())throw Error("Invalid Triple-DES key size: "+8*b.length());for(var c=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,
|
|
516,536871424,536871428,66048,66052,536936960,536936964],d=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],e=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],h=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],g=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],
|
|
k=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],q=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],m=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],l=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],u=[0,268435456,8,268435464,0,268435456,
|
|
8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],w=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],L=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],D=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],K=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],n=8<b.length()?3:
|
|
1,B=[],v=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],O=0,E,W=0;W<n;W++){var G=b.getInt32(),F=b.getInt32();E=(G>>>4^F)&252645135;F^=E;G^=E<<4;E=(F>>>-16^G)&65535;G^=E;F^=E<<-16;E=(G>>>2^F)&858993459;F^=E;G^=E<<2;E=(F>>>-16^G)&65535;G^=E;F^=E<<-16;E=(G>>>1^F)&1431655765;F^=E;G^=E<<1;E=(F>>>8^G)&16711935;G^=E;F^=E<<8;E=(G>>>1^F)&1431655765;F^=E;G^=E<<1;E=G<<8|F>>>20&240;for(var G=F<<24|F<<8&16711680|F>>>8&65280|F>>>24&240,F=E,S=0;S<v.length;++S){v[S]?(G=G<<2|G>>>26,F=F<<2|F>>>26):(G=G<<1|G>>>27,F=F<<1|F>>>27);
|
|
var G=G&-15,F=F&-15,Z=c[G>>>28]|d[G>>>24&15]|e[G>>>20&15]|h[G>>>16&15]|g[G>>>12&15]|k[G>>>8&15]|q[G>>>4&15],ca=m[F>>>28]|l[F>>>24&15]|u[F>>>20&15]|w[F>>>16&15]|L[F>>>12&15]|D[F>>>8&15]|K[F>>>4&15];E=(ca>>>16^Z)&65535;B[O++]=Z^E;B[O++]=ca^E<<16}}this._keys=B;this._init=!0}};c("DES-ECB",a.cipher.modes.ecb);c("DES-CBC",a.cipher.modes.cbc);c("DES-CFB",a.cipher.modes.cfb);c("DES-OFB",a.cipher.modes.ofb);c("DES-CTR",a.cipher.modes.ctr);c("3DES-ECB",a.cipher.modes.ecb);c("3DES-CBC",a.cipher.modes.cbc);c("3DES-CFB",
|
|
a.cipher.modes.cfb);c("3DES-OFB",a.cipher.modes.ofb);c("3DES-CTR",a.cipher.modes.ctr);var l=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,
|
|
0,65540,66560,0,16842756],n=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,
|
|
-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],m=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,
|
|
8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],k=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],g=[256,34078976,34078720,1107296512,
|
|
524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,
|
|
524288,0,1074266112,34078976,1073742080],u=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,
|
|
4194320,536887312,0,541081600,536870912,4194320,536887312],v=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,
|
|
67108866,67110912,2048,2097154],D=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,
|
|
268435456,268701696]}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.des)return c.des;c.defined.des=!0;for(var q=0;q<e.length;++q)e[q](c);return c.des}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,
|
|
Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/des",["require","module","./cipher","./cipherModes","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){var d=a.pkcs5=a.pkcs5||{},e="undefined"!==typeof process&&process.versions&&process.versions.node,l;e&&!a.disableNativeCode&&(l=c("crypto"));a.pbkdf2=d.pbkdf2=function(b,c,d,k,g,q){function n(){if(P>z)return q(null,x);v.start(null,
|
|
null);v.update(c);v.update(a.util.int32ToBytes(P));C=J=v.digest().getBytes();r=2;D()}function D(){if(r<=d)return v.start(null,null),v.update(J),H=v.digest().getBytes(),C=a.util.xorBytes(C,H,y),J=H,++r,a.util.setImmediate(D);x+=P<z?C:C.substr(0,A);++P;n()}"function"===typeof g&&(q=g,g=null);if(e&&!a.disableNativeCode&&l.pbkdf2&&(null===g||"object"!==typeof g)&&(4<l.pbkdf2Sync.length||!g||"sha1"===g))return"string"!==typeof g&&(g="sha1"),c=new Buffer(c,"binary"),q?4===l.pbkdf2Sync.length?l.pbkdf2(b,
|
|
c,d,k,function(a,b){if(a)return q(a);q(null,b.toString("binary"))}):l.pbkdf2(b,c,d,k,g,function(a,b){if(a)return q(a);q(null,b.toString("binary"))}):4===l.pbkdf2Sync.length?l.pbkdf2Sync(b,c,d,k).toString("binary"):l.pbkdf2Sync(b,c,d,k,g).toString("binary");if("undefined"===typeof g||null===g)g=a.md.sha1.create();if("string"===typeof g){if(!(g in a.md.algorithms))throw Error("Unknown hash algorithm: "+g);g=a.md[g].create()}var y=g.digestLength;if(k>4294967295*y){b=Error("Derived key is too long.");
|
|
if(q)return q(b);throw b;}var z=Math.ceil(k/y),A=k-(z-1)*y,v=a.hmac.create();v.start(g,b);var x="",C,H,J;if(!q){for(var P=1;P<=z;++P){v.start(null,null);v.update(c);v.update(a.util.int32ToBytes(P));C=J=v.digest().getBytes();for(var r=2;r<=d;++r)v.start(null,null),v.update(J),H=v.digest().getBytes(),C=a.util.xorBytes(C,H,y),J=H;x+=P<z?C:C.substr(0,A)}return x}P=1;n()}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===
|
|
typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.pbkdf2)return c.pbkdf2;c.defined.pbkdf2=!0;for(var q=0;q<e.length;++q)e[q](c);return c.pbkdf2}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/pbkdf2",["require","module",
|
|
"./hmac","./md","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){var d="undefined"!==typeof process&&process.versions&&process.versions.node,e=null;a.disableNativeCode||!d||process.versions["node-webkit"]||(e=c("crypto"));(a.prng=a.prng||{}).create=function(b){function c(a){if(32<=k.pools[0].messageLength)return d(),a();k.seedFile(32-k.pools[0].messageLength<<5,function(b,c){if(b)return a(b);k.collect(c);d();a()})}function d(){var a=k.plugin.md.create();
|
|
a.update(k.pools[0].digest().getBytes());k.pools[0].start();for(var b=1,c=1;32>c;++c)b=31===b?2147483648:b<<2,0===b%k.reseeds&&(a.update(k.pools[c].digest().getBytes()),k.pools[c].start());b=a.digest().getBytes();a.start();a.update(b);a=a.digest().getBytes();k.key=k.plugin.formatKey(b);k.seed=k.plugin.formatSeed(a);k.reseeds=4294967295===k.reseeds?0:k.reseeds+1;k.generated=0}function q(b){var c=null;if("undefined"!==typeof window){var d=window.crypto||window.msCrypto;d&&d.getRandomValues&&(c=function(a){return d.getRandomValues(a)})}var e=
|
|
a.util.createBuffer();if(c)for(;e.length()<b;){var h=Math.max(1,Math.min(b-e.length(),65536)/4),g=new Uint32Array(Math.floor(h));try{for(c(g),h=0;h<g.length;++h)e.putInt32(g[h])}catch(x){if(!("undefined"!==typeof QuotaExceededError&&x instanceof QuotaExceededError))throw x;}}if(e.length()<b)for(c=Math.floor(65536*Math.random());e.length()<b;)for(h=16807*(c&65535),c=16807*(c>>16),h+=(c&32767)<<16,h+=c>>15,h=(h&2147483647)+(h>>31),c=h&4294967295,h=0;3>h;++h)g=c>>>(h<<3),g^=Math.floor(256*Math.random()),
|
|
e.putByte(String.fromCharCode(g&255));return e.getBytes(b)}var k={plugin:b,key:null,seed:null,time:null,reseeds:0,generated:0};b=b.md;for(var g=Array(32),l=0;32>l;++l)g[l]=b.create();k.pools=g;k.pool=0;k.generate=function(b,d){function e(l){if(l)return d(l);if(m.length()>=b)return d(null,m.getBytes(b));1048575<k.generated&&(k.key=null);if(null===k.key)return a.util.nextTick(function(){c(e)});l=h(k.key,k.seed);k.generated+=l.length;m.putBytes(l);k.key=q(h(k.key,g(k.seed)));k.seed=x(h(k.key,k.seed));
|
|
a.util.setImmediate(e)}if(!d)return k.generateSync(b);var h=k.plugin.cipher,g=k.plugin.increment,q=k.plugin.formatKey,x=k.plugin.formatSeed,m=a.util.createBuffer();k.key=null;e()};k.generateSync=function(b){var c=k.plugin.cipher,e=k.plugin.increment,h=k.plugin.formatKey,g=k.plugin.formatSeed;k.key=null;for(var q=a.util.createBuffer();q.length()<b;){1048575<k.generated&&(k.key=null);null===k.key&&(32<=k.pools[0].messageLength||k.collect(k.seedFileSync(32-k.pools[0].messageLength<<5)),d());var x=c(k.key,
|
|
k.seed);k.generated+=x.length;q.putBytes(x);k.key=h(c(k.key,e(k.seed)));k.seed=g(c(k.key,k.seed))}return q.getBytes(b)};e?(k.seedFile=function(a,b){e.randomBytes(a,function(a,c){if(a)return b(a);b(null,c.toString())})},k.seedFileSync=function(a){return e.randomBytes(a).toString()}):(k.seedFile=function(a,b){try{b(null,q(a))}catch(c){b(c)}},k.seedFileSync=q);k.collect=function(a){for(var b=a.length,c=0;c<b;++c)k.pools[k.pool].update(a.substr(c,1)),k.pool=31===k.pool?0:k.pool+1};k.collectInt=function(a,
|
|
b){for(var c="",d=0;d<b;d+=8)c+=String.fromCharCode(a>>d&255);k.collect(c)};k.registerWorker=function(a){a===self?k.seedFile=function(a,b){function c(a){a=a.data;a.forge&&a.forge.prng&&(self.removeEventListener("message",c),b(a.forge.prng.err,a.forge.prng.bytes))}self.addEventListener("message",c);self.postMessage({forge:{prng:{needed:a}}})}:a.addEventListener("message",function(b){b=b.data;b.forge&&b.forge.prng&&k.seedFile(b.forge.prng.needed,function(b,c){a.postMessage({forge:{prng:{err:b,bytes:c}}})})})};
|
|
return k}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.prng)return c.prng;c.defined.prng=!0;for(var q=0;q<e.length;++q)e[q](c);return c.prng}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,
|
|
0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/prng",["require","module","./md","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){a.random&&a.random.getBytes||function(b){function c(){var b=a.prng.create(d);b.getBytes=function(a,c){return b.generate(a,c)};b.getBytesSync=function(a){return b.generate(a)};return b}var d={},e=Array(4),l=a.util.createBuffer();d.formatKey=function(b){var c=a.util.createBuffer(b);b=Array(4);
|
|
b[0]=c.getInt32();b[1]=c.getInt32();b[2]=c.getInt32();b[3]=c.getInt32();return a.aes._expandKey(b,!1)};d.formatSeed=function(b){var c=a.util.createBuffer(b);b=Array(4);b[0]=c.getInt32();b[1]=c.getInt32();b[2]=c.getInt32();b[3]=c.getInt32();return b};d.cipher=function(b,c){a.aes._updateBlock(b,c,e,!1);l.putInt32(e[0]);l.putInt32(e[1]);l.putInt32(e[2]);l.putInt32(e[3]);return l.getBytes()};d.increment=function(a){++a[3];return a};d.md=a.md.sha256;var m=c(),k="undefined"!==typeof process&&process.versions&&
|
|
process.versions.node,g=null;if("undefined"!==typeof window){var u=window.crypto||window.msCrypto;u&&u.getRandomValues&&(g=function(a){return u.getRandomValues(a)})}if(a.disableNativeCode||!k&&!g){m.collectInt(+new Date,32);if("undefined"!==typeof navigator){var k="",n;for(n in navigator)try{"string"==typeof navigator[n]&&(k+=navigator[n])}catch(D){}m.collect(k);k=null}b&&(b().mousemove(function(a){m.collectInt(a.clientX,16);m.collectInt(a.clientY,16)}),b().keypress(function(a){m.collectInt(a.charCode,
|
|
8)}))}if(a.random)for(n in m)a.random[n]=m[n];else a.random=m;a.random.createInstance=c}("undefined"!==typeof jQuery?jQuery:null)}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.random)return c.random;c.defined.random=!0;for(var q=0;q<e.length;++q)e[q](c);
|
|
return c.random}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/random","require module ./aes ./md ./prng ./util".split(" "),function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){var c=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,
|
|
139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,
|
|
175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],d=[1,2,3,5];a.rc2=a.rc2||{};a.rc2.expandKey=function(b,d){"string"===typeof b&&(b=a.util.createBuffer(b));d=d||128;var e=b,h=b.length(),g=d,l=Math.ceil(g/8),g=255>>(g&7),n;for(n=h;128>n;n++)e.putByte(c[e.at(n-
|
|
1)+e.at(n-h)&255]);e.setAt(128-l,c[e.at(128-l)&g]);for(n=127-l;0<=n;n--)e.setAt(n,c[e.at(n+1)^e.at(n+l)]);return e};var e=function(b,c,e){var q=!1,g=null,l=null,n=null,v,y,z,A,B=[];b=a.rc2.expandKey(b,c);for(z=0;64>z;z++)B.push(b.getInt16Le());e?(v=function(a){for(z=0;4>z;z++){a[z]+=B[A]+(a[(z+3)%4]&a[(z+2)%4])+(~a[(z+3)%4]&a[(z+1)%4]);var b=a[z],c=d[z];a[z]=b<<c&65535|(b&65535)>>16-c;A++}},y=function(a){for(z=0;4>z;z++)a[z]+=B[a[(z+3)%4]&63]}):(v=function(a){for(z=3;0<=z;z--){var b=a[z],c=d[z];a[z]=
|
|
(b&65535)>>c|b<<16-c&65535;a[z]-=B[A]+(a[(z+3)%4]&a[(z+2)%4])+(~a[(z+3)%4]&a[(z+1)%4]);A--}},y=function(a){for(z=3;0<=z;z--)a[z]-=B[a[(z+3)%4]&63]});var x=null;return x={start:function(b,c){b&&"string"===typeof b&&(b=a.util.createBuffer(b));q=!1;g=a.util.createBuffer();l=c||new a.util.createBuffer;n=b;x.output=l},update:function(a){for(q||g.putBuffer(a);8<=g.length();){a=[[5,v],[1,y],[6,v],[1,y],[5,v]];var b=[];for(z=0;4>z;z++){var c=g.getInt16Le();null!==n&&(e?c^=n.getInt16Le():n.putInt16Le(c));
|
|
b.push(c&65535)}A=e?0:63;for(c=0;c<a.length;c++)for(var d=0;d<a[c][0];d++)a[c][1](b);for(z=0;4>z;z++)null!==n&&(e?n.putInt16Le(b[z]):b[z]^=n.getInt16Le()),l.putInt16Le(b[z])}},finish:function(a){var b=!0;if(e)if(a)b=a(8,g,!e);else{var c=8===g.length()?8:8-g.length();g.fillWithByte(c,c)}b&&(q=!0,x.update());!e&&(b=0===g.length())&&(a?b=a(8,l,!e):(a=l.length(),c=l.at(a-1),c>a?b=!1:l.truncate(c)));return b}}};a.rc2.startEncrypting=function(b,c,d){b=a.rc2.createEncryptionCipher(b,128);b.start(c,d);return b};
|
|
a.rc2.createEncryptionCipher=function(a,b){return e(a,b,!0)};a.rc2.startDecrypting=function(b,c,d){b=a.rc2.createDecryptionCipher(b,128);b.start(c,d);return b};a.rc2.createDecryptionCipher=function(a,b){return e(a,b,!1)}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||
|
|
{};if(c.defined.rc2)return c.rc2;c.defined.rc2=!0;for(var q=0;q<e.length;++q)e[q](c);return c.rc2}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/rc2",["require","module","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(a,b,d){this.data=[];null!=a&&("number"==typeof a?
|
|
this.fromNumber(a,b,d):null==b&&"string"!=typeof a?this.fromString(a,256):this.fromString(a,b))}function d(){return new c(null)}function e(a,b,c,d,p,x){for(;0<=--x;){var h=b*this.data[a++]+c.data[d]+p;p=Math.floor(h/67108864);c.data[d++]=h&67108863}return p}function l(a,b,c,d,p,e){var x=b&32767;for(b>>=15;0<=--e;){var h=this.data[a]&32767,g=this.data[a++]>>15,k=b*h+g*x,h=x*h+((k&32767)<<15)+c.data[d]+(p&1073741823);p=(h>>>30)+(k>>>15)+b*g+(p>>>30);c.data[d++]=h&1073741823}return p}function n(a,b,
|
|
c,d,p,e){var x=b&16383;for(b>>=14;0<=--e;){var h=this.data[a]&16383,g=this.data[a++]>>14,k=b*h+g*x,h=x*h+((k&16383)<<14)+c.data[d]+p;p=(h>>28)+(k>>14)+b*g;c.data[d++]=h&268435455}return p}function m(a,b){var c=P[a.charCodeAt(b)];return null==c?-1:c}function k(a){var b=d();b.fromInt(a);return b}function g(a){var b=1,c;0!=(c=a>>>16)&&(a=c,b+=16);0!=(c=a>>8)&&(a=c,b+=8);0!=(c=a>>4)&&(a=c,b+=4);0!=(c=a>>2)&&(a=c,b+=2);0!=a>>1&&(b+=1);return b}function u(a){this.m=a}function v(a){this.m=a;this.mp=a.invDigit();
|
|
this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<a.DB-15)-1;this.mt2=2*a.t}function D(a,b){return a&b}function y(a,b){return a|b}function z(a,b){return a^b}function A(a,b){return a&~b}function R(){}function x(a){return a}function C(a){this.r2=d();this.q3=d();c.ONE.dlShiftTo(2*a.t,this.r2);this.mu=this.r2.divide(a);this.m=a}function H(){return{nextBytes:function(a){for(var b=0;b<a.length;++b)a[b]=Math.floor(256*Math.random())}}}var J;"undefined"===typeof navigator?(c.prototype.am=n,J=28):"Microsoft Internet Explorer"==
|
|
navigator.appName?(c.prototype.am=l,J=30):"Netscape"!=navigator.appName?(c.prototype.am=e,J=26):(c.prototype.am=n,J=28);c.prototype.DB=J;c.prototype.DM=(1<<J)-1;c.prototype.DV=1<<J;c.prototype.FV=Math.pow(2,52);c.prototype.F1=52-J;c.prototype.F2=2*J-52;var P=[],r;J=48;for(r=0;9>=r;++r)P[J++]=r;J=97;for(r=10;36>r;++r)P[J++]=r;J=65;for(r=10;36>r;++r)P[J++]=r;u.prototype.convert=function(a){return 0>a.s||0<=a.compareTo(this.m)?a.mod(this.m):a};u.prototype.revert=function(a){return a};u.prototype.reduce=
|
|
function(a){a.divRemTo(this.m,null,a)};u.prototype.mulTo=function(a,b,c){a.multiplyTo(b,c);this.reduce(c)};u.prototype.sqrTo=function(a,b){a.squareTo(b);this.reduce(b)};v.prototype.convert=function(a){var b=d();a.abs().dlShiftTo(this.m.t,b);b.divRemTo(this.m,null,b);0>a.s&&0<b.compareTo(c.ZERO)&&this.m.subTo(b,b);return b};v.prototype.revert=function(a){var b=d();a.copyTo(b);this.reduce(b);return b};v.prototype.reduce=function(a){for(;a.t<=this.mt2;)a.data[a.t++]=0;for(var b=0;b<this.m.t;++b){var c=
|
|
a.data[b]&32767,d=c*this.mpl+((c*this.mph+(a.data[b]>>15)*this.mpl&this.um)<<15)&a.DM,c=b+this.m.t;for(a.data[c]+=this.m.am(0,d,a,b,0,this.m.t);a.data[c]>=a.DV;)a.data[c]-=a.DV,a.data[++c]++}a.clamp();a.drShiftTo(this.m.t,a);0<=a.compareTo(this.m)&&a.subTo(this.m,a)};v.prototype.mulTo=function(a,b,c){a.multiplyTo(b,c);this.reduce(c)};v.prototype.sqrTo=function(a,b){a.squareTo(b);this.reduce(b)};c.prototype.copyTo=function(a){for(var b=this.t-1;0<=b;--b)a.data[b]=this.data[b];a.t=this.t;a.s=this.s};
|
|
c.prototype.fromInt=function(a){this.t=1;this.s=0>a?-1:0;0<a?this.data[0]=a:-1>a?this.data[0]=a+this.DV:this.t=0};c.prototype.fromString=function(a,b){var d;if(16==b)d=4;else if(8==b)d=3;else if(256==b)d=8;else if(2==b)d=1;else if(32==b)d=5;else if(4==b)d=2;else{this.fromRadix(a,b);return}this.s=this.t=0;for(var p=a.length,e=!1,x=0;0<=--p;){var h=8==d?a[p]&255:m(a,p);0>h?"-"==a.charAt(p)&&(e=!0):(e=!1,0==x?this.data[this.t++]=h:x+d>this.DB?(this.data[this.t-1]|=(h&(1<<this.DB-x)-1)<<x,this.data[this.t++]=
|
|
h>>this.DB-x):this.data[this.t-1]|=h<<x,x+=d,x>=this.DB&&(x-=this.DB))}8==d&&0!=(a[0]&128)&&(this.s=-1,0<x&&(this.data[this.t-1]|=(1<<this.DB-x)-1<<x));this.clamp();e&&c.ZERO.subTo(this,this)};c.prototype.clamp=function(){for(var a=this.s&this.DM;0<this.t&&this.data[this.t-1]==a;)--this.t};c.prototype.dlShiftTo=function(a,b){var c;for(c=this.t-1;0<=c;--c)b.data[c+a]=this.data[c];for(c=a-1;0<=c;--c)b.data[c]=0;b.t=this.t+a;b.s=this.s};c.prototype.drShiftTo=function(a,b){for(var c=a;c<this.t;++c)b.data[c-
|
|
a]=this.data[c];b.t=Math.max(this.t-a,0);b.s=this.s};c.prototype.lShiftTo=function(a,b){var c=a%this.DB,d=this.DB-c,p=(1<<d)-1,e=Math.floor(a/this.DB),x=this.s<<c&this.DM,h;for(h=this.t-1;0<=h;--h)b.data[h+e+1]=this.data[h]>>d|x,x=(this.data[h]&p)<<c;for(h=e-1;0<=h;--h)b.data[h]=0;b.data[e]=x;b.t=this.t+e+1;b.s=this.s;b.clamp()};c.prototype.rShiftTo=function(a,b){b.s=this.s;var c=Math.floor(a/this.DB);if(c>=this.t)b.t=0;else{var d=a%this.DB,p=this.DB-d,e=(1<<d)-1;b.data[0]=this.data[c]>>d;for(var x=
|
|
c+1;x<this.t;++x)b.data[x-c-1]|=(this.data[x]&e)<<p,b.data[x-c]=this.data[x]>>d;0<d&&(b.data[this.t-c-1]|=(this.s&e)<<p);b.t=this.t-c;b.clamp()}};c.prototype.subTo=function(a,b){for(var c=0,d=0,p=Math.min(a.t,this.t);c<p;)d+=this.data[c]-a.data[c],b.data[c++]=d&this.DM,d>>=this.DB;if(a.t<this.t){for(d-=a.s;c<this.t;)d+=this.data[c],b.data[c++]=d&this.DM,d>>=this.DB;d+=this.s}else{for(d+=this.s;c<a.t;)d-=a.data[c],b.data[c++]=d&this.DM,d>>=this.DB;d-=a.s}b.s=0>d?-1:0;-1>d?b.data[c++]=this.DV+d:0<d&&
|
|
(b.data[c++]=d);b.t=c;b.clamp()};c.prototype.multiplyTo=function(a,b){var d=this.abs(),p=a.abs(),e=d.t;for(b.t=e+p.t;0<=--e;)b.data[e]=0;for(e=0;e<p.t;++e)b.data[e+d.t]=d.am(0,p.data[e],b,e,0,d.t);b.s=0;b.clamp();this.s!=a.s&&c.ZERO.subTo(b,b)};c.prototype.squareTo=function(a){for(var b=this.abs(),c=a.t=2*b.t;0<=--c;)a.data[c]=0;for(c=0;c<b.t-1;++c){var d=b.am(c,b.data[c],a,2*c,0,1);(a.data[c+b.t]+=b.am(c+1,2*b.data[c],a,2*c+1,d,b.t-c-1))>=b.DV&&(a.data[c+b.t]-=b.DV,a.data[c+b.t+1]=1)}0<a.t&&(a.data[a.t-
|
|
1]+=b.am(c,b.data[c],a,2*c,0,1));a.s=0;a.clamp()};c.prototype.divRemTo=function(a,b,p){var e=a.abs();if(!(0>=e.t)){var x=this.abs();if(x.t<e.t)null!=b&&b.fromInt(0),null!=p&&this.copyTo(p);else{null==p&&(p=d());var k=d(),l=this.s;a=a.s;var m=this.DB-g(e.data[e.t-1]);0<m?(e.lShiftTo(m,k),x.lShiftTo(m,p)):(e.copyTo(k),x.copyTo(p));e=k.t;x=k.data[e-1];if(0!=x){var C=x*(1<<this.F1)+(1<e?k.data[e-2]>>this.F2:0),r=this.FV/C,C=(1<<this.F1)/C,A=1<<this.F2,u=p.t,y=u-e,H=null==b?d():b;k.dlShiftTo(y,H);0<=p.compareTo(H)&&
|
|
(p.data[p.t++]=1,p.subTo(H,p));c.ONE.dlShiftTo(e,H);for(H.subTo(k,k);k.t<e;)k.data[k.t++]=0;for(;0<=--y;){var w=p.data[--u]==x?this.DM:Math.floor(p.data[u]*r+(p.data[u-1]+A)*C);if((p.data[u]+=k.am(0,w,p,y,0,e))<w)for(k.dlShiftTo(y,H),p.subTo(H,p);p.data[u]<--w;)p.subTo(H,p)}null!=b&&(p.drShiftTo(e,b),l!=a&&c.ZERO.subTo(b,b));p.t=e;p.clamp();0<m&&p.rShiftTo(m,p);0>l&&c.ZERO.subTo(p,p)}}}};c.prototype.invDigit=function(){if(1>this.t)return 0;var a=this.data[0];if(0==(a&1))return 0;var b=a&3,b=b*(2-
|
|
(a&15)*b)&15,b=b*(2-(a&255)*b)&255,b=b*(2-((a&65535)*b&65535))&65535,b=b*(2-a*b%this.DV)%this.DV;return 0<b?this.DV-b:-b};c.prototype.isEven=function(){return 0==(0<this.t?this.data[0]&1:this.s)};c.prototype.exp=function(a,b){if(4294967295<a||1>a)return c.ONE;var p=d(),e=d(),x=b.convert(this),k=g(a)-1;for(x.copyTo(p);0<=--k;)if(b.sqrTo(p,e),0<(a&1<<k))b.mulTo(e,x,p);else var l=p,p=e,e=l;return b.revert(p)};c.prototype.toString=function(a){if(0>this.s)return"-"+this.negate().toString(a);if(16==a)a=
|
|
4;else if(8==a)a=3;else if(2==a)a=1;else if(32==a)a=5;else if(4==a)a=2;else return this.toRadix(a);var b=(1<<a)-1,c,d=!1,p="",e=this.t,x=this.DB-e*this.DB%a;if(0<e--)for(x<this.DB&&0<(c=this.data[e]>>x)&&(d=!0,p="0123456789abcdefghijklmnopqrstuvwxyz".charAt(c));0<=e;)x<a?(c=(this.data[e]&(1<<x)-1)<<a-x,c|=this.data[--e]>>(x+=this.DB-a)):(c=this.data[e]>>(x-=a)&b,0>=x&&(x+=this.DB,--e)),0<c&&(d=!0),d&&(p+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(c));return d?p:"0"};c.prototype.negate=function(){var a=
|
|
d();c.ZERO.subTo(this,a);return a};c.prototype.abs=function(){return 0>this.s?this.negate():this};c.prototype.compareTo=function(a){var b=this.s-a.s;if(0!=b)return b;var c=this.t,b=c-a.t;if(0!=b)return 0>this.s?-b:b;for(;0<=--c;)if(0!=(b=this.data[c]-a.data[c]))return b;return 0};c.prototype.bitLength=function(){return 0>=this.t?0:this.DB*(this.t-1)+g(this.data[this.t-1]^this.s&this.DM)};c.prototype.mod=function(a){var b=d();this.abs().divRemTo(a,null,b);0>this.s&&0<b.compareTo(c.ZERO)&&a.subTo(b,
|
|
b);return b};c.prototype.modPowInt=function(a,b){var c;c=256>a||b.isEven()?new u(b):new v(b);return this.exp(a,c)};c.ZERO=k(0);c.ONE=k(1);R.prototype.convert=x;R.prototype.revert=x;R.prototype.mulTo=function(a,b,c){a.multiplyTo(b,c)};R.prototype.sqrTo=function(a,b){a.squareTo(b)};C.prototype.convert=function(a){if(0>a.s||a.t>2*this.m.t)return a.mod(this.m);if(0>a.compareTo(this.m))return a;var b=d();a.copyTo(b);this.reduce(b);return b};C.prototype.revert=function(a){return a};C.prototype.reduce=function(a){a.drShiftTo(this.m.t-
|
|
1,this.r2);a.t>this.m.t+1&&(a.t=this.m.t+1,a.clamp());this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);for(this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);0>a.compareTo(this.r2);)a.dAddOffset(1,this.m.t+1);for(a.subTo(this.r2,a);0<=a.compareTo(this.m);)a.subTo(this.m,a)};C.prototype.mulTo=function(a,b,c){a.multiplyTo(b,c);this.reduce(c)};C.prototype.sqrTo=function(a,b){a.squareTo(b);this.reduce(b)};var N=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,
|
|
113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],U=67108864/N[N.length-1];c.prototype.chunkSize=function(a){return Math.floor(Math.LN2*this.DB/Math.log(a))};c.prototype.toRadix=function(a){null==a&&(a=10);if(0==this.signum()||2>a||36<a)return"0";var b=this.chunkSize(a),b=Math.pow(a,
|
|
b),c=k(b),p=d(),e=d(),x="";for(this.divRemTo(c,p,e);0<p.signum();)x=(b+e.intValue()).toString(a).substr(1)+x,p.divRemTo(c,p,e);return e.intValue().toString(a)+x};c.prototype.fromRadix=function(a,b){this.fromInt(0);null==b&&(b=10);for(var d=this.chunkSize(b),p=Math.pow(b,d),e=!1,x=0,h=0,g=0;g<a.length;++g){var k=m(a,g);0>k?"-"==a.charAt(g)&&0==this.signum()&&(e=!0):(h=b*h+k,++x>=d&&(this.dMultiply(p),this.dAddOffset(h,0),h=x=0))}0<x&&(this.dMultiply(Math.pow(b,x)),this.dAddOffset(h,0));e&&c.ZERO.subTo(this,
|
|
this)};c.prototype.fromNumber=function(a,b,d){if("number"==typeof b)if(2>a)this.fromInt(1);else for(this.fromNumber(a,d),this.testBit(a-1)||this.bitwiseTo(c.ONE.shiftLeft(a-1),y,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(b);)this.dAddOffset(2,0),this.bitLength()>a&&this.subTo(c.ONE.shiftLeft(a-1),this);else{d=[];var p=a&7;d.length=(a>>3)+1;b.nextBytes(d);d[0]=0<p?d[0]&(1<<p)-1:0;this.fromString(d,256)}};c.prototype.bitwiseTo=function(a,b,c){var d,p,e=Math.min(a.t,this.t);for(d=
|
|
0;d<e;++d)c.data[d]=b(this.data[d],a.data[d]);if(a.t<this.t){p=a.s&this.DM;for(d=e;d<this.t;++d)c.data[d]=b(this.data[d],p);c.t=this.t}else{p=this.s&this.DM;for(d=e;d<a.t;++d)c.data[d]=b(p,a.data[d]);c.t=a.t}c.s=b(this.s,a.s);c.clamp()};c.prototype.changeBit=function(a,b){var d=c.ONE.shiftLeft(a);this.bitwiseTo(d,b,d);return d};c.prototype.addTo=function(a,b){for(var c=0,d=0,p=Math.min(a.t,this.t);c<p;)d+=this.data[c]+a.data[c],b.data[c++]=d&this.DM,d>>=this.DB;if(a.t<this.t){for(d+=a.s;c<this.t;)d+=
|
|
this.data[c],b.data[c++]=d&this.DM,d>>=this.DB;d+=this.s}else{for(d+=this.s;c<a.t;)d+=a.data[c],b.data[c++]=d&this.DM,d>>=this.DB;d+=a.s}b.s=0>d?-1:0;0<d?b.data[c++]=d:-1>d&&(b.data[c++]=this.DV+d);b.t=c;b.clamp()};c.prototype.dMultiply=function(a){this.data[this.t]=this.am(0,a-1,this,0,0,this.t);++this.t;this.clamp()};c.prototype.dAddOffset=function(a,b){if(0!=a){for(;this.t<=b;)this.data[this.t++]=0;for(this.data[b]+=a;this.data[b]>=this.DV;)this.data[b]-=this.DV,++b>=this.t&&(this.data[this.t++]=
|
|
0),++this.data[b]}};c.prototype.multiplyLowerTo=function(a,b,c){var d=Math.min(this.t+a.t,b);c.s=0;for(c.t=d;0<d;)c.data[--d]=0;var p;for(p=c.t-this.t;d<p;++d)c.data[d+this.t]=this.am(0,a.data[d],c,d,0,this.t);for(p=Math.min(a.t,b);d<p;++d)this.am(0,a.data[d],c,d,0,b-d);c.clamp()};c.prototype.multiplyUpperTo=function(a,b,c){--b;var d=c.t=this.t+a.t-b;for(c.s=0;0<=--d;)c.data[d]=0;for(d=Math.max(b-this.t,0);d<a.t;++d)c.data[this.t+d-b]=this.am(b-d,a.data[d],c,0,0,this.t+d-b);c.clamp();c.drShiftTo(1,
|
|
c)};c.prototype.modInt=function(a){if(0>=a)return 0;var b=this.DV%a,c=0>this.s?a-1:0;if(0<this.t)if(0==b)c=this.data[0]%a;else for(var d=this.t-1;0<=d;--d)c=(b*c+this.data[d])%a;return c};c.prototype.millerRabin=function(a){var b=this.subtract(c.ONE),d=b.getLowestSetBit();if(0>=d)return!1;for(var p=b.shiftRight(d),e=H(),x,h=0;h<a;++h){do x=new c(this.bitLength(),e);while(0>=x.compareTo(c.ONE)||0<=x.compareTo(b));x=x.modPow(p,this);if(0!=x.compareTo(c.ONE)&&0!=x.compareTo(b)){for(var g=1;g++<d&&0!=
|
|
x.compareTo(b);)if(x=x.modPowInt(2,this),0==x.compareTo(c.ONE))return!1;if(0!=x.compareTo(b))return!1}}return!0};c.prototype.clone=function(){var a=d();this.copyTo(a);return a};c.prototype.intValue=function(){if(0>this.s){if(1==this.t)return this.data[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this.data[0];if(0==this.t)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]};c.prototype.byteValue=function(){return 0==this.t?this.s:this.data[0]<<24>>24};c.prototype.shortValue=
|
|
function(){return 0==this.t?this.s:this.data[0]<<16>>16};c.prototype.signum=function(){return 0>this.s?-1:0>=this.t||1==this.t&&0>=this.data[0]?0:1};c.prototype.toByteArray=function(){var a=this.t,b=[];b[0]=this.s;var c=this.DB-a*this.DB%8,d,p=0;if(0<a--)for(c<this.DB&&(d=this.data[a]>>c)!=(this.s&this.DM)>>c&&(b[p++]=d|this.s<<this.DB-c);0<=a;)if(8>c?(d=(this.data[a]&(1<<c)-1)<<8-c,d|=this.data[--a]>>(c+=this.DB-8)):(d=this.data[a]>>(c-=8)&255,0>=c&&(c+=this.DB,--a)),0!=(d&128)&&(d|=-256),0==p&&
|
|
(this.s&128)!=(d&128)&&++p,0<p||d!=this.s)b[p++]=d;return b};c.prototype.equals=function(a){return 0==this.compareTo(a)};c.prototype.min=function(a){return 0>this.compareTo(a)?this:a};c.prototype.max=function(a){return 0<this.compareTo(a)?this:a};c.prototype.and=function(a){var b=d();this.bitwiseTo(a,D,b);return b};c.prototype.or=function(a){var b=d();this.bitwiseTo(a,y,b);return b};c.prototype.xor=function(a){var b=d();this.bitwiseTo(a,z,b);return b};c.prototype.andNot=function(a){var b=d();this.bitwiseTo(a,
|
|
A,b);return b};c.prototype.not=function(){for(var a=d(),b=0;b<this.t;++b)a.data[b]=this.DM&~this.data[b];a.t=this.t;a.s=~this.s;return a};c.prototype.shiftLeft=function(a){var b=d();0>a?this.rShiftTo(-a,b):this.lShiftTo(a,b);return b};c.prototype.shiftRight=function(a){var b=d();0>a?this.lShiftTo(-a,b):this.rShiftTo(a,b);return b};c.prototype.getLowestSetBit=function(){for(var a=0;a<this.t;++a)if(0!=this.data[a]){var b=a*this.DB;a=this.data[a];if(0==a)a=-1;else{var c=0;0==(a&65535)&&(a>>=16,c+=16);
|
|
0==(a&255)&&(a>>=8,c+=8);0==(a&15)&&(a>>=4,c+=4);0==(a&3)&&(a>>=2,c+=2);0==(a&1)&&++c;a=c}return b+a}return 0>this.s?this.t*this.DB:-1};c.prototype.bitCount=function(){for(var a=0,b=this.s&this.DM,c=0;c<this.t;++c){for(var d=this.data[c]^b,p=0;0!=d;)d&=d-1,++p;a+=p}return a};c.prototype.testBit=function(a){var b=Math.floor(a/this.DB);return b>=this.t?0!=this.s:0!=(this.data[b]&1<<a%this.DB)};c.prototype.setBit=function(a){return this.changeBit(a,y)};c.prototype.clearBit=function(a){return this.changeBit(a,
|
|
A)};c.prototype.flipBit=function(a){return this.changeBit(a,z)};c.prototype.add=function(a){var b=d();this.addTo(a,b);return b};c.prototype.subtract=function(a){var b=d();this.subTo(a,b);return b};c.prototype.multiply=function(a){var b=d();this.multiplyTo(a,b);return b};c.prototype.divide=function(a){var b=d();this.divRemTo(a,b,null);return b};c.prototype.remainder=function(a){var b=d();this.divRemTo(a,null,b);return b};c.prototype.divideAndRemainder=function(a){var b=d(),c=d();this.divRemTo(a,b,
|
|
c);return[b,c]};c.prototype.modPow=function(a,b){var c=a.bitLength(),p,e=k(1),x;if(0>=c)return e;p=18>c?1:48>c?3:144>c?4:768>c?5:6;x=8>c?new u(b):b.isEven()?new C(b):new v(b);var q=[],l=3,m=p-1,r=(1<<p)-1;q[1]=x.convert(this);if(1<p)for(c=d(),x.sqrTo(q[1],c);l<=r;)q[l]=d(),x.mulTo(c,q[l-2],q[l]),l+=2;for(var A=a.t-1,y,H=!0,w=d(),c=g(a.data[A])-1;0<=A;){c>=m?y=a.data[A]>>c-m&r:(y=(a.data[A]&(1<<c+1)-1)<<m-c,0<A&&(y|=a.data[A-1]>>this.DB+c-m));for(l=p;0==(y&1);)y>>=1,--l;0>(c-=l)&&(c+=this.DB,--A);
|
|
if(H)q[y].copyTo(e),H=!1;else{for(;1<l;)x.sqrTo(e,w),x.sqrTo(w,e),l-=2;0<l?x.sqrTo(e,w):(l=e,e=w,w=l);x.mulTo(w,q[y],e)}for(;0<=A&&0==(a.data[A]&1<<c);)x.sqrTo(e,w),l=e,e=w,w=l,0>--c&&(c=this.DB-1,--A)}return x.revert(e)};c.prototype.modInverse=function(a){var b=a.isEven();if(this.isEven()&&b||0==a.signum())return c.ZERO;for(var d=a.clone(),p=this.clone(),e=k(1),x=k(0),h=k(0),g=k(1);0!=d.signum();){for(;d.isEven();)d.rShiftTo(1,d),b?(e.isEven()&&x.isEven()||(e.addTo(this,e),x.subTo(a,x)),e.rShiftTo(1,
|
|
e)):x.isEven()||x.subTo(a,x),x.rShiftTo(1,x);for(;p.isEven();)p.rShiftTo(1,p),b?(h.isEven()&&g.isEven()||(h.addTo(this,h),g.subTo(a,g)),h.rShiftTo(1,h)):g.isEven()||g.subTo(a,g),g.rShiftTo(1,g);0<=d.compareTo(p)?(d.subTo(p,d),b&&e.subTo(h,e),x.subTo(g,x)):(p.subTo(d,p),b&&h.subTo(e,h),g.subTo(x,g))}if(0!=p.compareTo(c.ONE))return c.ZERO;if(0<=g.compareTo(a))return g.subtract(a);if(0>g.signum())g.addTo(a,g);else return g;return 0>g.signum()?g.add(a):g};c.prototype.pow=function(a){return this.exp(a,
|
|
new R)};c.prototype.gcd=function(a){var b=0>this.s?this.negate():this.clone();a=0>a.s?a.negate():a.clone();if(0>b.compareTo(a)){var c=b,b=a;a=c}var c=b.getLowestSetBit(),d=a.getLowestSetBit();if(0>d)return b;c<d&&(d=c);0<d&&(b.rShiftTo(d,b),a.rShiftTo(d,a));for(;0<b.signum();)0<(c=b.getLowestSetBit())&&b.rShiftTo(c,b),0<(c=a.getLowestSetBit())&&a.rShiftTo(c,a),0<=b.compareTo(a)?(b.subTo(a,b),b.rShiftTo(1,b)):(a.subTo(b,a),a.rShiftTo(1,a));0<d&&a.lShiftTo(d,a);return a};c.prototype.isProbablePrime=
|
|
function(a){var b,c=this.abs();if(1==c.t&&c.data[0]<=N[N.length-1]){for(b=0;b<N.length;++b)if(c.data[0]==N[b])return!0;return!1}if(c.isEven())return!1;for(b=1;b<N.length;){for(var d=N[b],p=b+1;p<N.length&&d<U;)d*=N[p++];for(d=c.modInt(d);b<p;)if(0==d%N[b++])return!1}return c.millerRabin(a)};a.jsbn=a.jsbn||{};a.jsbn.BigInteger=c}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,
|
|
n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.jsbn)return c.jsbn;c.defined.jsbn=!0;for(var q=0;q<e.length;++q)e[q](c);return c.jsbn}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/jsbn",["require","module"],function(){n.apply(null,Array.prototype.slice.call(arguments,
|
|
0))})})();(function(){function b(a){function c(b,d,e){e||(e=a.md.sha1.create());for(var h="",k=Math.ceil(d/e.digestLength),g=0;g<k;++g){var q=String.fromCharCode(g>>24&255,g>>16&255,g>>8&255,g&255);e.start();e.update(b+q);h+=e.digest().getBytes()}return h.substring(0,d)}var d=a.pkcs1=a.pkcs1||{};d.encode_rsa_oaep=function(b,d,e,h,k){var g,l,n,v;"string"===typeof e?(g=e,l=h||void 0,n=k||void 0):e&&(g=e.label||void 0,l=e.seed||void 0,n=e.md||void 0,e.mgf1&&e.mgf1.md&&(v=e.mgf1.md));n?n.start():n=a.md.sha1.create();
|
|
v||(v=n);b=Math.ceil(b.n.bitLength()/8);e=b-2*n.digestLength-2;if(d.length>e)throw v=Error("RSAES-OAEP input message length is too long."),v.length=d.length,v.maxLength=e,v;g||(g="");n.update(g,"raw");g=n.digest();h="";e-=d.length;for(k=0;k<e;k++)h+="\x00";d=g.getBytes()+h+"\u0001"+d;if(!l)l=a.random.getBytes(n.digestLength);else if(l.length!==n.digestLength)throw v=Error("Invalid RSAES-OAEP seed. The seed length must match the digest length."),v.seedLength=l.length,v.digestLength=n.digestLength,
|
|
v;b=c(l,b-n.digestLength-1,v);d=a.util.xorBytes(d,b,d.length);n=c(d,n.digestLength,v);return"\x00"+a.util.xorBytes(l,n,l.length)+d};d.decode_rsa_oaep=function(b,d,e,h){var k,g,l;"string"===typeof e?(k=e,g=h||void 0):e&&(k=e.label||void 0,g=e.md||void 0,e.mgf1&&e.mgf1.md&&(l=e.mgf1.md));e=Math.ceil(b.n.bitLength()/8);if(d.length!==e)throw l=Error("RSAES-OAEP encoded message length is invalid."),l.length=d.length,l.expectedLength=e,l;void 0===g?g=a.md.sha1.create():g.start();l||(l=g);if(e<2*g.digestLength+
|
|
2)throw Error("RSAES-OAEP key is too short for the hash function.");k||(k="");g.update(k,"raw");k=g.digest().getBytes();b=d.charAt(0);h=d.substring(1,g.digestLength+1);d=d.substring(1+g.digestLength);var n=c(d,g.digestLength,l);h=a.util.xorBytes(h,n,h.length);l=c(h,e-g.digestLength-1,l);d=a.util.xorBytes(d,l,d.length);e=d.substring(0,g.digestLength);l="\x00"!==b;for(b=0;b<g.digestLength;++b)l|=k.charAt(b)!==e.charAt(b);k=1;for(g=b=g.digestLength;g<d.length;g++)e=d.charCodeAt(g),h=e&1^1,l|=e&(k?65534:
|
|
0),k&=h,b+=k;if(l||1!==d.charCodeAt(b))throw Error("Invalid RSAES-OAEP padding.");return d.substring(b+1)}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.pkcs1)return c.pkcs1;c.defined.pkcs1=!0;for(var l=0;l<e.length;++l)e[l](c);return c.pkcs1}},
|
|
l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/pkcs1",["require","module","./util","./random","./sha1"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(a,b,p,g){return"workers"in p?e(a,b,p,g):d(a,b,p,g)}function d(b,c,e,k){var q=l(b,c),x=0,m=n(q.bitLength());"millerRabinTests"in
|
|
e&&(m=e.millerRabinTests);var u=10;"maxBlockTime"in e&&(u=e.maxBlockTime);var v=+new Date;do{q.bitLength()>b&&(q=l(b,c));if(q.isProbablePrime(m))return k(null,q);q.dAddOffset(g[x++%8],0)}while(0>u||+new Date-v<u);a.util.setImmediate(function(){d(b,c,e,k)})}function e(b,c,g,q){function m(){function a(e){if(!h){--p;var g=e.data;if(g.found){for(e=0;e<d.length;++e)d[e].terminate();h=!0;return q(null,new k(g.prime,16))}x.bitLength()>b&&(x=l(b,c));g=x.toString(16);e.target.postMessage({hex:g,workLoad:u});
|
|
x.dAddOffset(n,0)}}C=Math.max(1,C);for(var d=[],e=0;e<C;++e)d[e]=new Worker(v);for(var p=C,e=0;e<C;++e)d[e].addEventListener("message",a);var h=!1}if("undefined"===typeof Worker)return d(b,c,g,q);var x=l(b,c),C=g.workers,u=g.workLoad||100,n=30*u/8,v=g.workerScript||"forge/prime.worker.js";if(-1===C)return a.util.estimateCores(function(a,b){a&&(b=2);C=b-1;m()});m()}function l(a,b){var c=new k(a,b),d=a-1;c.testBit(d)||c.bitwiseTo(k.ONE.shiftLeft(d),v,c);c.dAddOffset(31-c.mod(u).byteValue(),0);return c}
|
|
function n(a){return 100>=a?27:150>=a?18:200>=a?15:250>=a?12:300>=a?9:350>=a?8:400>=a?7:500>=a?6:600>=a?5:800>=a?4:1250>=a?3:2}if(!a.prime){var m=a.prime=a.prime||{},k=a.jsbn.BigInteger,g=[6,4,2,4,2,4,6,2],u=new k(null);u.fromInt(30);var v=function(a,b){return a|b};m.generateProbablePrime=function(b,d,e){"function"===typeof d&&(e=d,d={});d=d||{};var h=d.algorithm||"PRIMEINC";"string"===typeof h&&(h={name:h});h.options=h.options||{};var g=d.prng||a.random;d={nextBytes:function(a){for(var b=g.getBytesSync(a.length),
|
|
c=0;c<a.length;++c)a[c]=b.charCodeAt(c)}};if("PRIMEINC"===h.name)return c(b,d,h.options,e);throw Error("Invalid prime generation algorithm: "+h.name);}}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.prime)return c.prime;c.defined.prime=!0;for(var l=
|
|
0;l<e.length;++l)e[l](c);return c.prime}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/prime",["require","module","./util","./jsbn","./random"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(b,d,e){var h=a.util.createBuffer();d=Math.ceil(d.n.bitLength()/8);if(b.length>d-11)throw h=
|
|
Error("Message is too long for PKCS#1 v1.5 padding."),h.length=b.length,h.max=d-11,h;h.putByte(0);h.putByte(e);d=d-3-b.length;if(0===e||1===e){e=0===e?0:255;for(var g=0;g<d;++g)h.putByte(e)}else for(;0<d;){for(var k=0,l=a.random.getBytes(d),g=0;g<d;++g)e=l.charCodeAt(g),0===e?++k:h.putByte(e);d=k}h.putByte(0);h.putBytes(b);return h}function d(b,c,e,h){c=Math.ceil(c.n.bitLength()/8);b=a.util.createBuffer(b);var g=b.getByte(),k=b.getByte();if(0!==g||e&&0!==k&&1!==k||!e&&2!=k||e&&0===k&&"undefined"===
|
|
typeof h)throw Error("Encryption block is invalid.");e=0;if(0===k)for(e=c-3-h,h=0;h<e;++h){if(0!==b.getByte())throw Error("Encryption block is invalid.");}else if(1===k)for(e=0;1<b.length();){if(255!==b.getByte()){--b.read;break}++e}else if(2===k)for(e=0;1<b.length();){if(0===b.getByte()){--b.read;break}++e}if(0!==b.getByte()||e!==c-3-b.length())throw Error("Encryption block is invalid.");return b.getBytes()}function e(b,c,d){function h(){k(b.pBits,function(a,c){if(a)return d(a);b.p=c;if(null!==b.q)return l(a,
|
|
b.q);k(b.qBits,l)})}function k(b,c){a.prime.generateProbablePrime(b,q,c)}function l(a,c){if(a)return d(a);b.q=c;if(0>b.p.compareTo(b.q)){var e=b.p;b.p=b.q;b.q=e}0!==b.p.subtract(m.ONE).gcd(b.e).compareTo(m.ONE)?(b.p=null,h()):0!==b.q.subtract(m.ONE).gcd(b.e).compareTo(m.ONE)?(b.q=null,k(b.qBits,l)):(b.p1=b.p.subtract(m.ONE),b.q1=b.q.subtract(m.ONE),b.phi=b.p1.multiply(b.q1),0!==b.phi.gcd(b.e).compareTo(m.ONE)?(b.p=b.q=null,h()):(b.n=b.p.multiply(b.q),b.n.bitLength()!==b.bits?(b.q=null,k(b.qBits,l)):
|
|
(e=b.e.modInverse(b.phi),b.keys={privateKey:g.rsa.setPrivateKey(b.n,b.e,e,b.p,b.q,e.mod(b.p1),e.mod(b.q1),b.q.modInverse(b.p)),publicKey:g.rsa.setPublicKey(b.n,b.e)},d(null,b.keys))))}"function"===typeof c&&(d=c,c={});c=c||{};var q={algorithm:{name:c.algorithm||"PRIMEINC",options:{workers:c.workers||2,workLoad:c.workLoad||100,workerScript:c.workerScript}}};"prng"in c&&(q.prng=c.prng);h()}function l(b){b=b.toString(16);"8"<=b[0]&&(b="00"+b);return a.util.hexToBytes(b)}function n(a){return 100>=a?27:
|
|
150>=a?18:200>=a?15:250>=a?12:300>=a?9:350>=a?8:400>=a?7:500>=a?6:600>=a?5:800>=a?4:1250>=a?3:2}if("undefined"===typeof m)var m=a.jsbn.BigInteger;var k=a.asn1;a.pki=a.pki||{};a.pki.rsa=a.rsa=a.rsa||{};var g=a.pki,u=[6,4,2,4,2,4,6,2],v={name:"PrivateKeyInfo",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:k.Class.UNIVERSAL,
|
|
type:k.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:k.Class.UNIVERSAL,type:k.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:k.Class.UNIVERSAL,type:k.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},D={name:"RSAPrivateKey",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",
|
|
tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",
|
|
tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},y={name:"RSAPublicKey",tagClass:k.Class.UNIVERSAL,
|
|
type:k.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},z=a.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:k.Class.UNIVERSAL,
|
|
type:k.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:k.Class.UNIVERSAL,type:k.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:k.Class.UNIVERSAL,type:k.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},A=function(a){var b;if(a.algorithm in g.oids)b=g.oids[a.algorithm];
|
|
else throw b=Error("Unknown message digest algorithm."),b.algorithm=a.algorithm,b;var c=k.oidToDer(b).getBytes();b=k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[]);var d=k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[]);d.value.push(k.create(k.Class.UNIVERSAL,k.Type.OID,!1,c));d.value.push(k.create(k.Class.UNIVERSAL,k.Type.NULL,!1,""));a=k.create(k.Class.UNIVERSAL,k.Type.OCTETSTRING,!1,a.digest().getBytes());b.value.push(d);b.value.push(a);return k.toDer(b).getBytes()},R=function(b,c,d){if(d)return b.modPow(c.e,
|
|
c.n);if(!c.p||!c.q)return b.modPow(c.d,c.n);c.dP||(c.dP=c.d.mod(c.p.subtract(m.ONE)));c.dQ||(c.dQ=c.d.mod(c.q.subtract(m.ONE)));c.qInv||(c.qInv=c.q.modInverse(c.p));do d=new m(a.util.bytesToHex(a.random.getBytes(c.n.bitLength()/8)),16);while(0<=d.compareTo(c.n)||!d.gcd(c.n).equals(m.ONE));b=b.multiply(d.modPow(c.e,c.n)).mod(c.n);var e=b.mod(c.p).modPow(c.dP,c.p);for(b=b.mod(c.q).modPow(c.dQ,c.q);0>e.compareTo(b);)e=e.add(c.p);b=e.subtract(b).multiply(c.qInv).mod(c.p).multiply(c.q).add(b);return b=
|
|
b.multiply(d.modInverse(c.n)).mod(c.n)};g.rsa.encrypt=function(b,d,e){var h=e,g=Math.ceil(d.n.bitLength()/8);!1!==e&&!0!==e?(h=2===e,e=c(b,d,e)):(e=a.util.createBuffer(),e.putBytes(b));b=new m(e.toHex(),16);d=R(b,d,h).toString(16);h=a.util.createBuffer();for(g-=Math.ceil(d.length/2);0<g;)h.putByte(0),--g;h.putBytes(a.util.hexToBytes(d));return h.getBytes()};g.rsa.decrypt=function(b,c,e,g){var k=Math.ceil(c.n.bitLength()/8);if(b.length!==k)throw c=Error("Encrypted message length is invalid."),c.length=
|
|
b.length,c.expected=k,c;b=new m(a.util.createBuffer(b).toHex(),16);if(0<=b.compareTo(c.n))throw Error("Encrypted message is invalid.");b=R(b,c,e).toString(16);for(var l=a.util.createBuffer(),k=k-Math.ceil(b.length/2);0<k;)l.putByte(0),--k;l.putBytes(a.util.hexToBytes(b));return!1!==g?d(l.getBytes(),c,e):l.getBytes()};g.rsa.createKeyPairGenerationState=function(b,c,d){"string"===typeof b&&(b=parseInt(b,10));b=b||2048;d=d||{};var e=d.prng||a.random,h={nextBytes:function(a){for(var b=e.getBytesSync(a.length),
|
|
c=0;c<a.length;++c)a[c]=b.charCodeAt(c)}};d=d.algorithm||"PRIMEINC";if("PRIMEINC"===d)b={algorithm:d,state:0,bits:b,rng:h,eInt:c||65537,e:new m(null),p:null,q:null,qBits:b>>1,pBits:b-(b>>1),pqState:0,num:null,keys:null},b.e.fromInt(b.eInt);else throw Error("Invalid key generation algorithm: "+d);return b};g.rsa.stepKeyPairGenerationState=function(a,b){"algorithm"in a||(a.algorithm="PRIMEINC");var c=new m(null);c.fromInt(30);for(var d=0,e=function(a,b){return a|b},p=+new Date,h,k=0;null===a.keys&&
|
|
(0>=b||k<b);){if(0===a.state){h=null===a.p?a.pBits:a.qBits;var l=h-1;0===a.pqState?(a.num=new m(h,a.rng),a.num.testBit(l)||a.num.bitwiseTo(m.ONE.shiftLeft(l),e,a.num),a.num.dAddOffset(31-a.num.mod(c).byteValue(),0),d=0,++a.pqState):1===a.pqState?a.num.bitLength()>h?a.pqState=0:a.num.isProbablePrime(n(a.num.bitLength()))?++a.pqState:a.num.dAddOffset(u[d++%8],0):2===a.pqState?a.pqState=0===a.num.subtract(m.ONE).gcd(a.e).compareTo(m.ONE)?3:0:3===a.pqState&&(a.pqState=0,null===a.p?a.p=a.num:a.q=a.num,
|
|
null!==a.p&&null!==a.q&&++a.state,a.num=null)}else 1===a.state?(0>a.p.compareTo(a.q)&&(a.num=a.p,a.p=a.q,a.q=a.num),++a.state):2===a.state?(a.p1=a.p.subtract(m.ONE),a.q1=a.q.subtract(m.ONE),a.phi=a.p1.multiply(a.q1),++a.state):3===a.state?0===a.phi.gcd(a.e).compareTo(m.ONE)?++a.state:(a.p=null,a.q=null,a.state=0):4===a.state?(a.n=a.p.multiply(a.q),a.n.bitLength()===a.bits?++a.state:(a.q=null,a.state=0)):5===a.state&&(h=a.e.modInverse(a.phi),a.keys={privateKey:g.rsa.setPrivateKey(a.n,a.e,h,a.p,a.q,
|
|
h.mod(a.p1),h.mod(a.q1),a.q.modInverse(a.p)),publicKey:g.rsa.setPublicKey(a.n,a.e)});h=+new Date;k+=h-p;p=h}return null!==a.keys};g.rsa.generateKeyPair=function(a,b,c,d){1===arguments.length?"object"===typeof a?(c=a,a=void 0):"function"===typeof a&&(d=a,a=void 0):2===arguments.length?"number"===typeof a?"function"===typeof b?(d=b,b=void 0):"number"!==typeof b&&(c=b,b=void 0):(c=a,d=b,b=a=void 0):3===arguments.length&&("number"===typeof b?"function"===typeof c&&(d=c,c=void 0):(d=c,c=b,b=void 0));c=
|
|
c||{};void 0===a&&(a=c.bits||2048);void 0===b&&(b=c.e||65537);var p=g.rsa.createKeyPairGenerationState(a,b,c);if(!d)return g.rsa.stepKeyPairGenerationState(p,0),p.keys;e(p,c,d)};g.setRsaPublicKey=g.rsa.setPublicKey=function(b,e){var l={n:b,e:e,encrypt:function(b,d,e){"string"===typeof d?d=d.toUpperCase():void 0===d&&(d="RSAES-PKCS1-V1_5");if("RSAES-PKCS1-V1_5"===d)d={encode:function(a,b,d){return c(a,b,2).getBytes()}};else if("RSA-OAEP"===d||"RSAES-OAEP"===d)d={encode:function(b,c){return a.pkcs1.encode_rsa_oaep(c,
|
|
b,e)}};else if(-1!==["RAW","NONE","NULL",null].indexOf(d))d={encode:function(a){return a}};else if("string"===typeof d)throw Error('Unsupported encryption scheme: "'+d+'".');b=d.encode(b,l,!0);return g.rsa.encrypt(b,l,!0)},verify:function(a,b,c){"string"===typeof c?c=c.toUpperCase():void 0===c&&(c="RSASSA-PKCS1-V1_5");if("RSASSA-PKCS1-V1_5"===c)c={verify:function(a,b){b=d(b,l,!0);var c=k.fromDer(b);return a===c.value[1].value}};else if("NONE"===c||"NULL"===c||null===c)c={verify:function(a,b){b=d(b,
|
|
l,!0);return a===b}};b=g.rsa.decrypt(b,l,!0,!1);return c.verify(a,b,l.n.bitLength())}};return l};g.setRsaPrivateKey=g.rsa.setPrivateKey=function(b,c,e,k,l,q,m,u){var y={n:b,e:c,d:e,p:k,q:l,dP:q,dQ:m,qInv:u,decrypt:function(b,c,e){"string"===typeof c?c=c.toUpperCase():void 0===c&&(c="RSAES-PKCS1-V1_5");b=g.rsa.decrypt(b,y,!1,!1);if("RSAES-PKCS1-V1_5"===c)c={decode:d};else if("RSA-OAEP"===c||"RSAES-OAEP"===c)c={decode:function(b,c){return a.pkcs1.decode_rsa_oaep(c,b,e)}};else if(-1!==["RAW","NONE",
|
|
"NULL",null].indexOf(c))c={decode:function(a){return a}};else throw Error('Unsupported encryption scheme: "'+c+'".');return c.decode(b,y,!1)},sign:function(a,b){var c=!1;"string"===typeof b&&(b=b.toUpperCase());if(void 0===b||"RSASSA-PKCS1-V1_5"===b)b={encode:A},c=1;else if("NONE"===b||"NULL"===b||null===b)b={encode:function(){return a}},c=1;var d=b.encode(a,y.n.bitLength());return g.rsa.encrypt(d,y,c)}};return y};g.wrapRsaPrivateKey=function(a){return k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,
|
|
[k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,k.integerToDer(0).getBytes()),k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(g.oids.rsaEncryption).getBytes()),k.create(k.Class.UNIVERSAL,k.Type.NULL,!1,"")]),k.create(k.Class.UNIVERSAL,k.Type.OCTETSTRING,!1,k.toDer(a).getBytes())])};g.privateKeyFromAsn1=function(b){var c={},d=[];k.validate(b,v,c,d)&&(b=k.fromDer(a.util.createBuffer(c.privateKey)));c={};d=[];if(!k.validate(b,D,c,d))throw c=Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey."),
|
|
c.errors=d,c;var e,h,l,q,A,d=a.util.createBuffer(c.privateKeyModulus).toHex();b=a.util.createBuffer(c.privateKeyPublicExponent).toHex();e=a.util.createBuffer(c.privateKeyPrivateExponent).toHex();h=a.util.createBuffer(c.privateKeyPrime1).toHex();l=a.util.createBuffer(c.privateKeyPrime2).toHex();q=a.util.createBuffer(c.privateKeyExponent1).toHex();A=a.util.createBuffer(c.privateKeyExponent2).toHex();c=a.util.createBuffer(c.privateKeyCoefficient).toHex();return g.setRsaPrivateKey(new m(d,16),new m(b,
|
|
16),new m(e,16),new m(h,16),new m(l,16),new m(q,16),new m(A,16),new m(c,16))};g.privateKeyToAsn1=g.privateKeyToRSAPrivateKey=function(a){return k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,k.integerToDer(0).getBytes()),k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,l(a.n)),k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,l(a.e)),k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,l(a.d)),k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,l(a.p)),k.create(k.Class.UNIVERSAL,
|
|
k.Type.INTEGER,!1,l(a.q)),k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,l(a.dP)),k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,l(a.dQ)),k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,l(a.qInv))])};g.publicKeyFromAsn1=function(b){var c={},d=[];if(k.validate(b,z,c,d)){d=k.derToOid(c.publicKeyOid);if(d!==g.oids.rsaEncryption)throw c=Error("Cannot read public key. Unknown OID."),c.oid=d,c;b=c.rsaPublicKey}d=[];if(!k.validate(b,y,c,d))throw c=Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey."),
|
|
c.errors=d,c;d=a.util.createBuffer(c.publicKeyModulus).toHex();c=a.util.createBuffer(c.publicKeyExponent).toHex();return g.setRsaPublicKey(new m(d,16),new m(c,16))};g.publicKeyToAsn1=g.publicKeyToSubjectPublicKeyInfo=function(a){return k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(g.oids.rsaEncryption).getBytes()),k.create(k.Class.UNIVERSAL,k.Type.NULL,!1,"")]),k.create(k.Class.UNIVERSAL,k.Type.BITSTRING,
|
|
!1,[g.publicKeyToRSAPublicKey(a)])])};g.publicKeyToRSAPublicKey=function(a){return k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,l(a.n)),k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,l(a.e))])}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||
|
|
{};c.defined=c.defined||{};if(c.defined.rsa)return c.rsa;c.defined.rsa=!0;for(var l=0;l<e.length;++l)e[l](c);return c.rsa}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/rsa","require module ./asn1 ./jsbn ./oids ./pkcs1 ./prime ./random ./util".split(" "),function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(a,
|
|
b){return a.start().update(b).digest().getBytes()}if("undefined"===typeof d)var d=a.jsbn.BigInteger;var e=a.asn1,l=a.pki=a.pki||{};l.pbe=a.pbe=a.pbe||{};var n=l.oids,m={name:"EncryptedPrivateKeyInfo",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:e.Class.UNIVERSAL,type:e.Type.OID,constructed:!1,capture:"encryptionOid"},
|
|
{name:"AlgorithmIdentifier.parameters",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:e.Class.UNIVERSAL,type:e.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},k={name:"PBES2Algorithms",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",
|
|
tagClass:e.Class.UNIVERSAL,type:e.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:e.Class.UNIVERSAL,type:e.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:e.Class.UNIVERSAL,type:e.Type.INTEGER,onstructed:!0,capture:"kdfIterationCount"}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:e.Class.UNIVERSAL,
|
|
type:e.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:e.Class.UNIVERSAL,type:e.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:e.Class.UNIVERSAL,type:e.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},g={name:"pkcs-12PbeParams",tagClass:e.Class.UNIVERSAL,type:e.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:e.Class.UNIVERSAL,type:e.Type.OCTETSTRING,constructed:!1,capture:"salt"},
|
|
{name:"pkcs-12PbeParams.iterations",tagClass:e.Class.UNIVERSAL,type:e.Type.INTEGER,constructed:!1,capture:"iterations"}]};l.encryptPrivateKeyInfo=function(b,c,d){d=d||{};d.saltSize=d.saltSize||8;d.count=d.count||2048;d.algorithm=d.algorithm||"aes128";var h=a.random.getBytesSync(d.saltSize),g=d.count,k=e.integerToDer(g),q;if(0===d.algorithm.indexOf("aes")||"des"===d.algorithm){var x,m;switch(d.algorithm){case "aes128":x=q=16;d=n["aes128-CBC"];m=a.aes.createEncryptionCipher;break;case "aes192":q=24;
|
|
x=16;d=n["aes192-CBC"];m=a.aes.createEncryptionCipher;break;case "aes256":q=32;x=16;d=n["aes256-CBC"];m=a.aes.createEncryptionCipher;break;case "des":x=q=8;d=n.desCBC;m=a.des.createEncryptionCipher;break;default:throw h=Error("Cannot encrypt private key. Unknown encryption algorithm."),h.algorithm=d.algorithm,h;}var v=a.pkcs5.pbkdf2(c,h,g,q);c=a.random.getBytesSync(x);g=m(v);g.start(c);g.update(e.toDer(b));g.finish();b=g.output.getBytes();h=e.create(e.Class.UNIVERSAL,e.Type.SEQUENCE,!0,[e.create(e.Class.UNIVERSAL,
|
|
e.Type.OID,!1,e.oidToDer(n.pkcs5PBES2).getBytes()),e.create(e.Class.UNIVERSAL,e.Type.SEQUENCE,!0,[e.create(e.Class.UNIVERSAL,e.Type.SEQUENCE,!0,[e.create(e.Class.UNIVERSAL,e.Type.OID,!1,e.oidToDer(n.pkcs5PBKDF2).getBytes()),e.create(e.Class.UNIVERSAL,e.Type.SEQUENCE,!0,[e.create(e.Class.UNIVERSAL,e.Type.OCTETSTRING,!1,h),e.create(e.Class.UNIVERSAL,e.Type.INTEGER,!1,k.getBytes())])]),e.create(e.Class.UNIVERSAL,e.Type.SEQUENCE,!0,[e.create(e.Class.UNIVERSAL,e.Type.OID,!1,e.oidToDer(d).getBytes()),e.create(e.Class.UNIVERSAL,
|
|
e.Type.OCTETSTRING,!1,c)])])])}else if("3des"===d.algorithm)q=24,d=new a.util.ByteBuffer(h),v=l.pbe.generatePkcs12Key(c,d,1,g,q),c=l.pbe.generatePkcs12Key(c,d,2,g,q),g=a.des.createEncryptionCipher(v),g.start(c),g.update(e.toDer(b)),g.finish(),b=g.output.getBytes(),h=e.create(e.Class.UNIVERSAL,e.Type.SEQUENCE,!0,[e.create(e.Class.UNIVERSAL,e.Type.OID,!1,e.oidToDer(n["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),e.create(e.Class.UNIVERSAL,e.Type.SEQUENCE,!0,[e.create(e.Class.UNIVERSAL,e.Type.OCTETSTRING,
|
|
!1,h),e.create(e.Class.UNIVERSAL,e.Type.INTEGER,!1,k.getBytes())])]);else throw h=Error("Cannot encrypt private key. Unknown encryption algorithm."),h.algorithm=d.algorithm,h;return e.create(e.Class.UNIVERSAL,e.Type.SEQUENCE,!0,[h,e.create(e.Class.UNIVERSAL,e.Type.OCTETSTRING,!1,b)])};l.decryptPrivateKeyInfo=function(b,c){var d=null,h={},g=[];if(!e.validate(b,m,h,g))throw d=Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo."),d.errors=g,d;g=e.derToOid(h.encryptionOid);
|
|
g=l.pbe.getCipher(g,h.encryptionParams,c);h=a.util.createBuffer(h.encryptedData);g.update(h);g.finish()&&(d=e.fromDer(g.output));return d};l.encryptedPrivateKeyToPem=function(b,c){var d={type:"ENCRYPTED PRIVATE KEY",body:e.toDer(b).getBytes()};return a.pem.encode(d,{maxline:c})};l.encryptedPrivateKeyFromPem=function(b){b=a.pem.decode(b)[0];if("ENCRYPTED PRIVATE KEY"!==b.type){var c=Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');c.headerType=
|
|
b.type;throw c;}if(b.procType&&"ENCRYPTED"===b.procType.type)throw Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return e.fromDer(b.body)};l.encryptRsaPrivateKey=function(b,c,d){d=d||{};if(!d.legacy)return b=l.wrapRsaPrivateKey(l.privateKeyToAsn1(b)),b=l.encryptPrivateKeyInfo(b,c,d),l.encryptedPrivateKeyToPem(b);var h,g,k;switch(d.algorithm){case "aes128":d="AES-128-CBC";g=16;h=a.random.getBytesSync(16);k=a.aes.createEncryptionCipher;break;case "aes192":d="AES-192-CBC";
|
|
g=24;h=a.random.getBytesSync(16);k=a.aes.createEncryptionCipher;break;case "aes256":d="AES-256-CBC";g=32;h=a.random.getBytesSync(16);k=a.aes.createEncryptionCipher;break;case "3des":d="DES-EDE3-CBC";g=24;h=a.random.getBytesSync(8);k=a.des.createEncryptionCipher;break;case "des":d="DES-CBC";g=8;h=a.random.getBytesSync(8);k=a.des.createEncryptionCipher;break;default:throw b=Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+d.algorithm+'".'),b.algorithm=d.algorithm,b;}c=a.pbe.opensslDeriveBytes(c,
|
|
h.substr(0,8),g);c=k(c);c.start(h);c.update(e.toDer(l.privateKeyToAsn1(b)));c.finish();b={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:d,parameters:a.util.bytesToHex(h).toUpperCase()},body:c.output.getBytes()};return a.pem.encode(b)};l.decryptRsaPrivateKey=function(b,c){var d=null,h=a.pem.decode(b)[0];if("ENCRYPTED PRIVATE KEY"!==h.type&&"PRIVATE KEY"!==h.type&&"RSA PRIVATE KEY"!==h.type)throw d=Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".'),
|
|
d.headerType=d,d;if(h.procType&&"ENCRYPTED"===h.procType.type){var g,k;switch(h.dekInfo.algorithm){case "DES-CBC":g=8;k=a.des.createDecryptionCipher;break;case "DES-EDE3-CBC":g=24;k=a.des.createDecryptionCipher;break;case "AES-128-CBC":g=16;k=a.aes.createDecryptionCipher;break;case "AES-192-CBC":g=24;k=a.aes.createDecryptionCipher;break;case "AES-256-CBC":g=32;k=a.aes.createDecryptionCipher;break;case "RC2-40-CBC":g=5;k=function(b){return a.rc2.createDecryptionCipher(b,40)};break;case "RC2-64-CBC":g=
|
|
8;k=function(b){return a.rc2.createDecryptionCipher(b,64)};break;case "RC2-128-CBC":g=16;k=function(b){return a.rc2.createDecryptionCipher(b,128)};break;default:throw d=Error('Could not decrypt private key; unsupported encryption algorithm "'+h.dekInfo.algorithm+'".'),d.algorithm=h.dekInfo.algorithm,d;}var q=a.util.hexToBytes(h.dekInfo.parameters);g=a.pbe.opensslDeriveBytes(c,q.substr(0,8),g);k=k(g);k.start(q);k.update(a.util.createBuffer(h.body));if(k.finish())d=k.output.getBytes();else return d}else d=
|
|
h.body;d="ENCRYPTED PRIVATE KEY"===h.type?l.decryptPrivateKeyInfo(e.fromDer(d),c):e.fromDer(d);null!==d&&(d=l.privateKeyFromAsn1(d));return d};l.pbe.generatePkcs12Key=function(b,c,d,e,h,g){var k,l;if("undefined"===typeof g||null===g)g=a.md.sha1.create();var q=g.digestLength,m=g.blockLength,n=new a.util.ByteBuffer,v=new a.util.ByteBuffer;if(null!==b&&void 0!==b){for(l=0;l<b.length;l++)v.putInt16(b.charCodeAt(l));v.putInt16(0)}b=v.length();var r=c.length(),w=new a.util.ByteBuffer;w.fillWithByte(d,m);
|
|
var B=m*Math.ceil(r/m);d=new a.util.ByteBuffer;for(l=0;l<B;l++)d.putByte(c.at(l%r));B=m*Math.ceil(b/m);c=new a.util.ByteBuffer;for(l=0;l<B;l++)c.putByte(v.at(l%b));v=d;v.putBuffer(c);c=Math.ceil(h/q);for(d=1;d<=c;d++){B=new a.util.ByteBuffer;B.putBytes(w.bytes());B.putBytes(v.bytes());for(l=0;l<e;l++)g.start(),g.update(B.getBytes()),B=g.digest();var E=new a.util.ByteBuffer;for(l=0;l<m;l++)E.putByte(B.at(l%q));var Y=Math.ceil(r/m)+Math.ceil(b/m),K=new a.util.ByteBuffer;for(k=0;k<Y;k++){var ea=new a.util.ByteBuffer(v.getBytes(m)),
|
|
V=511;for(l=E.length()-1;0<=l;l--)V>>=8,V+=E.at(l)+ea.at(l),ea.setAt(l,V&255);K.putBuffer(ea)}v=K;n.putBuffer(B)}n.truncate(n.length()-h);return n};l.pbe.getCipher=function(a,b,c){switch(a){case l.oids.pkcs5PBES2:return l.pbe.getCipherForPBES2(a,b,c);case l.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case l.oids["pbewithSHAAnd40BitRC2-CBC"]:return l.pbe.getCipherForPKCS12PBE(a,b,c);default:throw b=Error("Cannot read encrypted PBE data block. Unsupported OID."),b.oid=a,b.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC",
|
|
"pbewithSHAAnd40BitRC2-CBC"],b;}};l.pbe.getCipherForPBES2=function(b,c,d){var h={};b=[];if(!e.validate(c,k,h,b)){var g=Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");g.errors=b;throw g;}b=e.derToOid(h.kdfOid);if(b!==l.oids.pkcs5PBKDF2)throw g=Error("Cannot read encrypted private key. Unsupported key derivation function OID."),g.oid=b,g.supportedOids=["pkcs5PBKDF2"],g;b=e.derToOid(h.encOid);if(b!==l.oids["aes128-CBC"]&&
|
|
b!==l.oids["aes192-CBC"]&&b!==l.oids["aes256-CBC"]&&b!==l.oids["des-EDE3-CBC"]&&b!==l.oids.desCBC)throw g=Error("Cannot read encrypted private key. Unsupported encryption scheme OID."),g.oid=b,g.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],g;c=h.kdfSalt;var q=a.util.createBuffer(h.kdfIterationCount),q=q.getInt(q.length()<<3),m;switch(l.oids[b]){case "aes128-CBC":m=16;g=a.aes.createDecryptionCipher;break;case "aes192-CBC":m=24;g=a.aes.createDecryptionCipher;break;
|
|
case "aes256-CBC":m=32;g=a.aes.createDecryptionCipher;break;case "des-EDE3-CBC":m=24;g=a.des.createDecryptionCipher;break;case "desCBC":m=8,g=a.des.createDecryptionCipher}b=a.pkcs5.pbkdf2(d,c,q,m);h=h.encIv;g=g(b);g.start(h);return g};l.pbe.getCipherForPKCS12PBE=function(b,c,d){var h={},k=[];if(!e.validate(c,g,h,k))throw d=Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo."),d.errors=k,d;var k=a.util.createBuffer(h.salt),h=a.util.createBuffer(h.iterations),
|
|
h=h.getInt(h.length()<<3),q;switch(b){case l.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:q=24;c=8;b=a.des.startDecrypting;break;case l.oids["pbewithSHAAnd40BitRC2-CBC"]:q=5;c=8;b=function(b,c){var d=a.rc2.createDecryptionCipher(b,40);d.start(c,null);return d};break;default:throw d=Error("Cannot read PKCS #12 PBE data block. Unsupported OID."),d.oid=b,d;}q=l.pbe.generatePkcs12Key(d,k,1,h,q);d=l.pbe.generatePkcs12Key(d,k,2,h,c);return b(q,d)};l.pbe.opensslDeriveBytes=function(b,d,e,h){if("undefined"===
|
|
typeof h||null===h)h=a.md.md5.create();null===d&&(d="");for(var g=[c(h,b+d)],k=16,l=1;k<e;++l,k+=16)g.push(c(h,g[l-1]+b+d));return g.join("").substr(0,e)}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.pbe)return c.pbe;c.defined.pbe=!0;for(var l=
|
|
0;l<e.length;++l)e[l](c);return c.pbe}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/pbe","require module ./aes ./asn1 ./des ./md ./oids ./pem ./pbkdf2 ./random ./rc2 ./rsa ./util".split(" "),function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){var c=a.asn1,d=a.pkcs7asn1=a.pkcs7asn1||{};a.pkcs7=
|
|
a.pkcs7||{};a.pkcs7.asn1=d;a={name:"ContentInfo",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.ContentType",tagClass:c.Class.UNIVERSAL,type:c.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:c.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,captureAsn1:"content"}]};d.contentInfoValidator=a;var e={name:"EncryptedContentInfo",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentType",
|
|
tagClass:c.Class.UNIVERSAL,type:c.Type.OID,constructed:!1,capture:"contentType"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentEncryptionAlgorithm.algorithm",tagClass:c.Class.UNIVERSAL,type:c.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm.parameter",tagClass:c.Class.UNIVERSAL,captureAsn1:"encParameter"}]},{name:"EncryptedContentInfo.encryptedContent",
|
|
tagClass:c.Class.CONTEXT_SPECIFIC,type:0,capture:"encryptedContent",captureAsn1:"encryptedContentAsn1"}]};d.envelopedDataValidator={name:"EnvelopedData",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,value:[{name:"EnvelopedData.Version",tagClass:c.Class.UNIVERSAL,type:c.Type.INTEGER,constructed:!1,capture:"version"},{name:"EnvelopedData.RecipientInfos",tagClass:c.Class.UNIVERSAL,type:c.Type.SET,constructed:!0,captureAsn1:"recipientInfos"}].concat(e)};d.encryptedDataValidator={name:"EncryptedData",
|
|
tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedData.Version",tagClass:c.Class.UNIVERSAL,type:c.Type.INTEGER,constructed:!1,capture:"version"}].concat(e)};d.signedDataValidator={name:"SignedData",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,value:[{name:"SignedData.Version",tagClass:c.Class.UNIVERSAL,type:c.Type.INTEGER,constructed:!1,capture:"version"},{name:"SignedData.DigestAlgorithms",tagClass:c.Class.UNIVERSAL,type:c.Type.SET,constructed:!0,
|
|
captureAsn1:"digestAlgorithms"},a,{name:"SignedData.Certificates",tagClass:c.Class.CONTEXT_SPECIFIC,type:0,optional:!0,captureAsn1:"certificates"},{name:"SignedData.CertificateRevocationLists",tagClass:c.Class.CONTEXT_SPECIFIC,type:1,optional:!0,captureAsn1:"crls"},{name:"SignedData.SignerInfos",tagClass:c.Class.UNIVERSAL,type:c.Type.SET,capture:"signerInfos",optional:!0,value:[{name:"SignerInfo",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.version",tagClass:c.Class.UNIVERSAL,
|
|
type:c.Type.INTEGER,constructed:!1},{name:"SignerInfo.issuerAndSerialNumber",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.issuerAndSerialNumber.issuer",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"SignerInfo.issuerAndSerialNumber.serialNumber",tagClass:c.Class.UNIVERSAL,type:c.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"SignerInfo.digestAlgorithm",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,
|
|
value:[{name:"SignerInfo.digestAlgorithm.algorithm",tagClass:c.Class.UNIVERSAL,type:c.Type.OID,constructed:!1,capture:"digestAlgorithm"},{name:"SignerInfo.digestAlgorithm.parameter",tagClass:c.Class.UNIVERSAL,constructed:!1,captureAsn1:"digestParameter",optional:!0}]},{name:"SignerInfo.authenticatedAttributes",tagClass:c.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"authenticatedAttributes"},{name:"SignerInfo.digestEncryptionAlgorithm",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,
|
|
constructed:!0,capture:"signatureAlgorithm"},{name:"SignerInfo.encryptedDigest",tagClass:c.Class.UNIVERSAL,type:c.Type.OCTETSTRING,constructed:!1,capture:"signature"},{name:"SignerInfo.unauthenticatedAttributes",tagClass:c.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,capture:"unauthenticatedAttributes"}]}]}]};d.recipientInfoValidator={name:"RecipientInfo",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.version",tagClass:c.Class.UNIVERSAL,type:c.Type.INTEGER,
|
|
constructed:!1,capture:"version"},{name:"RecipientInfo.issuerAndSerial",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.issuerAndSerial.issuer",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"RecipientInfo.issuerAndSerial.serialNumber",tagClass:c.Class.UNIVERSAL,type:c.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"RecipientInfo.keyEncryptionAlgorithm",tagClass:c.Class.UNIVERSAL,type:c.Type.SEQUENCE,constructed:!0,
|
|
value:[{name:"RecipientInfo.keyEncryptionAlgorithm.algorithm",tagClass:c.Class.UNIVERSAL,type:c.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"RecipientInfo.keyEncryptionAlgorithm.parameter",tagClass:c.Class.UNIVERSAL,constructed:!1,captureAsn1:"encParameter"}]},{name:"RecipientInfo.encryptedKey",tagClass:c.Class.UNIVERSAL,type:c.Type.OCTETSTRING,constructed:!1,capture:"encKey"}]}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===
|
|
typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.pkcs7asn1)return c.pkcs7asn1;c.defined.pkcs7asn1=!0;for(var l=0;l<e.length;++l)e[l](c);return c.pkcs7asn1}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/pkcs7asn1",
|
|
["require","module","./asn1","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){a.mgf=a.mgf||{};(a.mgf.mgf1=a.mgf1=a.mgf1||{}).create=function(b){return{generate:function(c,d){for(var e=new a.util.ByteBuffer,l=Math.ceil(d/b.digestLength),m=0;m<l;m++){var k=new a.util.ByteBuffer;k.putInt32(m);b.start();b.update(c+k.getBytes());e.putBuffer(b.digest())}e.truncate(e.length()-d);return e.getBytes()}}}}if("function"!==typeof a)if("object"===typeof module&&
|
|
module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.mgf1)return c.mgf1;c.defined.mgf1=!0;for(var l=0;l<e.length;++l)e[l](c);return c.mgf1}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,
|
|
Array.prototype.slice.call(arguments,0))};a("js/mgf1",["require","module","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){a.mgf=a.mgf||{};a.mgf.mgf1=a.mgf1}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||
|
|
{};if(c.defined.mgf)return c.mgf;c.defined.mgf=!0;for(var l=0;l<e.length;++l)e[l](c);return c.mgf}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/mgf",["require","module","./mgf1"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){(a.pss=a.pss||{}).create=function(b){3===arguments.length&&
|
|
(b={md:arguments[0],mgf:arguments[1],saltLength:arguments[2]});var c=b.md,d=b.mgf,e=c.digestLength,l=b.salt||null;"string"===typeof l&&(l=a.util.createBuffer(l));var m;if("saltLength"in b)m=b.saltLength;else if(null!==l)m=l.length();else throw Error("Salt length not specified or specific salt not given.");if(null!==l&&l.length()!==m)throw Error("Given salt length does not match length of given salt.");var k=b.prng||a.random;return{encode:function(b,q){var n,v=q-1,y=Math.ceil(v/8),z=b.digest().getBytes();
|
|
if(y<e+m+2)throw Error("Message is too long to encrypt.");var A;A=null===l?k.getBytesSync(m):l.bytes();n=new a.util.ByteBuffer;n.fillWithByte(0,8);n.putBytes(z);n.putBytes(A);c.start();c.update(n.getBytes());z=c.digest().getBytes();n=new a.util.ByteBuffer;n.fillWithByte(0,y-m-e-2);n.putByte(1);n.putBytes(A);var R=n.getBytes(),x=y-e-1,C=d.generate(z,x);A="";for(n=0;n<x;n++)A+=String.fromCharCode(R.charCodeAt(n)^C.charCodeAt(n));v=65280>>8*y-v&255;A=String.fromCharCode(A.charCodeAt(0)&~v)+A.substr(1);
|
|
return A+z+String.fromCharCode(188)},verify:function(b,k,l){var q;q=l-1;l=Math.ceil(q/8);k=k.substr(-l);if(l<e+m+2)throw Error("Inconsistent parameters to PSS signature verification.");if(188!==k.charCodeAt(l-1))throw Error("Encoded message does not end in 0xBC.");var n=l-e-1,v=k.substr(0,n);k=k.substr(n,e);var A=65280>>8*l-q&255;if(0!==(v.charCodeAt(0)&A))throw Error("Bits beyond keysize not zero as expected.");var R=d.generate(k,n),x="";for(q=0;q<n;q++)x+=String.fromCharCode(v.charCodeAt(q)^R.charCodeAt(q));
|
|
x=String.fromCharCode(x.charCodeAt(0)&~A)+x.substr(1);l=l-e-m-2;for(q=0;q<l;q++)if(0!==x.charCodeAt(q))throw Error("Leftmost octets not zero as expected");if(1!==x.charCodeAt(l))throw Error("Inconsistent PSS signature, 0x01 marker not found");l=x.substr(-m);n=new a.util.ByteBuffer;n.fillWithByte(0,8);n.putBytes(b);n.putBytes(l);c.start();c.update(n.getBytes());b=c.digest().getBytes();return k===b}}}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,
|
|
module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.pss)return c.pss;c.defined.pss=!0;for(var l=0;l<e.length;++l)e[l](c);return c.pss}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/pss",
|
|
["require","module","./random","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(a,b){"string"===typeof b&&(b={shortName:b});for(var d=null,e,g=0;null===d&&g<a.attributes.length;++g)e=a.attributes[g],b.type&&b.type===e.type?d=e:b.name&&b.name===e.name?d=e:b.shortName&&b.shortName===e.shortName&&(d=e);return d}function d(b){var c=k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[]),e;b=b.attributes;for(var g=0;g<b.length;++g){e=b[g];
|
|
var h=e.value,l=k.Type.PRINTABLESTRING;"valueTagClass"in e&&(l=e.valueTagClass,l===k.Type.UTF8&&(h=a.util.encodeUtf8(h)));e=k.create(k.Class.UNIVERSAL,k.Type.SET,!0,[k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(e.type).getBytes()),k.create(k.Class.UNIVERSAL,l,!1,h)])]);c.value.push(e)}return c}function e(a){for(var b,c=0;c<a.length;++c){b=a[c];"undefined"===typeof b.name&&(b.type&&b.type in g.oids?b.name=g.oids[b.type]:b.shortName&&b.shortName in
|
|
v&&(b.name=g.oids[v[b.shortName]]));if("undefined"===typeof b.type)if(b.name&&b.name in g.oids)b.type=g.oids[b.name];else throw a=Error("Attribute type not specified."),a.attribute=b,a;"undefined"===typeof b.shortName&&b.name&&b.name in v&&(b.shortName=v[b.name]);if(b.type===u.extensionRequest&&(b.valueConstructed=!0,b.valueTagClass=k.Type.SEQUENCE,!b.value&&b.extensions)){b.value=[];for(var d=0;d<b.extensions.length;++d)b.value.push(g.certificateExtensionToAsn1(l(b.extensions[d])))}if("undefined"===
|
|
typeof b.value)throw a=Error("Attribute value not specified."),a.attribute=b,a;}}function l(b,c){c=c||{};"undefined"===typeof b.name&&b.id&&b.id in g.oids&&(b.name=g.oids[b.id]);if("undefined"===typeof b.id)if(b.name&&b.name in g.oids)b.id=g.oids[b.name];else{var d=Error("Extension ID not specified.");d.extension=b;throw d;}if("undefined"!==typeof b.value)return b;if("keyUsage"===b.name){var e=d=0,h=0;b.digitalSignature&&(e|=128,d=7);b.nonRepudiation&&(e|=64,d=6);b.keyEncipherment&&(e|=32,d=5);b.dataEncipherment&&
|
|
(e|=16,d=4);b.keyAgreement&&(e|=8,d=3);b.keyCertSign&&(e|=4,d=2);b.cRLSign&&(e|=2,d=1);b.encipherOnly&&(e|=1,d=0);b.decipherOnly&&(h|=128,d=7);d=String.fromCharCode(d);0!==h?d+=String.fromCharCode(e)+String.fromCharCode(h):0!==e&&(d+=String.fromCharCode(e));b.value=k.create(k.Class.UNIVERSAL,k.Type.BITSTRING,!1,d)}else if("basicConstraints"===b.name)b.value=k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[]),b.cA&&b.value.value.push(k.create(k.Class.UNIVERSAL,k.Type.BOOLEAN,!1,String.fromCharCode(255))),
|
|
"pathLenConstraint"in b&&b.value.value.push(k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,k.integerToDer(b.pathLenConstraint).getBytes()));else if("extKeyUsage"===b.name)for(e in b.value=k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[]),d=b.value.value,b)!0===b[e]&&(e in u?d.push(k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(u[e]).getBytes())):-1!==e.indexOf(".")&&d.push(k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(e).getBytes())));else if("nsCertType"===b.name)e=d=0,b.client&&(e|=128,
|
|
d=7),b.server&&(e|=64,d=6),b.email&&(e|=32,d=5),b.objsign&&(e|=16,d=4),b.reserved&&(e|=8,d=3),b.sslCA&&(e|=4,d=2),b.emailCA&&(e|=2,d=1),b.objCA&&(e|=1,d=0),d=String.fromCharCode(d),0!==e&&(d+=String.fromCharCode(e)),b.value=k.create(k.Class.UNIVERSAL,k.Type.BITSTRING,!1,d);else if("subjectAltName"===b.name||"issuerAltName"===b.name)for(b.value=k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[]),h=0;h<b.altNames.length;++h){e=b.altNames[h];d=e.value;if(7===e.type&&e.ip){if(d=a.util.bytesFromIP(e.ip),
|
|
null===d)throw d=Error('Extension "ip" value is not a valid IPv4 or IPv6 address.'),d.extension=b,d;}else 8===e.type&&(d=e.oid?k.oidToDer(k.oidToDer(e.oid)):k.oidToDer(d));b.value.value.push(k.create(k.Class.CONTEXT_SPECIFIC,e.type,!1,d))}else"subjectKeyIdentifier"===b.name&&c.cert&&(d=c.cert.generateSubjectKeyIdentifier(),b.subjectKeyIdentifier=d.toHex(),b.value=k.create(k.Class.UNIVERSAL,k.Type.OCTETSTRING,!1,d.getBytes()));if("undefined"===typeof b.value)throw d=Error("Extension value not specified."),
|
|
d.extension=b,d;return b}function n(a,b){switch(a){case u["RSASSA-PSS"]:var c=[];void 0!==b.hash.algorithmOid&&c.push(k.create(k.Class.CONTEXT_SPECIFIC,0,!0,[k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(b.hash.algorithmOid).getBytes()),k.create(k.Class.UNIVERSAL,k.Type.NULL,!1,"")])]));void 0!==b.mgf.algorithmOid&&c.push(k.create(k.Class.CONTEXT_SPECIFIC,1,!0,[k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.OID,
|
|
!1,k.oidToDer(b.mgf.algorithmOid).getBytes()),k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(b.mgf.hash.algorithmOid).getBytes()),k.create(k.Class.UNIVERSAL,k.Type.NULL,!1,"")])])]));void 0!==b.saltLength&&c.push(k.create(k.Class.CONTEXT_SPECIFIC,2,!0,[k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,k.integerToDer(b.saltLength).getBytes())]));return k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,c);default:return k.create(k.Class.UNIVERSAL,k.Type.NULL,
|
|
!1,"")}}function m(b){var c=k.create(k.Class.CONTEXT_SPECIFIC,0,!0,[]);if(0===b.attributes.length)return c;b=b.attributes;for(var d=0;d<b.length;++d){var e=b[d],g=e.value,h=k.Type.UTF8;"valueTagClass"in e&&(h=e.valueTagClass);h===k.Type.UTF8&&(g=a.util.encodeUtf8(g));var l=!1;"valueConstructed"in e&&(l=e.valueConstructed);e=k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(e.type).getBytes()),k.create(k.Class.UNIVERSAL,k.Type.SET,!0,[k.create(k.Class.UNIVERSAL,
|
|
h,l,g)])]);c.value.push(e)}return c}var k=a.asn1,g=a.pki=a.pki||{},u=g.oids,v={};v.CN=u.commonName;v.commonName="CN";v.C=u.countryName;v.countryName="C";v.L=u.localityName;v.localityName="L";v.ST=u.stateOrProvinceName;v.stateOrProvinceName="ST";v.O=u.organizationName;v.organizationName="O";v.OU=u.organizationalUnitName;v.organizationalUnitName="OU";v.E=u.emailAddress;v.emailAddress="E";var D=a.pki.rsa.publicKeyValidator,y={name:"Certificate",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,
|
|
value:[{name:"Certificate.TBSCertificate",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,captureAsn1:"tbsCertificate",value:[{name:"Certificate.TBSCertificate.version",tagClass:k.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.version.integer",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"certVersion"}]},{name:"Certificate.TBSCertificate.serialNumber",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,
|
|
capture:"certSerialNumber"},{name:"Certificate.TBSCertificate.signature",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate.signature.algorithm",tagClass:k.Class.UNIVERSAL,type:k.Type.OID,constructed:!1,capture:"certinfoSignatureOid"},{name:"Certificate.TBSCertificate.signature.parameters",tagClass:k.Class.UNIVERSAL,optional:!0,captureAsn1:"certinfoSignatureParams"}]},{name:"Certificate.TBSCertificate.issuer",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,
|
|
constructed:!0,captureAsn1:"certIssuer"},{name:"Certificate.TBSCertificate.validity",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate.validity.notBefore (utc)",tagClass:k.Class.UNIVERSAL,type:k.Type.UTCTIME,constructed:!1,optional:!0,capture:"certValidity1UTCTime"},{name:"Certificate.TBSCertificate.validity.notBefore (generalized)",tagClass:k.Class.UNIVERSAL,type:k.Type.GENERALIZEDTIME,constructed:!1,optional:!0,capture:"certValidity2GeneralizedTime"},
|
|
{name:"Certificate.TBSCertificate.validity.notAfter (utc)",tagClass:k.Class.UNIVERSAL,type:k.Type.UTCTIME,constructed:!1,optional:!0,capture:"certValidity3UTCTime"},{name:"Certificate.TBSCertificate.validity.notAfter (generalized)",tagClass:k.Class.UNIVERSAL,type:k.Type.GENERALIZEDTIME,constructed:!1,optional:!0,capture:"certValidity4GeneralizedTime"}]},{name:"Certificate.TBSCertificate.subject",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,captureAsn1:"certSubject"},D,{name:"Certificate.TBSCertificate.issuerUniqueID",
|
|
tagClass:k.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.issuerUniqueID.id",tagClass:k.Class.UNIVERSAL,type:k.Type.BITSTRING,constructed:!1,capture:"certIssuerUniqueId"}]},{name:"Certificate.TBSCertificate.subjectUniqueID",tagClass:k.Class.CONTEXT_SPECIFIC,type:2,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.subjectUniqueID.id",tagClass:k.Class.UNIVERSAL,type:k.Type.BITSTRING,constructed:!1,capture:"certSubjectUniqueId"}]},
|
|
{name:"Certificate.TBSCertificate.extensions",tagClass:k.Class.CONTEXT_SPECIFIC,type:3,constructed:!0,captureAsn1:"certExtensions",optional:!0}]},{name:"Certificate.signatureAlgorithm",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.signatureAlgorithm.algorithm",tagClass:k.Class.UNIVERSAL,type:k.Type.OID,constructed:!1,capture:"certSignatureOid"},{name:"Certificate.TBSCertificate.signature.parameters",tagClass:k.Class.UNIVERSAL,optional:!0,captureAsn1:"certSignatureParams"}]},
|
|
{name:"Certificate.signatureValue",tagClass:k.Class.UNIVERSAL,type:k.Type.BITSTRING,constructed:!1,capture:"certSignature"}]},z={name:"rsapss",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,value:[{name:"rsapss.hashAlgorithm",tagClass:k.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,value:[{name:"rsapss.hashAlgorithm.AlgorithmIdentifier",tagClass:k.Class.UNIVERSAL,type:k.Class.SEQUENCE,constructed:!0,optional:!0,value:[{name:"rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm",tagClass:k.Class.UNIVERSAL,
|
|
type:k.Type.OID,constructed:!1,capture:"hashOid"}]}]},{name:"rsapss.maskGenAlgorithm",tagClass:k.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier",tagClass:k.Class.UNIVERSAL,type:k.Class.SEQUENCE,constructed:!0,optional:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm",tagClass:k.Class.UNIVERSAL,type:k.Type.OID,constructed:!1,capture:"maskGenOid"},{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.params",tagClass:k.Class.UNIVERSAL,
|
|
type:k.Type.SEQUENCE,constructed:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm",tagClass:k.Class.UNIVERSAL,type:k.Type.OID,constructed:!1,capture:"maskGenHashOid"}]}]}]},{name:"rsapss.saltLength",tagClass:k.Class.CONTEXT_SPECIFIC,type:2,optional:!0,value:[{name:"rsapss.saltLength.saltLength",tagClass:k.Class.UNIVERSAL,type:k.Class.INTEGER,constructed:!1,capture:"saltLength"}]},{name:"rsapss.trailerField",tagClass:k.Class.CONTEXT_SPECIFIC,type:3,optional:!0,value:[{name:"rsapss.trailer.trailer",
|
|
tagClass:k.Class.UNIVERSAL,type:k.Class.INTEGER,constructed:!1,capture:"trailer"}]}]},A={name:"CertificationRequest",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,captureAsn1:"csr",value:[{name:"CertificationRequestInfo",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,captureAsn1:"certificationRequestInfo",value:[{name:"CertificationRequestInfo.integer",tagClass:k.Class.UNIVERSAL,type:k.Type.INTEGER,constructed:!1,capture:"certificationRequestInfoVersion"},{name:"CertificationRequestInfo.subject",
|
|
tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,captureAsn1:"certificationRequestInfoSubject"},D,{name:"CertificationRequestInfo.attributes",tagClass:k.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"certificationRequestInfoAttributes",value:[{name:"CertificationRequestInfo.attributes",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,value:[{name:"CertificationRequestInfo.attributes.type",tagClass:k.Class.UNIVERSAL,type:k.Type.OID,constructed:!1},{name:"CertificationRequestInfo.attributes.value",
|
|
tagClass:k.Class.UNIVERSAL,type:k.Type.SET,constructed:!0}]}]}]},{name:"CertificationRequest.signatureAlgorithm",tagClass:k.Class.UNIVERSAL,type:k.Type.SEQUENCE,constructed:!0,value:[{name:"CertificationRequest.signatureAlgorithm.algorithm",tagClass:k.Class.UNIVERSAL,type:k.Type.OID,constructed:!1,capture:"csrSignatureOid"},{name:"CertificationRequest.signatureAlgorithm.parameters",tagClass:k.Class.UNIVERSAL,optional:!0,captureAsn1:"csrSignatureParams"}]},{name:"CertificationRequest.signature",tagClass:k.Class.UNIVERSAL,
|
|
type:k.Type.BITSTRING,constructed:!1,capture:"csrSignature"}]};g.RDNAttributesAsArray=function(a,b){for(var c=[],d,e,g,h=0;h<a.value.length;++h){d=a.value[h];for(var p=0;p<d.value.length;++p)g={},e=d.value[p],g.type=k.derToOid(e.value[0].value),g.value=e.value[1].value,g.valueTagClass=e.value[1].type,g.type in u&&(g.name=u[g.type],g.name in v&&(g.shortName=v[g.name])),b&&(b.update(g.type),b.update(g.value)),c.push(g)}return c};g.CRIAttributesAsArray=function(a){for(var b=[],c=0;c<a.length;++c)for(var d=
|
|
a[c],e=k.derToOid(d.value[0].value),d=d.value[1].value,h=0;h<d.length;++h){var p={};p.type=e;p.value=d[h].value;p.valueTagClass=d[h].type;p.type in u&&(p.name=u[p.type],p.name in v&&(p.shortName=v[p.name]));if(p.type===u.extensionRequest){p.extensions=[];for(var l=0;l<p.value.length;++l)p.extensions.push(g.certificateExtensionFromAsn1(p.value[l]))}b.push(p)}return b};var R=function(a,b,c){var d={};if(a!==u["RSASSA-PSS"])return d;c&&(d={hash:{algorithmOid:u.sha1},mgf:{algorithmOid:u.mgf1,hash:{algorithmOid:u.sha1}},
|
|
saltLength:20});c={};a=[];if(!k.validate(b,z,c,a))throw b=Error("Cannot read RSASSA-PSS parameter block."),b.errors=a,b;void 0!==c.hashOid&&(d.hash=d.hash||{},d.hash.algorithmOid=k.derToOid(c.hashOid));void 0!==c.maskGenOid&&(d.mgf=d.mgf||{},d.mgf.algorithmOid=k.derToOid(c.maskGenOid),d.mgf.hash=d.mgf.hash||{},d.mgf.hash.algorithmOid=k.derToOid(c.maskGenHashOid));void 0!==c.saltLength&&(d.saltLength=c.saltLength.charCodeAt(0));return d};g.certificateFromPem=function(b,c,d){b=a.pem.decode(b)[0];if("CERTIFICATE"!==
|
|
b.type&&"X509 CERTIFICATE"!==b.type&&"TRUSTED CERTIFICATE"!==b.type)throw c=Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".'),c.headerType=b.type,c;if(b.procType&&"ENCRYPTED"===b.procType.type)throw Error("Could not convert certificate from PEM; PEM is encrypted.");d=k.fromDer(b.body,d);return g.certificateFromAsn1(d,c)};g.certificateToPem=function(b,c){var d={type:"CERTIFICATE",body:k.toDer(g.certificateToAsn1(b)).getBytes()};
|
|
return a.pem.encode(d,{maxline:c})};g.publicKeyFromPem=function(b){b=a.pem.decode(b)[0];if("PUBLIC KEY"!==b.type&&"RSA PUBLIC KEY"!==b.type){var c=Error('Could not convert public key from PEM; PEM header type is not "PUBLIC KEY" or "RSA PUBLIC KEY".');c.headerType=b.type;throw c;}if(b.procType&&"ENCRYPTED"===b.procType.type)throw Error("Could not convert public key from PEM; PEM is encrypted.");b=k.fromDer(b.body);return g.publicKeyFromAsn1(b)};g.publicKeyToPem=function(b,c){var d={type:"PUBLIC KEY",
|
|
body:k.toDer(g.publicKeyToAsn1(b)).getBytes()};return a.pem.encode(d,{maxline:c})};g.publicKeyToRSAPublicKeyPem=function(b,c){var d={type:"RSA PUBLIC KEY",body:k.toDer(g.publicKeyToRSAPublicKey(b)).getBytes()};return a.pem.encode(d,{maxline:c})};g.getPublicKeyFingerprint=function(b,c){c=c||{};var d=c.md||a.md.sha1.create(),e;switch(c.type||"RSAPublicKey"){case "RSAPublicKey":e=k.toDer(g.publicKeyToRSAPublicKey(b)).getBytes();break;case "SubjectPublicKeyInfo":e=k.toDer(g.publicKeyToAsn1(b)).getBytes();
|
|
break;default:throw Error('Unknown fingerprint type "'+c.type+'".');}d.start();d.update(e);d=d.digest();if("hex"===c.encoding)return d=d.toHex(),c.delimiter?d.match(/.{2}/g).join(c.delimiter):d;if("binary"===c.encoding)return d.getBytes();if(c.encoding)throw Error('Unknown encoding "'+c.encoding+'".');return d};g.certificationRequestFromPem=function(b,c,d){b=a.pem.decode(b)[0];if("CERTIFICATE REQUEST"!==b.type)throw c=Error('Could not convert certification request from PEM; PEM header type is not "CERTIFICATE REQUEST".'),
|
|
c.headerType=b.type,c;if(b.procType&&"ENCRYPTED"===b.procType.type)throw Error("Could not convert certification request from PEM; PEM is encrypted.");d=k.fromDer(b.body,d);return g.certificationRequestFromAsn1(d,c)};g.certificationRequestToPem=function(b,c){var d={type:"CERTIFICATE REQUEST",body:k.toDer(g.certificationRequestToAsn1(b)).getBytes()};return a.pem.encode(d,{maxline:c})};g.createCertificate=function(){var b={version:2,serialNumber:"00",signatureOid:null,signature:null,siginfo:{}};b.siginfo.algorithmOid=
|
|
null;b.validity={};b.validity.notBefore=new Date;b.validity.notAfter=new Date;b.issuer={};b.issuer.getField=function(a){return c(b.issuer,a)};b.issuer.addField=function(a){e([a]);b.issuer.attributes.push(a)};b.issuer.attributes=[];b.issuer.hash=null;b.subject={};b.subject.getField=function(a){return c(b.subject,a)};b.subject.addField=function(a){e([a]);b.subject.attributes.push(a)};b.subject.attributes=[];b.subject.hash=null;b.extensions=[];b.publicKey=null;b.md=null;b.setSubject=function(a,c){e(a);
|
|
b.subject.attributes=a;delete b.subject.uniqueId;c&&(b.subject.uniqueId=c);b.subject.hash=null};b.setIssuer=function(a,c){e(a);b.issuer.attributes=a;delete b.issuer.uniqueId;c&&(b.issuer.uniqueId=c);b.issuer.hash=null};b.setExtensions=function(a){for(var c=0;c<a.length;++c)l(a[c],{cert:b});b.extensions=a};b.getExtension=function(a){"string"===typeof a&&(a={name:a});for(var c=null,d,e=0;null===c&&e<b.extensions.length;++e)d=b.extensions[e],a.id&&d.id===a.id?c=d:a.name&&d.name===a.name&&(c=d);return c};
|
|
b.sign=function(c,d){b.md=d||a.md.sha1.create();var e=u[b.md.algorithm+"WithRSAEncryption"];if(!e)throw e=Error("Could not compute certificate digest. Unknown message digest algorithm OID."),e.algorithm=b.md.algorithm,e;b.signatureOid=b.siginfo.algorithmOid=e;b.tbsCertificate=g.getTBSCertificate(b);e=k.toDer(b.tbsCertificate);b.md.update(e.getBytes());b.signature=c.sign(b.md)};b.verify=function(c){var d=!1;if(!b.issued(c)){var d=b.subject,e=Error("The parent certificate did not issue the given child certificate; the child certificate's issuer does not match the parent's subject.");
|
|
e.expectedIssuer=c.issuer.attributes;e.actualIssuer=d.attributes;throw e;}e=c.md;if(null===e){if(c.signatureOid in u)switch(u[c.signatureOid]){case "sha1WithRSAEncryption":e=a.md.sha1.create();break;case "md5WithRSAEncryption":e=a.md.md5.create();break;case "sha256WithRSAEncryption":e=a.md.sha256.create();break;case "sha512WithRSAEncryption":e=a.md.sha512.create();break;case "RSASSA-PSS":e=a.md.sha256.create()}if(null===e)throw e=Error("Could not compute certificate digest. Unknown signature OID."),
|
|
e.signatureOid=c.signatureOid,e;var h=c.tbsCertificate||g.getTBSCertificate(c),h=k.toDer(h);e.update(h.getBytes())}if(null!==e){var l;switch(c.signatureOid){case u.sha1WithRSAEncryption:l=void 0;break;case u["RSASSA-PSS"]:d=u[c.signatureParameters.mgf.hash.algorithmOid];if(void 0===d||void 0===a.md[d])throw e=Error("Unsupported MGF hash function."),e.oid=c.signatureParameters.mgf.hash.algorithmOid,e.name=d,e;l=u[c.signatureParameters.mgf.algorithmOid];if(void 0===l||void 0===a.mgf[l])throw e=Error("Unsupported MGF function."),
|
|
e.oid=c.signatureParameters.mgf.algorithmOid,e.name=l,e;l=a.mgf[l].create(a.md[d].create());d=u[c.signatureParameters.hash.algorithmOid];if(void 0===d||void 0===a.md[d])throw{message:"Unsupported RSASSA-PSS hash function.",oid:c.signatureParameters.hash.algorithmOid,name:d};l=a.pss.create(a.md[d].create(),l,c.signatureParameters.saltLength)}d=b.publicKey.verify(e.digest().getBytes(),c.signature,l)}return d};b.isIssuer=function(a){var c=!1,d=b.issuer;a=a.subject;if(d.hash&&a.hash)c=d.hash===a.hash;
|
|
else if(d.attributes.length===a.attributes.length)for(var c=!0,e,g,h=0;c&&h<d.attributes.length;++h)if(e=d.attributes[h],g=a.attributes[h],e.type!==g.type||e.value!==g.value)c=!1;return c};b.issued=function(a){return a.isIssuer(b)};b.generateSubjectKeyIdentifier=function(){return g.getPublicKeyFingerprint(b.publicKey,{type:"RSAPublicKey"})};b.verifySubjectKeyIdentifier=function(){for(var c=u.subjectKeyIdentifier,d=0;d<b.extensions.length;++d){var e=b.extensions[d];if(e.id===c)return c=b.generateSubjectKeyIdentifier().getBytes(),
|
|
a.util.hexToBytes(e.subjectKeyIdentifier)===c}return!1};return b};g.certificateFromAsn1=function(b,d){var h={},l=[];if(!k.validate(b,y,h,l))throw h=Error("Cannot read X.509 certificate. ASN.1 object is not an X509v3 Certificate."),h.errors=l,h;if("string"!==typeof h.certSignature){for(var l="\x00",m=0;m<h.certSignature.length;++m)l+=k.toDer(h.certSignature[m]).getBytes();h.certSignature=l}var l=k.derToOid(h.publicKeyOid),r=g.createCertificate();r.version=h.certVersion?h.certVersion.charCodeAt(0):
|
|
0;m=a.util.createBuffer(h.certSerialNumber);r.serialNumber=m.toHex();r.signatureOid=a.asn1.derToOid(h.certSignatureOid);r.signatureParameters=R(r.signatureOid,h.certSignatureParams,!0);r.siginfo.algorithmOid=a.asn1.derToOid(h.certinfoSignatureOid);r.siginfo.parameters=R(r.siginfo.algorithmOid,h.certinfoSignatureParams,!1);m=a.util.createBuffer(h.certSignature);++m.read;r.signature=m.getBytes();m=[];void 0!==h.certValidity1UTCTime&&m.push(k.utcTimeToDate(h.certValidity1UTCTime));void 0!==h.certValidity2GeneralizedTime&&
|
|
m.push(k.generalizedTimeToDate(h.certValidity2GeneralizedTime));void 0!==h.certValidity3UTCTime&&m.push(k.utcTimeToDate(h.certValidity3UTCTime));void 0!==h.certValidity4GeneralizedTime&&m.push(k.generalizedTimeToDate(h.certValidity4GeneralizedTime));if(2<m.length)throw Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate.");if(2>m.length)throw Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime.");
|
|
r.validity.notBefore=m[0];r.validity.notAfter=m[1];r.tbsCertificate=h.tbsCertificate;if(d){r.md=null;if(r.signatureOid in u)switch(l=u[r.signatureOid],l){case "sha1WithRSAEncryption":r.md=a.md.sha1.create();break;case "md5WithRSAEncryption":r.md=a.md.md5.create();break;case "sha256WithRSAEncryption":r.md=a.md.sha256.create();break;case "sha512WithRSAEncryption":r.md=a.md.sha512.create();break;case "RSASSA-PSS":r.md=a.md.sha256.create()}if(null===r.md)throw h=Error("Could not compute certificate digest. Unknown signature OID."),
|
|
h.signatureOid=r.signatureOid,h;m=k.toDer(r.tbsCertificate);r.md.update(m.getBytes())}m=a.md.sha1.create();r.issuer.getField=function(a){return c(r.issuer,a)};r.issuer.addField=function(a){e([a]);r.issuer.attributes.push(a)};r.issuer.attributes=g.RDNAttributesAsArray(h.certIssuer,m);h.certIssuerUniqueId&&(r.issuer.uniqueId=h.certIssuerUniqueId);r.issuer.hash=m.digest().toHex();m=a.md.sha1.create();r.subject.getField=function(a){return c(r.subject,a)};r.subject.addField=function(a){e([a]);r.subject.attributes.push(a)};
|
|
r.subject.attributes=g.RDNAttributesAsArray(h.certSubject,m);h.certSubjectUniqueId&&(r.subject.uniqueId=h.certSubjectUniqueId);r.subject.hash=m.digest().toHex();r.extensions=h.certExtensions?g.certificateExtensionsFromAsn1(h.certExtensions):[];l===g.oids.rsaEncryption&&(r.publicKey=g.publicKeyFromAsn1(h.subjectPublicKeyInfo));return r};g.certificateExtensionsFromAsn1=function(a){for(var b=[],c=0;c<a.value.length;++c)for(var d=a.value[c],e=0;e<d.value.length;++e)b.push(g.certificateExtensionFromAsn1(d.value[e]));
|
|
return b};g.certificateExtensionFromAsn1=function(b){var c={};c.id=k.derToOid(b.value[0].value);c.critical=!1;b.value[1].type===k.Type.BOOLEAN?(c.critical=0!==b.value[1].value.charCodeAt(0),c.value=b.value[2].value):c.value=b.value[1].value;if(c.id in u)if(c.name=u[c.id],"keyUsage"===c.name){b=k.fromDer(c.value);var d=0,e=0;1<b.value.length&&(d=b.value.charCodeAt(1),e=2<b.value.length?b.value.charCodeAt(2):0);c.digitalSignature=128===(d&128);c.nonRepudiation=64===(d&64);c.keyEncipherment=32===(d&
|
|
32);c.dataEncipherment=16===(d&16);c.keyAgreement=8===(d&8);c.keyCertSign=4===(d&4);c.cRLSign=2===(d&2);c.encipherOnly=1===(d&1);c.decipherOnly=128===(e&128)}else if("basicConstraints"===c.name)b=k.fromDer(c.value),c.cA=0<b.value.length&&b.value[0].type===k.Type.BOOLEAN?0!==b.value[0].value.charCodeAt(0):!1,d=null,0<b.value.length&&b.value[0].type===k.Type.INTEGER?d=b.value[0].value:1<b.value.length&&(d=b.value[1].value),null!==d&&(c.pathLenConstraint=k.derToInteger(d));else if("extKeyUsage"===c.name)for(b=
|
|
k.fromDer(c.value),d=0;d<b.value.length;++d)e=k.derToOid(b.value[d].value),e in u?c[u[e]]=!0:c[e]=!0;else if("nsCertType"===c.name)b=k.fromDer(c.value),d=0,1<b.value.length&&(d=b.value.charCodeAt(1)),c.client=128===(d&128),c.server=64===(d&64),c.email=32===(d&32),c.objsign=16===(d&16),c.reserved=8===(d&8),c.sslCA=4===(d&4),c.emailCA=2===(d&2),c.objCA=1===(d&1);else if("subjectAltName"===c.name||"issuerAltName"===c.name)for(c.altNames=[],b=k.fromDer(c.value),e=0;e<b.value.length;++e){var d=b.value[e],
|
|
h={type:d.type,value:d.value};c.altNames.push(h);switch(d.type){case 7:h.ip=a.util.bytesToIP(d.value);break;case 8:h.oid=k.derToOid(d.value)}}else"subjectKeyIdentifier"===c.name&&(b=k.fromDer(c.value),c.subjectKeyIdentifier=a.util.bytesToHex(b.value));return c};g.certificationRequestFromAsn1=function(b,d){var h={},l=[];if(!k.validate(b,A,h,l))throw h=Error("Cannot read PKCS#10 certificate request. ASN.1 object is not a PKCS#10 CertificationRequest."),h.errors=l,h;if("string"!==typeof h.csrSignature){for(var l=
|
|
"\x00",m=0;m<h.csrSignature.length;++m)l+=k.toDer(h.csrSignature[m]).getBytes();h.csrSignature=l}l=k.derToOid(h.publicKeyOid);if(l!==g.oids.rsaEncryption)throw Error("Cannot read public key. OID is not RSA.");var r=g.createCertificationRequest();r.version=h.csrVersion?h.csrVersion.charCodeAt(0):0;r.signatureOid=a.asn1.derToOid(h.csrSignatureOid);r.signatureParameters=R(r.signatureOid,h.csrSignatureParams,!0);r.siginfo.algorithmOid=a.asn1.derToOid(h.csrSignatureOid);r.siginfo.parameters=R(r.siginfo.algorithmOid,
|
|
h.csrSignatureParams,!1);l=a.util.createBuffer(h.csrSignature);++l.read;r.signature=l.getBytes();r.certificationRequestInfo=h.certificationRequestInfo;if(d){r.md=null;if(r.signatureOid in u)switch(l=u[r.signatureOid],l){case "sha1WithRSAEncryption":r.md=a.md.sha1.create();break;case "md5WithRSAEncryption":r.md=a.md.md5.create();break;case "sha256WithRSAEncryption":r.md=a.md.sha256.create();break;case "sha512WithRSAEncryption":r.md=a.md.sha512.create();break;case "RSASSA-PSS":r.md=a.md.sha256.create()}if(null===
|
|
r.md)throw h=Error("Could not compute certification request digest. Unknown signature OID."),h.signatureOid=r.signatureOid,h;l=k.toDer(r.certificationRequestInfo);r.md.update(l.getBytes())}l=a.md.sha1.create();r.subject.getField=function(a){return c(r.subject,a)};r.subject.addField=function(a){e([a]);r.subject.attributes.push(a)};r.subject.attributes=g.RDNAttributesAsArray(h.certificationRequestInfoSubject,l);r.subject.hash=l.digest().toHex();r.publicKey=g.publicKeyFromAsn1(h.subjectPublicKeyInfo);
|
|
r.getAttribute=function(a){return c(r,a)};r.addAttribute=function(a){e([a]);r.attributes.push(a)};r.attributes=g.CRIAttributesAsArray(h.certificationRequestInfoAttributes||[]);return r};g.createCertificationRequest=function(){var b={version:0,signatureOid:null,signature:null,siginfo:{}};b.siginfo.algorithmOid=null;b.subject={};b.subject.getField=function(a){return c(b.subject,a)};b.subject.addField=function(a){e([a]);b.subject.attributes.push(a)};b.subject.attributes=[];b.subject.hash=null;b.publicKey=
|
|
null;b.attributes=[];b.getAttribute=function(a){return c(b,a)};b.addAttribute=function(a){e([a]);b.attributes.push(a)};b.md=null;b.setSubject=function(a){e(a);b.subject.attributes=a;b.subject.hash=null};b.setAttributes=function(a){e(a);b.attributes=a};b.sign=function(c,d){b.md=d||a.md.sha1.create();var e=u[b.md.algorithm+"WithRSAEncryption"];if(!e)throw e=Error("Could not compute certification request digest. Unknown message digest algorithm OID."),e.algorithm=b.md.algorithm,e;b.signatureOid=b.siginfo.algorithmOid=
|
|
e;b.certificationRequestInfo=g.getCertificationRequestInfo(b);e=k.toDer(b.certificationRequestInfo);b.md.update(e.getBytes());b.signature=c.sign(b.md)};b.verify=function(){var c=!1,d=b.md;if(null===d){if(b.signatureOid in u)switch(u[b.signatureOid]){case "sha1WithRSAEncryption":d=a.md.sha1.create();break;case "md5WithRSAEncryption":d=a.md.md5.create();break;case "sha256WithRSAEncryption":d=a.md.sha256.create();break;case "sha512WithRSAEncryption":d=a.md.sha512.create();break;case "RSASSA-PSS":d=a.md.sha256.create()}if(null===
|
|
d)throw d=Error("Could not compute certification request digest. Unknown signature OID."),d.signatureOid=b.signatureOid,d;var e=b.certificationRequestInfo||g.getCertificationRequestInfo(b),e=k.toDer(e);d.update(e.getBytes())}if(null!==d){var h;switch(b.signatureOid){case u["RSASSA-PSS"]:c=u[b.signatureParameters.mgf.hash.algorithmOid];if(void 0===c||void 0===a.md[c])throw d=Error("Unsupported MGF hash function."),d.oid=b.signatureParameters.mgf.hash.algorithmOid,d.name=c,d;h=u[b.signatureParameters.mgf.algorithmOid];
|
|
if(void 0===h||void 0===a.mgf[h])throw d=Error("Unsupported MGF function."),d.oid=b.signatureParameters.mgf.algorithmOid,d.name=h,d;h=a.mgf[h].create(a.md[c].create());c=u[b.signatureParameters.hash.algorithmOid];if(void 0===c||void 0===a.md[c])throw d=Error("Unsupported RSASSA-PSS hash function."),d.oid=b.signatureParameters.hash.algorithmOid,d.name=c,d;h=a.pss.create(a.md[c].create(),h,b.signatureParameters.saltLength)}c=b.publicKey.verify(d.digest().getBytes(),b.signature,h)}return c};return b};
|
|
g.getTBSCertificate=function(b){var c=k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.CONTEXT_SPECIFIC,0,!0,[k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,k.integerToDer(b.version).getBytes())]),k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,a.util.hexToBytes(b.serialNumber)),k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(b.siginfo.algorithmOid).getBytes()),n(b.siginfo.algorithmOid,b.siginfo.parameters)]),d(b.issuer),k.create(k.Class.UNIVERSAL,
|
|
k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.UTCTIME,!1,k.dateToUtcTime(b.validity.notBefore)),k.create(k.Class.UNIVERSAL,k.Type.UTCTIME,!1,k.dateToUtcTime(b.validity.notAfter))]),d(b.subject),g.publicKeyToAsn1(b.publicKey)]);b.issuer.uniqueId&&c.value.push(k.create(k.Class.CONTEXT_SPECIFIC,1,!0,[k.create(k.Class.UNIVERSAL,k.Type.BITSTRING,!1,String.fromCharCode(0)+b.issuer.uniqueId)]));b.subject.uniqueId&&c.value.push(k.create(k.Class.CONTEXT_SPECIFIC,2,!0,[k.create(k.Class.UNIVERSAL,k.Type.BITSTRING,
|
|
!1,String.fromCharCode(0)+b.subject.uniqueId)]));0<b.extensions.length&&c.value.push(g.certificateExtensionsToAsn1(b.extensions));return c};g.getCertificationRequestInfo=function(a){return k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.INTEGER,!1,k.integerToDer(a.version).getBytes()),d(a.subject),g.publicKeyToAsn1(a.publicKey),m(a)])};g.distinguishedNameToAsn1=function(a){return d(a)};g.certificateToAsn1=function(a){var b=a.tbsCertificate||g.getTBSCertificate(a);
|
|
return k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[b,k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(a.signatureOid).getBytes()),n(a.signatureOid,a.signatureParameters)]),k.create(k.Class.UNIVERSAL,k.Type.BITSTRING,!1,String.fromCharCode(0)+a.signature)])};g.certificateExtensionsToAsn1=function(a){var b=k.create(k.Class.CONTEXT_SPECIFIC,3,!0,[]),c=k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[]);b.value.push(c);for(var d=0;d<a.length;++d)c.value.push(g.certificateExtensionToAsn1(a[d]));
|
|
return b};g.certificateExtensionToAsn1=function(a){var b=k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[]);b.value.push(k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(a.id).getBytes()));a.critical&&b.value.push(k.create(k.Class.UNIVERSAL,k.Type.BOOLEAN,!1,String.fromCharCode(255)));var c=a.value;"string"!==typeof a.value&&(c=k.toDer(c).getBytes());b.value.push(k.create(k.Class.UNIVERSAL,k.Type.OCTETSTRING,!1,c));return b};g.certificationRequestToAsn1=function(a){var b=a.certificationRequestInfo||
|
|
g.getCertificationRequestInfo(a);return k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[b,k.create(k.Class.UNIVERSAL,k.Type.SEQUENCE,!0,[k.create(k.Class.UNIVERSAL,k.Type.OID,!1,k.oidToDer(a.signatureOid).getBytes()),n(a.signatureOid,a.signatureParameters)]),k.create(k.Class.UNIVERSAL,k.Type.BITSTRING,!1,String.fromCharCode(0)+a.signature)])};g.createCaStore=function(b){function c(b){if(!b.hash){var l=a.md.sha1.create();b.attributes=g.RDNAttributesAsArray(d(b),l);b.hash=l.digest().toHex()}return e.certs[b.hash]||
|
|
null}var e={certs:{},getIssuer:function(a){return c(a.issuer)},addCertificate:function(b){"string"===typeof b&&(b=a.pki.certificateFromPem(b));if(!b.subject.hash){var c=a.md.sha1.create();b.subject.attributes=g.RDNAttributesAsArray(d(b.subject),c);b.subject.hash=c.digest().toHex()}b.subject.hash in e.certs?(c=e.certs[b.subject.hash],a.util.isArray(c)||(c=[c]),c.push(b)):e.certs[b.subject.hash]=b},hasCertificate:function(b){var d=c(b.subject);if(!d)return!1;a.util.isArray(d)||(d=[d]);b=k.toDer(g.certificateToAsn1(b)).getBytes();
|
|
for(var e=0;e<d.length;++e){var h=k.toDer(g.certificateToAsn1(d[e])).getBytes();if(b===h)return!0}return!1}};if(b)for(var l=0;l<b.length;++l)e.addCertificate(b[l]);return e};g.certificateError={bad_certificate:"forge.pki.BadCertificate",unsupported_certificate:"forge.pki.UnsupportedCertificate",certificate_revoked:"forge.pki.CertificateRevoked",certificate_expired:"forge.pki.CertificateExpired",certificate_unknown:"forge.pki.CertificateUnknown",unknown_ca:"forge.pki.UnknownCertificateAuthority"};
|
|
g.verifyCertificateChain=function(b,c,d){c=c.slice(0);var e=c.slice(0),h=new Date,l=!0,k=null,m=0;do{var q=c.shift(),A=null,u=!1;if(h<q.validity.notBefore||h>q.validity.notAfter)k={message:"Certificate is not valid yet or has expired.",error:g.certificateError.certificate_expired,notBefore:q.validity.notBefore,notAfter:q.validity.notAfter,now:h};if(null===k){A=c[0]||b.getIssuer(q);null===A&&q.isIssuer(q)&&(u=!0,A=q);if(A){var n=A;a.util.isArray(n)||(n=[n]);for(var y=!1;!y&&0<n.length;){A=n.shift();
|
|
try{y=A.verify(q)}catch(v){}}y||(k={message:"Certificate signature is invalid.",error:g.certificateError.bad_certificate})}null!==k||A&&!u||b.hasCertificate(q)||(k={message:"Certificate is not trusted.",error:g.certificateError.unknown_ca})}null===k&&A&&!q.isIssuer(A)&&(k={message:"Certificate issuer is invalid.",error:g.certificateError.bad_certificate});if(null===k)for(n={keyUsage:!0,basicConstraints:!0},y=0;null===k&&y<q.extensions.length;++y){var w=q.extensions[y];!w.critical||w.name in n||(k=
|
|
{message:"Certificate has an unsupported critical extension.",error:g.certificateError.unsupported_certificate})}null!==k||l&&(0!==c.length||A&&!u)||(l=q.getExtension("basicConstraints"),q=q.getExtension("keyUsage"),null!==q&&(q.keyCertSign&&null!==l||(k={message:"Certificate keyUsage or basicConstraints conflict or indicate that the certificate is not a CA. If the certificate is the only one in the chain or isn't the first then the certificate must be a valid CA.",error:g.certificateError.bad_certificate})),
|
|
null!==k||null===l||l.cA||(k={message:"Certificate basicConstraints indicates the certificate is not a CA.",error:g.certificateError.bad_certificate}),null===k&&null!==q&&"pathLenConstraint"in l&&m-1>l.pathLenConstraint&&(k={message:"Certificate basicConstraints pathLenConstraint violated.",error:g.certificateError.bad_certificate}));q=null===k?!0:k.error;l=d?d(q,m,e):q;if(!0===l)k=null;else{!0===q&&(k={message:"The application rejected the certificate.",error:g.certificateError.bad_certificate});
|
|
if(l||0===l)"object"!==typeof l||a.util.isArray(l)?"string"===typeof l&&(k.error=l):(l.message&&(k.message=l.message),l.error&&(k.error=l.error));throw k;}l=!1;++m}while(0<c.length);return!0}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.x509)return c.x509;
|
|
c.defined.x509=!0;for(var l=0;l<e.length;++l)e[l](c);return c.pki}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/x509","require module ./aes ./asn1 ./des ./md ./mgf ./oids ./pem ./pss ./rsa ./util".split(" "),function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(a,b,d,e){for(var h=
|
|
[],g=0;g<a.length;g++)for(var l=0;l<a[g].safeBags.length;l++){var p=a[g].safeBags[l];if(void 0===e||p.type===e)null===b?h.push(p):void 0!==p.attributes[b]&&0<=p.attributes[b].indexOf(d)&&h.push(p)}return h}function d(b){if(b.composed||b.constructed){for(var c=a.util.createBuffer(),e=0;e<b.value.length;++e)c.putBytes(b.value[e].value);b.composed=b.constructed=!1;b.value=c.getBytes()}return b}function e(b,c,g,q){c=m.fromDer(c,g);if(c.tagClass!==m.Class.UNIVERSAL||c.type!==m.Type.SEQUENCE||!0!==c.constructed)throw Error("PKCS#12 AuthenticatedSafe expected to be a SEQUENCE OF ContentInfo");
|
|
for(var n=0;n<c.value.length;n++){var y={},v=[];if(!m.validate(c.value[n],u,y,v))throw b=Error("Cannot read ContentInfo."),b.errors=v,b;var v={encrypted:!1},r=null,r=y.content.value[0];switch(m.derToOid(y.contentType)){case k.oids.data:if(r.tagClass!==m.Class.UNIVERSAL||r.type!==m.Type.OCTETSTRING)throw Error("PKCS#12 SafeContents Data is not an OCTET STRING.");r=d(r).value;break;case k.oids.encryptedData:var z=q,y={},D=[];if(!m.validate(r,a.pkcs7.asn1.encryptedDataValidator,y,D))throw b=Error("Cannot read EncryptedContentInfo."),
|
|
b.errors=D,b;r=m.derToOid(y.contentType);if(r!==k.oids.data)throw b=Error("PKCS#12 EncryptedContentInfo ContentType is not Data."),b.oid=r,b;r=m.derToOid(y.encAlgorithm);r=k.pbe.getCipher(r,y.encParameter,z);y=d(y.encryptedContentAsn1);y=a.util.createBuffer(y.value);r.update(y);if(!r.finish())throw Error("Failed to decrypt PKCS#12 SafeContents.");r=r.output.getBytes();v.encrypted=!0;break;default:throw b=Error("Unsupported PKCS#12 contentType."),b.contentType=m.derToOid(y.contentType),b;}v.safeBags=
|
|
l(r,g,q);b.safeContents.push(v)}}function l(a,b,c){if(!b&&0===a.length)return[];a=m.fromDer(a,b);if(a.tagClass!==m.Class.UNIVERSAL||a.type!==m.Type.SEQUENCE||!0!==a.constructed)throw Error("PKCS#12 SafeContents expected to be a SEQUENCE OF SafeBag.");for(var d=[],e=0;e<a.value.length;e++){var h={},g=[];if(!m.validate(a.value[e],D,h,g))throw a=Error("Cannot read SafeBag."),a.errors=g,a;var p={type:m.derToOid(h.bagId),attributes:n(h.bagAttributes)};d.push(p);var q,u,y=h.bagValue.value[0];switch(p.type){case k.oids.pkcs8ShroudedKeyBag:if(y=
|
|
k.decryptPrivateKeyInfo(y,c),null===y)throw Error("Unable to decrypt PKCS#8 ShroudedKeyBag, wrong password?");case k.oids.keyBag:try{p.key=k.privateKeyFromAsn1(y)}catch(v){p.key=null,p.asn1=y}continue;case k.oids.certBag:q=z;u=function(){if(m.derToOid(h.certId)!==k.oids.x509Certificate){var a=Error("Unsupported certificate type, only X.509 supported.");a.oid=m.derToOid(h.certId);throw a;}a=m.fromDer(h.cert,b);try{p.cert=k.certificateFromAsn1(a,!0)}catch(c){p.cert=null,p.asn1=a}};break;default:throw a=
|
|
Error("Unsupported PKCS#12 SafeBag type."),a.oid=p.type,a;}if(void 0!==q&&!m.validate(y,q,h,g))throw a=Error("Cannot read PKCS#12 "+q.name),a.errors=g,a;u()}return d}function n(a){var b={};if(void 0!==a)for(var c=0;c<a.length;++c){var d={},e=[];if(!m.validate(a[c],y,d,e))throw a=Error("Cannot read PKCS#12 BagAttribute."),a.errors=e,a;e=m.derToOid(d.oid);if(void 0!==k.oids[e]){b[k.oids[e]]=[];for(var h=0;h<d.values.length;++h)b[k.oids[e]].push(d.values[h].value)}}return b}var m=a.asn1,k=a.pki,g=a.pkcs12=
|
|
a.pkcs12||{},u={name:"ContentInfo",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.contentType",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:m.Class.CONTEXT_SPECIFIC,constructed:!0,captureAsn1:"content"}]},v={name:"PFX",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.version",tagClass:m.Class.UNIVERSAL,type:m.Type.INTEGER,constructed:!1,capture:"version"},
|
|
u,{name:"PFX.macData",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"mac",value:[{name:"PFX.macData.mac",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.macData.mac.digestAlgorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.macData.mac.digestAlgorithm.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"macAlgorithm"},{name:"PFX.macData.mac.digestAlgorithm.parameters",
|
|
tagClass:m.Class.UNIVERSAL,captureAsn1:"macAlgorithmParameters"}]},{name:"PFX.macData.mac.digest",tagClass:m.Class.UNIVERSAL,type:m.Type.OCTETSTRING,constructed:!1,capture:"macDigest"}]},{name:"PFX.macData.macSalt",tagClass:m.Class.UNIVERSAL,type:m.Type.OCTETSTRING,constructed:!1,capture:"macSalt"},{name:"PFX.macData.iterations",tagClass:m.Class.UNIVERSAL,type:m.Type.INTEGER,constructed:!1,optional:!0,capture:"macIterations"}]}]},D={name:"SafeBag",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,
|
|
value:[{name:"SafeBag.bagId",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"bagId"},{name:"SafeBag.bagValue",tagClass:m.Class.CONTEXT_SPECIFIC,constructed:!0,captureAsn1:"bagValue"},{name:"SafeBag.bagAttributes",tagClass:m.Class.UNIVERSAL,type:m.Type.SET,constructed:!0,optional:!0,capture:"bagAttributes"}]},y={name:"Attribute",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"Attribute.attrId",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,
|
|
capture:"oid"},{name:"Attribute.attrValues",tagClass:m.Class.UNIVERSAL,type:m.Type.SET,constructed:!0,capture:"values"}]},z={name:"CertBag",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"CertBag.certId",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"certId"},{name:"CertBag.certValue",tagClass:m.Class.CONTEXT_SPECIFIC,constructed:!0,value:[{name:"CertBag.certValue[0]",tagClass:m.Class.UNIVERSAL,type:m.Class.OCTETSTRING,constructed:!1,capture:"cert"}]}]};
|
|
g.pkcs12FromAsn1=function(b,l,x){"string"===typeof l?(x=l,l=!0):void 0===l&&(l=!0);var u={};if(!m.validate(b,v,u,[]))throw l=Error("Cannot read PKCS#12 PFX. ASN.1 object is not an PKCS#12 PFX."),l.errors=l,l;var n={version:u.version.charCodeAt(0),safeContents:[],getBags:function(b){var d={},e;"localKeyId"in b?e=b.localKeyId:"localKeyIdHex"in b&&(e=a.util.hexToBytes(b.localKeyIdHex));void 0===e&&!("friendlyName"in b)&&"bagType"in b&&(d[b.bagType]=c(n.safeContents,null,null,b.bagType));void 0!==e&&
|
|
(d.localKeyId=c(n.safeContents,"localKeyId",e,b.bagType));"friendlyName"in b&&(d.friendlyName=c(n.safeContents,"friendlyName",b.friendlyName,b.bagType));return d},getBagsByFriendlyName:function(a,b){return c(n.safeContents,"friendlyName",a,b)},getBagsByLocalKeyId:function(a,b){return c(n.safeContents,"localKeyId",a,b)}};if(3!==u.version.charCodeAt(0))throw l=Error("PKCS#12 PFX of version other than 3 not supported."),l.version=u.version.charCodeAt(0),l;if(m.derToOid(u.contentType)!==k.oids.data)throw l=
|
|
Error("Only PKCS#12 PFX in password integrity mode supported."),l.oid=m.derToOid(u.contentType),l;b=u.content.value[0];if(b.tagClass!==m.Class.UNIVERSAL||b.type!==m.Type.OCTETSTRING)throw Error("PKCS#12 authSafe content data is not an OCTET STRING.");b=d(b);if(u.mac){var y=null,w=0,r=m.derToOid(u.macAlgorithm);switch(r){case k.oids.sha1:y=a.md.sha1.create();w=20;break;case k.oids.sha256:y=a.md.sha256.create();w=32;break;case k.oids.sha384:y=a.md.sha384.create();w=48;break;case k.oids.sha512:y=a.md.sha512.create();
|
|
w=64;break;case k.oids.md5:y=a.md.md5.create(),w=16}if(null===y)throw Error("PKCS#12 uses unsupported MAC algorithm: "+r);var r=new a.util.ByteBuffer(u.macSalt),z="macIterations"in u?parseInt(a.util.bytesToHex(u.macIterations),16):1,w=g.generateKey(x,r,3,z,w,y),r=a.hmac.create();r.start(y,w);r.update(b.value);if(r.getMac().getBytes()!==u.macDigest)throw Error("PKCS#12 MAC could not be verified. Invalid password?");}e(n,b.value,l,x);return n};g.toPkcs12Asn1=function(b,c,d,e){e=e||{};e.saltSize=e.saltSize||
|
|
8;e.count=e.count||2048;e.algorithm=e.algorithm||e.encAlgorithm||"aes128";"useMac"in e||(e.useMac=!0);"localKeyId"in e||(e.localKeyId=null);"generateLocalKeyId"in e||(e.generateLocalKeyId=!0);var h=e.localKeyId,l;if(null!==h)h=a.util.hexToBytes(h);else if(e.generateLocalKeyId)if(c){var q=a.util.isArray(c)?c[0]:c;"string"===typeof q&&(q=k.certificateFromPem(q));h=a.md.sha1.create();h.update(m.toDer(k.certificateToAsn1(q)).getBytes());h=h.digest().getBytes()}else h=a.random.getBytes(20);q=[];null!==
|
|
h&&q.push(m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(k.oids.localKeyId).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.SET,!0,[m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,h)])]));"friendlyName"in e&&q.push(m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(k.oids.friendlyName).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.SET,!0,[m.create(m.Class.UNIVERSAL,m.Type.BMPSTRING,!1,e.friendlyName)])]));
|
|
0<q.length&&(l=m.create(m.Class.UNIVERSAL,m.Type.SET,!0,q));h=[];q=[];null!==c&&(q=a.util.isArray(c)?c:[c]);for(var r=[],u=0;u<q.length;++u){c=q[u];"string"===typeof c&&(c=k.certificateFromPem(c));var n=0===u?l:void 0;c=k.certificateToAsn1(c);c=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(k.oids.certBag).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(k.oids.x509Certificate).getBytes()),
|
|
m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,m.toDer(c).getBytes())])])]),n]);r.push(c)}0<r.length&&(c=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,r),c=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(k.oids.data).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,m.toDer(c).getBytes())])]),h.push(c));c=null;null!==b&&(b=k.wrapRsaPrivateKey(k.privateKeyToAsn1(b)),
|
|
c=null===d?m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(k.oids.keyBag).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[b]),l]):m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(k.oids.pkcs8ShroudedKeyBag).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[k.encryptPrivateKeyInfo(b,d,e)]),l]),b=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[c]),b=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,
|
|
[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(k.oids.data).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,m.toDer(b).getBytes())])]),h.push(b));l=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,h);var y;e.useMac&&(h=a.md.sha1.create(),y=new a.util.ByteBuffer(a.random.getBytes(e.saltSize)),e=e.count,b=g.generateKey(d,y,3,e,20),d=a.hmac.create(),d.start(h,b),d.update(m.toDer(l).getBytes()),d=d.getMac(),y=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,
|
|
!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(k.oids.sha1).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.NULL,!1,"")]),m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,d.getBytes())]),m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,y.getBytes()),m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(e).getBytes())]));return m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,
|
|
m.Type.INTEGER,!1,m.integerToDer(3).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(k.oids.data).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,m.toDer(l).getBytes())])]),y])};g.generateKey=a.pbe.generatePkcs12Key}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,
|
|
n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.pkcs12)return c.pkcs12;c.defined.pkcs12=!0;for(var l=0;l<e.length;++l)e[l](c);return c.pkcs12}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/pkcs12","require module ./asn1 ./hmac ./oids ./pkcs7asn1 ./pbe ./random ./rsa ./sha1 ./util ./x509".split(" "),
|
|
function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){var c=a.asn1,d=a.pki=a.pki||{};d.pemToDer=function(b){b=a.pem.decode(b)[0];if(b.procType&&"ENCRYPTED"===b.procType.type)throw Error("Could not convert PEM to DER; PEM is encrypted.");return a.util.createBuffer(b.body)};d.privateKeyFromPem=function(b){b=a.pem.decode(b)[0];if("PRIVATE KEY"!==b.type&&"RSA PRIVATE KEY"!==b.type){var e=Error('Could not convert private key from PEM; PEM header type is not "PRIVATE KEY" or "RSA PRIVATE KEY".');
|
|
e.headerType=b.type;throw e;}if(b.procType&&"ENCRYPTED"===b.procType.type)throw Error("Could not convert private key from PEM; PEM is encrypted.");b=c.fromDer(b.body);return d.privateKeyFromAsn1(b)};d.privateKeyToPem=function(b,e){var l={type:"RSA PRIVATE KEY",body:c.toDer(d.privateKeyToAsn1(b)).getBytes()};return a.pem.encode(l,{maxline:e})};d.privateKeyInfoToPem=function(b,d){var e={type:"PRIVATE KEY",body:c.toDer(b).getBytes()};return a.pem.encode(e,{maxline:d})}}if("function"!==typeof a)if("object"===
|
|
typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.pki)return c.pki;c.defined.pki=!0;for(var l=0;l<e.length;++l)e[l](c);return c.pki}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,
|
|
Array.prototype.slice.call(arguments,0))};a("js/pki","require module ./asn1 ./oids ./pbe ./pem ./pbkdf2 ./pkcs12 ./pss ./rsa ./util ./x509".split(" "),function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){var c=function(b,c,d,e){var h=a.util.createBuffer(),g=b.length>>1,l=g+(b.length&1),k=b.substr(0,l),l=b.substr(g,l);b=a.util.createBuffer();g=a.hmac.create();d=c+d;var m=Math.ceil(e/16);c=Math.ceil(e/20);g.start("MD5",k);k=a.util.createBuffer();b.putBytes(d);
|
|
for(var q=0;q<m;++q)g.start(null,null),g.update(b.getBytes()),b.putBuffer(g.digest()),g.start(null,null),g.update(b.bytes()+d),k.putBuffer(g.digest());g.start("SHA1",l);l=a.util.createBuffer();b.clear();b.putBytes(d);for(q=0;q<c;++q)g.start(null,null),g.update(b.getBytes()),b.putBuffer(g.digest()),g.start(null,null),g.update(b.bytes()+d),l.putBuffer(g.digest());h.putBytes(a.util.xorBytes(k.getBytes(),l.getBytes(),e));return h},d=function(b,c,d){d=!1;try{var e=b.deflate(c.fragment.getBytes());c.fragment=
|
|
a.util.createBuffer(e);c.length=e.length;d=!0}catch(h){}return d},e=function(b,c,d){d=!1;try{var e=b.inflate(c.fragment.getBytes());c.fragment=a.util.createBuffer(e);c.length=e.length;d=!0}catch(h){}return d},l=function(b,c){var d=0;switch(c){case 1:d=b.getByte();break;case 2:d=b.getInt16();break;case 3:d=b.getInt24();break;case 4:d=b.getInt32()}return a.util.createBuffer(b.getBytes(d))},n=function(a,b,c){a.putInt(c.length(),b<<3);a.putBuffer(c)},m={Versions:{TLS_1_0:{major:3,minor:1},TLS_1_1:{major:3,
|
|
minor:2},TLS_1_2:{major:3,minor:3}}};m.SupportedVersions=[m.Versions.TLS_1_1,m.Versions.TLS_1_0];m.Version=m.SupportedVersions[0];m.MaxFragment=15360;m.ConnectionEnd={server:0,client:1};m.PRFAlgorithm={tls_prf_sha256:0};m.BulkCipherAlgorithm={none:null,rc4:0,des3:1,aes:2};m.CipherType={stream:0,block:1,aead:2};m.MACAlgorithm={none:null,hmac_md5:0,hmac_sha1:1,hmac_sha256:2,hmac_sha384:3,hmac_sha512:4};m.CompressionMethod={none:0,deflate:1};m.ContentType={change_cipher_spec:20,alert:21,handshake:22,
|
|
application_data:23,heartbeat:24};m.HandshakeType={hello_request:0,client_hello:1,server_hello:2,certificate:11,server_key_exchange:12,certificate_request:13,server_hello_done:14,certificate_verify:15,client_key_exchange:16,finished:20};m.Alert={};m.Alert.Level={warning:1,fatal:2};m.Alert.Description={close_notify:0,unexpected_message:10,bad_record_mac:20,decryption_failed:21,record_overflow:22,decompression_failure:30,handshake_failure:40,bad_certificate:42,unsupported_certificate:43,certificate_revoked:44,
|
|
certificate_expired:45,certificate_unknown:46,illegal_parameter:47,unknown_ca:48,access_denied:49,decode_error:50,decrypt_error:51,export_restriction:60,protocol_version:70,insufficient_security:71,internal_error:80,user_canceled:90,no_renegotiation:100};m.HeartbeatMessageType={heartbeat_request:1,heartbeat_response:2};m.CipherSuites={};m.getCipherSuite=function(a){var b=null,c;for(c in m.CipherSuites){var d=m.CipherSuites[c];if(d.id[0]===a.charCodeAt(0)&&d.id[1]===a.charCodeAt(1)){b=d;break}}return b};
|
|
m.handleUnexpected=function(a,b){(a.open||a.entity!==m.ConnectionEnd.client)&&a.error(a,{message:"Unexpected message. Received TLS record out of order.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.unexpected_message}})};m.handleHelloRequest=function(a,b,c){!a.handshaking&&0<a.handshakes&&(m.queue(a,m.createAlert(a,{level:m.Alert.Level.warning,description:m.Alert.Description.no_renegotiation})),m.flush(a));a.process()};m.parseHelloMessage=function(b,c,d){var e=null,h=b.entity===
|
|
m.ConnectionEnd.client;if(38>d)b.error(b,{message:h?"Invalid ServerHello message. Message too short.":"Invalid ClientHello message. Message too short.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.illegal_parameter}});else{c=c.fragment;var g=c.length(),e={version:{major:c.getByte(),minor:c.getByte()},random:a.util.createBuffer(c.getBytes(32)),session_id:l(c,1),extensions:[]};h?(e.cipher_suite=c.getBytes(2),e.compression_method=c.getByte()):(e.cipher_suites=l(c,2),e.compression_methods=
|
|
l(c,1));g=d-(g-c.length());if(0<g){for(d=l(c,2);0<d.length();)e.extensions.push({type:[d.getByte(),d.getByte()],data:l(d,2)});if(!h)for(d=0;d<e.extensions.length;++d)if(c=e.extensions[d],0===c.type[0]&&0===c.type[1])for(c=l(c.data,2);0<c.length()&&0===c.getByte();)b.session.extensions.server_name.serverNameList.push(l(c,2).getBytes())}if(b.session.version&&(e.version.major!==b.session.version.major||e.version.minor!==b.session.version.minor))return b.error(b,{message:"TLS version change is disallowed during renegotiation.",
|
|
send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.protocol_version}});if(h)b.session.cipherSuite=m.getCipherSuite(e.cipher_suite);else for(d=a.util.createBuffer(e.cipher_suites.bytes());0<d.length()&&(b.session.cipherSuite=m.getCipherSuite(d.getBytes(2)),null===b.session.cipherSuite););if(null===b.session.cipherSuite)return b.error(b,{message:"No cipher suites in common.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.handshake_failure},cipherSuite:a.util.bytesToHex(e.cipher_suite)});
|
|
b.session.compressionMethod=h?e.compression_method:m.CompressionMethod.none}return e};m.createSecurityParameters=function(a,b){var c=a.entity===m.ConnectionEnd.client,d=b.random.bytes(),e=c?a.session.sp.client_random:d,c=c?d:m.createRandom().getBytes();a.session.sp={entity:a.entity,prf_algorithm:m.PRFAlgorithm.tls_prf_sha256,bulk_cipher_algorithm:null,cipher_type:null,enc_key_length:null,block_length:null,fixed_iv_length:null,record_iv_length:null,mac_algorithm:null,mac_length:null,mac_key_length:null,
|
|
compression_algorithm:a.session.compressionMethod,pre_master_secret:null,master_secret:null,client_random:e,server_random:c}};m.handleServerHello=function(a,b,c){b=m.parseHelloMessage(a,b,c);if(!a.fail){if(b.version.minor<=a.version.minor)a.version.minor=b.version.minor;else return a.error(a,{message:"Incompatible TLS version.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.protocol_version}});a.session.version=a.version;c=b.session_id.bytes();0<c.length&&c===a.session.id?
|
|
(a.expect=D,a.session.resuming=!0,a.session.sp.server_random=b.random.bytes()):(a.expect=k,a.session.resuming=!1,m.createSecurityParameters(a,b));a.session.id=c;a.process()}};m.handleClientHello=function(b,c,d){c=m.parseHelloMessage(b,c,d);if(!b.fail){var e=c.session_id.bytes();d=null;if(b.sessionCache)if(d=b.sessionCache.getSession(e),null===d)e="";else if(d.version.major!==c.version.major||d.version.minor>c.version.minor)d=null,e="";0===e.length&&(e=a.random.getBytes(32));b.session.id=e;b.session.clientHelloVersion=
|
|
c.version;b.session.sp={};if(d)b.version=b.session.version=d.version,b.session.sp=d.sp;else{for(var h,e=1;e<m.SupportedVersions.length&&!(h=m.SupportedVersions[e],h.minor<=c.version.minor);++e);b.version={major:h.major,minor:h.minor};b.session.version=b.version}null!==d?(b.expect=H,b.session.resuming=!0,b.session.sp.client_random=c.random.bytes()):(b.expect=!1!==b.verifyClient?R:x,b.session.resuming=!1,m.createSecurityParameters(b,c));b.open=!0;m.queue(b,m.createRecord(b,{type:m.ContentType.handshake,
|
|
data:m.createServerHello(b)}));b.session.resuming?(m.queue(b,m.createRecord(b,{type:m.ContentType.change_cipher_spec,data:m.createChangeCipherSpec()})),b.state.pending=m.createConnectionState(b),b.state.current.write=b.state.pending.write,m.queue(b,m.createRecord(b,{type:m.ContentType.handshake,data:m.createFinished(b)}))):(m.queue(b,m.createRecord(b,{type:m.ContentType.handshake,data:m.createCertificate(b)})),b.fail||(m.queue(b,m.createRecord(b,{type:m.ContentType.handshake,data:m.createServerKeyExchange(b)})),
|
|
!1!==b.verifyClient&&m.queue(b,m.createRecord(b,{type:m.ContentType.handshake,data:m.createCertificateRequest(b)})),m.queue(b,m.createRecord(b,{type:m.ContentType.handshake,data:m.createServerHelloDone(b)}))));m.flush(b);b.process()}};m.handleCertificate=function(b,c,d){if(3>d)return b.error(b,{message:"Invalid Certificate message. Message too short.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.illegal_parameter}});d=l(c.fragment,3);var e,h;c=[];try{for(;0<d.length();)e=
|
|
l(d,3),h=a.asn1.fromDer(e),e=a.pki.certificateFromAsn1(h,!0),c.push(e)}catch(k){return b.error(b,{message:"Could not parse certificate list.",cause:k,send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.bad_certificate}})}e=b.entity===m.ConnectionEnd.client;!e&&!0!==b.verifyClient||0!==c.length?0===c.length?b.expect=e?g:x:(e?b.session.serverCertificate=c[0]:b.session.clientCertificate=c[0],m.verifyCertificateChain(b,c)&&(b.expect=e?g:x)):b.error(b,{message:e?"No server certificate provided.":
|
|
"No client certificate provided.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.illegal_parameter}});b.process()};m.handleServerKeyExchange=function(a,b,c){if(0<c)return a.error(a,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.unsupported_certificate}});a.expect=u;a.process()};m.handleClientKeyExchange=function(b,c,d){if(48>d)return b.error(b,{message:"Invalid key parameters. Only RSA is supported.",
|
|
send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.unsupported_certificate}});c=l(c.fragment,2).getBytes();d=null;if(b.getPrivateKey)try{d=b.getPrivateKey(b,b.session.serverCertificate),d=a.pki.privateKeyFromPem(d)}catch(e){b.error(b,{message:"Could not get private key.",cause:e,send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.internal_error}})}if(null===d)return b.error(b,{message:"No private key set.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.internal_error}});
|
|
try{var h=b.session.sp;h.pre_master_secret=d.decrypt(c);var g=b.session.clientHelloVersion;if(g.major!==h.pre_master_secret.charCodeAt(0)||g.minor!==h.pre_master_secret.charCodeAt(1))throw Error("TLS version rollback attack detected.");}catch(e){h.pre_master_secret=a.random.getBytes(48)}b.expect=H;null!==b.session.clientCertificate&&(b.expect=C);b.process()};m.handleCertificateRequest=function(a,b,c){if(3>c)return a.error(a,{message:"Invalid CertificateRequest. Message too short.",send:!0,alert:{level:m.Alert.Level.fatal,
|
|
description:m.Alert.Description.illegal_parameter}});b=b.fragment;b={certificate_types:l(b,1),certificate_authorities:l(b,2)};a.session.certificateRequest=b;a.expect=v;a.process()};m.handleCertificateVerify=function(b,c,d){if(2>d)return b.error(b,{message:"Invalid CertificateVerify. Message too short.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.illegal_parameter}});d=c.fragment;d.read-=4;c=d.bytes();d.read+=4;d=l(d,2).getBytes();var e=a.util.createBuffer();e.putBuffer(b.session.md5.digest());
|
|
e.putBuffer(b.session.sha1.digest());e=e.getBytes();try{if(!b.session.clientCertificate.publicKey.verify(e,d,"NONE"))throw Error("CertificateVerify signature does not match.");b.session.md5.update(c);b.session.sha1.update(c)}catch(h){return b.error(b,{message:"Bad signature in CertificateVerify.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.handshake_failure}})}b.expect=H;b.process()};m.handleServerHelloDone=function(b,c,d){if(0<d)return b.error(b,{message:"Invalid ServerHelloDone message. Invalid length.",
|
|
send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.record_overflow}});if(null===b.serverCertificate&&(c={message:"No server certificate provided. Not enough security.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.insufficient_security}},d=b.verify(b,c.alert.description,0,[]),!0!==d)){if(d||0===d)"object"!==typeof d||a.util.isArray(d)?"number"===typeof d&&(c.alert.description=d):(d.message&&(c.message=d.message),d.alert&&(c.alert.description=d.alert));
|
|
return b.error(b,c)}null!==b.session.certificateRequest&&(c=m.createRecord(b,{type:m.ContentType.handshake,data:m.createCertificate(b)}),m.queue(b,c));c=m.createRecord(b,{type:m.ContentType.handshake,data:m.createClientKeyExchange(b)});m.queue(b,c);b.expect=A;c=function(a,b){null!==a.session.certificateRequest&&null!==a.session.clientCertificate&&m.queue(a,m.createRecord(a,{type:m.ContentType.handshake,data:m.createCertificateVerify(a,b)}));m.queue(a,m.createRecord(a,{type:m.ContentType.change_cipher_spec,
|
|
data:m.createChangeCipherSpec()}));a.state.pending=m.createConnectionState(a);a.state.current.write=a.state.pending.write;m.queue(a,m.createRecord(a,{type:m.ContentType.handshake,data:m.createFinished(a)}));a.expect=D;m.flush(a);a.process()};if(null===b.session.certificateRequest||null===b.session.clientCertificate)return c(b,null);m.getClientSignature(b,c)};m.handleChangeCipherSpec=function(a,b){if(1!==b.fragment.getByte())return a.error(a,{message:"Invalid ChangeCipherSpec message received.",send:!0,
|
|
alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.illegal_parameter}});var c=a.entity===m.ConnectionEnd.client;if(a.session.resuming&&c||!a.session.resuming&&!c)a.state.pending=m.createConnectionState(a);a.state.current.read=a.state.pending.read;if(!a.session.resuming&&c||a.session.resuming&&!c)a.state.pending=null;a.expect=c?y:J;a.process()};m.handleFinished=function(b,d,e){e=d.fragment;e.read-=4;var h=e.bytes();e.read+=4;d=d.fragment.getBytes();e=a.util.createBuffer();e.putBuffer(b.session.md5.digest());
|
|
e.putBuffer(b.session.sha1.digest());var g=b.entity===m.ConnectionEnd.client;e=c(b.session.sp.master_secret,g?"server finished":"client finished",e.getBytes(),12);if(e.getBytes()!==d)return b.error(b,{message:"Invalid verify_data in Finished message.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.decrypt_error}});b.session.md5.update(h);b.session.sha1.update(h);if(b.session.resuming&&g||!b.session.resuming&&!g)m.queue(b,m.createRecord(b,{type:m.ContentType.change_cipher_spec,
|
|
data:m.createChangeCipherSpec()})),b.state.current.write=b.state.pending.write,b.state.pending=null,m.queue(b,m.createRecord(b,{type:m.ContentType.handshake,data:m.createFinished(b)}));b.expect=g?z:P;b.handshaking=!1;++b.handshakes;b.peerCertificate=g?b.session.serverCertificate:b.session.clientCertificate;m.flush(b);b.isConnected=!0;b.connected(b);b.process()};m.handleAlert=function(a,b){var c=b.fragment,c={level:c.getByte(),description:c.getByte()},d;switch(c.description){case m.Alert.Description.close_notify:d=
|
|
"Connection closed.";break;case m.Alert.Description.unexpected_message:d="Unexpected message.";break;case m.Alert.Description.bad_record_mac:d="Bad record MAC.";break;case m.Alert.Description.decryption_failed:d="Decryption failed.";break;case m.Alert.Description.record_overflow:d="Record overflow.";break;case m.Alert.Description.decompression_failure:d="Decompression failed.";break;case m.Alert.Description.handshake_failure:d="Handshake failure.";break;case m.Alert.Description.bad_certificate:d=
|
|
"Bad certificate.";break;case m.Alert.Description.unsupported_certificate:d="Unsupported certificate.";break;case m.Alert.Description.certificate_revoked:d="Certificate revoked.";break;case m.Alert.Description.certificate_expired:d="Certificate expired.";break;case m.Alert.Description.certificate_unknown:d="Certificate unknown.";break;case m.Alert.Description.illegal_parameter:d="Illegal parameter.";break;case m.Alert.Description.unknown_ca:d="Unknown certificate authority.";break;case m.Alert.Description.access_denied:d=
|
|
"Access denied.";break;case m.Alert.Description.decode_error:d="Decode error.";break;case m.Alert.Description.decrypt_error:d="Decrypt error.";break;case m.Alert.Description.export_restriction:d="Export restriction.";break;case m.Alert.Description.protocol_version:d="Unsupported protocol version.";break;case m.Alert.Description.insufficient_security:d="Insufficient security.";break;case m.Alert.Description.internal_error:d="Internal error.";break;case m.Alert.Description.user_canceled:d="User canceled.";
|
|
break;case m.Alert.Description.no_renegotiation:d="Renegotiation not supported.";break;default:d="Unknown error."}if(c.description===m.Alert.Description.close_notify)return a.close();a.error(a,{message:d,send:!1,origin:a.entity===m.ConnectionEnd.client?"server":"client",alert:c});a.process()};m.handleHandshake=function(b,c){var d=c.fragment,e=d.getByte(),h=d.getInt24();if(h>d.length())return b.fragmented=c,c.fragment=a.util.createBuffer(),d.read-=4,b.process();b.fragmented=null;d.read-=4;var g=d.bytes(h+
|
|
4);d.read+=4;e in I[b.entity][b.expect]?(b.entity!==m.ConnectionEnd.server||b.open||b.fail||(b.handshaking=!0,b.session={version:null,extensions:{server_name:{serverNameList:[]}},cipherSuite:null,compressionMethod:null,serverCertificate:null,clientCertificate:null,md5:a.md.md5.create(),sha1:a.md.sha1.create()}),e!==m.HandshakeType.hello_request&&e!==m.HandshakeType.certificate_verify&&e!==m.HandshakeType.finished&&(b.session.md5.update(g),b.session.sha1.update(g)),I[b.entity][b.expect][e](b,c,h)):
|
|
m.handleUnexpected(b,c)};m.handleApplicationData=function(a,b){a.data.putBuffer(b.fragment);a.dataReady(a);a.process()};m.handleHeartbeat=function(b,c){var d=c.fragment,e=d.getByte(),h=d.getInt16(),d=d.getBytes(h);if(e===m.HeartbeatMessageType.heartbeat_request){if(b.handshaking||h>d.length)return b.process();m.queue(b,m.createRecord(b,{type:m.ContentType.heartbeat,data:m.createHeartbeat(m.HeartbeatMessageType.heartbeat_response,d)}));m.flush(b)}else if(e===m.HeartbeatMessageType.heartbeat_response){if(d!==
|
|
b.expectedHeartbeatPayload)return b.process();b.heartbeatReceived&&b.heartbeatReceived(b,a.util.createBuffer(d))}b.process()};var k=1,g=2,u=3,v=4,D=5,y=6,z=7,A=8,R=1,x=2,C=3,H=4,J=5,P=6,r=m.handleUnexpected,N=m.handleChangeCipherSpec,U=m.handleAlert,L=m.handleHandshake,Y=m.handleApplicationData,K=m.handleHeartbeat,ea=[];ea[m.ConnectionEnd.client]=[[r,U,L,r,K],[r,U,L,r,K],[r,U,L,r,K],[r,U,L,r,K],[r,U,L,r,K],[N,U,r,r,K],[r,U,L,r,K],[r,U,L,Y,K],[r,U,L,r,K]];ea[m.ConnectionEnd.server]=[[r,U,L,r,K],[r,
|
|
U,L,r,K],[r,U,L,r,K],[r,U,L,r,K],[N,U,r,r,K],[r,U,L,r,K],[r,U,L,Y,K],[r,U,L,r,K]];var N=m.handleHelloRequest,U=m.handleCertificate,L=m.handleServerKeyExchange,Y=m.handleCertificateRequest,K=m.handleServerHelloDone,V=m.handleFinished,I=[];I[m.ConnectionEnd.client]=[[r,r,m.handleServerHello,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r],[N,r,r,r,r,r,r,r,r,r,r,U,L,Y,K,r,r,r,r,r,r],[N,r,r,r,r,r,r,r,r,r,r,r,L,Y,K,r,r,r,r,r,r],[N,r,r,r,r,r,r,r,r,r,r,r,r,Y,K,r,r,r,r,r,r],[N,r,r,r,r,r,r,r,r,r,r,r,r,r,K,r,r,r,r,r,r],
|
|
[N,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r],[N,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,V],[N,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r],[N,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r]];I[m.ConnectionEnd.server]=[[r,m.handleClientHello,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r],[r,r,r,r,r,r,r,r,r,r,r,U,r,r,r,r,r,r,r,r,r],[r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,m.handleClientKeyExchange,r,r,r,r],[r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,m.handleCertificateVerify,r,r,r,r,r],[r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r],[r,r,r,r,r,
|
|
r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,V],[r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r],[r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r]];m.generateKeys=function(a,b){var d=b.client_random+b.server_random;a.session.resuming||(b.master_secret=c(b.pre_master_secret,"master secret",d,48).bytes(),b.pre_master_secret=null);var d=b.server_random+b.client_random,e=2*b.mac_key_length+2*b.enc_key_length,h=a.version.major===m.Versions.TLS_1_0.major&&a.version.minor===m.Versions.TLS_1_0.minor;h&&(e+=2*b.fixed_iv_length);d=
|
|
c(b.master_secret,"key expansion",d,e);e={client_write_MAC_key:d.getBytes(b.mac_key_length),server_write_MAC_key:d.getBytes(b.mac_key_length),client_write_key:d.getBytes(b.enc_key_length),server_write_key:d.getBytes(b.enc_key_length)};h&&(e.client_write_IV=d.getBytes(b.fixed_iv_length),e.server_write_IV=d.getBytes(b.fixed_iv_length));return e};m.createConnectionState=function(a){var b=a.entity===m.ConnectionEnd.client,c=function(){var a={sequenceNumber:[0,0],macKey:null,macLength:0,macFunction:null,
|
|
cipherState:null,cipherFunction:function(a){return!0},compressionState:null,compressFunction:function(a){return!0},updateSequenceNumber:function(){4294967295===a.sequenceNumber[1]?(a.sequenceNumber[1]=0,++a.sequenceNumber[0]):++a.sequenceNumber[1]}};return a},g={read:c(),write:c()};g.read.update=function(a,b){g.read.cipherFunction(b,g.read)?g.read.compressFunction(a,b,g.read)||a.error(a,{message:"Could not decompress record.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.decompression_failure}}):
|
|
a.error(a,{message:"Could not decrypt record or bad MAC.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.bad_record_mac}});return!a.fail};g.write.update=function(a,b){g.write.compressFunction(a,b,g.write)?g.write.cipherFunction(b,g.write)||a.error(a,{message:"Could not encrypt record.",send:!1,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.internal_error}}):a.error(a,{message:"Could not compress record.",send:!1,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.internal_error}});
|
|
return!a.fail};if(a.session)switch(c=a.session.sp,a.session.cipherSuite.initSecurityParameters(c),c.keys=m.generateKeys(a,c),g.read.macKey=b?c.keys.server_write_MAC_key:c.keys.client_write_MAC_key,g.write.macKey=b?c.keys.client_write_MAC_key:c.keys.server_write_MAC_key,a.session.cipherSuite.initConnectionState(g,a,c),c.compression_algorithm){case m.CompressionMethod.none:break;case m.CompressionMethod.deflate:g.read.compressFunction=e;g.write.compressFunction=d;break;default:throw Error("Unsupported compression algorithm.");
|
|
}return g};m.createRandom=function(){var b=new Date,b=+b+6E4*b.getTimezoneOffset(),c=a.util.createBuffer();c.putInt32(b);c.putBytes(a.random.getBytes(28));return c};m.createRecord=function(a,b){return b.data?{type:b.type,version:{major:a.version.major,minor:a.version.minor},length:b.data.length(),fragment:b.data}:null};m.createAlert=function(b,c){var d=a.util.createBuffer();d.putByte(c.level);d.putByte(c.description);return m.createRecord(b,{type:m.ContentType.alert,data:d})};m.createClientHello=
|
|
function(b){b.session.clientHelloVersion={major:b.version.major,minor:b.version.minor};for(var c=a.util.createBuffer(),d=0;d<b.cipherSuites.length;++d){var e=b.cipherSuites[d];c.putByte(e.id[0]);c.putByte(e.id[1])}var h=c.length(),d=a.util.createBuffer();d.putByte(m.CompressionMethod.none);var g=d.length(),e=a.util.createBuffer();if(b.virtualHost){var l=a.util.createBuffer();l.putByte(0);l.putByte(0);var k=a.util.createBuffer();k.putByte(0);n(k,2,a.util.createBuffer(b.virtualHost));var q=a.util.createBuffer();
|
|
n(q,2,k);n(l,2,q);e.putBuffer(l)}l=e.length();0<l&&(l+=2);k=b.session.id;h=k.length+1+2+4+28+2+h+1+g+l;g=a.util.createBuffer();g.putByte(m.HandshakeType.client_hello);g.putInt24(h);g.putByte(b.version.major);g.putByte(b.version.minor);g.putBytes(b.session.sp.client_random);n(g,1,a.util.createBuffer(k));n(g,2,c);n(g,1,d);0<l&&n(g,2,e);return g};m.createServerHello=function(b){var c=b.session.id,d=c.length+1+2+4+28+2+1,e=a.util.createBuffer();e.putByte(m.HandshakeType.server_hello);e.putInt24(d);e.putByte(b.version.major);
|
|
e.putByte(b.version.minor);e.putBytes(b.session.sp.server_random);n(e,1,a.util.createBuffer(c));e.putByte(b.session.cipherSuite.id[0]);e.putByte(b.session.cipherSuite.id[1]);e.putByte(b.session.compressionMethod);return e};m.createCertificate=function(b){var c=b.entity===m.ConnectionEnd.client,d=null;b.getCertificate&&(d=b.getCertificate(b,c?b.session.certificateRequest:b.session.extensions.server_name.serverNameList));var e=a.util.createBuffer();if(null!==d)try{a.util.isArray(d)||(d=[d]);for(var h=
|
|
null,g=0;g<d.length;++g){var l=a.pem.decode(d[g])[0];if("CERTIFICATE"!==l.type&&"X509 CERTIFICATE"!==l.type&&"TRUSTED CERTIFICATE"!==l.type){var k=Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".');k.headerType=l.type;throw k;}if(l.procType&&"ENCRYPTED"===l.procType.type)throw Error("Could not convert certificate from PEM; PEM is encrypted.");var q=a.util.createBuffer(l.body);null===h&&(h=a.asn1.fromDer(q.bytes(),!1));
|
|
var x=a.util.createBuffer();n(x,3,q);e.putBuffer(x)}d=a.pki.certificateFromAsn1(h);c?b.session.clientCertificate=d:b.session.serverCertificate=d}catch(r){return b.error(b,{message:"Could not send certificate list.",cause:r,send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.bad_certificate}})}b=3+e.length();c=a.util.createBuffer();c.putByte(m.HandshakeType.certificate);c.putInt24(b);n(c,3,e);return c};m.createClientKeyExchange=function(b){var c=a.util.createBuffer();c.putByte(b.session.clientHelloVersion.major);
|
|
c.putByte(b.session.clientHelloVersion.minor);c.putBytes(a.random.getBytes(46));var d=b.session.sp;d.pre_master_secret=c.getBytes();c=b.session.serverCertificate.publicKey.encrypt(d.pre_master_secret);b=c.length+2;d=a.util.createBuffer();d.putByte(m.HandshakeType.client_key_exchange);d.putInt24(b);d.putInt16(c.length);d.putBytes(c);return d};m.createServerKeyExchange=function(b){return a.util.createBuffer()};m.getClientSignature=function(b,c){var d=a.util.createBuffer();d.putBuffer(b.session.md5.digest());
|
|
d.putBuffer(b.session.sha1.digest());d=d.getBytes();b.getSignature=b.getSignature||function(b,c,d){var e=null;if(b.getPrivateKey)try{e=b.getPrivateKey(b,b.session.clientCertificate),e=a.pki.privateKeyFromPem(e)}catch(h){b.error(b,{message:"Could not get private key.",cause:h,send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.internal_error}})}null===e?b.error(b,{message:"No private key set.",send:!0,alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.internal_error}}):
|
|
c=e.sign(c,null);d(b,c)};b.getSignature(b,d,c)};m.createCertificateVerify=function(b,c){var d=c.length+2,e=a.util.createBuffer();e.putByte(m.HandshakeType.certificate_verify);e.putInt24(d);e.putInt16(c.length);e.putBytes(c);return e};m.createCertificateRequest=function(b){var c=a.util.createBuffer();c.putByte(1);var d=a.util.createBuffer(),e;for(e in b.caStore.certs){var h=a.pki.distinguishedNameToAsn1(b.caStore.certs[e].subject);d.putBuffer(a.asn1.toDer(h))}b=1+c.length()+2+d.length();e=a.util.createBuffer();
|
|
e.putByte(m.HandshakeType.certificate_request);e.putInt24(b);n(e,1,c);n(e,2,d);return e};m.createServerHelloDone=function(b){b=a.util.createBuffer();b.putByte(m.HandshakeType.server_hello_done);b.putInt24(0);return b};m.createChangeCipherSpec=function(){var b=a.util.createBuffer();b.putByte(1);return b};m.createFinished=function(b){var d=a.util.createBuffer();d.putBuffer(b.session.md5.digest());d.putBuffer(b.session.sha1.digest());d=c(b.session.sp.master_secret,b.entity===m.ConnectionEnd.client?"client finished":
|
|
"server finished",d.getBytes(),12);b=a.util.createBuffer();b.putByte(m.HandshakeType.finished);b.putInt24(d.length());b.putBuffer(d);return b};m.createHeartbeat=function(b,c,d){"undefined"===typeof d&&(d=c.length);var e=a.util.createBuffer();e.putByte(b);e.putInt16(d);e.putBytes(c);b=e.length();e.putBytes(a.random.getBytes(Math.max(16,b-d-3)));return e};m.queue=function(b,c){if(c){if(c.type===m.ContentType.handshake){var d=c.fragment.bytes();b.session.md5.update(d);b.session.sha1.update(d)}if(c.fragment.length()<=
|
|
m.MaxFragment)d=[c];else{for(var d=[],e=c.fragment.bytes();e.length>m.MaxFragment;)d.push(m.createRecord(b,{type:c.type,data:a.util.createBuffer(e.slice(0,m.MaxFragment))})),e=e.slice(m.MaxFragment);0<e.length&&d.push(m.createRecord(b,{type:c.type,data:a.util.createBuffer(e)}))}for(e=0;e<d.length&&!b.fail;++e){var h=d[e];b.state.current.write.update(b,h)&&b.records.push(h)}}};m.flush=function(a){for(var b=0;b<a.records.length;++b){var c=a.records[b];a.tlsData.putByte(c.type);a.tlsData.putByte(c.version.major);
|
|
a.tlsData.putByte(c.version.minor);a.tlsData.putInt16(c.fragment.length());a.tlsData.putBuffer(a.records[b].fragment)}a.records=[];return a.tlsDataReady(a)};var aa=function(b){switch(b){case !0:return!0;case a.pki.certificateError.bad_certificate:return m.Alert.Description.bad_certificate;case a.pki.certificateError.unsupported_certificate:return m.Alert.Description.unsupported_certificate;case a.pki.certificateError.certificate_revoked:return m.Alert.Description.certificate_revoked;case a.pki.certificateError.certificate_expired:return m.Alert.Description.certificate_expired;
|
|
case a.pki.certificateError.certificate_unknown:return m.Alert.Description.certificate_unknown;case a.pki.certificateError.unknown_ca:return m.Alert.Description.unknown_ca;default:return m.Alert.Description.bad_certificate}},ba=function(b){switch(b){case !0:return!0;case m.Alert.Description.bad_certificate:return a.pki.certificateError.bad_certificate;case m.Alert.Description.unsupported_certificate:return a.pki.certificateError.unsupported_certificate;case m.Alert.Description.certificate_revoked:return a.pki.certificateError.certificate_revoked;
|
|
case m.Alert.Description.certificate_expired:return a.pki.certificateError.certificate_expired;case m.Alert.Description.certificate_unknown:return a.pki.certificateError.certificate_unknown;case m.Alert.Description.unknown_ca:return a.pki.certificateError.unknown_ca;default:return a.pki.certificateError.bad_certificate}};m.verifyCertificateChain=function(b,c){try{a.pki.verifyCertificateChain(b.caStore,c,function(c,d,e){aa(c);d=b.verify(b,c,d,e);if(!0!==d){if("object"===typeof d&&!a.util.isArray(d))throw c=
|
|
Error("The application rejected the certificate."),c.send=!0,c.alert={level:m.Alert.Level.fatal,description:m.Alert.Description.bad_certificate},d.message&&(c.message=d.message),d.alert&&(c.alert.description=d.alert),c;d!==c&&(d=ba(d))}return d})}catch(d){var e=d;if("object"!==typeof e||a.util.isArray(e))e={send:!0,alert:{level:m.Alert.Level.fatal,description:aa(d)}};"send"in e||(e.send=!0);"alert"in e||(e.alert={level:m.Alert.Level.fatal,description:aa(e.error)});b.error(b,e)}return!b.fail};m.createSessionCache=
|
|
function(b,c){var d=null;if(b&&b.getSession&&b.setSession&&b.order)d=b;else{d={};d.cache=b||{};d.capacity=Math.max(c||100,1);d.order=[];for(var e in b)d.order.length<=c?d.order.push(e):delete b[e];d.getSession=function(b){var c=null,e=null;b?e=a.util.bytesToHex(b):0<d.order.length&&(e=d.order[0]);if(null!==e&&e in d.cache){c=d.cache[e];delete d.cache[e];for(var h in d.order)if(d.order[h]===e){d.order.splice(h,1);break}}return c};d.setSession=function(b,c){if(d.order.length===d.capacity){var e=d.order.shift();
|
|
delete d.cache[e]}e=a.util.bytesToHex(b);d.order.push(e);d.cache[e]=c}}return d};m.createConnection=function(b){var c=null,c=b.caStore?a.util.isArray(b.caStore)?a.pki.createCaStore(b.caStore):b.caStore:a.pki.createCaStore(),d=b.cipherSuites||null;if(null===d){var d=[],e;for(e in m.CipherSuites)d.push(m.CipherSuites[e])}e=b.server?m.ConnectionEnd.server:m.ConnectionEnd.client;var h=b.sessionCache?m.createSessionCache(b.sessionCache):null,g={version:{major:m.Version.major,minor:m.Version.minor},entity:e,
|
|
sessionId:b.sessionId,caStore:c,sessionCache:h,cipherSuites:d,connected:b.connected,virtualHost:b.virtualHost||null,verifyClient:b.verifyClient||!1,verify:b.verify||function(a,b,c,d){return b},getCertificate:b.getCertificate||null,getPrivateKey:b.getPrivateKey||null,getSignature:b.getSignature||null,input:a.util.createBuffer(),tlsData:a.util.createBuffer(),data:a.util.createBuffer(),tlsDataReady:b.tlsDataReady,dataReady:b.dataReady,heartbeatReceived:b.heartbeatReceived,closed:b.closed,error:function(a,
|
|
c){c.origin=c.origin||(a.entity===m.ConnectionEnd.client?"client":"server");c.send&&(m.queue(a,m.createAlert(a,c.alert)),m.flush(a));var d=!1!==c.fatal;d&&(a.fail=!0);b.error(a,c);d&&a.close(!1)},deflate:b.deflate||null,inflate:b.inflate||null,reset:function(a){g.version={major:m.Version.major,minor:m.Version.minor};g.record=null;g.session=null;g.peerCertificate=null;g.state={pending:null,current:null};g.expect=0;g.fragmented=null;g.records=[];g.open=!1;g.handshakes=0;g.handshaking=!1;g.isConnected=
|
|
!1;g.fail=!(a||"undefined"===typeof a);g.input.clear();g.tlsData.clear();g.data.clear();g.state.current=m.createConnectionState(g)}};g.reset();g.handshake=function(b){if(g.entity!==m.ConnectionEnd.client)g.error(g,{message:"Cannot initiate handshake as a server.",fatal:!1});else if(g.handshaking)g.error(g,{message:"Handshake already in progress.",fatal:!1});else{g.fail&&!g.open&&0===g.handshakes&&(g.fail=!1);g.handshaking=!0;b=b||"";var c=null;0<b.length&&(g.sessionCache&&(c=g.sessionCache.getSession(b)),
|
|
null===c&&(b=""));0===b.length&&g.sessionCache&&(c=g.sessionCache.getSession(),null!==c&&(b=c.id));g.session={id:b,version:null,cipherSuite:null,compressionMethod:null,serverCertificate:null,certificateRequest:null,clientCertificate:null,sp:{},md5:a.md.md5.create(),sha1:a.md.sha1.create()};c&&(g.version=c.version,g.session.sp=c.sp);g.session.sp.client_random=m.createRandom().getBytes();g.open=!0;m.queue(g,m.createRecord(g,{type:m.ContentType.handshake,data:m.createClientHello(g)}));m.flush(g)}};g.process=
|
|
function(b){var c=0;b&&g.input.putBytes(b);if(!g.fail){null!==g.record&&g.record.ready&&g.record.fragment.isEmpty()&&(g.record=null);if(null===g.record){c=0;b=g.input;var d=b.length();5>d?c=5-d:(g.record={type:b.getByte(),version:{major:b.getByte(),minor:b.getByte()},length:b.getInt16(),fragment:a.util.createBuffer(),ready:!1},(b=g.record.version.major===g.version.major)&&g.session&&g.session.version&&(b=g.record.version.minor===g.version.minor),b||g.error(g,{message:"Incompatible TLS version.",send:!0,
|
|
alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.protocol_version}}))}if(!g.fail&&null!==g.record&&!g.record.ready){c=g;b=0;var d=c.input,e=d.length();e<c.record.length?b=c.record.length-e:(c.record.fragment.putBytes(d.getBytes(c.record.length)),d.compact(),c.state.current.read.update(c,c.record)&&(null!==c.fragmented&&(c.fragmented.type===c.record.type?(c.fragmented.fragment.putBuffer(c.record.fragment),c.record=c.fragmented):c.error(c,{message:"Invalid fragmented record.",send:!0,
|
|
alert:{level:m.Alert.Level.fatal,description:m.Alert.Description.unexpected_message}})),c.record.ready=!0));c=b}if(!g.fail&&null!==g.record&&g.record.ready)if(b=g.record,d=b.type-m.ContentType.change_cipher_spec,e=ea[g.entity][g.expect],d in e)e[d](g,b);else m.handleUnexpected(g,b)}return c};g.prepare=function(b){m.queue(g,m.createRecord(g,{type:m.ContentType.application_data,data:a.util.createBuffer(b)}));return m.flush(g)};g.prepareHeartbeatRequest=function(b,c){b instanceof a.util.ByteBuffer&&
|
|
(b=b.bytes());"undefined"===typeof c&&(c=b.length);g.expectedHeartbeatPayload=b;m.queue(g,m.createRecord(g,{type:m.ContentType.heartbeat,data:m.createHeartbeat(m.HeartbeatMessageType.heartbeat_request,b,c)}));return m.flush(g)};g.close=function(a){if(!g.fail&&g.sessionCache&&g.session){var b={id:g.session.id,version:g.session.version,sp:g.session.sp};b.sp.keys=null;g.sessionCache.setSession(b.id,b)}if(g.open){g.open=!1;g.input.clear();if(g.isConnected||g.handshaking)g.isConnected=g.handshaking=!1,
|
|
m.queue(g,m.createAlert(g,{level:m.Alert.Level.warning,description:m.Alert.Description.close_notify})),m.flush(g);g.closed(g)}g.reset(a)};return g};a.tls=a.tls||{};for(var W in m)"function"!==typeof m[W]&&(a.tls[W]=m[W]);a.tls.prf_tls1=c;a.tls.hmac_sha1=function(b,c,d){var e=a.hmac.create();e.start("SHA1",b);b=a.util.createBuffer();b.putInt32(c[0]);b.putInt32(c[1]);b.putByte(d.type);b.putByte(d.version.major);b.putByte(d.version.minor);b.putInt16(d.length);b.putBytes(d.fragment.bytes());e.update(b.getBytes());
|
|
return e.digest().getBytes()};a.tls.createSessionCache=m.createSessionCache;a.tls.createConnection=m.createConnection}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.tls)return c.tls;c.defined.tls=!0;for(var l=0;l<e.length;++l)e[l](c);return c.tls}},
|
|
l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/tls","require module ./asn1 ./hmac ./md ./pem ./pki ./random ./util".split(" "),function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(b,e,l){e=e.entity===a.tls.ConnectionEnd.client;b.read.cipherState={init:!1,cipher:a.cipher.createDecipher("AES-CBC",
|
|
e?l.keys.server_write_key:l.keys.client_write_key),iv:e?l.keys.server_write_IV:l.keys.client_write_IV};b.write.cipherState={init:!1,cipher:a.cipher.createCipher("AES-CBC",e?l.keys.client_write_key:l.keys.server_write_key),iv:e?l.keys.client_write_IV:l.keys.server_write_IV};b.read.cipherFunction=n;b.write.cipherFunction=d;b.read.macLength=b.write.macLength=l.mac_length;b.read.macFunction=b.write.macFunction=m.hmac_sha1}function d(b,c){var h=!1,l=c.macFunction(c.macKey,c.sequenceNumber,b);b.fragment.putBytes(l);
|
|
c.updateSequenceNumber();l=b.version.minor===m.Versions.TLS_1_0.minor?c.cipherState.init?null:c.cipherState.iv:a.random.getBytesSync(16);c.cipherState.init=!0;var k=c.cipherState.cipher;k.start({iv:l});b.version.minor>=m.Versions.TLS_1_1.minor&&k.output.putBytes(l);k.update(b.fragment);k.finish(e)&&(b.fragment=k.output,b.length=b.fragment.length(),h=!0);return h}function e(a,b,c){c||(a-=b.length()%a,b.fillWithByte(a-1,a));return!0}function l(a,b,c){a=!0;if(c){c=b.length();for(var d=b.last(),e=c-1-
|
|
d;e<c-1;++e)a=a&&b.at(e)==d;a&&b.truncate(d+1)}return a}function n(b,c){var d=!1;++k;d=b.version.minor===m.Versions.TLS_1_0.minor?c.cipherState.init?null:c.cipherState.iv:b.fragment.getBytes(16);c.cipherState.init=!0;var e=c.cipherState.cipher;e.start({iv:d});e.update(b.fragment);var d=e.finish(l),h=c.macLength,q=a.random.getBytesSync(h),A=e.output.length();A>=h?(b.fragment=e.output.getBytes(A-h),q=e.output.getBytes(h)):b.fragment=e.output.getBytes();b.fragment=a.util.createBuffer(b.fragment);b.length=
|
|
b.fragment.length();h=c.macFunction(c.macKey,c.sequenceNumber,b);c.updateSequenceNumber();e=c.macKey;A=a.hmac.create();A.start("SHA1",e);A.update(q);q=A.digest().getBytes();A.start(null,null);A.update(h);h=A.digest().getBytes();return q===h&&d}var m=a.tls;m.CipherSuites.TLS_RSA_WITH_AES_128_CBC_SHA={id:[0,47],name:"TLS_RSA_WITH_AES_128_CBC_SHA",initSecurityParameters:function(a){a.bulk_cipher_algorithm=m.BulkCipherAlgorithm.aes;a.cipher_type=m.CipherType.block;a.enc_key_length=16;a.block_length=16;
|
|
a.fixed_iv_length=16;a.record_iv_length=16;a.mac_algorithm=m.MACAlgorithm.hmac_sha1;a.mac_length=20;a.mac_key_length=20},initConnectionState:c};m.CipherSuites.TLS_RSA_WITH_AES_256_CBC_SHA={id:[0,53],name:"TLS_RSA_WITH_AES_256_CBC_SHA",initSecurityParameters:function(a){a.bulk_cipher_algorithm=m.BulkCipherAlgorithm.aes;a.cipher_type=m.CipherType.block;a.enc_key_length=32;a.block_length=16;a.fixed_iv_length=16;a.record_iv_length=16;a.mac_algorithm=m.MACAlgorithm.hmac_sha1;a.mac_length=20;a.mac_key_length=
|
|
20},initConnectionState:c};var k=0}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.aesCipherSuites)return c.aesCipherSuites;c.defined.aesCipherSuites=!0;for(var l=0;l<e.length;++l)e[l](c);return c.aesCipherSuites}},l=a;a=function(b,c){v="string"===
|
|
typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/aesCipherSuites",["require","module","./aes","./tls"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){a.debug=a.debug||{};a.debug.storage={};a.debug.get=function(b,c){var d;"undefined"===typeof b?d=a.debug.storage:b in a.debug.storage&&(d="undefined"===typeof c?a.debug.storage[b]:
|
|
a.debug.storage[b][c]);return d};a.debug.set=function(b,c,d){b in a.debug.storage||(a.debug.storage[b]={});a.debug.storage[b][c]=d};a.debug.clear=function(b,c){"undefined"===typeof b?a.debug.storage={}:b in a.debug.storage&&("undefined"===typeof c?delete a.debug.storage[b]:delete a.debug.storage[b][c])}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=
|
|
function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.debug)return c.debug;c.defined.debug=!0;for(var l=0;l<e.length;++l)e[l](c);return c.debug}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/debug",["require","module"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();
|
|
(function(){function b(a){function c(b,d,e,h){b.generate=function(b,c){for(var l=new a.util.ByteBuffer,q=Math.ceil(c/h)+e,n=new a.util.ByteBuffer,y=e;y<q;++y){n.putInt32(y);d.start();d.update(b+n.getBytes());var v=d.digest();l.putBytes(v.getBytes(h))}l.truncate(l.length()-c);return l.getBytes()}}a.kem=a.kem||{};var d=a.jsbn.BigInteger;a.kem.rsa={};a.kem.rsa.create=function(b,c){c=c||{};var e=c.prng||a.random;return{encrypt:function(c,l){var g=Math.ceil(c.n.bitLength()/8),q;do q=(new d(a.util.bytesToHex(e.getBytesSync(g)),
|
|
16)).mod(c.n);while(q.equals(d.ZERO));q=a.util.hexToBytes(q.toString(16));g-=q.length;0<g&&(q=a.util.fillString(String.fromCharCode(0),g)+q);g=c.encrypt(q,"NONE");q=b.generate(q,l);return{encapsulation:g,key:q}},decrypt:function(a,c,d){a=a.decrypt(c,"NONE");return b.generate(a,d)}}};a.kem.kdf1=function(a,b){c(this,a,0,b||a.digestLength)};a.kem.kdf2=function(a,b){c(this,a,1,b||a.digestLength)}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===
|
|
typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.kem)return c.kem;c.defined.kem=!0;for(var l=0;l<e.length;++l)e[l](c);return c.kem}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/kem",["require","module","./util","./random",
|
|
"./jsbn"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){a.log=a.log||{};a.log.levels="none error warning info debug verbose max".split(" ");var c={},d=[],e=null;a.log.LEVEL_LOCKED=2;a.log.NO_LEVEL_CHECK=4;a.log.INTERPOLATE=8;for(var l=0;l<a.log.levels.length;++l){var n=a.log.levels[l];c[n]={index:l,name:n.toUpperCase()}}a.log.logMessage=function(b){for(var e=c[b.level].index,l=0;l<d.length;++l){var m=d[l];m.flags&a.log.NO_LEVEL_CHECK?m.f(b):e<=c[m.level].index&&
|
|
m.f(m,b)}};a.log.prepareStandard=function(a){"standard"in a||(a.standard=c[a.level].name+" ["+a.category+"] "+a.message)};a.log.prepareFull=function(b){if(!("full"in b)){var c=[b.message],c=c.concat([]);b.full=a.util.format.apply(this,c)}};a.log.prepareStandardFull=function(b){"standardFull"in b||(a.log.prepareStandard(b),b.standardFull=b.standard)};n=["error","warning","info","debug","verbose"];for(l=0;l<n.length;++l)(function(b){a.log[b]=function(c,d){var e=Array.prototype.slice.call(arguments).slice(2);
|
|
a.log.logMessage({timestamp:new Date,level:b,category:c,message:d,arguments:e})}})(n[l]);a.log.makeLogger=function(b){b={flags:0,f:b};a.log.setLevel(b,"none");return b};a.log.setLevel=function(b,c){var d=!1;if(b&&!(b.flags&a.log.LEVEL_LOCKED))for(var e=0;e<a.log.levels.length;++e)if(c==a.log.levels[e]){b.level=c;d=!0;break}return d};a.log.lock=function(b,c){b.flags="undefined"===typeof c||c?b.flags|a.log.LEVEL_LOCKED:b.flags&~a.log.LEVEL_LOCKED};a.log.addLogger=function(a){d.push(a)};if("undefined"!==
|
|
typeof console&&"log"in console){if(console.error&&console.warn&&console.info&&console.debug)var m={error:console.error,warning:console.warn,info:console.info,debug:console.debug,verbose:console.debug},e=function(b,c){a.log.prepareStandard(c);var d=m[c.level],e=[c.standard],e=e.concat(c.arguments.slice());d.apply(console,e)};else e=function(b,c){a.log.prepareStandardFull(c);console.log(c.standardFull)};e=a.log.makeLogger(e);a.log.setLevel(e,"debug");a.log.addLogger(e)}else console={log:function(){}};
|
|
null!==e&&(l=a.util.getQueryVariables(),"console.level"in l&&a.log.setLevel(e,l["console.level"].slice(-1)[0]),"console.lock"in l&&"true"==l["console.lock"].slice(-1)[0]&&a.log.lock(e));a.log.consoleLogger=e}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.log)return c.log;
|
|
c.defined.log=!0;for(var l=0;l<e.length;++l)e[l](c);return c.log}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/log",["require","module","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(b){var d={},e=[];if(!u.validate(b,v.asn1.recipientInfoValidator,d,e))throw b=Error("Cannot read PKCS#7 RecipientInfo. ASN.1 object is not an PKCS#7 RecipientInfo."),
|
|
b.errors=e,b;return{version:d.version.charCodeAt(0),issuer:a.pki.RDNAttributesAsArray(d.issuer),serialNumber:a.util.createBuffer(d.serial).toHex(),encryptedContent:{algorithm:u.derToOid(d.encAlgorithm),parameter:d.encParameter.value,content:d.encKey}}}function d(b){return u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,u.Type.INTEGER,!1,u.integerToDer(b.version).getBytes()),u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[a.pki.distinguishedNameToAsn1({attributes:b.issuer}),
|
|
u.create(u.Class.UNIVERSAL,u.Type.INTEGER,!1,a.util.hexToBytes(b.serialNumber))]),u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(b.encryptedContent.algorithm).getBytes()),u.create(u.Class.UNIVERSAL,u.Type.NULL,!1,"")]),u.create(u.Class.UNIVERSAL,u.Type.OCTETSTRING,!1,b.encryptedContent.content)])}function e(a){for(var b=[],c=0;c<a.length;++c)b.push(d(a[c]));return b}function l(b){var c=u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,
|
|
u.Type.INTEGER,!1,u.integerToDer(b.version).getBytes()),u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[a.pki.distinguishedNameToAsn1({attributes:b.issuer}),u.create(u.Class.UNIVERSAL,u.Type.INTEGER,!1,a.util.hexToBytes(b.serialNumber))]),u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(b.digestAlgorithm).getBytes()),u.create(u.Class.UNIVERSAL,u.Type.NULL,!1,"")])]);b.authenticatedAttributesAsn1&&c.value.push(b.authenticatedAttributesAsn1);c.value.push(u.create(u.Class.UNIVERSAL,
|
|
u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(b.signatureAlgorithm).getBytes()),u.create(u.Class.UNIVERSAL,u.Type.NULL,!1,"")]));c.value.push(u.create(u.Class.UNIVERSAL,u.Type.OCTETSTRING,!1,b.signature));if(0<b.unauthenticatedAttributes.length){for(var d=u.create(u.Class.CONTEXT_SPECIFIC,1,!0,[]),e=0;e<b.unauthenticatedAttributes.length;++e)d.values.push(n(b.unauthenticatedAttributes[e]));c.value.push(d)}return c}function n(b){var c;if(b.type===a.pki.oids.contentType)c=
|
|
u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(b.value).getBytes());else if(b.type===a.pki.oids.messageDigest)c=u.create(u.Class.UNIVERSAL,u.Type.OCTETSTRING,!1,b.value.bytes());else if(b.type===a.pki.oids.signingTime){c=new Date("Jan 1, 1950 00:00:00Z");var d=new Date("Jan 1, 2050 00:00:00Z"),e=b.value;if("string"===typeof e)var g=Date.parse(e),e=isNaN(g)?13===e.length?u.utcTimeToDate(e):u.generalizedTimeToDate(e):new Date(g);c=e>=c&&e<d?u.create(u.Class.UNIVERSAL,u.Type.UTCTIME,!1,u.dateToUtcTime(e)):
|
|
u.create(u.Class.UNIVERSAL,u.Type.GENERALIZEDTIME,!1,u.dateToGeneralizedTime(e))}return u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(b.type).getBytes()),u.create(u.Class.UNIVERSAL,u.Type.SET,!0,[c])])}function m(b){return[u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(a.pki.oids.data).getBytes()),u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(b.algorithm).getBytes()),u.create(u.Class.UNIVERSAL,
|
|
u.Type.OCTETSTRING,!1,b.parameter.getBytes())]),u.create(u.Class.CONTEXT_SPECIFIC,0,!0,[u.create(u.Class.UNIVERSAL,u.Type.OCTETSTRING,!1,b.content.getBytes())])]}function k(b,c,d){var e={};if(!u.validate(c,d,e,[]))throw b=Error("Cannot read PKCS#7 message. ASN.1 object is not a supported PKCS#7 message."),b.errors=b,b;if(u.derToOid(e.contentType)!==a.pki.oids.data)throw Error("Unsupported PKCS#7 message. Only wrapped ContentType Data supported.");if(e.encryptedContent){c="";if(a.util.isArray(e.encryptedContent))for(d=
|
|
0;d<e.encryptedContent.length;++d){if(e.encryptedContent[d].type!==u.Type.OCTETSTRING)throw Error("Malformed PKCS#7 message, expecting encrypted content constructed of only OCTET STRING objects.");c+=e.encryptedContent[d].value}else c=e.encryptedContent;b.encryptedContent={algorithm:u.derToOid(e.encAlgorithm),parameter:a.util.createBuffer(e.encParameter.value),content:a.util.createBuffer(c)}}if(e.content){c="";if(a.util.isArray(e.content))for(d=0;d<e.content.length;++d){if(e.content[d].type!==u.Type.OCTETSTRING)throw Error("Malformed PKCS#7 message, expecting content constructed of only OCTET STRING objects.");
|
|
c+=e.content[d].value}else c=e.content;b.content=a.util.createBuffer(c)}b.version=e.version.charCodeAt(0);return b.rawCapture=e}function g(b){if(void 0===b.encryptedContent.key)throw Error("Symmetric key not available.");if(void 0===b.content){var c;switch(b.encryptedContent.algorithm){case a.pki.oids["aes128-CBC"]:case a.pki.oids["aes192-CBC"]:case a.pki.oids["aes256-CBC"]:c=a.aes.createDecryptionCipher(b.encryptedContent.key);break;case a.pki.oids.desCBC:case a.pki.oids["des-EDE3-CBC"]:c=a.des.createDecryptionCipher(b.encryptedContent.key);
|
|
break;default:throw Error("Unsupported symmetric cipher, OID "+b.encryptedContent.algorithm);}c.start(b.encryptedContent.parameter);c.update(b.encryptedContent.content);if(!c.finish())throw Error("Symmetric decryption failed.");b.content=c.output}}var u=a.asn1,v=a.pkcs7=a.pkcs7||{};v.messageFromPem=function(b){b=a.pem.decode(b)[0];if("PKCS7"!==b.type){var c=Error('Could not convert PKCS#7 message from PEM; PEM header type is not "PKCS#7".');c.headerType=b.type;throw c;}if(b.procType&&"ENCRYPTED"===
|
|
b.procType.type)throw Error("Could not convert PKCS#7 message from PEM; PEM is encrypted.");b=u.fromDer(b.body);return v.messageFromAsn1(b)};v.messageToPem=function(b,c){var d={type:"PKCS7",body:u.toDer(b.toAsn1()).getBytes()};return a.pem.encode(d,{maxline:c})};v.messageFromAsn1=function(b){var c={},d=[];if(!u.validate(b,v.asn1.contentInfoValidator,c,d))throw c=Error("Cannot read PKCS#7 message. ASN.1 object is not an PKCS#7 ContentInfo."),c.errors=d,c;d=u.derToOid(c.contentType);switch(d){case a.pki.oids.envelopedData:d=
|
|
v.createEnvelopedData();break;case a.pki.oids.encryptedData:d=v.createEncryptedData();break;case a.pki.oids.signedData:d=v.createSignedData();break;default:throw Error("Cannot read PKCS#7 message. ContentType with OID "+d+" is not (yet) supported.");}d.fromAsn1(c.content.value[0]);return d};v.createSignedData=function(){var b=null;return b={type:a.pki.oids.signedData,version:1,certificates:[],crls:[],signers:[],digestAlgorithmIdentifiers:[],contentInfo:null,signerInfos:[],fromAsn1:function(c){k(b,
|
|
c,v.asn1.signedDataValidator);b.certificates=[];b.crls=[];b.digestAlgorithmIdentifiers=[];b.contentInfo=null;b.signerInfos=[];c=b.rawCapture.certificates.value;for(var d=0;d<c.length;++d)b.certificates.push(a.pki.certificateFromAsn1(c[d]))},toAsn1:function(){b.contentInfo||b.sign();for(var c=[],d=0;d<b.certificates.length;++d)c.push(a.pki.certificateToAsn1(b.certificates[d]));var d=[],e=u.create(u.Class.CONTEXT_SPECIFIC,0,!0,[u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,
|
|
u.Type.INTEGER,!1,u.integerToDer(b.version).getBytes()),u.create(u.Class.UNIVERSAL,u.Type.SET,!0,b.digestAlgorithmIdentifiers),b.contentInfo])]);0<c.length&&e.value[0].value.push(u.create(u.Class.CONTEXT_SPECIFIC,0,!0,c));0<d.length&&e.value[0].value.push(u.create(u.Class.CONTEXT_SPECIFIC,1,!0,d));e.value[0].value.push(u.create(u.Class.UNIVERSAL,u.Type.SET,!0,b.signerInfos));return u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(b.type).getBytes()),
|
|
e])},addSigner:function(c){var d=c.issuer,e=c.serialNumber;c.certificate&&(e=c.certificate,"string"===typeof e&&(e=a.pki.certificateFromPem(e)),d=e.issuer.attributes,e=e.serialNumber);var g=c.key;if(!g)throw Error("Could not add PKCS#7 signer; no private key specified.");"string"===typeof g&&(g=a.pki.privateKeyFromPem(g));var h=c.digestAlgorithm||a.pki.oids.sha1;switch(h){case a.pki.oids.sha1:case a.pki.oids.sha256:case a.pki.oids.sha384:case a.pki.oids.sha512:case a.pki.oids.md5:break;default:throw Error("Could not add PKCS#7 signer; unknown message digest algorithm: "+
|
|
h);}c=c.authenticatedAttributes||[];if(0<c.length){for(var l=!1,k=!1,m=0;m<c.length;++m){var q=c[m];if(!l&&q.type===a.pki.oids.contentType){if(l=!0,k)break}else if(!k&&q.type===a.pki.oids.messageDigest&&(k=!0,l))break}if(!l||!k)throw Error("Invalid signer.authenticatedAttributes. If signer.authenticatedAttributes is specified, then it must contain at least two attributes, PKCS #9 content-type and PKCS #9 message-digest.");}b.signers.push({key:g,version:1,issuer:d,serialNumber:e,digestAlgorithm:h,
|
|
signatureAlgorithm:a.pki.oids.rsaEncryption,signature:null,authenticatedAttributes:c,unauthenticatedAttributes:[]})},sign:function(){if("object"!==typeof b.content||null===b.contentInfo)if(b.contentInfo=u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(a.pki.oids.data).getBytes())]),"content"in b){var c;b.content instanceof a.util.ByteBuffer?c=b.content.bytes():"string"===typeof b.content&&(c=a.util.encodeUtf8(b.content));b.contentInfo.value.push(u.create(u.Class.CONTEXT_SPECIFIC,
|
|
0,!0,[u.create(u.Class.UNIVERSAL,u.Type.OCTETSTRING,!1,c)]))}if(0!==b.signers.length){c={};for(var d=0;d<b.signers.length;++d){var e=b.signers[d],g=e.digestAlgorithm;g in c||(c[g]=a.md[a.pki.oids[g]].create());e.md=0===e.authenticatedAttributes.length?c[g]:a.md[a.pki.oids[g]].create()}b.digestAlgorithmIdentifiers=[];for(g in c)b.digestAlgorithmIdentifiers.push(u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(g).getBytes()),u.create(u.Class.UNIVERSAL,
|
|
u.Type.NULL,!1,"")]));if(2>b.contentInfo.value.length)throw Error("Could not sign PKCS#7 message; there is no content to sign.");var g=u.derToOid(b.contentInfo.value[0].value),d=b.contentInfo.value[1],d=d.value[0],h=u.toDer(d);h.getByte();u.getBerValueLength(h);var h=h.getBytes(),k;for(k in c)c[k].start().update(h);k=new Date;for(d=0;d<b.signers.length;++d){e=b.signers[d];if(0===e.authenticatedAttributes.length){if(g!==a.pki.oids.data)throw Error("Invalid signer; authenticatedAttributes must be present when the ContentInfo content type is not PKCS#7 Data.");
|
|
}else{e.authenticatedAttributesAsn1=u.create(u.Class.CONTEXT_SPECIFIC,0,!0,[]);for(var h=u.create(u.Class.UNIVERSAL,u.Type.SET,!0,[]),m=0;m<e.authenticatedAttributes.length;++m){var q=e.authenticatedAttributes[m];q.type===a.pki.oids.messageDigest?q.value=c[e.digestAlgorithm].digest():q.type!==a.pki.oids.signingTime||q.value||(q.value=k);h.value.push(n(q));e.authenticatedAttributesAsn1.value.push(n(q))}h=u.toDer(h).getBytes();e.md.start().update(h)}e.signature=e.key.sign(e.md,"RSASSA-PKCS1-V1_5")}c=
|
|
b;g=b.signers;k=[];for(d=0;d<g.length;++d)k.push(l(g[d]));c.signerInfos=k}},verify:function(){throw Error("PKCS#7 signature verification not yet implemented.");},addCertificate:function(c){"string"===typeof c&&(c=a.pki.certificateFromPem(c));b.certificates.push(c)},addCertificateRevokationList:function(a){throw Error("PKCS#7 CRL support not yet implemented.");}}};v.createEncryptedData=function(){var b=null;return b={type:a.pki.oids.encryptedData,version:0,encryptedContent:{algorithm:a.pki.oids["aes256-CBC"]},
|
|
fromAsn1:function(a){k(b,a,v.asn1.encryptedDataValidator)},decrypt:function(a){void 0!==a&&(b.encryptedContent.key=a);g(b)}}};v.createEnvelopedData=function(){var b=null;return b={type:a.pki.oids.envelopedData,version:0,recipients:[],encryptedContent:{algorithm:a.pki.oids["aes256-CBC"]},fromAsn1:function(a){var d=k(b,a,v.asn1.envelopedDataValidator);a=b;for(var d=d.recipientInfos.value,e=[],g=0;g<d.length;++g)e.push(c(d[g]));a.recipients=e},toAsn1:function(){return u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,
|
|
!0,[u.create(u.Class.UNIVERSAL,u.Type.OID,!1,u.oidToDer(b.type).getBytes()),u.create(u.Class.CONTEXT_SPECIFIC,0,!0,[u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,[u.create(u.Class.UNIVERSAL,u.Type.INTEGER,!1,u.integerToDer(b.version).getBytes()),u.create(u.Class.UNIVERSAL,u.Type.SET,!0,e(b.recipients)),u.create(u.Class.UNIVERSAL,u.Type.SEQUENCE,!0,m(b.encryptedContent))])])])},findRecipient:function(a){for(var c=a.issuer.attributes,d=0;d<b.recipients.length;++d){var e=b.recipients[d],g=e.issuer;if(e.serialNumber===
|
|
a.serialNumber&&g.length===c.length){for(var h=!0,l=0;l<c.length;++l)if(g[l].type!==c[l].type||g[l].value!==c[l].value){h=!1;break}if(h)return e}}return null},decrypt:function(c,d){if(void 0===b.encryptedContent.key&&void 0!==c&&void 0!==d)switch(c.encryptedContent.algorithm){case a.pki.oids.rsaEncryption:case a.pki.oids.desCBC:var e=d.decrypt(c.encryptedContent.content);b.encryptedContent.key=a.util.createBuffer(e);break;default:throw Error("Unsupported asymmetric cipher, OID "+c.encryptedContent.algorithm);
|
|
}g(b)},addRecipient:function(c){b.recipients.push({version:0,issuer:c.issuer.attributes,serialNumber:c.serialNumber,encryptedContent:{algorithm:a.pki.oids.rsaEncryption,key:c.publicKey}})},encrypt:function(c,d){if(void 0===b.encryptedContent.content){d=d||b.encryptedContent.algorithm;c=c||b.encryptedContent.key;var e,g,h;switch(d){case a.pki.oids["aes128-CBC"]:g=e=16;h=a.aes.createEncryptionCipher;break;case a.pki.oids["aes192-CBC"]:e=24;g=16;h=a.aes.createEncryptionCipher;break;case a.pki.oids["aes256-CBC"]:e=
|
|
32;g=16;h=a.aes.createEncryptionCipher;break;case a.pki.oids["des-EDE3-CBC"]:e=24;g=8;h=a.des.createEncryptionCipher;break;default:throw Error("Unsupported symmetric cipher, OID "+d);}if(void 0===c)c=a.util.createBuffer(a.random.getBytes(e));else if(c.length()!=e)throw Error("Symmetric key has wrong length; got "+c.length()+" bytes, expected "+e+".");b.encryptedContent.algorithm=d;b.encryptedContent.key=c;b.encryptedContent.parameter=a.util.createBuffer(a.random.getBytes(g));e=h(c);e.start(b.encryptedContent.parameter.copy());
|
|
e.update(b.content);if(!e.finish())throw Error("Symmetric encryption failed.");b.encryptedContent.content=e.output}for(e=0;e<b.recipients.length;++e)if(g=b.recipients[e],void 0===g.encryptedContent.content)switch(g.encryptedContent.algorithm){case a.pki.oids.rsaEncryption:g.encryptedContent.content=g.encryptedContent.key.encrypt(b.encryptedContent.key.data);break;default:throw Error("Unsupported asymmetric cipher, OID "+g.encryptedContent.algorithm);}}}}}if("function"!==typeof a)if("object"===typeof module&&
|
|
module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.pkcs7)return c.pkcs7;c.defined.pkcs7=!0;for(var l=0;l<e.length;++l)e[l](c);return c.pkcs7}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,
|
|
Array.prototype.slice.call(arguments,0))};a("js/pkcs7","require module ./aes ./asn1 ./des ./oids ./pem ./pkcs7asn1 ./random ./util ./x509".split(" "),function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){function c(b,d){var e=d.toString(16);"8"<=e[0]&&(e="00"+e);e=a.util.hexToBytes(e);b.putInt32(e.length);b.putBytes(e)}function d(a,b){a.putInt32(b.length);a.putString(b)}function e(){for(var b=a.md.sha1.create(),c=arguments.length,d=0;d<c;++d)b.update(arguments[d]);
|
|
return b.digest()}var l=a.ssh=a.ssh||{};l.privateKeyToPutty=function(b,l,k){k=k||"";l=l||"";var g=""===l?"none":"aes256-cbc",n;n="PuTTY-User-Key-File-2: ssh-rsa\r\n"+("Encryption: "+g+"\r\n")+("Comment: "+k+"\r\n");var v=a.util.createBuffer();d(v,"ssh-rsa");c(v,b.e);c(v,b.n);var w=a.util.encode64(v.bytes(),64),y=Math.floor(w.length/66)+1;n+="Public-Lines: "+y+"\r\n";n+=w;w=a.util.createBuffer();c(w,b.d);c(w,b.p);c(w,b.q);c(w,b.qInv);l?(y=w.length()+16-1,y-=y%16,b=e(w.bytes()),b.truncate(b.length()-
|
|
y+w.length()),w.putBuffer(b),y=a.util.createBuffer(),y.putBuffer(e("\x00\x00\x00\x00",l)),y.putBuffer(e("\x00\x00\x00\u0001",l)),y=a.aes.createEncryptionCipher(y.truncate(8),"CBC"),y.start(a.util.createBuffer().fillWithByte(0,16)),y.update(w.copy()),y.finish(),y=y.output,y.truncate(16),b=a.util.encode64(y.bytes(),64)):b=a.util.encode64(w.bytes(),64);y=Math.floor(b.length/66)+1;n+="\r\nPrivate-Lines: "+y+"\r\n";n+=b;l=e("putty-private-key-file-mac-key",l);y=a.util.createBuffer();d(y,"ssh-rsa");d(y,
|
|
g);d(y,k);y.putInt32(v.length());y.putBuffer(v);y.putInt32(w.length());y.putBuffer(w);k=a.hmac.create();k.start("sha1",l);k.update(y.bytes());return n+="\r\nPrivate-MAC: "+k.digest().toHex()+"\r\n"};l.publicKeyToOpenSSH=function(b,e){e=e||"";var l=a.util.createBuffer();d(l,"ssh-rsa");c(l,b.e);c(l,b.n);return"ssh-rsa "+a.util.encode64(l.bytes())+" "+e};l.privateKeyToOpenSSH=function(b,c){return c?a.pki.encryptRsaPrivateKey(b,c,{legacy:!0,algorithm:"aes128"}):a.pki.privateKeyToPem(b)};l.getPublicKeyFingerprint=
|
|
function(b,e){e=e||{};var l=e.md||a.md.md5.create(),g=a.util.createBuffer();d(g,"ssh-rsa");c(g,b.e);c(g,b.n);l.start();l.update(g.getBytes());l=l.digest();if("hex"===e.encoding)return l=l.toHex(),e.delimiter?l.match(/.{2}/g).join(e.delimiter):l;if("binary"===e.encoding)return l.getBytes();if(e.encoding)throw Error('Unknown encoding "'+e.encoding+'".');return l}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&
|
|
(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.ssh)return c.ssh;c.defined.ssh=!0;for(var l=0;l<e.length;++l)e[l](c);return c.ssh}},l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/ssh","require module ./aes ./hmac ./md5 ./sha1 ./util".split(" "),
|
|
function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){function b(a){var c={},d=0;a.debug.set("forge.task","tasks",c);var e={};a.debug.set("forge.task","queues",e);var l={ready:{}};l.ready.stop="ready";l.ready.start="running";l.ready.cancel="done";l.ready.fail="error";l.running={};l.running.stop="ready";l.running.start="running";l.running.block="blocked";l.running.unblock="running";l.running.sleep="sleeping";l.running.wakeup="running";l.running.cancel="done";l.running.fail=
|
|
"error";l.blocked={};l.blocked.stop="blocked";l.blocked.start="blocked";l.blocked.block="blocked";l.blocked.unblock="blocked";l.blocked.sleep="blocked";l.blocked.wakeup="blocked";l.blocked.cancel="done";l.blocked.fail="error";l.sleeping={};l.sleeping.stop="sleeping";l.sleeping.start="sleeping";l.sleeping.block="sleeping";l.sleeping.unblock="sleeping";l.sleeping.sleep="sleeping";l.sleeping.wakeup="sleeping";l.sleeping.cancel="done";l.sleeping.fail="error";l.done={};l.done.stop="done";l.done.start=
|
|
"done";l.done.block="done";l.done.unblock="done";l.done.sleep="done";l.done.wakeup="done";l.done.cancel="done";l.done.fail="error";l.error={};l.error.stop="error";l.error.start="error";l.error.block="error";l.error.unblock="error";l.error.sleep="error";l.error.wakeup="error";l.error.cancel="error";l.error.fail="error";var n=function(a){this.id=-1;this.name=a.name||"?";this.parent=a.parent||null;this.run=a.run;this.subtasks=[];this.error=!1;this.state="ready";this.blocks=0;this.userData=this.swapTime=
|
|
this.timeoutId=null;this.id=d++;c[this.id]=this};n.prototype.debug=function(b){a.log.debug("forge.task",b||"","[%s][%s] task:",this.id,this.name,this,"subtasks:",this.subtasks.length,"queue:",e)};n.prototype.next=function(a,b){"function"===typeof a&&(b=a,a=this.name);var c=new n({run:b,name:a,parent:this});c.state="running";c.type=this.type;c.successCallback=this.successCallback||null;c.failureCallback=this.failureCallback||null;this.subtasks.push(c);return this};n.prototype.parallel=function(b,c){a.util.isArray(b)&&
|
|
(c=b,b=this.name);return this.next(b,function(d){d.block(c.length);for(var e=function(b,e){a.task.start({type:b,run:function(a){c[e](a)},success:function(a){d.unblock()},failure:function(a){d.unblock()}})},l=0;l<c.length;l++)e(b+"__parallel-"+d.id+"-"+l,l)})};n.prototype.stop=function(){this.state=l[this.state].stop};n.prototype.start=function(){this.error=!1;this.state=l[this.state].start;"running"===this.state&&(this.start=new Date,this.run(this),k(this,0))};n.prototype.block=function(a){this.blocks+=
|
|
"undefined"===typeof a?1:a;0<this.blocks&&(this.state=l[this.state].block)};n.prototype.unblock=function(a){this.blocks-="undefined"===typeof a?1:a;0===this.blocks&&"done"!==this.state&&(this.state="running",k(this,0));return this.blocks};n.prototype.sleep=function(a){this.state=l[this.state].sleep;var b=this;this.timeoutId=setTimeout(function(){b.timeoutId=null;b.state="running";k(b,0)},"undefined"===typeof a?0:a)};n.prototype.wait=function(a){a.wait(this)};n.prototype.wakeup=function(){"sleeping"===
|
|
this.state&&(cancelTimeout(this.timeoutId),this.timeoutId=null,this.state="running",k(this,0))};n.prototype.cancel=function(){this.state=l[this.state].cancel;this.permitsNeeded=0;null!==this.timeoutId&&(cancelTimeout(this.timeoutId),this.timeoutId=null);this.subtasks=[]};n.prototype.fail=function(a){this.error=!0;g(this,!0);if(a)a.error=this.error,a.swapTime=this.swapTime,a.userData=this.userData,k(a,0);else{if(null!==this.parent){for(a=this.parent;null!==a.parent;)a.error=this.error,a.swapTime=this.swapTime,
|
|
a.userData=this.userData,a=a.parent;g(a,!0)}this.failureCallback&&this.failureCallback(this)}};var m=function(a){a.error=!1;a.state=l[a.state].start;setTimeout(function(){"running"===a.state&&(a.swapTime=+new Date,a.run(a),k(a,0))},0)},k=function(a,b){var c=30<b||20<+new Date-a.swapTime,d=function(b){b++;if("running"===a.state)if(c&&(a.swapTime=+new Date),0<a.subtasks.length){var d=a.subtasks.shift();d.error=a.error;d.swapTime=a.swapTime;d.userData=a.userData;d.run(d);d.error||k(d,b)}else g(a),a.error||
|
|
null===a.parent||(a.parent.error=a.error,a.parent.swapTime=a.swapTime,a.parent.userData=a.userData,k(a.parent,b))};c?setTimeout(d,0):d(b)},g=function(b,d){b.state="done";delete c[b.id];null===b.parent&&(b.type in e?0===e[b.type].length?a.log.error("forge.task","[%s][%s] task queue empty [%s]",b.id,b.name,b.type):e[b.type][0]!==b?a.log.error("forge.task","[%s][%s] task not first in queue [%s]",b.id,b.name,b.type):(e[b.type].shift(),0===e[b.type].length?delete e[b.type]:e[b.type][0].start()):a.log.error("forge.task",
|
|
"[%s][%s] task queue missing [%s]",b.id,b.name,b.type),d||(b.error&&b.failureCallback?b.failureCallback(b):!b.error&&b.successCallback&&b.successCallback(b)))};a.task=a.task||{};a.task.start=function(a){var b=new n({run:a.run,name:a.name||"?"});b.type=a.type;b.successCallback=a.success||null;b.failureCallback=a.failure||null;b.type in e?e[a.type].push(b):(e[b.type]=[b],m(b))};a.task.cancel=function(a){a in e&&(e[a]=[e[a][0]])};a.task.createCondition=function(){var a={tasks:{},wait:function(b){b.id in
|
|
a.tasks||(b.block(),a.tasks[b.id]=b)},notify:function(){var b=a.tasks;a.tasks={};for(var c in b)b[c].unblock()}};return a}}if("function"!==typeof a)if("object"===typeof module&&module.exports){var e=!0;a=function(a,b){b(c,module)}}else return"undefined"===typeof forge&&(forge={}),b(forge);var v,n=function(a,c){c.exports=function(c){var e=v.map(function(b){return a(b)}).concat(b);c=c||{};c.defined=c.defined||{};if(c.defined.task)return c.task;c.defined.task=!0;for(var l=0;l<e.length;++l)e[l](c);return c.task}},
|
|
l=a;a=function(b,c){v="string"===typeof b?c.slice(2):b.slice(2);if(e)return delete a,l.apply(null,Array.prototype.slice.call(arguments,0));a=l;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/task",["require","module","./debug","./log","./util"],function(){n.apply(null,Array.prototype.slice.call(arguments,0))})})();(function(){if("function"!==typeof a)if("object"===typeof module&&module.exports){var b=!0;a=function(a,b){b(c,module)}}else{"undefined"===typeof forge&&(forge={disableNativeCode:!1});
|
|
return}var e,v=function(a,b){b.exports=function(b){var c=e.map(function(b){return a(b)});b=b||{};b.defined=b.defined||{};if(b.defined.forge)return b.forge;b.defined.forge=!0;for(var d=0;d<c.length;++d)c[d](b);return b};b.exports.disableNativeCode=!0;b.exports(b.exports)},n=a;a=function(c,p){e="string"===typeof c?p.slice(2):c.slice(2);if(b)return delete a,n.apply(null,Array.prototype.slice.call(arguments,0));a=n;return a.apply(null,Array.prototype.slice.call(arguments,0))};a("js/forge","require module ./aes ./aesCipherSuites ./asn1 ./cipher ./cipherModes ./debug ./des ./hmac ./kem ./log ./md ./mgf1 ./pbkdf2 ./pem ./pkcs7 ./pkcs1 ./pkcs12 ./pki ./prime ./prng ./pss ./random ./rc2 ./ssh ./task ./tls ./util".split(" "),
|
|
function(){v.apply(null,Array.prototype.slice.call(arguments,0))})})();return c("js/forge")});function amtcert_linkCertPrivateKey(b,c){for(var a in b){var d=b[a];try{if(0==c.length)break;for(var e=forge.pki.publicKeyToPem(forge.pki.certificateFromAsn1(forge.asn1.fromDer(d.X509Certificate)).publicKey).substring(60).replace(/(\r\n|\n|\r)/gm,""),v=0;v<c.length;v++)e===c[v].DERKey+"-----END PUBLIC KEY-----"&&(c[v].XCert=d,d.XPrivateKey=c[v])}catch(n){console.log(n)}}}
|
|
function amtcert_loadP12File(b,c,a){try{var d=window.forge.util.decode64(btoa(b)),e=window.forge.asn1.fromDer(d),v=window.forge.pkcs12.pkcs12FromAsn1(e,c),n=v.getBags({bagType:window.forge.pki.oids.pkcs8ShroudedKeyBag});console.assert(n[window.forge.pki.oids.pkcs8ShroudedKeyBag]&&0<n[window.forge.pki.oids.pkcs8ShroudedKeyBag].length);var l=n[window.forge.pki.oids.pkcs8ShroudedKeyBag][0].key,p=window.forge.pki.privateKeyToAsn1(l),q=window.forge.pki.wrapRsaPrivateKey(p);window.forge.asn1.toDer(q).getBytes();
|
|
var h=v.getBags({bagType:window.forge.pki.oids.certBag})[window.forge.pki.oids.certBag][0].cert.subject.attributes,B=v.getBags({bagType:forge.pki.oids.certBag})[forge.pki.oids.certBag][0].cert;a(l,h,B);return!0}catch(w){}return!1}function amtcert_signWithCaKey(b,c,a,d,e){c&&null!=c||(c=amtcert_createCertificate(d).key);return amtcert_createCertificate(a,c,b,d,e)}
|
|
function amtcert_createCertificate(b,c,a,d,e){var v,n=forge.pki.createCertificate();a?n.publicKey=forge.pki.publicKeyFromPem("-----BEGIN PUBLIC KEY-----"+a+"-----END PUBLIC KEY-----"):(v=forge.pki.rsa.generateKeyPair(2048),n.publicKey=v.publicKey);n.serialNumber=""+Math.floor(1E5*Math.random()+1);n.validity.notBefore=new Date(2018,0,1);n.validity.notAfter=new Date(2049,11,31);var l=[];b.CN&&l.push({name:"commonName",value:b.CN});b.C&&l.push({name:"countryName",value:b.C});b.ST&&l.push({shortName:"ST",
|
|
value:b.ST});b.O&&l.push({name:"organizationName",value:b.O});n.setSubject(l);c?(b=[],d.CN&&b.push({name:"commonName",value:d.CN}),d.C&&b.push({name:"countryName",value:d.C}),d.ST&&b.push({shortName:"ST",value:d.ST}),d.O&&b.push({name:"organizationName",value:d.O}),n.setIssuer(b)):n.setIssuer(l);null==c?n.setExtensions([{name:"basicConstraints",cA:!0},{name:"nsCertType",sslCA:!0,emailCA:!0,objCA:!0},{name:"subjectKeyIdentifier"}]):(null==e?e={name:"extKeyUsage",serverAuth:!0}:e.name="extKeyUsage",
|
|
n.setExtensions([{name:"basicConstraints"},{name:"keyUsage",keyCertSign:!0,digitalSignature:!0,nonRepudiation:!0,keyEncipherment:!0,dataEncipherment:!0},e,{name:"nsCertType",client:!0,server:!0,email:!0,objsign:!0},{name:"subjectKeyIdentifier"}]));c?n.sign(c,forge.md.sha256.create()):n.sign(v.privateKey,forge.md.sha256.create());return a?n:{cert:n,key:v.privateKey}}
|
|
function _stringToArrayBuffer(b){for(var c=new ArrayBuffer(b.length),a=new Uint8Array(c),d=0,e=b.length;d<e;d++)a[d]=b.charCodeAt(d);return c}function _arrayBufferToString(b){var c="";b=new Uint8Array(b);for(var a=b.byteLength,d=0;d<a;d++)c+=String.fromCharCode(b[d]);return c}function certCetAsn1Values(b,c){if("string"===typeof b&&0==b.indexOf("https://"))c.push(b);else if(Array.isArray(b))for(var a in b)certCetAsn1Values(b[a],c);else b&&"object"===typeof b&&certCetAsn1Values(b.value,c)}
|
|
function getExtensionUrls(b,c){var a=[],d=b.getExtension(c);null!=d&&certCetAsn1Values(forge.asn1.fromDer(d.value),a);return a}var certUrlCache=null,certUrlCacheFile=null;
|
|
function getCertUrl(b,c){null==certUrlCacheFile&&(certUrlCacheFile=null!=process.env.LOCALAPPDATA?require("path").join(process.env.LOCALAPPDATA,"mccache.json"):"mccache.json");if(null==certUrlCache)try{certUrlCache=JSON.parse(require("fs").readFileSync(certUrlCacheFile))}catch(d){certUrlCache={}}if(null!=certUrlCache[b]&&null!=certUrlCache[b].data){var a=0;b.endsWith(".crl")&&(a=Date.now()-12096E5);if(certUrlCache[b].time>a){c(b,atob(certUrlCache[b].data));return}}console.log("Loading: "+b);a=require("url").parse(b);
|
|
require("https").get({hostname:a.hostname,port:a.port?a.port:443,path:a.path,method:"GET",rejectUnauthorized:!1},function(a){var e="";a.on("data",function(a){null!=e&&(e+=a.toString("binary"));5E5<e.length&&(e=null)});a.on("end",function(){certUrlCache[b]={data:btoa(e),time:Date.now()};try{require("fs").writeFileSync(certUrlCacheFile,JSON.stringify(certUrlCache,null,2))}catch(a){}c(b,e)})}).on("error",function(a){console.log("Error: "+a.message);c(b,null)})}
|
|
var CreateAmtRemoteDesktop=function(b,c){function a(a){return String.fromCharCode.apply(null,a)}function d(a,b,c,d,h,k,m,q){var u=a[b++];q={};var r=0,D=0;if(0==u){if(2==g.bpp)for(h=0;h<m;h++)n(a[b++]+(a[b++]<<8),h);else for(h=0;h<m;h++)v(a[b++],h);e(g.spare,c,d)}else if(1==u)g.graymode?(u=a[b++],g.lowcolor&&(u<<=4),g.canvas.fillStyle="rgb("+u+","+u+","+u+")"):(u=a[b++]+(2==g.bpp?a[b++]<<8:0),g.canvas.fillStyle="rgb("+(1==g.bpp?(u&224)+","+((u&28)<<3)+","+E((u&3)<<6):(u>>8&248)+","+(u>>3&252)+","+
|
|
((u&31)<<3))+")"),a=B(c,d),d=w(c,d),g.canvas.fillRect(a,d,h,k);else if(1<u&&17>u){k=4;D=15;if(2==g.bpp){for(h=0;h<u;h++)q[h]=a[b++]+(a[b++]<<8);2==u?D=k=1:4>=u&&(k=2,D=3);for(;r<m&&b<a.byteLength;)for(u=a[b++],h=8-k;0<=h;h-=k)n(q[u>>h&D],r++)}else{for(h=0;h<u;h++)q[h]=a[b++];2==u?D=k=1:4>=u&&(k=2,D=3);for(;r<m&&b<a.byteLength;)for(u=a[b++],h=8-k;0<=h;h-=k)v(q[u>>h&D],r++)}e(g.spare,c,d)}else if(128==u){if(2==g.bpp)for(;r<m&&b<a.byteLength;){u=a[b++]+(a[b++]<<8);D=1;do D+=h=a[b++];while(255==h);if(0==
|
|
g.rotation)p(u,r,D),r+=D;else for(;0<=--D;)n(u,r++)}else for(;r<m&&b<a.byteLength;){u=a[b++];D=1;do D+=h=a[b++];while(255==h);if(0==g.rotation)l(u,r,D),r+=D;else for(;0<=--D;)v(u,r++)}e(g.spare,c,d)}else if(129<u){if(2==g.bpp)for(h=0;h<u-128;h++)q[h]=a[b++]+(a[b++]<<8);else for(h=0;h<u-128;h++)q[h]=a[b++];for(;r<m&&b<a.byteLength;){D=1;h=a[b++];u=q[h%128];if(127<h){do D+=h=a[b++];while(255==h)}if(0==g.rotation)2==g.bpp?p(u,r,D):l(u,r,D),r+=D;else if(2==g.bpp)for(;0<=--D;)n(u,r++);else for(;0<=--D;)v(u,
|
|
r++)}e(g.spare,c,d)}}function e(a,b,c){if(1!=g.holding){var d=0==g.rotation?b:1==g.rotation?g.canvas.canvas.width-g.sparew2-c:2==g.rotation?g.canvas.canvas.width-g.sparew2-b:3==g.rotation?c:0;c=0==g.rotation?c:1==g.rotation?b:2==g.rotation?g.canvas.canvas.height-g.spareh2-c:3==g.rotation?g.canvas.canvas.height-g.spareh-b:0;g.canvas.putImageData(a,d,c)}}function v(a,b){var c=b<<2;if(0<g.rotation)if(1==g.rotation){var c=b%g.sparew,d=Math.floor(b/g.sparew);b=c*g.sparew2+(g.sparew2-1-d);c=b<<2}else 2==
|
|
g.rotation?c=g.sparew*g.spareh*4-4-c:3==g.rotation&&(c=b%g.sparew,d=Math.floor(b/g.sparew),b=(g.sparew2-1-c)*g.sparew2+d,c=b<<2);g.graymode?(g.lowcolor&&(a<<=4),g.spare.data[c]=g.spare.data[c+1]=g.spare.data[c+2]=a):(g.spare.data[c]=a&224,g.spare.data[c+1]=(a&28)<<3,g.spare.data[c+2]=E((a&3)<<6))}function n(a,b){var c=b<<2;if(0<g.rotation)if(1==g.rotation){var c=b%g.sparew,d=Math.floor(b/g.sparew);b=c*g.sparew2+(g.sparew2-1-d);c=b<<2}else 2==g.rotation?c=g.sparew*g.spareh*4-4-c:3==g.rotation&&(c=
|
|
b%g.sparew,d=Math.floor(b/g.sparew),b=(g.sparew2-1-c)*g.sparew2+d,c=b<<2);g.spare.data[c]=a>>8&248;g.spare.data[c+1]=a>>3&252;g.spare.data[c+2]=(a&31)<<3}function l(a,b,c){if(g.graymode)for(b<<=2,g.lowcolor&&(a<<=4);0<=--c;)g.spare.data[b]=g.spare.data[b+1]=g.spare.data[b+2]=a,b+=4;else{b<<=2;var d=a&224,e=(a&28)<<3;for(a=E((a&3)<<6);0<=--c;)g.spare.data[b]=d,g.spare.data[b+1]=e,g.spare.data[b+2]=a,b+=4}}function p(a,b,c){b<<=2;var d=a>>8&248,e=a>>3&252;for(a=(a&31)<<3;0<=--c;)g.spare.data[b]=d,g.spare.data[b+
|
|
1]=e,g.spare.data[b+2]=a,b+=4}function q(a,b){return 0==g.rotation?a:1==g.rotation?b:2==g.rotation?g.canvas.canvas.width-a:3==g.rotation?g.canvas.canvas.height-b:0}function h(a,b){return 0==g.rotation?b:1==g.rotation?g.canvas.canvas.width-a:2==g.rotation?g.canvas.canvas.height-b:3==g.rotation?a:0}function B(a,b){return 0==g.rotation||1==g.rotation?a:2==g.rotation?a-g.canvas.canvas.width:3==g.rotation?a-g.canvas.canvas.height:0}function w(a,b){return 0==g.rotation?b:1==g.rotation?b-g.canvas.canvas.width:
|
|
2==g.rotation?b-g.canvas.canvas.height:3==g.rotation?b:0}function E(a){return 127<a?a+32:a}function m(){1!=g.holding&&g.send(String.fromCharCode(3,1,0,0,0,0)+ShortToStr(g.rwidth)+ShortToStr(g.rheight))}function k(a,b){b||(b=window.event);if(b.code&&0==g.localKeyMap){var c;c=b;c=c.code.startsWith("Key")&&4==c.code.length?c.code.charCodeAt(3)+(0==c.shiftKey?32:0):c.code.startsWith("Digit")&&6==c.code.length?c.code.charCodeAt(5):c.code.startsWith("Numpad")&&7==c.code.length?c.code.charCodeAt(6):u[c.code];
|
|
null!=c&&g.sendkey(c,a)}else{var d=c=b.keyCode;0==b.shiftKey&&65<=c&&90>=c&&(d=c+32);112<=c&&124>=c&&(d=c+65358);8==c&&(d=65288);9==c&&(d=65289);13==c&&(d=65293);16==c&&(d=65505);17==c&&(d=65507);18==c&&(d=65513);27==c&&(d=65307);33==c&&(d=65365);34==c&&(d=65366);35==c&&(d=65367);36==c&&(d=65360);37==c&&(d=65361);38==c&&(d=65362);39==c&&(d=65363);40==c&&(d=65364);45==c&&(d=65379);46==c&&(d=65535);96<=c&&105>=c&&(d=c-48);106==c&&(d=42);107==c&&(d=43);109==c&&(d=45);110==c&&(d=46);111==c&&(d=47);186==
|
|
c&&(d=59);187==c&&(d=61);188==c&&(d=44);189==c&&(d=45);190==c&&(d=46);191==c&&(d=47);192==c&&(d=96);219==c&&(d=91);220==c&&(d=92);221==c&&(d=93);222==c&&(d=39);g.sendkey(d,a)}return g.haltEvent(b)}var g={};g.canvasid=b;g.CanvasId=Q(b);g.scrolldiv=c;g.canvas=Q(b).getContext("2d");g.protocol=2;g.state=0;g.acc=null;g.ScreenWidth=960;g.ScreenHeight=700;g.width=0;g.height=0;g.rwidth=0;g.rheight=0;g.bpp=2;g.useRLE=!0;g.showmouse=!0;g.buttonmask=0;g.localKeyMap=!0;g.spare=null;g.sparew=0;g.spareh=0;g.sparew2=
|
|
0;g.spareh2=0;g.sparecache={};g.onScreenSizeChange=null;g.frameRateDelay=0;g.noMouseRotate=!1;g.rotation=0;g.kvmDataSupported=!1;g.onKvmData=null;g.onKvmDataPending=[];g.onKvmDataAck=-1;g.holding=!1;g.lastKeepAlive=Date.now();g.kvmExt={};g.kvmExtChanged=null;g.useZLib=!1;g.decimation=!1;g.graymode=!1;g.lowcolor=!1;g.mNagleTimer=null;g.mx=0;g.my=0;g.inflate=ZLIB.inflateInit(-15);g.xxStateChange=function(a){0==a?(g.canvas.fillStyle="#000000",g.canvas.fillRect(0,0,g.width,g.height),g.canvas.canvas.width=
|
|
g.rwidth=g.width=640,g.canvas.canvas.height=g.rheight=g.height=400,QS(g.canvasid).cursor="default"):QS(g.canvasid).cursor=g.showmouse?"default":"none"};g.ProcessBinaryData=function(b){if(null==g.acc)g.acc=new Uint8Array(b);else{var c=new Uint8Array(g.acc.byteLength+b.byteLength);c.set(g.acc,0);c.set(new Uint8Array(b),g.acc.byteLength);g.acc=c}for(;null!=g.acc&&0<g.acc.byteLength;){var l=0,h=new DataView(g.acc.buffer);if(0==g.state&&12<=g.acc.byteLength)l=12,g.state=1,g.send("RFB 003.008\n");else if(1==
|
|
g.state&&1<=g.acc.byteLength)l=g.acc[0]+1,g.send(String.fromCharCode(1)),g.state=2;else if(2==g.state&&4<=g.acc.byteLength){l=4;if(0!=h.getUint32(0))return g.Stop();g.send(String.fromCharCode(1));g.state=3;g.parent&&(g.parent.disconnectCode=5E4)}else if(3==g.state&&24<=g.acc.byteLength){g.rotation=0;b=h.getUint32(20);if(g.acc.byteLength<24+b)break;l=24+b;g.canvas.canvas.width=g.rwidth=g.width=g.ScreenWidth=h.getUint16(0);g.canvas.canvas.height=g.rheight=g.height=g.ScreenHeight=h.getUint16(2);b="";
|
|
g.useRLE&&(b+=IntToStr(16));b+=IntToStr(0);b+=IntToStr(1092);g.send(String.fromCharCode(2,0)+ShortToStr(b.length/4+1)+b+IntToStr(-223));0==g.graymode?1==g.bpp&&g.send(String.fromCharCode(0,0,0,0,8,8,0,1)+ShortToStr(7)+ShortToStr(7)+ShortToStr(3)+String.fromCharCode(5,2,0,0,0,0)):(2==g.bpp&&(g.bpp=1),0==g.lowcolor?g.send(String.fromCharCode(0,0,0,0,8,8,0,1)+ShortToStr(255)+ShortToStr(0)+ShortToStr(0)+String.fromCharCode(0,0,0,0,0,0)):g.send(String.fromCharCode(0,0,0,0,8,4,0,1)+ShortToStr(15)+ShortToStr(0)+
|
|
ShortToStr(0)+String.fromCharCode(0,0,0,0,0,0)));g.state=4;g.parent&&(g.parent.disconnectCode=0,g.parent.xxStateChange(3));null!=g.kvmExtChanged&&(g.sendKvmExtCmd(2,!0===g.decimation?3:2),g.sendKvmExtCmd(4,!0===g.useZLib?1:0));m();if(null!=g.onScreenSizeChange)g.onScreenSizeChange(g,g.ScreenWidth,g.ScreenHeight);g.parent&&(g.parent.disconnectCode=50001)}else if(4==g.state)switch(g.acc[0]){case 0:if(4>g.acc.byteLength)return;g.state=100+h.getUint16(2);l=4;break;case 2:l=1;break;case 3:if(8>g.acc.byteLength)return;
|
|
b=h.getUint32(4)+8;if(g.acc.byteLength<b)return;c=g.acc;if(8>c.byteLength)l=0;else if(b=h.getUint32(4)+8,c.byteLength<b)l=0;else{if(null!=g.onKvmData){var k=a(new Uint8Array(c.buffer.slice(8,b)));if(16<=k.length&&"\x00KvmDataChannel"==k.substring(0,15)){0==g.kvmDataSupported&&(g.kvmDataSupported=!0);if(-1==g.onKvmDataAck&&16==k.length||0!=k.charCodeAt(15))g.onKvmDataAck=!0;urlvars&&urlvars.kvmdatatrace&&console.log("KVM-DataChannel-Recv("+(k.length-16)+"): "+k.substring(16));if(16<=k.length)g.onKvmData(k.substring(16));
|
|
1==g.onKvmDataAck&&0<g.onKvmDataPending.length&&g.sendKvmData(g.onKvmDataPending.shift())}else 13<=k.length&&"\x00KvmExtCmd\x00"==k.substring(0,11)?(c=k.charCodeAt(11),k=k.charCodeAt(12),1==c&&(g.kvmExt.decimation=k,null!=g.kvmExtChanged&&g.kvmExtChanged(1,k)),2==c&&g.sendKvmExtCmd(1),3==c&&(g.kvmExt.compression=k,null!=g.kvmExtChanged&&g.kvmExtChanged(3,k)),4==c&&g.sendKvmExtCmd(3)):(console.log("Got KVM clipboard data:",k),urlvars&&urlvars.kvmdatatrace&&console.log("KVM-ClipBoard-Recv("+k.length+
|
|
"): "+rstr2hex(k)+", "+k))}l=b}}else if(100<g.state&&12<=g.acc.byteLength){b=h.getUint16(0);var c=h.getUint16(2),l=h.getUint16(4),p=h.getUint16(6),k=l*p,q=h.getUint32(8);if(17>q){if(1>l||64<l||1>p||64<p)return console.log("Invalid tile size ("+l+","+p+"), disconnecting."),g.Stop();if(g.sparew!=l||g.spareh!=p){g.sparew=g.sparew2=l;g.spareh=g.spareh2=p;if(1==g.rotation||3==g.rotation)g.sparew2=p,g.spareh2=l;var u=g.sparew2+"x"+g.spareh2;g.spare=g.sparecache[u];if(!g.spare){g.sparecache[u]=g.spare=g.canvas.createImageData(g.sparew2,
|
|
g.spareh2);for(var w=g.sparew2*g.spareh2<<2,u=3;u<w;u+=4)g.spare.data[u]=255}}}if(4294967073==q){if(g.canvas.canvas.width=g.rwidth=g.width=l,g.canvas.canvas.height=g.rheight=g.height=p,g.send(String.fromCharCode(3,0,0,0,0,0)+ShortToStr(g.width)+ShortToStr(g.height)),l=12,null!=g.onScreenSizeChange)g.onScreenSizeChange(g,g.ScreenWidth,g.ScreenHeight)}else if(0==q){q=12;l=12+k*g.bpp;if(g.acc.byteLength<l)break;if(2==g.bpp)for(u=0;u<k;u++)n(h.getUint16(q,!0),u),q+=2;else for(u=0;u<k;u++)v(g.acc[q++],
|
|
u);e(g.spare,b,c)}else if(16==q){if(16>g.acc.byteLength)break;u=h.getUint32(12);if(g.acc.byteLength<16+u)break;q=16;if(5<u&&0==g.acc[q]&&h.getUint16(q+1,!0)==u-5)d(g.acc,q+5,b,c,l,p,k,u);else if(h=g.inflate.inflate(a(new Uint8Array(g.acc.buffer.slice(q,q+u-0)))),0<h.length){for(var q=h,w=new Uint8Array(q.length),r=0,B=q.length;r<B;++r)w[r]=q.charCodeAt(r);d(w,0,b,c,l,p,k,h.length)}else console.log("Invalid deflate data");l=16+u}else return g.Stop();100==--g.state&&(g.state=4,0==g.frameRateDelay?m():
|
|
setTimeout(m,g.frameRateDelay))}if(0==l)break;g.acc=l!=g.acc.byteLength?new Uint8Array(g.acc.buffer.slice(l)):null}};g.hold=function(a){if(g.holding!=a)if(g.holding=a,g.canvas.fillStyle="#000000",g.canvas.fillRect(0,0,g.width,g.height),0==g.holding){if(g.canvas.canvas.width!=g.width||g.canvas.canvas.height!=g.height)if(g.canvas.canvas.width=g.width,g.canvas.canvas.height=g.height,null!=g.onScreenSizeChange)g.onScreenSizeChange(g,g.ScreenWidth,g.ScreenHeight);g.send(String.fromCharCode(3,0,0,0,0,0)+
|
|
ShortToStr(g.width)+ShortToStr(g.height))}else g.UnGrabMouseInput(),g.UnGrabKeyInput()};g.tcanvas=null;g.setRotation=function(a){for(;0>a;)a+=4;a%=4;if(1==g.holding)g.rotation=a;else{if(a==g.rotation)return!0;var b=g.canvas.canvas.width,c=g.canvas.canvas.height;if(1==g.rotation||3==g.rotation)b=g.canvas.canvas.height,c=g.canvas.canvas.width;null==g.tcanvas&&(g.tcanvas=document.createElement("canvas"));var d=g.tcanvas.getContext("2d");d.setTransform(1,0,0,1,0,0);d.canvas.width=b;d.canvas.height=c;
|
|
d.rotate(-90*g.rotation*Math.PI/180);0==g.rotation&&d.drawImage(g.canvas.canvas,0,0);1==g.rotation&&d.drawImage(g.canvas.canvas,-g.canvas.canvas.width,0);2==g.rotation&&d.drawImage(g.canvas.canvas,-g.canvas.canvas.width,-g.canvas.canvas.height);3==g.rotation&&d.drawImage(g.canvas.canvas,0,-g.canvas.canvas.height);if(0==g.rotation||2==g.rotation)g.canvas.canvas.height=b,g.canvas.canvas.width=c;if(1==g.rotation||3==g.rotation)g.canvas.canvas.height=c,g.canvas.canvas.width=b;g.canvas.setTransform(1,
|
|
0,0,1,0,0);g.canvas.rotate(90*a*Math.PI/180);g.rotation=a;g.canvas.drawImage(g.tcanvas,B(0,0),w(0,0));g.width=g.canvas.canvas.width;g.height=g.canvas.canvas.height;if(null!=g.onScreenResize)g.onScreenResize(g,g.width,g.height,g.CanvasId);return!0}};g.Start=function(){g.state=0;g.acc=null;g.inflate.inflateReset();g.onKvmDataPending=[];g.onKvmDataAck=-1;g.kvmDataSupported=!1;g.kvmExt={};for(var a in g.sparecache)delete g.sparecache[a]};g.Stop=function(){g.UnGrabMouseInput();g.UnGrabKeyInput();g.parent&&
|
|
g.parent.Stop()};g.send=function(a){g.parent&&g.parent.send(a)};var u={Pause:19,CapsLock:20,Space:32,Quote:39,Minus:45,NumpadMultiply:42,NumpadAdd:43,PrintScreen:44,Comma:44,NumpadSubtract:45,NumpadDecimal:46,Period:46,Slash:47,NumpadDivide:47,Semicolon:59,Equal:61,OSLeft:91,BracketLeft:91,OSRight:91,Backslash:92,BracketRight:93,ContextMenu:93,Backquote:96,NumLock:144,ScrollLock:145,Backspace:65288,Tab:65289,Enter:65293,NumpadEnter:65293,Escape:65307,Delete:65535,Home:65360,PageUp:65365,PageDown:65366,
|
|
ArrowLeft:65361,ArrowUp:65362,ArrowRight:65363,ArrowDown:65364,End:65367,Insert:65379,F1:65470,F2:65471,F3:65472,F4:65473,F5:65474,F6:65475,F7:65476,F8:65477,F9:65478,F10:65479,F11:65480,F12:65481,ShiftLeft:65505,ShiftRight:65506,ControlLeft:65507,ControlRight:65508,AltLeft:65513,AltRight:65514,MetaLeft:65511,MetaRight:65512};g.sendkey=function(a,b){if("object"==typeof a){var c="",d;for(d in a)c+=String.fromCharCode(4,a[d][1],0,0)+IntToStr(a[d][0]);g.send(c)}else g.send(String.fromCharCode(4,b,0,
|
|
0)+IntToStr(a))};g.sendKvmExtCmd=function(a,b){var c="\x00KvmExtCmd\x00"+String.fromCharCode(a)+(null!=b?String.fromCharCode(b):"");g.send(String.fromCharCode(6,0,0,0)+IntToStr(c.length)+c)};g.sendKvmData=function(a){!0!==g.onKvmDataAck?g.onKvmDataPending.push(a):(urlvars&&urlvars.kvmdatatrace&&console.log("KVM-DataChannel-Send("+a.length+"): "+a),a="\x00KvmDataChannel\x00"+a,g.send(String.fromCharCode(6,0,0,0)+IntToStr(a.length)+a),g.onKvmDataAck=!1)};g.sendKeepAlive=function(){g.lastKeepAlive<Date.now()-
|
|
5E3&&(g.lastKeepAlive=Date.now(),g.send(String.fromCharCode(6,0,0,0)+IntToStr(16)+"\x00KvmDataChannel\x00"))};g.SendCtrlAltDelMsg=function(){g.sendcad()};g.sendcad=function(){g.sendkey([[65507,1],[65513,1],[65535,1],[65535,0],[65513,0],[65507,0]])};var O=!1,D=!1;g.GrabMouseInput=function(){if(1!=O){var a=g.canvas.canvas;a.onmouseup=g.mouseup;a.onmousedown=g.mousedown;a.onmousemove=g.mousemove;O=!0}};g.UnGrabMouseInput=function(){if(0!=O){var a=g.canvas.canvas;a.onmousemove=null;a.onmouseup=null;a.onmousedown=
|
|
null;O=!1}};g.GrabKeyInput=function(){1!=D&&(document.onkeyup=g.handleKeyUp,document.onkeydown=g.handleKeyDown,document.onkeypress=g.handleKeys,D=!0)};g.UnGrabKeyInput=function(){0!=D&&(document.onkeyup=null,document.onkeydown=null,document.onkeypress=null,D=!1)};g.handleKeys=function(a){return g.haltEvent(a)};g.handleKeyUp=function(a){return k(0,a)};g.handleKeyDown=function(a){return k(1,a)};g.haltEvent=function(a){a.preventDefault&&a.preventDefault();a.stopPropagation&&a.stopPropagation();return!1};
|
|
g.mousedblclick=function(a){};g.mousedown=function(a){g.buttonmask|=1<<a.button;return g.mousemove(a,1)};g.mouseup=function(a){g.buttonmask&=65535-(1<<a.button);return g.mousemove(a,1)};g.mousemove=function(a,b){if(4>g.state)return!0;var c=g.canvas.canvas.height/Q(g.canvasid).offsetHeight,d=g.canvas.canvas.width/Q(g.canvasid).offsetWidth,e=g.getPositionOfControl(Q(g.canvasid));g.mx=(event.pageX-e[0])*d;g.my=(event.pageY-e[1])*c;event.addx&&(g.mx+=event.addx);event.addy&&(g.my+=event.addy);if(1==g.rotation||
|
|
3==g.rotation)g.mx=g.mx*g.rwidth/g.width,g.my=g.my*g.rheight/g.height;1!=g.noMouseRotate&&(c=q(g.mx,g.my),g.my=h(g.mx,g.my),g.mx=c);1==b?(g.send(String.fromCharCode(5,g.buttonmask)+ShortToStr(g.mx)+ShortToStr(g.my)),null!=g.mNagleTimer&&(clearTimeout(g.mNagleTimer),g.mNagleTimer=null)):null==g.mNagleTimer&&(g.mNagleTimer=setTimeout(function(){g.send(String.fromCharCode(5,g.buttonmask)+ShortToStr(g.mx)+ShortToStr(g.my));g.mNagleTimer=null},50));return g.haltEvent(a)};g.getPositionOfControl=function(a){var b=
|
|
Array(2);for(b[0]=b[1]=0;a;)b[0]+=a.offsetLeft,b[1]+=a.offsetTop,a=a.offsetParent;return b};return g},CreateAgentRemoteDesktop=function(b,c){var a={};a.CanvasId=b;"string"===typeof b&&(a.CanvasId=Q(b));a.Canvas=a.CanvasId.getContext("2d");a.scrolldiv=c;a.State=0;a.PendingOperations=[];a.tilesReceived=0;a.TilesDrawn=0;a.KillDraw=0;a.ipad=!1;a.tabletKeyboardVisible=!1;a.LastX=0;a.LastY=0;a.touchenabled=0;a.submenuoffset=0;a.touchtimer=null;a.TouchArray={};a.connectmode=0;a.connectioncount=0;a.rotation=
|
|
0;a.protocol=2;a.debugmode=0;a.firstUpKeys=[];a.stopInput=!1;a.localKeyMap=!0;a.altPressed=!1;a.ctrlPressed=!1;a.shiftPressed=!1;a.sessionid=0;a.username;a.oldie=!1;a.CompressionLevel=50;a.ScalingLevel=1024;a.FrameRateTimer=10;a.FirstDraw=!1;a.ScreenWidth=960;a.ScreenHeight=700;a.width=960;a.height=960;a.onScreenSizeChange=null;a.onMessage=null;a.onConnectCountChanged=null;a.onDebugMessage=null;a.onTouchEnabledChanged=null;a.onDisplayinfo=null;a.accumulator=null;var d=!0,e="default";a.mouseCursorActive=
|
|
function(b){d!=b&&(d=b,a.CanvasId.style.cursor=1==b?e:"default")};var v="default progress crosshair pointer help text no-drop move nesw-resize ns-resize nwse-resize w-resize alias wait none not-allowed col-resize row-resize copy zoom-in zoom-out".split(" ");a.Start=function(){a.State=0;a.accumulator=null};a.Stop=function(){a.setRotation(0);a.UnGrabKeyInput();a.UnGrabMouseInput();a.touchenabled=0;if(null!=a.onScreenSizeChange)a.onScreenSizeChange(a,a.ScreenWidth,a.ScreenHeight,a.CanvasId);a.Canvas.clearRect(0,
|
|
0,a.CanvasId.width,a.CanvasId.height)};a.xxStateChange=function(b){if(a.State!=b)switch(a.State=b,a.CanvasId.style.cursor="default",b){case 0:a.Stop()}};a.send=function(b){1<a.debugmode&&console.log("KSend("+b.length+"): "+rstr2hex(b));null!=a.parent&&a.parent.send(b)};a.ProcessPictureMsg=function(b,c,d){var e=new Image;e.xcount=a.tilesReceived++;var n=a.tilesReceived;e.src="data:image/jpeg;base64,"+btoa(b.substring(4,b.length));e.onload=function(){if(null!=a.Canvas&&a.KillDraw<n&&0!=a.State)for(a.PendingOperations.push([n,
|
|
2,e,c,d]);a.DoPendingOperations(););};e.error=function(){console.log("DecodeTileError")}};a.DoPendingOperations=function(){if(0==a.PendingOperations.length)return!1;for(var b=0;b<a.PendingOperations.length;b++){var c=a.PendingOperations[b];if(c[0]==a.TilesDrawn+1)return 1==c[1]?a.ProcessCopyRectMsg(c[2]):2==c[1]&&(a.Canvas.drawImage(c[2],a.rotX(c[3],c[4]),a.rotY(c[3],c[4])),delete c[2]),a.PendingOperations.splice(b,1),delete c,a.TilesDrawn++,a.TilesDrawn==a.tilesReceived&&a.KillDraw<a.TilesDrawn&&
|
|
(a.KillDraw=a.TilesDrawn=a.tilesReceived=0),!0}a.oldie&&0<a.PendingOperations.length&&a.TilesDrawn++;return!1};a.ProcessCopyRectMsg=function(b){var c=((b.charCodeAt(0)&255)<<8)+(b.charCodeAt(1)&255),d=((b.charCodeAt(2)&255)<<8)+(b.charCodeAt(3)&255),e=((b.charCodeAt(4)&255)<<8)+(b.charCodeAt(5)&255),n=((b.charCodeAt(6)&255)<<8)+(b.charCodeAt(7)&255),v=((b.charCodeAt(8)&255)<<8)+(b.charCodeAt(9)&255);b=((b.charCodeAt(10)&255)<<8)+(b.charCodeAt(11)&255);a.Canvas.drawImage(Canvas.canvas,c,d,v,b,e,n,
|
|
v,b)};a.SendUnPause=function(){a.send(String.fromCharCode(0,8,0,5,0))};a.SendPause=function(){a.send(String.fromCharCode(0,8,0,5,1))};a.SendCompressionLevel=function(b,c,d,e){c&&(a.CompressionLevel=c);d&&(a.ScalingLevel=d);e&&(a.FrameRateTimer=e);a.send(String.fromCharCode(0,5,0,10,b,a.CompressionLevel)+a.shortToStr(a.ScalingLevel)+a.shortToStr(a.FrameRateTimer))};a.SendRefresh=function(){a.send(String.fromCharCode(0,6,0,4))};a.ProcessScreenMsg=function(b,c){0<a.debugmode&&console.log("ScreenSize: "+
|
|
b+" x "+c);a.Canvas.setTransform(1,0,0,1,0,0);a.rotation=0;a.FirstDraw=!0;a.ScreenWidth=a.width=b;a.ScreenHeight=a.height=c;for(a.KillDraw=a.tilesReceived;0<a.PendingOperations.length;)a.PendingOperations.shift();a.SendCompressionLevel(1);a.SendUnPause();if(null!=a.onScreenSizeChange)a.onScreenSizeChange(a,a.ScreenWidth,a.ScreenHeight,a.CanvasId)};a.ProcessData=function(b){for(var c=0;c<b.length;)c+=a.ProcessDataEx(b.substring(c))};a.ProcessDataEx=function(b){null!=a.accumulator&&(b=a.accumulator+
|
|
b,a.accumulator=null);1<a.debugmode&&console.log("KRecv("+b.length+"): "+rstr2hex(b.substring(0,Math.min(b.length,40))));if(!(4>b.length)){var c=null,q=0,h=0,n=ReadShort(b,0),w=ReadShort(b,2),E=0;if(27==n&&8==w){if(12>b.length)return;n=ReadShort(b,8);w=ReadInt(b,4);if(w+8>b.length){a.accumulator=b;return}b=b.substring(8);E=8}w!=b.length&&0<a.debugmode&&console.log(w,b.length,w==b.length);if(18<=n&&65!=n&&88!=n)console.error("Invalid KVM command "+n+" of size "+w),console.log("Invalid KVM data",b.length,
|
|
rstr2hex(b.substring(0,40))+"...");else if(w>b.length)a.accumulator=b;else{if(3==n||4==n||7==n)c=b.substring(4,w),q=((c.charCodeAt(0)&255)<<8)+(c.charCodeAt(1)&255),h=((c.charCodeAt(2)&255)<<8)+(c.charCodeAt(3)&255),0<a.debugmode&&console.log("CMD"+n+" at X="+q+" Y="+h);switch(n){case 3:if(a.FirstDraw)a.onResize();a.ProcessPictureMsg(c,q,h);break;case 4:if(a.FirstDraw)a.onResize();a.TilesDrawn==a.tilesReceived?a.ProcessCopyRectMsg(c):a.PendingOperations.push([++tilesReceived,1,c]);break;case 7:a.ProcessScreenMsg(q,
|
|
h);a.SendKeyMsgKC(a.KeyAction.UP,16);a.SendKeyMsgKC(a.KeyAction.UP,17);a.SendKeyMsgKC(a.KeyAction.UP,18);a.SendKeyMsgKC(a.KeyAction.UP,91);a.SendKeyMsgKC(a.KeyAction.UP,92);a.SendKeyMsgKC(a.KeyAction.UP,16);a.send(String.fromCharCode(0,14,0,4));break;case 11:c=0;q={};h=((b.charCodeAt(4)&255)<<8)+(b.charCodeAt(5)&255);if(0<h)for(c=((b.charCodeAt(6+2*h)&255)<<8)+(b.charCodeAt(7+2*h)&255),n=0;n<h;n++){var m=((b.charCodeAt(6+2*n)&255)<<8)+(b.charCodeAt(7+2*n)&255);q[m]=65535==m?"All Displays":"Display "+
|
|
m}if(null!=a.onDisplayinfo)a.onDisplayinfo(a,q,c);break;case 14:a.touchenabled=1;a.TouchArray={};if(null!=a.onTouchEnabledChanged)a.onTouchEnabledChanged(a.touchenabled);break;case 15:a.TouchArray={};break;case 16:a.connectioncount=ReadInt(b,4);if(null!=a.onConnectCountChanged)a.onConnectCountChanged(a.connectioncount,a);break;case 17:if(null!=a.onMessage)a.onMessage(b.substring(4,w),a);break;case 65:b=b.substring(4);if("."!=b[0]){if(console.log(b),null!=a.parent&&(a.parent.consoleMessage=b,a.parent.onConsoleMessageChange))a.parent.onConsoleMessageChange(a.parent,
|
|
b)}else console.log("KVM: "+b.substring(1));break;case 88:if(5!=w)break;b=b.charCodeAt(4);b>v.length&&(b=0);e=v[b];d&&(a.CanvasId.style.cursor=e)}return w+E}}};a.MouseButton={NONE:0,LEFT:2,RIGHT:8,MIDDLE:32};a.KeyAction={NONE:0,DOWN:1,UP:2,SCROLL:3,EXUP:4,EXDOWN:5,DBLCLICK:6};a.InputType={KEY:1,MOUSE:2,CTRLALTDEL:10,TOUCH:15};a.Alternate=0;var n={Pause:19,CapsLock:20,Space:32,Quote:222,Minus:189,NumpadMultiply:106,NumpadAdd:107,PrintScreen:44,Comma:188,NumpadSubtract:109,NumpadDecimal:110,Period:190,
|
|
Slash:191,NumpadDivide:111,Semicolon:186,Equal:187,OSLeft:91,BracketLeft:219,OSRight:91,Backslash:220,BracketRight:221,ContextMenu:93,Backquote:192,NumLock:144,ScrollLock:145,Backspace:8,Tab:9,Enter:13,NumpadEnter:13,Escape:27,Delete:46,Home:36,PageUp:33,PageDown:34,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,End:35,Insert:45,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,ShiftLeft:16,ShiftRight:16,ControlLeft:17,ControlRight:17,AltLeft:18,AltRight:18,
|
|
MetaLeft:91,MetaRight:92,VolumeMute:181};a.SendKeyMsg=function(b,c){if(null!=b)if(c||(c=window.event),c.code&&0==a.localKeyMap){var d;d=c;d=d.code.startsWith("Key")&&4==d.code.length?d.code.charCodeAt(3):d.code.startsWith("Digit")&&6==d.code.length?d.code.charCodeAt(5):d.code.startsWith("Numpad")&&7==d.code.length?d.code.charCodeAt(6)+48:n[d.code];null!=d&&a.SendKeyMsgKC(b,d)}else d=c.keyCode,59==d?d=186:173==d?d=189:61==d&&(d=187),a.SendKeyMsgKC(b,d)};a.SendMessage=function(b){3==a.State&&a.send(String.fromCharCode(0,
|
|
17)+a.shortToStr(4+b.length)+b)};a.SendKeyMsgKC=function(b,c){if(3==a.State)if("object"==typeof b)for(var d in b)a.SendKeyMsgKC(b[d][0],b[d][1]);else a.send(String.fromCharCode(0,a.InputType.KEY,0,6,b-1,c))};a.sendcad=function(){a.SendCtrlAltDelMsg()};a.SendCtrlAltDelMsg=function(){3==a.State&&a.send(String.fromCharCode(0,a.InputType.CTRLALTDEL,0,4))};a.SendEscKey=function(){3==a.State&&a.send(String.fromCharCode(0,a.InputType.KEY,0,6,0,27,0,a.InputType.KEY,0,6,1,27))};a.SendStartMsg=function(){a.SendKeyMsgKC(a.KeyAction.EXDOWN,
|
|
91);a.SendKeyMsgKC(a.KeyAction.EXUP,91)};a.SendCharmsMsg=function(){a.SendKeyMsgKC(a.KeyAction.EXDOWN,91);a.SendKeyMsgKC(a.KeyAction.DOWN,67);a.SendKeyMsgKC(a.KeyAction.UP,67);a.SendKeyMsgKC(a.KeyAction.EXUP,91)};a.SendTouchMsg1=function(b,c,d,e){3==a.State&&a.send(String.fromCharCode(0,a.InputType.TOUCH)+a.shortToStr(14)+String.fromCharCode(1,b)+a.intToStr(c)+a.shortToStr(d)+a.shortToStr(e))};a.SendTouchMsg2=function(b,c){var d="",e,n;for(n in a.TouchArray)n==b?e=c:1==a.TouchArray[n].f?(e=65542,
|
|
a.TouchArray[n].f=3):e=2==a.TouchArray[n].f?262144:131078,d+=String.fromCharCode(n)+a.intToStr(e)+a.shortToStr(a.TouchArray[n].x)+a.shortToStr(a.TouchArray[n].y),2==a.TouchArray[n].f&&delete a.TouchArray[n];3==a.State&&a.send(String.fromCharCode(0,a.InputType.TOUCH)+a.shortToStr(5+d.length)+String.fromCharCode(2)+d);0==Object.keys(a.TouchArray).length&&null!=a.touchtimer&&(clearInterval(a.touchtimer),a.touchtimer=null)};a.SendMouseMsg=function(b,c){if(3==a.State&&null!=b&&null!=a.Canvas){c||(c=window.event);
|
|
var d=a.Canvas.canvas.height/a.CanvasId.clientHeight,e=a.Canvas.canvas.width/a.CanvasId.clientWidth,n=a.GetPositionOfControl(a.Canvas.canvas),e=(c.pageX-n[0])*e,d=(c.pageY-n[1])*d;c.addx&&(e+=c.addx);c.addy&&(d+=c.addy);if(0<=e&&e<=a.Canvas.canvas.width&&0<=d&&d<=a.Canvas.canvas.height){var v=n=0;b==a.KeyAction.UP||b==a.KeyAction.DOWN?c.which?1==c.which?n=a.MouseButton.LEFT:2==c.which?n=a.MouseButton.MIDDLE:n=a.MouseButton.RIGHT:c.button&&(0==c.button?n=a.MouseButton.LEFT:1==c.button?n=a.MouseButton.MIDDLE:
|
|
n=a.MouseButton.RIGHT):b==a.KeyAction.SCROLL&&(c.detail?v=-120*c.detail:c.wheelDelta&&(v=3*c.wheelDelta));var E="",E=b==a.KeyAction.DBLCLICK?String.fromCharCode(0,a.InputType.MOUSE,0,10,0,136,e/256&255,e&255,d/256&255,d&255):b==a.KeyAction.SCROLL?String.fromCharCode(0,a.InputType.MOUSE,0,12,0,0,e/256&255,e&255,d/256&255,d&255,v/256&255,v&255):String.fromCharCode(0,a.InputType.MOUSE,0,10,0,b==a.KeyAction.DOWN?n:2*n&255,e/256&255,e&255,d/256&255,d&255);a.Action==a.KeyAction.NONE?0==a.Alternate||a.ipad?
|
|
(a.send(E),a.Alternate=1):a.Alternate=0:a.send(E)}}};a.GetDisplayNumbers=function(){a.send(String.fromCharCode(0,11,0,4))};a.SetDisplay=function(b){console.log("Set display",b);a.send(String.fromCharCode(0,12,0,6,b>>8,b&255))};a.intToStr=function(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)};a.shortToStr=function(a){return String.fromCharCode(a>>8&255,a&255)};a.onResize=function(){if(0!=a.ScreenWidth&&0!=a.ScreenHeight&&(a.Canvas.canvas.width!=a.ScreenWidth||a.Canvas.canvas.height!=
|
|
a.ScreenHeight)){if(a.FirstDraw&&(a.Canvas.canvas.width=a.ScreenWidth,a.Canvas.canvas.height=a.ScreenHeight,a.Canvas.fillRect(0,0,a.ScreenWidth,a.ScreenHeight),null!=a.onScreenSizeChange))a.onScreenSizeChange(a,a.ScreenWidth,a.ScreenHeight,a.CanvasId);a.FirstDraw=!1}};a.xxMouseInputGrab=!1;a.xxKeyInputGrab=!1;a.xxMouseMove=function(b){3==a.State&&a.SendMouseMsg(a.KeyAction.NONE,b);b.preventDefault&&b.preventDefault();b.stopPropagation&&b.stopPropagation();return!1};a.xxMouseUp=function(b){3==a.State&&
|
|
a.SendMouseMsg(a.KeyAction.UP,b);b.preventDefault&&b.preventDefault();b.stopPropagation&&b.stopPropagation();return!1};a.xxMouseDown=function(b){3==a.State&&a.SendMouseMsg(a.KeyAction.DOWN,b);b.preventDefault&&b.preventDefault();b.stopPropagation&&b.stopPropagation();return!1};a.xxMouseDblClick=function(b){3==a.State&&a.SendMouseMsg(a.KeyAction.DBLCLICK,b);b.preventDefault&&b.preventDefault();b.stopPropagation&&b.stopPropagation();return!1};a.xxDOMMouseScroll=function(b){return 3==a.State?(a.SendMouseMsg(a.KeyAction.SCROLL,
|
|
b),!1):!0};a.xxMouseWheel=function(b){return 3==a.State?(a.SendMouseMsg(a.KeyAction.SCROLL,b),!1):!0};a.xxKeyUp=function(b){3==a.State&&a.SendKeyMsg(a.KeyAction.UP,b);b.preventDefault&&b.preventDefault();b.stopPropagation&&b.stopPropagation();return!1};a.xxKeyDown=function(b){3==a.State&&a.SendKeyMsg(a.KeyAction.DOWN,b);b.preventDefault&&b.preventDefault();b.stopPropagation&&b.stopPropagation();return!1};a.xxKeyPress=function(a){a.preventDefault&&a.preventDefault();a.stopPropagation&&a.stopPropagation();
|
|
return!1};a.handleKeys=function(b){return 1==a.stopInput||3!=desktop.State?!1:a.xxKeyPress(b)};a.handleKeyUp=function(b){if(1==a.stopInput||3!=desktop.State)return!1;if(5>a.firstUpKeys.length&&(a.firstUpKeys.push(b.keyCode),5==a.firstUpKeys.length)){var c=a.firstUpKeys.join(",");if("16,17,91,91,16"==c||"16,17,18,91,92"==c)a.stopInput=!0}16==b.keyCode&&(a.shiftPressed=!1);17==b.keyCode&&(a.ctrlPressed=!1);18==b.keyCode&&(a.altPressed=!1);return a.xxKeyUp(b)};a.handleKeyDown=function(b){if(1==a.stopInput||
|
|
3!=desktop.State)return!1;16==b.keyCode&&(a.shiftPressed=!0);17==b.keyCode&&(a.ctrlPressed=!0);18==b.keyCode&&(a.altPressed=!0);return a.xxKeyDown(b)};a.handleReleaseKeys=function(){a.shiftPressed&&a.SendKeyMsgKC(a.KeyAction.UP,16);a.ctrlPressed&&a.SendKeyMsgKC(a.KeyAction.UP,17);a.altPressed&&a.SendKeyMsgKC(a.KeyAction.UP,18);a.shiftPressed=a.ctrlPressed=a.altPressed=!1};a.mousedblclick=function(b){return 1==a.stopInput?!1:a.xxMouseDblClick(b)};a.mousedown=function(b){return 1==a.stopInput?!1:a.xxMouseDown(b)};
|
|
a.mouseup=function(b){return 1==a.stopInput?!1:a.xxMouseUp(b)};a.mousemove=function(b){return 1==a.stopInput?!1:a.xxMouseMove(b)};a.mousewheel=function(b){return 1==a.stopInput?!1:a.xxMouseWheel(b)};a.xxMsTouchEvent=function(b){if(4!=b.originalEvent.pointerType){b.preventDefault&&b.preventDefault();b.stopPropagation&&b.stopPropagation();if("MSPointerDown"==b.type||"MSPointerMove"==b.type||"MSPointerUp"==b.type){var c=0,d=b.originalEvent.pointerId%256,e=Canvas.canvas.width/a.CanvasId.clientWidth*b.offsetX,
|
|
n=Canvas.canvas.height/a.CanvasId.clientHeight*b.offsetY;"MSPointerDown"==b.type?c=65542:"MSPointerMove"==b.type?c=131078:"MSPointerUp"==b.type&&(c=262144);a.TouchArray[d]||(a.TouchArray[d]={x:e,y:n});a.SendTouchMsg2(d,c);"MSPointerUp"==b.type&&delete a.TouchArray[d]}else alert(b.type);return!0}};a.xxTouchStart=function(b){if(3==a.State)if(b.preventDefault&&b.preventDefault(),0==a.touchenabled||1==a.touchenabled){if(!(1<b.originalEvent.touches.length)){var c=b.originalEvent.touches[0];b.which=1;a.LastX=
|
|
b.pageX=c.pageX;a.LastY=b.pageY=c.pageY;a.SendMouseMsg(KeyAction.DOWN,b)}}else{var c=a.GetPositionOfControl(Canvas.canvas),d;for(d in b.originalEvent.changedTouches)if(b.originalEvent.changedTouches[d].identifier){var e=b.originalEvent.changedTouches[d].identifier%256;a.TouchArray[e]||(a.TouchArray[e]={x:Canvas.canvas.width/a.CanvasId.clientWidth*(b.originalEvent.touches[d].pageX-c[0]),y:Canvas.canvas.height/a.CanvasId.clientHeight*(b.originalEvent.touches[d].pageY-c[1]),f:1})}0<Object.keys(a.TouchArray).length&&
|
|
null==touchtimer&&(a.touchtimer=setInterval(function(){a.SendTouchMsg2(256,0)},50))}};a.xxTouchMove=function(b){if(3==a.State)if(b.preventDefault&&b.preventDefault(),0==a.touchenabled||1==a.touchenabled){if(!(1<b.originalEvent.touches.length)){var c=b.originalEvent.touches[0];b.which=1;a.LastX=b.pageX=c.pageX;a.LastY=b.pageY=c.pageY;a.SendMouseMsg(a.KeyAction.NONE,b)}}else{var c=a.GetPositionOfControl(Canvas.canvas),d;for(d in b.originalEvent.changedTouches)if(b.originalEvent.changedTouches[d].identifier){var e=
|
|
b.originalEvent.changedTouches[d].identifier%256;a.TouchArray[e]&&(a.TouchArray[e].x=a.Canvas.canvas.width/a.CanvasId.clientWidth*(b.originalEvent.touches[d].pageX-c[0]),a.TouchArray[e].y=a.Canvas.canvas.height/a.CanvasId.clientHeight*(b.originalEvent.touches[d].pageY-c[1]))}}};a.xxTouchEnd=function(b){if(3==a.State)if(b.preventDefault&&b.preventDefault(),0==a.touchenabled||1==a.touchenabled)1<b.originalEvent.touches.length||(b.which=1,b.pageX=LastX,b.pageY=LastY,a.SendMouseMsg(KeyAction.UP,b));else for(var c in b.originalEvent.changedTouches)if(b.originalEvent.changedTouches[c].identifier){var d=
|
|
b.originalEvent.changedTouches[c].identifier%256;a.TouchArray[d]&&(a.TouchArray[d].f=2)}};a.GrabMouseInput=function(){if(1!=a.xxMouseInputGrab){var b=a.CanvasId;b.onmousemove=a.xxMouseMove;b.onmouseup=a.xxMouseUp;b.onmousedown=a.xxMouseDown;b.touchstart=a.xxTouchStart;b.touchmove=a.xxTouchMove;b.touchend=a.xxTouchEnd;b.MSPointerDown=a.xxMsTouchEvent;b.MSPointerMove=a.xxMsTouchEvent;b.MSPointerUp=a.xxMsTouchEvent;navigator.userAgent.match(/mozilla/i)?b.DOMMouseScroll=a.xxDOMMouseScroll:b.onmousewheel=
|
|
a.xxMouseWheel;a.xxMouseInputGrab=!0}};a.UnGrabMouseInput=function(){if(0!=a.xxMouseInputGrab){var b=a.CanvasId;b.onmousemove=null;b.onmouseup=null;b.onmousedown=null;b.touchstart=null;b.touchmove=null;b.touchend=null;b.MSPointerDown=null;b.MSPointerMove=null;b.MSPointerUp=null;navigator.userAgent.match(/mozilla/i)?b.DOMMouseScroll=null:b.onmousewheel=null;a.xxMouseInputGrab=!1}};a.GrabKeyInput=function(){1!=a.xxKeyInputGrab&&(document.onkeyup=a.xxKeyUp,document.onkeydown=a.xxKeyDown,document.onkeypress=
|
|
a.xxKeyPress,a.xxKeyInputGrab=!0)};a.UnGrabKeyInput=function(){0!=a.xxKeyInputGrab&&(document.onkeyup=null,document.onkeydown=null,document.onkeypress=null,a.xxKeyInputGrab=!1)};a.GetPositionOfControl=function(a){var b=Array(2);for(b[0]=b[1]=0;a;)b[0]+=a.offsetLeft,b[1]+=a.offsetTop,a=a.offsetParent;return b};a.crotX=function(b,c){if(0==a.rotation)return b;if(1==a.rotation)return c;if(2==a.rotation)return a.Canvas.canvas.width-b;if(3==a.rotation)return a.Canvas.canvas.height-c};a.crotY=function(b,
|
|
c){if(0==a.rotation)return c;if(1==a.rotation)return a.Canvas.canvas.width-b;if(2==a.rotation)return a.Canvas.canvas.height-c;if(3==a.rotation)return b};a.rotX=function(b,c){if(0==a.rotation||1==a.rotation)return b;if(2==a.rotation)return b-a.Canvas.canvas.width;if(3==a.rotation)return b-a.Canvas.canvas.height};a.rotY=function(b,c){if(0==a.rotation||3==a.rotation)return c;if(1==a.rotation)return c-a.Canvas.canvas.width;if(2==a.rotation)return c-a.Canvas.canvas.height};a.tcanvas=null;a.setRotation=
|
|
function(b){for(;0>b;)b+=4;b%=4;if(b==a.rotation)return!0;var c=a.Canvas.canvas.width,d=a.Canvas.canvas.height;if(1==a.rotation||3==a.rotation)c=a.Canvas.canvas.height,d=a.Canvas.canvas.width;null==a.tcanvas&&(a.tcanvas=document.createElement("canvas"));var e=a.tcanvas.getContext("2d");e.setTransform(1,0,0,1,0,0);e.canvas.width=c;e.canvas.height=d;e.rotate(-90*a.rotation*Math.PI/180);0==a.rotation&&e.drawImage(a.Canvas.canvas,0,0);1==a.rotation&&e.drawImage(a.Canvas.canvas,-a.Canvas.canvas.width,
|
|
0);2==a.rotation&&e.drawImage(a.Canvas.canvas,-a.Canvas.canvas.width,-a.Canvas.canvas.height);3==a.rotation&&e.drawImage(a.Canvas.canvas,0,-a.Canvas.canvas.height);if(0==a.rotation||2==a.rotation)a.Canvas.canvas.height=c,a.Canvas.canvas.width=d;if(1==a.rotation||3==a.rotation)a.Canvas.canvas.height=d,a.Canvas.canvas.width=c;a.Canvas.setTransform(1,0,0,1,0,0);a.Canvas.rotate(90*b*Math.PI/180);a.rotation=b;a.Canvas.drawImage(a.tcanvas,a.rotX(0,0),a.rotY(0,0));a.ScreenWidth=a.Canvas.canvas.width;a.ScreenHeight=
|
|
a.Canvas.canvas.height;if(null!=a.onScreenSizeChange)a.onScreenSizeChange(a,a.ScreenWidth,a.ScreenHeight,a.CanvasId);return!0};a.MuchTheSame=function(a,b){return 4>Math.abs(a-b)};a.Debug=function(a){console.log(a)};a.getIEVersion=function(){var a=-1;"Microsoft Internet Explorer"==navigator.appName&&null!=/MSIE ([0-9]{1,}[.0-9]{0,})/.exec(navigator.userAgent)&&(a=parseFloat(RegExp.$1));return a};a.haltEvent=function(a){a.preventDefault&&a.preventDefault();a.stopPropagation&&a.stopPropagation();return!1};
|
|
return a},CreateKvmDataChannel=function(b,c,a){var d={};d.m=c;c.parent=d;d.webchannel=b;d.State=0;d.protocol=c.protocol;d.onStateChanged=null;d.onControlMsg=null;d.debugmode=0;d.keepalive=a;d.rtcKeepAlive=null;d.Start=function(){1==d.debugmode&&console.log("start");d.xxStateChange(3);d.webchannel.onmessage=d.xxOnMessage;d.rtcKeepAlive=setInterval(d.xxSendRtcKeepAlive,3E4)};var e=new FileReader,v=!1,n=[];e.readAsBinaryString?e.onload=function(a){d.xxOnSocketData(a.target.result);0==n.length?v=!1:e.readAsBinaryString(new Blob([n.shift()]))}:
|
|
e.readAsArrayBuffer&&(e.onloadend=function(a){d.xxOnSocketData(a.target.result);0==n.length?v=!1:e.readAsArrayBuffer(n.shift())});d.xxOnMessage=function(a){if("string"==typeof a.data){if(null!=d.onControlMsg)d.onControlMsg(a.data)}else if("object"==typeof a.data)if(1==v)n.push(a.data);else if(e.readAsBinaryString)v=!0,e.readAsBinaryString(new Blob([a.data]));else if(f.readAsArrayBuffer)v=!0,e.readAsArrayBuffer(a.data);else{var b="";a=new Uint8Array(a.data);for(var c=a.byteLength,h=0;h<c;h++)b+=String.fromCharCode(a[h]);
|
|
d.xxOnSocketData(b)}else d.xxOnSocketData(a.data)};d.xxOnSocketData=function(a){if(a){if("object"===typeof a){var b="";a=new Uint8Array(a);for(var c=a.byteLength,e=0;e<c;e++)b+=String.fromCharCode(a[e]);a=b}else if("string"!==typeof a)return;return d.m.ProcessData(a)}};d.sendCtrlMsg=function(a){"string"==typeof a&&(d.webchannel.send(a),urlvars&&urlvars.webrtctrace&&console.log("WebRTC-Send("+d.State+"): ",typeof a,a),null!=d.keepalive&&d.keepalive.sendKeepAlive())};d.send=function(a){if("string"==
|
|
typeof a){for(var b=new Uint8Array(a.length),c=0;c<a.length;++c)b[c]=a.charCodeAt(c);a=b}urlvars&&urlvars.webrtctrace&&console.log("WebRTC-Send("+d.State+"): ",typeof a,a);d.webchannel.send(a)};d.xxStateChange=function(a){if(d.State!=a&&(d.State=a,d.m.xxStateChange(d.State),null!=d.onStateChanged))d.onStateChanged(d,d.State)};d.Stop=function(){1==d.debugmode&&console.log("stop");null!=d.rtcKeepAlive&&(clearInterval(d.rtcKeepAlive),d.rtcKeepAlive=null);d.xxStateChange(0)};d.xxSendRtcKeepAlive=function(){urlvars&&
|
|
urlvars.webrtctrace&&console.log("WebRTC-SendKeepAlive()");d.sendCtrlMsg(JSON.stringify({action:"ping"}))};return d},CreateAmtRemoteTerminal=function(b,c){function a(b){if("\x00"!=b&&7!=b.charCodeAt()){var c=b.charCodeAt();1==l.terminalEmulation?0!=(c&128)&&(b=String.fromCharCode(r[c&127])):2==l.terminalEmulation&&0!=(c&128)&&(b=String.fromCharCode(N[c&127]));switch(c){case 16:b=" ";break;case 24:b="\u2191";break;case 25:b="\u2193"}E>l.width&&(E=l.width);m>l.height-1&&(m=l.height-1);switch(b){case "\b":0<
|
|
E&&(E--,R&&d(" "));break;case "\t":b=8-E%8;for(c=0;c<b;c++)a(" ");break;case "\n":m++;m>C[1]&&(l.recordLineTobackBuffer(0),n(1),m=C[1]);l.lineFeed="\r";E=0;break;case "\r":E=0;break;default:E>=l.width&&(E=0,w&&m++,m>=l.height-1&&(n(1),m=l.height-1)),d(b),E++}}}function d(a){A[m][E]=a;z[m][E]=(h<<6)+(B<<12)+q}function e(){for(var a=(h<<6)+(B<<12)+q,b=E;b<l.width;b++)A[m][b]=" ",z[m][b]=a}function v(a){for(var b=(h<<6)+(B<<12)+q,c=0;c<l.width;c++)A[a][c]=" ",z[a][c]=b}function n(a){var b;for(b=C[0];b<=
|
|
C[1]-a;b++)A[b]=A[b+a],z[b]=z[b+a];for(b=C[1]-a+1;b<=C[1];b++)for(A[b]=[],z[b]=[],a=0;a<l.width;a++)A[b][a]=" ",z[b][a]=448}var l={};l.DivId=b;l.DivElement=document.getElementById(b);l.protocol=1;c&&c.protocol&&(l.protocol=c.protocol);l.terminalEmulation=1;l.fxEmulation=0;l.lineFeed="\r\n";l.debugmode=0;l.width=80;l.height=25;l.heightLock=0;var p="000000 BB0000 00BB00 BBBB00 0000BB BB00BB 00BBBB BBBBBB 555555 FF5555 55FF55 FFFF55 5555FF FF55FF 55FFFF FFFFFF".split(" "),q=0,h=7,B=0,w=!0,E=0,m=0,k=
|
|
0,g=0,u=0,O=[],D=0,y=0,z=[],A=[],R=!1,x=!0,C,H=!1,J=[],P="";l.title=null;l.onTitleChange=null;l.Start=function(){};l.Init=function(a,b){l.width=a?a:80;l.height=b?b:25;for(var c=0;c<l.height;c++){A[c]=[];z[c]=[];for(var d=0;d<l.width;d++)A[c][d]=" ",z[c][d]=448}l.TermInit();l.TermDraw()};l.xxStateChange=function(a){3==a&&null!=c&&1==c.xterm&&l.TermSendKeys("stty rows "+l.height+" cols "+l.width+"\nclear\n")};l.ProcessData=function(b){2==l.debugmode&&console.log("TRecv("+b.length+"): "+rstr2hex(b));
|
|
null!=l.capture&&(l.capture+=b);if(0==l.terminalEmulation)try{b=decode_utf8(P+b)}catch(c){P+=b;return}P="";for(var d=0;d<b.length;d++){var p=String.fromCharCode(b.charCodeAt(d)),n=b.charCodeAt(d);switch(u){case 0:switch(n){case 27:u=1;O=[];y=D=0;break;default:a(p)}break;case 1:switch(p){case "[":u=2;break;case "(":u=4;break;case ")":u=5;break;case "]":u=6;break;case "=":H=!0;u=0;break;case ">":H=!1;u=0;break;case "7":k=E;g=m;u=0;break;case "8":E=k;m=g;u=0;break;case "M":for(n=C[1];n>=C[0]+1;n--)for(var r=
|
|
0;r<l.width;r++)A[n][r]=A[n-1][r],z[n][r]=z[n-1][r];for(n=C[0]+1-1;n>C[0]-1;n--)for(r=0;r<l.width;r++)A[n][r]=" ",z[n][r]=448;u=0;break;default:console.log("unknown terminal short code",p),u=0}break;case 2:if("0"<=p&&"9">=p){O[D]=O[D]?10*O[D]+(p-0):p-0;break}else if(";"==p){D++;break}else if("?"==p){y=1;break}else{O[0]||(O[0]=0);var n=O,r=D+1,R=y;if(1==R)switch(p){case "l":25==n[0]&&(x=!1);break;case "h":25==n[0]&&(x=!0)}else if(0==R){var I=void 0;switch(p){case "c":l.TermResetScreen();break;case "A":1==
|
|
r&&(0==n[0]?m--:m-=n[0],0>m&&(m=0));break;case "B":1==r&&(0==n[0]?m++:m+=n[0],m>l.height&&(m=l.height));break;case "C":1==r&&(0==n[0]?E++:E+=n[0],E>l.width&&(E=l.width));break;case "D":1==r&&(0==n[0]?E--:E-=n[0],0>E&&(E=0));break;case "d":1==r&&(m=n[0]-1,m>l.height&&(m=l.height),0>m&&(m=0));break;case "G":1==r&&(E=n[0]-1,0>E&&(E=0),E>l.width-1&&(E=l.width-1));break;case "P":p=1;1==r&&(p=n[0]);for(I=E;I<l.width-p;I++)A[m][I]=A[m][I+p],z[m][I]=z[m][I+p];for(I=l.width-p;I<l.width;I++)A[m][I]=" ",z[m][I]=
|
|
448;break;case "L":I=1;1==r&&(I=n[0]);0==I&&(I=1);for(n=C[1];n>=m+I;n--)A[n]=A[n-I],z[n]=z[n-I];for(n=m;n<m+I;n++)for(A[n]=[],z[n]=[],p=0;p<l.width;p++)A[n][p]=" ",z[n][p]=448;break;case "J":if(1==r&&2==n[0])l.TermClear((B<<12)+(h<<6)),m=E=0,J=[];else if(0==r||1==r&&0==n[0])for(e(),I=m+1;I<l.height;I++)v(I);else if(1==r&&1==n[0])for(e(),I=0;I<m-1;I++)v(I);break;case "H":2==r?(1>n[0]&&(n[0]=1),1>n[1]&&(n[1]=1),n[0]>l.height&&(n[0]=l.height),n[1]>l.width&&(n[1]=l.width),m=n[0]-1,E=n[1]-1):E=m=0;break;
|
|
case "m":for(I=0;I<r;I++)n[I]&&0!=n[I]?1==n[I]?8>h&&(h+=8):2==n[I]||22==n[I]?8<=h&&(h-=8):7==n[I]?q=2:27==n[I]?q=0:30<=n[I]&&37>=n[I]?(p=8<=h,h=n[I]-30,p&&8>=h&&(h+=8)):40<=n[I]&&47>=n[I]?B=n[I]-40:90<=n[I]&&99>=n[I]?h=n[I]-82:100<=n[I]&&109>=n[I]&&(B=n[I]-92):(B=0,h=7,q=0);break;case "K":if(0!=r&&(1!=r||n[0]&&0!=n[0])){if(1==r)if(1==n[0])for(n=(h<<6)+(B<<12)+q,r=0;r<E;r++)A[m][r]=" ",z[m][r]=n;else 2==n[0]&&v(m)}else e();break;case "h":w=!0;break;case "l":w=!1;break;case "r":2==r&&(C=[n[0]-1,n[1]-
|
|
1]);0>C[0]&&(C[0]=0);C[0]>l.height-1&&(C[0]=l.height-1);0>C[1]&&(C[1]=0);C[1]>l.height-1&&(C[1]=l.height-1);C[0]>C[1]&&(C[0]=C[1]);break;case "S":p=1;1==r&&(p=n[0]);for(n=C[0];n<=C[1]-p;n++)for(r=0;r<l.width;r++)A[n][r]=A[n+p][r],z[n][r]=z[n+p][r];for(n=C[1]-p+1;n<C[1];n++)for(r=0;r<l.width;r++)A[n][r]=" ",z[n][r]=448;break;case "M":p=1;1==r&&(p=n[0]);for(n=m;n<=C[1]-p;n++)for(r=0;r<l.width;r++)A[n][r]=A[n+p][r],z[n][r]=z[n+p][r];for(n=C[1]-p+1;n<C[1];n++)for(r=0;r<l.width;r++)A[n][r]=" ",z[n][r]=
|
|
448;break;case "T":p=1;1==r&&(p=n[0]);for(n=C[1];n>C[0]+p;n--)for(r=0;r<l.width;r++)A[n][r]=A[n-p][r],z[n][r]=z[n-p][r];for(n=C[0]+p;n>C[0];n--)for(r=0;r<l.width;r++)A[n][r]=" ",z[n][r]=448;break;case "X":p=1;I=E;R=m;for(1==r&&(p=n[0]);0<p&&R<l.height;)A[R][I]=" ",I++,p--,I>=l.width&&(I=0,R++);break;default:console.log("unknown terminal code",p,n,R)}}u=0}break;case 4:u=0;break;case 5:u=0;break;case 6:if(n=p.charCodeAt(0),";"==p)D++;else if(7==n){n=O;if(0!=n.length&&(r=parseInt(n[0]),(0==r||2==r)&&
|
|
1<n.length&&"?"!=n[1]&&l.onTitleChange))l.onTitleChange(l,l.title=n[1]);u=0}else O[D]=O[D]?O[D]+p:p}}l.TermDraw()};l.ProcessVt100String=function(b){for(var c=0;c<b.length;c++)a(String.fromCharCode(b.charCodeAt(c)))};var r=[199,252,233,226,228,224,229,231,234,235,232,239,238,236,196,197,201,230,198,244,246,242,251,249,255,214,220,162,163,165,8359,402,225,237,243,250,241,209,170,218,191,8976,172,189,188,161,171,187,9619,9618,9617,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,
|
|
9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9576,9560,9554,9555,9579,9578,9496,9484,9608,9604,9611,9616,9600,945,223,915,960,931,963,181,964,966,952,8486,948,8734,248,949,8719,8801,177,8805,8806,8992,8993,247,8776,176,8226,183,8730,8319,178,8718,160],N=[199,252,233,226,228,224,229,231,234,235,232,239,238,236,196,197,201,230,198,244,246,242,251,249,255,214,220,162,163,165,8359,402,225,237,243,250,241,209,170,218,191,8976,172,189,188,161,174,187,9619,9618,
|
|
9617,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9576,9560,9554,9555,9579,9578,9496,9484,9608,9604,9611,9616,9600,945,223,915,960,931,963,181,964,966,952,8486,948,8734,248,949,8719,8801,177,8805,8806,8992,8993,247,8776,176,8226,183,8730,8319,178,8718,160];l.TermClear=function(a){for(var b=0;b<l.height;b++)for(var c=0;c<l.width;c++)A[b][c]=" ",z[b][c]=a;J=[]};l.TermResetScreen=function(){q=
|
|
0;h=7;B=0;w=x=!0;E=m=0;R=!1;C=[0,l.height-1];H=!1;l.TermClear(448);P=""};l.TermSendKeys=function(a){2==l.debugmode&&console.log("TSend("+a.length+"): "+rstr2hex(a),a);l.parent&&l.parent.Send(a)};l.TermSendKey=function(a){2==l.debugmode&&console.log("TSend(1): "+rstr2hex(String.fromCharCode(a)),a);l.parent&&l.parent.Send(String.fromCharCode(a))};l.TermHandleKeys=function(a){if(!a.ctrlKey)return 127==a.which?l.TermSendKey(8):13==a.which?l.TermSendKeys(l.lineFeed):0!=a.which&&l.TermSendKey(a.which),
|
|
!1;a.preventDefault&&a.preventDefault();a.stopPropagation&&a.stopPropagation()};l.TermHandleKeyUp=function(a){if(8!=a.which&&32!=a.which&&9!=a.which)return!0;a.preventDefault&&a.preventDefault();a.stopPropagation&&a.stopPropagation();return!1};l.TermHandleKeyDown=function(a){if(65<=a.which&&90>=a.which&&1==a.ctrlKey)l.TermSendKey(a.which-64),a.preventDefault&&a.preventDefault(),a.stopPropagation&&a.stopPropagation();else{if(27==a.which)return l.TermSendKeys(String.fromCharCode(27)),!0;if(1==H){if(37==
|
|
a.which)return l.TermSendKeys(String.fromCharCode(27,79,68)),!0;if(38==a.which)return l.TermSendKeys(String.fromCharCode(27,79,65)),!0;if(39==a.which)return l.TermSendKeys(String.fromCharCode(27,79,67)),!0;if(40==a.which)return l.TermSendKeys(String.fromCharCode(27,79,66)),!0}else{if(37==a.which)return l.TermSendKeys(String.fromCharCode(27,91,68)),!0;if(38==a.which)return l.TermSendKeys(String.fromCharCode(27,91,65)),!0;if(39==a.which)return l.TermSendKeys(String.fromCharCode(27,91,67)),!0;if(40==
|
|
a.which)return l.TermSendKeys(String.fromCharCode(27,91,66)),!0}if(33==a.which)return l.TermSendKeys(String.fromCharCode(27,91,53,126)),!0;if(34==a.which)return l.TermSendKeys(String.fromCharCode(27,91,54,126)),!0;if(35==a.which)return l.TermSendKeys(String.fromCharCode(27,91,70)),!0;if(36==a.which)return l.TermSendKeys(String.fromCharCode(27,91,72)),!0;if(45==a.which)return l.TermSendKeys(String.fromCharCode(27,91,50,126)),!0;if(46==a.which)return l.TermSendKeys(String.fromCharCode(27,91,51,126)),
|
|
!0;if(9==a.which)return l.TermSendKeys("\t"),a.preventDefault&&a.preventDefault(),a.stopPropagation&&a.stopPropagation(),!0;var b=[80,81,119,120,116,117,113,114,112,77],c=[49,50,51,52,53,54,55,56,57,48,33,64],d=[80,81,82,83,84,85,86,87,88,89,90,91];if(111<a.which&124>a.which&&0==a.repeat){if(0==l.fxEmulation&&122>a.which)return l.TermSendKeys(String.fromCharCode(27,91,79,b[a.which-112])),!0;if(1==l.fxEmulation)return l.TermSendKeys(String.fromCharCode(27,c[a.which-112])),!0;if(2==l.fxEmulation)return l.TermSendKeys(String.fromCharCode(27,
|
|
79,d[a.which-112])),!0}if(8!=a.which&&32!=a.which&&9!=a.which)return!0;l.TermSendKey(a.which);a.preventDefault&&a.preventDefault();a.stopPropagation&&a.stopPropagation();return!1}};l.recordLineTobackBuffer=function(a){var b;b=l.TermDrawLine("",a,"");a=b[0];b=b[1];J.push(a+b+"<br>")};l.TermDrawLine=function(a,b,c){for(var d,e=1,g,h=0;h<l.width;++h)switch(d=z[b][h],E==h&&m==b&&x&&(d|=2),d!=e&&(a+=c,c="",e=6,g=12,d&2&&(e=12,g=6),a+='<span style="color:#'+p[d>>e&63]+";background-color:#"+p[d>>g&63],d&
|
|
1&&(a+=";text-decoration:underline"),a+=';">',c="</span>"+c,e=d),d=A[b][h],d){case "&":a+="&";break;case "<":a+="<";break;case ">":a+=">";break;case " ":a+=" ";break;default:a+=d}return[a,c]};l.TermDraw=function(){for(var a="",b="",c=0;c<l.height;++c)a=l.TermDrawLine(b,c,a),b=a[0],a=a[1],c!=l.height-1&&(b+="<br>");800<J.length&&(J=J.slice(J.length-800));c=J.join("");l.DivElement.innerHTML='<font size="4"><b>'+c+b+a+"</b></font>";l.DivElement.scrollTop=l.DivElement.scrollHeight};l.TermInit=
|
|
function(){l.TermResetScreen()};null!=c&&null!=c.width&&null!=c.height?l.Init(c.width,c.height):l.Init();return l},ZLIB=ZLIB||{};
|
|
"undefined"===typeof ZLIB.common_initialized&&(ZLIB.Z_NO_FLUSH=0,ZLIB.Z_PARTIAL_FLUSH=1,ZLIB.Z_SYNC_FLUSH=2,ZLIB.Z_FULL_FLUSH=3,ZLIB.Z_FINISH=4,ZLIB.Z_BLOCK=5,ZLIB.Z_TREES=6,ZLIB.Z_OK=0,ZLIB.Z_STREAM_END=1,ZLIB.Z_NEED_DICT=2,ZLIB.Z_ERRNO=-1,ZLIB.Z_STREAM_ERROR=-2,ZLIB.Z_DATA_ERROR=-3,ZLIB.Z_MEM_ERROR=-4,ZLIB.Z_BUF_ERROR=-5,ZLIB.Z_VERSION_ERROR=-6,ZLIB.Z_DEFLATED=8,ZLIB.z_stream=function(){this.total_out=this.avail_out=this.next_out=this.total_in=this.avail_in=this.next_in=0;this.state=this.msg=null;
|
|
this.adler=this.data_type=0;this.output_data=this.input_data="";this.error=0;this.checksum_function=null},ZLIB.gz_header=function(){this.xflags=this.time=this.text=0;this.os=255;this.extra=null;this.extra_max=this.extra_len=0;this.name=null;this.name_max=0;this.comment=null;this.done=this.hcrc=this.comm_max=0},ZLIB.common_initialized=!0);"undefined"===typeof ZLIB&&alert("ZLIB is not defined. SRC zlib.js before zlib-inflate.js");
|
|
(function(){function b(a,b){var c=a.next,d=2==b?a.distbits:a.lenbits,e=a.work,h=a.lens,l=2==b?a.nlen:0,m=a.codes,n;n=1==b?a.nlen:2==b?a.ndist:19;var p,q,v,w,y,z,B,E,D,W,G,F,S,Z,ca,fa,ga,T,M=Array(16);y=Array(16);for(p=0;15>=p;p++)M[p]=0;for(q=0;q<n;q++)M[h[l+q]]++;w=d;for(v=15;1<=v&&0==M[v];v--);w>v&&(w=v);if(0==v)return F={op:64,bits:1,val:0},m[c++]=F,m[c++]=F,2==b?a.distbits=1:a.lenbits=1,a.next=c,0;for(d=1;d<v&&0==M[d];d++);w<d&&(w=d);for(p=z=1;15>=p;p++)if(z<<=1,z-=M[p],0>z)return-1;if(0<z&&(0==
|
|
b||1!=v))return a.next=c,-1;y[1]=0;for(p=1;15>p;p++)y[p+1]=y[p]+M[p];for(q=0;q<n;q++)0!=h[l+q]&&(e[y[h[l+q]]++]=q);switch(b){case 0:Z=fa=e;ga=ca=0;T=19;break;case 1:Z=k;ca=-257;fa=g;ga=-257;T=256;break;default:Z=u,fa=O,ga=ca=0,T=-1}q=E=0;p=d;S=c;n=w;y=0;W=-1;B=1<<w;G=B-1;if(1==b&&852<=B||2==b&&592<=B)return a.next=c,1;for(;;){F={op:0,bits:p-y,val:0};e[q]<T?F.val=e[q]:e[q]>T?(F.op=fa[ga+e[q]],F.val=Z[ca+e[q]]):F.op=96;z=1<<p-y;d=D=1<<n;do D-=z,m[S+(E>>>y)+D]=F;while(0!=D);for(z=1<<p-1;E&z;)z>>>=1;
|
|
0!=z?(E&=z-1,E+=z):E=0;q++;if(0==--M[p]){if(p==v)break;p=h[l+e[q]]}if(p>w&&(E&G)!=W){0==y&&(y=w);S+=d;n=p-y;for(z=1<<n;n+y<v;){z-=M[n+y];if(0>=z)break;n++;z<<=1}B+=1<<n;if(1==b&&852<=B||2==b&&592<=B)return a.next=c,1;W=E&G;m[c+W]={op:n,bits:w,val:S-c}}}0!=E&&(m[S+E]={op:64,bits:p-y,val:0});a.next=c+B;2==b?a.distbits=w:a.lenbits=w;return 0}function c(a){var b,c=Array(a);for(b=0;b<a;b++)c[b]=0;return c}function a(a,b,c){return a&&b in a?a[b]:c}function d(){return 0}function e(){var a;this.total=this.check=
|
|
this.dmax=this.flags=this.havedict=this.wrap=this.last=this.mode=0;this.head=null;this.wnext=this.whave=this.wsize=this.wbits=0;this.window=null;this.next=this.have=this.ndist=this.nlen=this.ncode=this.distbits=this.lenbits=this.distcode=this.lencode=this.extra=this.offset=this.length=this.bits=this.hold=0;this.lens=c(320);this.work=c(288);this.codes=Array(1444);var b={op:0,bits:0,val:0};for(a=0;1444>a;a++)this.codes[a]=b;this.was=this.back=this.sane=0}function v(a,b){a.state.check=a.checksum_function(a.state.check,
|
|
[b&255,b>>>8&255],0,2)}function n(a,b){b.strm=a;b.left=a.avail_out;b.next=a.next_in;b.have=a.avail_in;b.hold=a.state.hold;b.bits=a.state.bits;return b}function l(a){var b=a.strm;b.next_in=a.next;b.avail_out=a.left;b.avail_in=a.have;b.state.hold=a.hold;b.state.bits=a.bits}function p(a){a.hold=0;a.bits=0}function q(a){if(0==a.have)return!1;a.have--;a.hold+=(a.strm.input_data.charCodeAt(a.next++)&255)<<a.bits;a.bits+=8;return!0}function h(a,b){for(;a.bits<b;)if(!q(a))return!1;return!0}function B(a,b){return a.hold&
|
|
(1<<b)-1}function w(a,b){a.hold>>>=b;a.bits-=b}function E(a){a.hold>>>=a.bits&7;a.bits-=a.bits&7}function m(a){return(a>>>24&255)+(a>>>8&65280)+((a&65280)<<8)+((a&255)<<24)}var k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],g=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,203,69],u=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],O=[16,16,16,
|
|
16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];ZLIB.inflate_copyright=" inflate 1.2.6 Copyright 1995-2012 Mark Adler ";ZLIB.inflateResetKeep=function(a){var b;if(!a||!a.state)return ZLIB.Z_STREAM_ERROR;b=a.state;a.total_in=a.total_out=b.total=0;a.msg=null;b.wrap&&(a.adler=b.wrap&1);b.mode=0;b.last=0;b.havedict=0;b.dmax=32768;b.head=null;b.hold=0;b.bits=0;b.lencode=0;b.distcode=0;b.next=0;b.sane=1;b.back=-1;return ZLIB.Z_OK};ZLIB.inflateReset=function(a,b){var c,
|
|
e;if(!a||!a.state)return ZLIB.Z_STREAM_ERROR;e=a.state;"undefined"===typeof b&&(b=15);0>b?(c=0,b=-b):(c=(b>>>4)+1,48>b&&(b&=15));a.checksum_function=1==c&&"function"===typeof ZLIB.adler32?ZLIB.adler32:2==c&&"function"===typeof ZLIB.crc32?ZLIB.crc32:d;if(b&&(8>b||15<b))return ZLIB.Z_STREAM_ERROR;e.window&&e.wbits!=b&&(e.window=null);e.wrap=c;e.wbits=b;e.wsize=0;e.whave=0;e.wnext=0;return ZLIB.inflateResetKeep(a)};ZLIB.inflateInit=function(a){var b=new ZLIB.z_stream;b.state=new e;ZLIB.inflateReset(b,
|
|
a);return b};ZLIB.inflatePrime=function(a,b,c){if(!a||!a.state)return ZLIB.Z_STREAM_ERROR;a=a.state;if(0>b)return a.hold=0,a.bits=0,ZLIB.Z_OK;if(16<b||32<a.bits+b)return ZLIB.Z_STREAM_ERROR;a.hold+=(c&(1<<b)-1)<<a.bits;a.bits+=b;return ZLIB.Z_OK};var D=null,y=null,z=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];ZLIB.inflate=function(a,c){var d,e,g,k,u,r=-1,N=-1,O;if(!a||!a.state||!a.input_data&&0!=a.avail_in)return ZLIB.Z_STREAM_ERROR;d=a.state;11==d.mode&&(d.mode=12);e={};n(a,e);g=e.have;k=e.left;
|
|
O=ZLIB.Z_OK;a:for(;;)switch(d.mode){case 0:if(0==d.wrap){d.mode=12;break}if(!h(e,16))break a;if(d.wrap&2&&35615==e.hold){d.check=a.checksum_function(0,null,0,0);v(a,e.hold);p(e);d.mode=1;break}d.flags=0;null!==d.head&&(d.head.done=-1);if(!(d.wrap&1)||((B(e,8)<<8)+(e.hold>>>8))%31){a.msg="incorrect header check";d.mode=29;break}if(B(e,4)!=ZLIB.Z_DEFLATED){a.msg="unknown compression method";d.mode=29;break}w(e,4);r=B(e,4)+8;if(0==d.wbits)d.wbits=r;else if(r>d.wbits){a.msg="invalid window size";d.mode=
|
|
29;break}d.dmax=1<<r;a.adler=d.check=a.checksum_function(0,null,0,0);d.mode=e.hold&512?9:11;p(e);break;case 1:if(!h(e,16))break a;d.flags=e.hold;if((d.flags&255)!=ZLIB.Z_DEFLATED){a.msg="unknown compression method";d.mode=29;break}if(d.flags&57344){a.msg="unknown header flags set";d.mode=29;break}null!==d.head&&(d.head.text=e.hold>>>8&1);d.flags&512&&v(a,e.hold);p(e);d.mode=2;case 2:if(!h(e,32))break a;null!==d.head&&(d.head.time=e.hold);d.flags&512&&(u=e.hold,a.state.check=a.checksum_function(a.state.check,
|
|
[u&255,u>>>8&255,u>>>16&255,u>>>24&255],0,4));p(e);d.mode=3;case 3:if(!h(e,16))break a;null!==d.head&&(d.head.xflags=e.hold&255,d.head.os=e.hold>>>8);d.flags&512&&v(a,e.hold);p(e);d.mode=4;case 4:if(d.flags&1024){if(!h(e,16))break a;d.length=e.hold;null!==d.head&&(d.head.extra_len=e.hold);d.flags&512&&v(a,e.hold);p(e);d.head.extra=""}else null!==d.head&&(d.head.extra=null);d.mode=5;case 5:if(d.flags&1024&&(u=d.length,u>e.have&&(u=e.have),u&&(null!==d.head&&null!==d.head.extra&&(r=d.head.extra_len-
|
|
d.length,d.head.extra+=a.input_data.substring(e.next,e.next+(r+u>d.head.extra_max?d.head.extra_max-r:u))),d.flags&512&&(d.check=a.checksum_function(d.check,a.input_data,e.next,u)),e.have-=u,e.next+=u,d.length-=u),d.length))break a;d.length=0;d.mode=6;case 6:if(d.flags&2048){if(0==e.have)break a;null!==d.head&&null===d.head.name&&(d.head.name="");u=0;do{r=a.input_data.charAt(e.next+u);u++;if("\x00"===r)break;null!==d.head&&d.length<d.head.name_max&&(d.head.name+=r,d.length++)}while(u<e.have);d.flags&
|
|
512&&(d.check=a.checksum_function(d.check,a.input_data,e.next,u));e.have-=u;e.next+=u;if("\x00"!==r)break a}else null!==d.head&&(d.head.name=null);d.length=0;d.mode=7;case 7:if(d.flags&4096){if(0==e.have)break a;u=0;null!==d.head&&null===d.head.comment&&(d.head.comment="");do{r=a.input_data.charAt(e.next+u);u++;if("\x00"===r)break;null!==d.head&&d.length<d.head.comm_max&&(d.head.comment+=r,d.length++)}while(u<e.have);d.flags&512&&(d.check=a.checksum_function(d.check,a.input_data,e.next,u));e.have-=
|
|
u;e.next+=u;if("\x00"!==r)break a}else null!==d.head&&(d.head.comment=null);d.mode=8;case 8:if(d.flags&512){if(!h(e,16))break a;if(e.hold!=(d.check&65535)){a.msg="header crc mismatch";d.mode=29;break}p(e)}null!==d.head&&(d.head.hcrc=d.flags>>>9&1,d.head.done=1);a.adler=d.check=a.checksum_function(0,null,0,0);d.mode=11;break;case 9:if(!h(e,32))break a;a.adler=d.check=m(e.hold);p(e);d.mode=10;case 10:if(0==d.havedict)return l(e),ZLIB.Z_NEED_DICT;a.adler=d.check=a.checksum_function(0,null,0,0);d.mode=
|
|
11;case 11:if(c==ZLIB.Z_BLOCK||c==ZLIB.Z_TREES)break a;case 12:if(d.last){E(e);d.mode=26;break}if(!h(e,3))break a;d.last=B(e,1);w(e,1);switch(B(e,2)){case 0:d.mode=13;break;case 1:u=d;r=void 0;D||(D=[{op:96,bits:7,val:0},{op:0,bits:8,val:80},{op:0,bits:8,val:16},{op:20,bits:8,val:115},{op:18,bits:7,val:31},{op:0,bits:8,val:112},{op:0,bits:8,val:48},{op:0,bits:9,val:192},{op:16,bits:7,val:10},{op:0,bits:8,val:96},{op:0,bits:8,val:32},{op:0,bits:9,val:160},{op:0,bits:8,val:0},{op:0,bits:8,val:128},
|
|
{op:0,bits:8,val:64},{op:0,bits:9,val:224},{op:16,bits:7,val:6},{op:0,bits:8,val:88},{op:0,bits:8,val:24},{op:0,bits:9,val:144},{op:19,bits:7,val:59},{op:0,bits:8,val:120},{op:0,bits:8,val:56},{op:0,bits:9,val:208},{op:17,bits:7,val:17},{op:0,bits:8,val:104},{op:0,bits:8,val:40},{op:0,bits:9,val:176},{op:0,bits:8,val:8},{op:0,bits:8,val:136},{op:0,bits:8,val:72},{op:0,bits:9,val:240},{op:16,bits:7,val:4},{op:0,bits:8,val:84},{op:0,bits:8,val:20},{op:21,bits:8,val:227},{op:19,bits:7,val:43},{op:0,
|
|
bits:8,val:116},{op:0,bits:8,val:52},{op:0,bits:9,val:200},{op:17,bits:7,val:13},{op:0,bits:8,val:100},{op:0,bits:8,val:36},{op:0,bits:9,val:168},{op:0,bits:8,val:4},{op:0,bits:8,val:132},{op:0,bits:8,val:68},{op:0,bits:9,val:232},{op:16,bits:7,val:8},{op:0,bits:8,val:92},{op:0,bits:8,val:28},{op:0,bits:9,val:152},{op:20,bits:7,val:83},{op:0,bits:8,val:124},{op:0,bits:8,val:60},{op:0,bits:9,val:216},{op:18,bits:7,val:23},{op:0,bits:8,val:108},{op:0,bits:8,val:44},{op:0,bits:9,val:184},{op:0,bits:8,
|
|
val:12},{op:0,bits:8,val:140},{op:0,bits:8,val:76},{op:0,bits:9,val:248},{op:16,bits:7,val:3},{op:0,bits:8,val:82},{op:0,bits:8,val:18},{op:21,bits:8,val:163},{op:19,bits:7,val:35},{op:0,bits:8,val:114},{op:0,bits:8,val:50},{op:0,bits:9,val:196},{op:17,bits:7,val:11},{op:0,bits:8,val:98},{op:0,bits:8,val:34},{op:0,bits:9,val:164},{op:0,bits:8,val:2},{op:0,bits:8,val:130},{op:0,bits:8,val:66},{op:0,bits:9,val:228},{op:16,bits:7,val:7},{op:0,bits:8,val:90},{op:0,bits:8,val:26},{op:0,bits:9,val:148},
|
|
{op:20,bits:7,val:67},{op:0,bits:8,val:122},{op:0,bits:8,val:58},{op:0,bits:9,val:212},{op:18,bits:7,val:19},{op:0,bits:8,val:106},{op:0,bits:8,val:42},{op:0,bits:9,val:180},{op:0,bits:8,val:10},{op:0,bits:8,val:138},{op:0,bits:8,val:74},{op:0,bits:9,val:244},{op:16,bits:7,val:5},{op:0,bits:8,val:86},{op:0,bits:8,val:22},{op:64,bits:8,val:0},{op:19,bits:7,val:51},{op:0,bits:8,val:118},{op:0,bits:8,val:54},{op:0,bits:9,val:204},{op:17,bits:7,val:15},{op:0,bits:8,val:102},{op:0,bits:8,val:38},{op:0,
|
|
bits:9,val:172},{op:0,bits:8,val:6},{op:0,bits:8,val:134},{op:0,bits:8,val:70},{op:0,bits:9,val:236},{op:16,bits:7,val:9},{op:0,bits:8,val:94},{op:0,bits:8,val:30},{op:0,bits:9,val:156},{op:20,bits:7,val:99},{op:0,bits:8,val:126},{op:0,bits:8,val:62},{op:0,bits:9,val:220},{op:18,bits:7,val:27},{op:0,bits:8,val:110},{op:0,bits:8,val:46},{op:0,bits:9,val:188},{op:0,bits:8,val:14},{op:0,bits:8,val:142},{op:0,bits:8,val:78},{op:0,bits:9,val:252},{op:96,bits:7,val:0},{op:0,bits:8,val:81},{op:0,bits:8,
|
|
val:17},{op:21,bits:8,val:131},{op:18,bits:7,val:31},{op:0,bits:8,val:113},{op:0,bits:8,val:49},{op:0,bits:9,val:194},{op:16,bits:7,val:10},{op:0,bits:8,val:97},{op:0,bits:8,val:33},{op:0,bits:9,val:162},{op:0,bits:8,val:1},{op:0,bits:8,val:129},{op:0,bits:8,val:65},{op:0,bits:9,val:226},{op:16,bits:7,val:6},{op:0,bits:8,val:89},{op:0,bits:8,val:25},{op:0,bits:9,val:146},{op:19,bits:7,val:59},{op:0,bits:8,val:121},{op:0,bits:8,val:57},{op:0,bits:9,val:210},{op:17,bits:7,val:17},{op:0,bits:8,val:105},
|
|
{op:0,bits:8,val:41},{op:0,bits:9,val:178},{op:0,bits:8,val:9},{op:0,bits:8,val:137},{op:0,bits:8,val:73},{op:0,bits:9,val:242},{op:16,bits:7,val:4},{op:0,bits:8,val:85},{op:0,bits:8,val:21},{op:16,bits:8,val:258},{op:19,bits:7,val:43},{op:0,bits:8,val:117},{op:0,bits:8,val:53},{op:0,bits:9,val:202},{op:17,bits:7,val:13},{op:0,bits:8,val:101},{op:0,bits:8,val:37},{op:0,bits:9,val:170},{op:0,bits:8,val:5},{op:0,bits:8,val:133},{op:0,bits:8,val:69},{op:0,bits:9,val:234},{op:16,bits:7,val:8},{op:0,bits:8,
|
|
val:93},{op:0,bits:8,val:29},{op:0,bits:9,val:154},{op:20,bits:7,val:83},{op:0,bits:8,val:125},{op:0,bits:8,val:61},{op:0,bits:9,val:218},{op:18,bits:7,val:23},{op:0,bits:8,val:109},{op:0,bits:8,val:45},{op:0,bits:9,val:186},{op:0,bits:8,val:13},{op:0,bits:8,val:141},{op:0,bits:8,val:77},{op:0,bits:9,val:250},{op:16,bits:7,val:3},{op:0,bits:8,val:83},{op:0,bits:8,val:19},{op:21,bits:8,val:195},{op:19,bits:7,val:35},{op:0,bits:8,val:115},{op:0,bits:8,val:51},{op:0,bits:9,val:198},{op:17,bits:7,val:11},
|
|
{op:0,bits:8,val:99},{op:0,bits:8,val:35},{op:0,bits:9,val:166},{op:0,bits:8,val:3},{op:0,bits:8,val:131},{op:0,bits:8,val:67},{op:0,bits:9,val:230},{op:16,bits:7,val:7},{op:0,bits:8,val:91},{op:0,bits:8,val:27},{op:0,bits:9,val:150},{op:20,bits:7,val:67},{op:0,bits:8,val:123},{op:0,bits:8,val:59},{op:0,bits:9,val:214},{op:18,bits:7,val:19},{op:0,bits:8,val:107},{op:0,bits:8,val:43},{op:0,bits:9,val:182},{op:0,bits:8,val:11},{op:0,bits:8,val:139},{op:0,bits:8,val:75},{op:0,bits:9,val:246},{op:16,
|
|
bits:7,val:5},{op:0,bits:8,val:87},{op:0,bits:8,val:23},{op:64,bits:8,val:0},{op:19,bits:7,val:51},{op:0,bits:8,val:119},{op:0,bits:8,val:55},{op:0,bits:9,val:206},{op:17,bits:7,val:15},{op:0,bits:8,val:103},{op:0,bits:8,val:39},{op:0,bits:9,val:174},{op:0,bits:8,val:7},{op:0,bits:8,val:135},{op:0,bits:8,val:71},{op:0,bits:9,val:238},{op:16,bits:7,val:9},{op:0,bits:8,val:95},{op:0,bits:8,val:31},{op:0,bits:9,val:158},{op:20,bits:7,val:99},{op:0,bits:8,val:127},{op:0,bits:8,val:63},{op:0,bits:9,val:222},
|
|
{op:18,bits:7,val:27},{op:0,bits:8,val:111},{op:0,bits:8,val:47},{op:0,bits:9,val:190},{op:0,bits:8,val:15},{op:0,bits:8,val:143},{op:0,bits:8,val:79},{op:0,bits:9,val:254},{op:96,bits:7,val:0},{op:0,bits:8,val:80},{op:0,bits:8,val:16},{op:20,bits:8,val:115},{op:18,bits:7,val:31},{op:0,bits:8,val:112},{op:0,bits:8,val:48},{op:0,bits:9,val:193},{op:16,bits:7,val:10},{op:0,bits:8,val:96},{op:0,bits:8,val:32},{op:0,bits:9,val:161},{op:0,bits:8,val:0},{op:0,bits:8,val:128},{op:0,bits:8,val:64},{op:0,
|
|
bits:9,val:225},{op:16,bits:7,val:6},{op:0,bits:8,val:88},{op:0,bits:8,val:24},{op:0,bits:9,val:145},{op:19,bits:7,val:59},{op:0,bits:8,val:120},{op:0,bits:8,val:56},{op:0,bits:9,val:209},{op:17,bits:7,val:17},{op:0,bits:8,val:104},{op:0,bits:8,val:40},{op:0,bits:9,val:177},{op:0,bits:8,val:8},{op:0,bits:8,val:136},{op:0,bits:8,val:72},{op:0,bits:9,val:241},{op:16,bits:7,val:4},{op:0,bits:8,val:84},{op:0,bits:8,val:20},{op:21,bits:8,val:227},{op:19,bits:7,val:43},{op:0,bits:8,val:116},{op:0,bits:8,
|
|
val:52},{op:0,bits:9,val:201},{op:17,bits:7,val:13},{op:0,bits:8,val:100},{op:0,bits:8,val:36},{op:0,bits:9,val:169},{op:0,bits:8,val:4},{op:0,bits:8,val:132},{op:0,bits:8,val:68},{op:0,bits:9,val:233},{op:16,bits:7,val:8},{op:0,bits:8,val:92},{op:0,bits:8,val:28},{op:0,bits:9,val:153},{op:20,bits:7,val:83},{op:0,bits:8,val:124},{op:0,bits:8,val:60},{op:0,bits:9,val:217},{op:18,bits:7,val:23},{op:0,bits:8,val:108},{op:0,bits:8,val:44},{op:0,bits:9,val:185},{op:0,bits:8,val:12},{op:0,bits:8,val:140},
|
|
{op:0,bits:8,val:76},{op:0,bits:9,val:249},{op:16,bits:7,val:3},{op:0,bits:8,val:82},{op:0,bits:8,val:18},{op:21,bits:8,val:163},{op:19,bits:7,val:35},{op:0,bits:8,val:114},{op:0,bits:8,val:50},{op:0,bits:9,val:197},{op:17,bits:7,val:11},{op:0,bits:8,val:98},{op:0,bits:8,val:34},{op:0,bits:9,val:165},{op:0,bits:8,val:2},{op:0,bits:8,val:130},{op:0,bits:8,val:66},{op:0,bits:9,val:229},{op:16,bits:7,val:7},{op:0,bits:8,val:90},{op:0,bits:8,val:26},{op:0,bits:9,val:149},{op:20,bits:7,val:67},{op:0,bits:8,
|
|
val:122},{op:0,bits:8,val:58},{op:0,bits:9,val:213},{op:18,bits:7,val:19},{op:0,bits:8,val:106},{op:0,bits:8,val:42},{op:0,bits:9,val:181},{op:0,bits:8,val:10},{op:0,bits:8,val:138},{op:0,bits:8,val:74},{op:0,bits:9,val:245},{op:16,bits:7,val:5},{op:0,bits:8,val:86},{op:0,bits:8,val:22},{op:64,bits:8,val:0},{op:19,bits:7,val:51},{op:0,bits:8,val:118},{op:0,bits:8,val:54},{op:0,bits:9,val:205},{op:17,bits:7,val:15},{op:0,bits:8,val:102},{op:0,bits:8,val:38},{op:0,bits:9,val:173},{op:0,bits:8,val:6},
|
|
{op:0,bits:8,val:134},{op:0,bits:8,val:70},{op:0,bits:9,val:237},{op:16,bits:7,val:9},{op:0,bits:8,val:94},{op:0,bits:8,val:30},{op:0,bits:9,val:157},{op:20,bits:7,val:99},{op:0,bits:8,val:126},{op:0,bits:8,val:62},{op:0,bits:9,val:221},{op:18,bits:7,val:27},{op:0,bits:8,val:110},{op:0,bits:8,val:46},{op:0,bits:9,val:189},{op:0,bits:8,val:14},{op:0,bits:8,val:142},{op:0,bits:8,val:78},{op:0,bits:9,val:253},{op:96,bits:7,val:0},{op:0,bits:8,val:81},{op:0,bits:8,val:17},{op:21,bits:8,val:131},{op:18,
|
|
bits:7,val:31},{op:0,bits:8,val:113},{op:0,bits:8,val:49},{op:0,bits:9,val:195},{op:16,bits:7,val:10},{op:0,bits:8,val:97},{op:0,bits:8,val:33},{op:0,bits:9,val:163},{op:0,bits:8,val:1},{op:0,bits:8,val:129},{op:0,bits:8,val:65},{op:0,bits:9,val:227},{op:16,bits:7,val:6},{op:0,bits:8,val:89},{op:0,bits:8,val:25},{op:0,bits:9,val:147},{op:19,bits:7,val:59},{op:0,bits:8,val:121},{op:0,bits:8,val:57},{op:0,bits:9,val:211},{op:17,bits:7,val:17},{op:0,bits:8,val:105},{op:0,bits:8,val:41},{op:0,bits:9,
|
|
val:179},{op:0,bits:8,val:9},{op:0,bits:8,val:137},{op:0,bits:8,val:73},{op:0,bits:9,val:243},{op:16,bits:7,val:4},{op:0,bits:8,val:85},{op:0,bits:8,val:21},{op:16,bits:8,val:258},{op:19,bits:7,val:43},{op:0,bits:8,val:117},{op:0,bits:8,val:53},{op:0,bits:9,val:203},{op:17,bits:7,val:13},{op:0,bits:8,val:101},{op:0,bits:8,val:37},{op:0,bits:9,val:171},{op:0,bits:8,val:5},{op:0,bits:8,val:133},{op:0,bits:8,val:69},{op:0,bits:9,val:235},{op:16,bits:7,val:8},{op:0,bits:8,val:93},{op:0,bits:8,val:29},
|
|
{op:0,bits:9,val:155},{op:20,bits:7,val:83},{op:0,bits:8,val:125},{op:0,bits:8,val:61},{op:0,bits:9,val:219},{op:18,bits:7,val:23},{op:0,bits:8,val:109},{op:0,bits:8,val:45},{op:0,bits:9,val:187},{op:0,bits:8,val:13},{op:0,bits:8,val:141},{op:0,bits:8,val:77},{op:0,bits:9,val:251},{op:16,bits:7,val:3},{op:0,bits:8,val:83},{op:0,bits:8,val:19},{op:21,bits:8,val:195},{op:19,bits:7,val:35},{op:0,bits:8,val:115},{op:0,bits:8,val:51},{op:0,bits:9,val:199},{op:17,bits:7,val:11},{op:0,bits:8,val:99},{op:0,
|
|
bits:8,val:35},{op:0,bits:9,val:167},{op:0,bits:8,val:3},{op:0,bits:8,val:131},{op:0,bits:8,val:67},{op:0,bits:9,val:231},{op:16,bits:7,val:7},{op:0,bits:8,val:91},{op:0,bits:8,val:27},{op:0,bits:9,val:151},{op:20,bits:7,val:67},{op:0,bits:8,val:123},{op:0,bits:8,val:59},{op:0,bits:9,val:215},{op:18,bits:7,val:19},{op:0,bits:8,val:107},{op:0,bits:8,val:43},{op:0,bits:9,val:183},{op:0,bits:8,val:11},{op:0,bits:8,val:139},{op:0,bits:8,val:75},{op:0,bits:9,val:247},{op:16,bits:7,val:5},{op:0,bits:8,
|
|
val:87},{op:0,bits:8,val:23},{op:64,bits:8,val:0},{op:19,bits:7,val:51},{op:0,bits:8,val:119},{op:0,bits:8,val:55},{op:0,bits:9,val:207},{op:17,bits:7,val:15},{op:0,bits:8,val:103},{op:0,bits:8,val:39},{op:0,bits:9,val:175},{op:0,bits:8,val:7},{op:0,bits:8,val:135},{op:0,bits:8,val:71},{op:0,bits:9,val:239},{op:16,bits:7,val:9},{op:0,bits:8,val:95},{op:0,bits:8,val:31},{op:0,bits:9,val:159},{op:20,bits:7,val:99},{op:0,bits:8,val:127},{op:0,bits:8,val:63},{op:0,bits:9,val:223},{op:18,bits:7,val:27},
|
|
{op:0,bits:8,val:111},{op:0,bits:8,val:47},{op:0,bits:9,val:191},{op:0,bits:8,val:15},{op:0,bits:8,val:143},{op:0,bits:8,val:79},{op:0,bits:9,val:255}]);y||(y=[{op:16,bits:5,val:1},{op:23,bits:5,val:257},{op:19,bits:5,val:17},{op:27,bits:5,val:4097},{op:17,bits:5,val:5},{op:25,bits:5,val:1025},{op:21,bits:5,val:65},{op:29,bits:5,val:16385},{op:16,bits:5,val:3},{op:24,bits:5,val:513},{op:20,bits:5,val:33},{op:28,bits:5,val:8193},{op:18,bits:5,val:9},{op:26,bits:5,val:2049},{op:22,bits:5,val:129},{op:64,
|
|
bits:5,val:0},{op:16,bits:5,val:2},{op:23,bits:5,val:385},{op:19,bits:5,val:25},{op:27,bits:5,val:6145},{op:17,bits:5,val:7},{op:25,bits:5,val:1537},{op:21,bits:5,val:97},{op:29,bits:5,val:24577},{op:16,bits:5,val:4},{op:24,bits:5,val:769},{op:20,bits:5,val:49},{op:28,bits:5,val:12289},{op:18,bits:5,val:13},{op:26,bits:5,val:3073},{op:22,bits:5,val:193},{op:64,bits:5,val:0}]);u.lencode=0;u.distcode=512;for(r=0;512>r;r++)u.codes[r]=D[r];for(r=0;32>r;r++)u.codes[r+512]=y[r];u.lenbits=9;u.distbits=5;
|
|
d.mode=19;if(c==ZLIB.Z_TREES){w(e,2);break a}break;case 2:d.mode=16;break;case 3:a.msg="invalid block type",d.mode=29}w(e,2);break;case 13:E(e);if(!h(e,32))break a;if((e.hold&65535)!=(e.hold>>>16&65535^65535)){a.msg="invalid stored block lengths";d.mode=29;break}d.length=e.hold&65535;p(e);d.mode=14;if(c==ZLIB.Z_TREES)break a;case 14:d.mode=15;case 15:if(u=d.length){u>e.have&&(u=e.have);u>e.left&&(u=e.left);if(0==u)break a;a.output_data+=a.input_data.substring(e.next,e.next+u);a.next_out+=u;e.have-=
|
|
u;e.next+=u;e.left-=u;d.length-=u;break}d.mode=11;break;case 16:if(!h(e,14))break a;d.nlen=B(e,5)+257;w(e,5);d.ndist=B(e,5)+1;w(e,5);d.ncode=B(e,4)+4;w(e,4);if(286<d.nlen||30<d.ndist){a.msg="too many length or distance symbols";d.mode=29;break}d.have=0;d.mode=17;case 17:for(;d.have<d.ncode;){if(!h(e,3))break a;u=B(e,3);d.lens[z[d.have++]]=u;w(e,3)}for(;19>d.have;)d.lens[z[d.have++]]=0;d.next=0;d.lencode=0;d.lenbits=7;if(O=b(d,0)){a.msg="invalid code lengths set";d.mode=29;break}d.have=0;d.mode=18;
|
|
case 18:for(;d.have<d.nlen+d.ndist;){for(;;){u=d.codes[d.lencode+B(e,d.lenbits)];if(u.bits<=e.bits)break;if(!q(e))break a}if(16>u.val)w(e,u.bits),d.lens[d.have++]=u.val;else{if(16==u.val){if(!h(e,u.bits+2))break a;w(e,u.bits);if(0==d.have){a.msg="invalid bit length repeat";d.mode=29;break}r=d.lens[d.have-1];u=3+B(e,2);w(e,2)}else if(17==u.val){if(!h(e,u.bits+3))break a;w(e,u.bits);r=0;u=3+B(e,3);w(e,3)}else{if(!h(e,u.bits+7))break a;w(e,u.bits);r=0;u=11+B(e,7);w(e,7)}if(d.have+u>d.nlen+d.ndist){a.msg=
|
|
"invalid bit length repeat";d.mode=29;break}for(;u--;)d.lens[d.have++]=r}}if(29==d.mode)break;if(0==d.lens[256]){a.msg="invalid code -- missing end-of-block";d.mode=29;break}d.next=0;d.lencode=d.next;d.lenbits=9;if(O=b(d,1)){a.msg="invalid literal/lengths set";d.mode=29;break}d.distcode=d.next;d.distbits=6;if(O=b(d,2)){a.msg="invalid distances set";d.mode=29;break}d.mode=19;if(c==ZLIB.Z_TREES)break a;case 19:d.mode=20;case 20:if(6<=e.have&&258<=e.left){l(e);u=a;var L=N=r=void 0,Y=void 0,K=void 0,
|
|
ea=void 0,V=void 0,I=void 0,aa=void 0,ba=void 0,W=void 0,G=void 0,F=void 0,S=void 0,Z=void 0,ca=void 0,fa=void 0,ga=void 0,T=void 0,M=void 0,X=void 0,ha=void 0,da=-1,T=-1,r=u.state,N=u.input_data,L=u.next_in,Y=L+u.avail_in-5,K=u.next_out,ea=K-(k-u.avail_out),V=K+(u.avail_out-257),I=r.wsize,aa=r.whave,ba=r.wnext,W=r.window,G=r.hold,F=r.bits,S=r.codes,Z=r.lencode,ca=r.distcode,fa=(1<<r.lenbits)-1,ga=(1<<r.distbits)-1;b:do c:for(15>F&&(G+=(N.charCodeAt(L++)&255)<<F,F+=8,G+=(N.charCodeAt(L++)&255)<<F,
|
|
F+=8),T=S[Z+(G&fa)];;){M=T.bits;G>>>=M;F-=M;M=T.op;if(0==M)u.output_data+=String.fromCharCode(T.val),K++;else if(M&16){X=T.val;if(M&=15)F<M&&(G+=(N.charCodeAt(L++)&255)<<F,F+=8),X+=G&(1<<M)-1,G>>>=M,F-=M;15>F&&(G+=(N.charCodeAt(L++)&255)<<F,F+=8,G+=(N.charCodeAt(L++)&255)<<F,F+=8);T=S[ca+(G&ga)];d:for(;;){M=T.bits;G>>>=M;F-=M;M=T.op;if(M&16){ha=T.val;M&=15;F<M&&(G+=(N.charCodeAt(L++)&255)<<F,F+=8,F<M&&(G+=(N.charCodeAt(L++)&255)<<F,F+=8));ha+=G&(1<<M)-1;G>>>=M;F-=M;M=K-ea;if(ha>M){M=ha-M;if(M>aa&&
|
|
r.sane){u.msg="invalid distance too far back";r.mode=29;break b}da=0;T=-1;da=0==ba?da+(I-M):da+(ba-M);M<X&&(X-=M,u.output_data+=W.substring(da,da+M),K+=M,da=-1,T=K-ha)}else da=-1,T=K-ha;if(0<=da)u.output_data+=W.substring(da,da+X),K+=X;else{M=X;M>K-T&&(M=K-T);u.output_data+=u.output_data.substring(T,T+M);K+=M;X-=M;T+=M;for(K+=X;2<X;)u.output_data+=u.output_data.charAt(T++),u.output_data+=u.output_data.charAt(T++),u.output_data+=u.output_data.charAt(T++),X-=3;X&&(u.output_data+=u.output_data.charAt(T++),
|
|
1<X&&(u.output_data+=u.output_data.charAt(T++)))}}else if(0==(M&64)){T=S[ca+(T.val+(G&(1<<M)-1))];continue d}else{u.msg="invalid distance code";r.mode=29;break b}break d}}else if(0==(M&64)){T=S[Z+(T.val+(G&(1<<M)-1))];continue c}else{M&32?r.mode=11:(u.msg="invalid literal/length code",r.mode=29);break b}break c}while(L<Y&&K<V);X=F>>>3;L-=X;F-=X<<3;G&=(1<<F)-1;u.next_in=L;u.next_out=K;u.avail_in=L<Y?5+(Y-L):5-(L-Y);u.avail_out=K<V?257+(V-K):257-(K-V);r.hold=G;r.bits=F;n(a,e);11==d.mode&&(d.back=-1);
|
|
break}for(d.back=0;;){u=d.codes[d.lencode+B(e,d.lenbits)];if(u.bits<=e.bits)break;if(!q(e))break a}if(u.op&&0==(u.op&240)){for(r=u;;){u=d.codes[d.lencode+r.val+(B(e,r.bits+r.op)>>>r.bits)];if(r.bits+u.bits<=e.bits)break;if(!q(e))break a}w(e,r.bits);d.back+=r.bits}w(e,u.bits);d.back+=u.bits;d.length=u.val;if(0==u.op){d.mode=25;break}if(u.op&32){d.back=-1;d.mode=11;break}if(u.op&64){a.msg="invalid literal/length code";d.mode=29;break}d.extra=u.op&15;d.mode=21;case 21:if(d.extra){if(!h(e,d.extra))break a;
|
|
d.length+=B(e,d.extra);w(e,d.extra);d.back+=d.extra}d.was=d.length;d.mode=22;case 22:for(;;){u=d.codes[d.distcode+B(e,d.distbits)];if(u.bits<=e.bits)break;if(!q(e))break a}if(0==(u.op&240)){for(r=u;;){u=d.codes[d.distcode+r.val+(B(e,r.bits+r.op)>>>r.bits)];if(r.bits+u.bits<=e.bits)break;if(!q(e))break a}w(e,r.bits);d.back+=r.bits}w(e,u.bits);d.back+=u.bits;if(u.op&64){a.msg="invalid distance code";d.mode=29;break}d.offset=u.val;d.extra=u.op&15;d.mode=23;case 23:if(d.extra){if(!h(e,d.extra))break a;
|
|
d.offset+=B(e,d.extra);w(e,d.extra);d.back+=d.extra}d.mode=24;case 24:if(0==e.left)break a;u=k-e.left;if(d.offset>u){u=d.offset-u;if(u>d.whave&&d.sane){a.msg="invalid distance too far back";d.mode=29;break}u>d.wnext?(u-=d.wnext,r=d.wsize-u):r=d.wnext-u;N=-1;u>d.length&&(u=d.length)}else r=-1,N=a.next_out-d.offset,u=d.length;u>e.left&&(u=e.left);e.left-=u;d.length-=u;if(0<=r)a.output_data+=d.window.substring(r,r+u),a.next_out+=u;else{a.next_out+=u;do a.output_data+=a.output_data.charAt(N++);while(--u)}0==
|
|
d.length&&(d.mode=20);break;case 25:if(0==e.left)break a;a.output_data+=String.fromCharCode(d.length);a.next_out++;e.left--;d.mode=20;break;case 26:if(d.wrap){if(!h(e,32))break a;k-=e.left;a.total_out+=k;d.total+=k;k&&(a.adler=d.check=a.checksum_function(d.check,a.output_data,a.output_data.length-k,k));k=e.left;if((d.flags?e.hold:m(e.hold))!=d.check){a.msg="incorrect data check";d.mode=29;break}p(e)}d.mode=27;case 27:if(d.wrap&&d.flags){if(!h(e,32))break a;if(e.hold!=(d.total&4294967295)){a.msg="incorrect length check";
|
|
d.mode=29;break}p(e)}d.mode=28;case 28:O=ZLIB.Z_STREAM_END;break a;case 29:O=ZLIB.Z_DATA_ERROR;break a;case 30:return ZLIB.Z_MEM_ERROR;default:return ZLIB.Z_STREAM_ERROR}l(e);if(d.wsize||k!=a.avail_out&&29>d.mode&&(26>d.mode||c!=ZLIB.Z_FINISH))e=a.state,u=a.output_data.length,null===e.window&&(e.window=""),0==e.wsize&&(e.wsize=1<<e.wbits),e.window=u>=e.wsize?a.output_data.substring(u-e.wsize):e.whave+u<e.wsize?e.window+a.output_data:e.window.substring(e.whave-(e.wsize-u))+a.output_data,e.whave=e.window.length,
|
|
e.wnext=e.whave<e.wsize?e.whave:0;g-=a.avail_in;k-=a.avail_out;a.total_in+=g;a.total_out+=k;d.total+=k;d.wrap&&k&&(a.adler=d.check=a.checksum_function(d.check,a.output_data,0,a.output_data.length));a.data_type=d.bits+(d.last?64:0)+(11==d.mode?128:0)+(19==d.mode||14==d.mode?256:0);(0==g&&0==k||c==ZLIB.Z_FINISH)&&O==ZLIB.Z_OK&&(O=ZLIB.Z_BUF_ERROR);return O};ZLIB.inflateEnd=function(a){if(!a||!a.state)return ZLIB.Z_STREAM_ERROR;a.state.window=null;a.state=null;return ZLIB.Z_OK};ZLIB.z_stream.prototype.inflate=
|
|
function(b,c){var d,e;this.input_data=b;this.next_in=a(c,"next_in",0);this.avail_in=a(c,"avail_in",b.length-this.next_in);d=a(c,"flush",ZLIB.Z_SYNC_FLUSH);e=a(c,"avail_out",-1);var g="";do{this.avail_out=0<=e?e:16384;this.output_data="";this.next_out=0;this.error=ZLIB.inflate(this,d);if(0<=e)return this.output_data;g+=this.output_data;if(0<this.avail_out)break}while(this.error==ZLIB.Z_OK);return g};ZLIB.z_stream.prototype.inflateReset=function(a){return ZLIB.inflateReset(this,a)}})();
|
|
"undefined"===typeof ZLIB&&alert("ZLIB is not defined. SRC zlib.js before zlib-adler32.js");
|
|
(function(){function b(a,b,c,v){var n,l;n=a>>>16&65535;a&=65535;if(1==v)return a+=b.charCodeAt(c)&255,65521<=a&&(a-=65521),n+=a,65521<=n&&(n-=65521),a|n<<16;if(null===b)return 1;if(16>v){for(;v--;)a+=b.charCodeAt(c++)&255,n+=a;65521<=a&&(a-=65521);return a|n%65521<<16}for(;5552<=v;){v-=5552;l=347;do a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&
|
|
255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a;while(--l);a%=65521;n%=65521}if(v){for(;16<=v;)v-=16,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&
|
|
255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a,a+=b.charCodeAt(c++)&255,n+=a;for(;v--;)a+=b.charCodeAt(c++)&255,n+=a;a%=65521;n%=65521}return a|n<<16}function c(a,b,c,v){var n,l;n=a>>>16&65535;a&=65535;if(1==v)return a+=b[c],65521<=a&&(a-=65521),n+=a,65521<=n&&(n-=65521),
|
|
a|n<<16;if(null===b)return 1;if(16>v){for(;v--;)a+=b[c++],n+=a;65521<=a&&(a-=65521);return a|n%65521<<16}for(;5552<=v;){v-=5552;l=347;do a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a;while(--l);a%=65521;n%=65521}if(v){for(;16<=v;)v-=16,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=
|
|
a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a,a+=b[c++],n+=a;for(;v--;)a+=b[c++],n+=a;a%=65521;n%=65521}return a|n<<16}ZLIB.adler32=function(a,d,e,v){return"string"===typeof d?b(a,d,e,v):c(a,d,e,v)};ZLIB.adler32_combine=function(a,b,c){var v,n;if(0>c)return 4294967295;n=c%65521;c=a&65535;v=n*c%65521;c+=(b&65535)+65521-1;v+=(a>>16&65535)+(b>>16&65535)+65521-n;65521<=c&&(c-=65521);65521<=c&&(c-=
|
|
65521);131042<=v&&(v-=131042);65521<=v&&(v-=65521);return c|v<<16}})();"undefined"===typeof ZLIB&&alert("ZLIB is not defined. SRC zlib.js before zlib-crc32.js");
|
|
(function(){function b(a,b){var c,n=0;for(c=0;b;)b&1&&(c^=a[n]),b>>=1,n++;return c}function c(a,c){var v;for(v=0;32>v;v++)a[v]=b(c,c[v])}var a=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,
|
|
3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,
|
|
476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,
|
|
3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,
|
|
1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,
|
|
1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];ZLIB.crc32=function(b,c,v,n){if("string"===typeof c){if(null==c)c=0;else{for(b^=4294967295;8<=n;)b=a[(b^c.charCodeAt(v++))&255]^b>>>8,b=
|
|
a[(b^c.charCodeAt(v++))&255]^b>>>8,b=a[(b^c.charCodeAt(v++))&255]^b>>>8,b=a[(b^c.charCodeAt(v++))&255]^b>>>8,b=a[(b^c.charCodeAt(v++))&255]^b>>>8,b=a[(b^c.charCodeAt(v++))&255]^b>>>8,b=a[(b^c.charCodeAt(v++))&255]^b>>>8,b=a[(b^c.charCodeAt(v++))&255]^b>>>8,n-=8;if(n){do b=a[(b^c.charCodeAt(v++))&255]^b>>>8;while(--n)}c=b^4294967295}return c}if(null==c)c=0;else{for(b^=4294967295;8<=n;)b=a[(b^c[v++])&255]^b>>>8,b=a[(b^c[v++])&255]^b>>>8,b=a[(b^c[v++])&255]^b>>>8,b=a[(b^c[v++])&255]^b>>>8,b=a[(b^c[v++])&
|
|
255]^b>>>8,b=a[(b^c[v++])&255]^b>>>8,b=a[(b^c[v++])&255]^b>>>8,b=a[(b^c[v++])&255]^b>>>8,n-=8;if(n){do b=a[(b^c[v++])&255]^b>>>8;while(--n)}c=b^4294967295}return c};ZLIB.crc32_combine=function(a,e,v){var n,l,p,q;if(0>=v)return a;p=Array(32);q=Array(32);q[0]=3988292384;for(n=l=1;32>n;n++)q[n]=l,l<<=1;c(p,q);c(q,p);do{c(p,q);v&1&&(a=b(p,a));v>>=1;if(0==v)break;c(q,p);v&1&&(a=b(q,a));v>>=1}while(0!=v);return a^e}})();
|
|
var saveAs=saveAs||function(b){if("undefined"===typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var c=b.document.createElementNS("http://www.w3.org/1999/xhtml","a"),a="download"in c,d=/Version\/[\d\.]+.*Safari/.test(navigator.userAgent),e=b.webkitRequestFileSystem,v=b.requestFileSystem||e||b.mozRequestFileSystem,n=function(a){(b.setImmediate||b.setTimeout)(function(){throw a;},0)},l=0,p=function(a){var c=function(){"string"===typeof a?(b.URL||b.webkitURL||b).revokeObjectURL(a):a.remove()};
|
|
b.chrome?c():setTimeout(c,500)},q=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"===typeof e)try{e.call(a,c||a)}catch(h){n(h)}}},h=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},B=function(n,m,k){k||(n=h(n));var g=this;k=n.type;var u=!1,w,B,y=function(){q(g,["writestart","progress","write","writeend"])},z=function(){if(B&&d&&"undefined"!==typeof FileReader){var a=
|
|
new FileReader;a.onloadend=function(){var b=a.result;B.location.href="data:attachment/file"+b.slice(b.search(/[,;]/));g.readyState=g.DONE;y()};a.readAsDataURL(n);g.readyState=g.INIT}else{if(u||!w)w=(b.URL||b.webkitURL||b).createObjectURL(n);B?B.location.href=w:void 0==b.open(w,"_blank")&&d&&(b.location.href=w);g.readyState=g.DONE;y();p(w)}},A=function(a){return function(){if(g.readyState!==g.DONE)return a.apply(this,arguments)}},R={create:!0,exclusive:!1},x;g.readyState=g.INIT;m||(m="download");if(a)w=
|
|
(b.URL||b.webkitURL||b).createObjectURL(n),c.href=w,c.download=m,setTimeout(function(){var a=new MouseEvent("click");c.dispatchEvent(a);y();p(w);g.readyState=g.DONE});else{b.chrome&&k&&"application/octet-stream"!==k&&(x=n.slice||n.webkitSlice,n=x.call(n,0,n.size,"application/octet-stream"),u=!0);e&&"download"!==m&&(m+=".download");if("application/octet-stream"===k||e)B=b;v?(l+=n.size,v(b.TEMPORARY,l,A(function(a){a.root.getDirectory("saved",R,A(function(a){var b=function(){a.getFile(m,R,A(function(a){a.createWriter(A(function(b){b.onwriteend=
|
|
function(b){B.location.href=a.toURL();g.readyState=g.DONE;q(g,"writeend",b);p(a)};b.onerror=function(){var a=b.error;a.code!==a.ABORT_ERR&&z()};["writestart","progress","write","abort"].forEach(function(a){b["on"+a]=g["on"+a]});b.write(n);g.abort=function(){b.abort();g.readyState=g.DONE};g.readyState=g.WRITING}),z)}),z)};a.getFile(m,{create:!1},A(function(a){a.remove();b()}),A(function(a){a.code===a.NOT_FOUND_ERR?b():z()}))}),z)}),z)):z()}},w=B.prototype;if("undefined"!==typeof navigator&&navigator.msSaveOrOpenBlob)return function(a,
|
|
b,c){c||(a=h(a));return navigator.msSaveOrOpenBlob(a,b||"download")};w.abort=function(){this.readyState=this.DONE;q(this,"abort")};w.readyState=w.INIT=0;w.WRITING=1;w.DONE=2;w.error=w.onwritestart=w.onprogress=w.onwrite=w.onabort=w.onerror=w.onwriteend=null;return function(a,b,c){return new B(a,b,c)}}}("undefined"!==typeof self&&self||"undefined"!==typeof window&&window||this.content);
|
|
"undefined"!==typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!==typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs});
|
|
var version="0.9.1",urlvars={},amtstack,wsstack=null,AllWsman="AMT_8021xCredentialContext AMT_8021XProfile AMT_ActiveFilterStatistics AMT_AgentPresenceCapabilities AMT_AgentPresenceInterfacePolicy AMT_AgentPresenceService AMT_AgentPresenceWatchdog AMT_AgentPresenceWatchdogAction AMT_AlarmClockService IPS_AlarmClockOccurrence AMT_AssetTable AMT_AssetTableService AMT_AuditLog AMT_AuditPolicyRule AMT_AuthorizationService AMT_BootCapabilities AMT_BootSettingData AMT_ComplexFilterEntryBase AMT_CRL AMT_CryptographicCapabilities AMT_EACCredentialContext AMT_EndpointAccessControlService AMT_EnvironmentDetectionInterfacePolicy AMT_EnvironmentDetectionSettingData AMT_EthernetPortSettings AMT_EventLogEntry AMT_EventManagerService AMT_EventSubscriber AMT_FilterEntryBase AMT_FilterInSystemDefensePolicy AMT_GeneralSettings AMT_GeneralSystemDefenseCapabilities AMT_Hdr8021Filter AMT_HeuristicPacketFilterInterfacePolicy AMT_HeuristicPacketFilterSettings AMT_HeuristicPacketFilterStatistics AMT_InterfacePolicy AMT_IPHeadersFilter AMT_KerberosSettingData AMT_ManagementPresenceRemoteSAP AMT_MessageLog AMT_MPSUsernamePassword AMT_NetworkFilter AMT_NetworkPortDefaultSystemDefensePolicy AMT_NetworkPortSystemDefenseCapabilities AMT_NetworkPortSystemDefensePolicy AMT_PCIDevice AMT_PETCapabilities AMT_PETFilterForTarget AMT_PETFilterSetting AMT_ProvisioningCertificateHash AMT_PublicKeyCertificate AMT_PublicKeyManagementCapabilities AMT_PublicKeyManagementService AMT_PublicPrivateKeyPair AMT_RedirectionService AMT_RemoteAccessCapabilities AMT_RemoteAccessCredentialContext AMT_RemoteAccessPolicyAppliesToMPS AMT_RemoteAccessPolicyRule AMT_RemoteAccessService AMT_SetupAndConfigurationService AMT_SNMPEventSubscriber AMT_StateTransitionCondition AMT_SystemDefensePolicy AMT_SystemDefensePolicyInService AMT_SystemDefenseService AMT_SystemPowerScheme AMT_ThirdPartyDataStorageAdministrationService AMT_ThirdPartyDataStorageService AMT_TimeSynchronizationService AMT_TLSCredentialContext AMT_TLSProtocolEndpoint AMT_TLSProtocolEndpointCollection AMT_TLSSettingData AMT_TrapTargetForService AMT_UserInitiatedConnectionService AMT_WebUIService AMT_WiFiPortConfigurationService CIM_AbstractIndicationSubscription CIM_Account CIM_AccountManagementCapabilities CIM_AccountManagementService CIM_AccountOnSystem CIM_AdminDomain CIM_AlertIndication CIM_AssignedIdentity CIM_AssociatedPowerManagementService CIM_AuthenticationService CIM_AuthorizationService CIM_Battery CIM_BIOSElement CIM_BIOSFeature CIM_BIOSFeatureBIOSElements CIM_BootConfigSetting CIM_BootService CIM_BootSettingData CIM_BootSourceSetting CIM_Capabilities CIM_Card CIM_Chassis CIM_Chip CIM_Collection CIM_Component CIM_ComputerSystem CIM_ComputerSystemPackage CIM_ConcreteComponent CIM_ConcreteDependency CIM_Controller CIM_CoolingDevice CIM_Credential CIM_CredentialContext CIM_CredentialManagementService CIM_Dependency CIM_DeviceSAPImplementation CIM_ElementCapabilities CIM_ElementConformsToProfile CIM_ElementLocation CIM_ElementSettingData CIM_ElementSoftwareIdentity CIM_ElementStatisticalData CIM_EnabledLogicalElement CIM_EnabledLogicalElementCapabilities CIM_EthernetPort CIM_Fan CIM_FilterCollection CIM_FilterCollectionSubscription CIM_HostedAccessPoint CIM_HostedDependency CIM_HostedService CIM_Identity CIM_IEEE8021xCapabilities CIM_IEEE8021xSettings CIM_Indication CIM_IndicationService CIM_InstalledSoftwareIdentity CIM_KVMRedirectionSAP CIM_LANEndpoint CIM_ListenerDestination CIM_ListenerDestinationWSManagement CIM_Location CIM_Log CIM_LogEntry CIM_LogicalDevice CIM_LogicalElement CIM_LogicalPort CIM_LogicalPortCapabilities CIM_LogManagesRecord CIM_ManagedCredential CIM_ManagedElement CIM_ManagedSystemElement CIM_MediaAccessDevice CIM_MemberOfCollection CIM_Memory CIM_MessageLog CIM_NetworkPort CIM_NetworkPortCapabilities CIM_NetworkPortConfigurationService CIM_OrderedComponent CIM_OwningCollectionElement CIM_OwningJobElement CIM_PCIController CIM_PhysicalComponent CIM_PhysicalElement CIM_PhysicalElementLocation CIM_PhysicalFrame CIM_PhysicalMemory CIM_PhysicalPackage CIM_Policy CIM_PolicyAction CIM_PolicyCondition CIM_PolicyInSystem CIM_PolicyRule CIM_PolicyRuleInSystem CIM_PolicySet CIM_PolicySetAppliesToElement CIM_PolicySetInSystem CIM_PowerManagementCapabilities CIM_PowerManagementService CIM_PowerSupply CIM_Privilege CIM_PrivilegeManagementCapabilities CIM_PrivilegeManagementService CIM_ProcessIndication CIM_Processor CIM_ProtocolEndpoint CIM_ProvidesServiceToElement CIM_Realizes CIM_RecordForLog CIM_RecordLog CIM_RedirectionService CIM_ReferencedProfile CIM_RegisteredProfile CIM_RemoteAccessAvailableToElement CIM_RemoteIdentity CIM_RemotePort CIM_RemoteServiceAccessPoint CIM_Role CIM_RoleBasedAuthorizationService CIM_RoleBasedManagementCapabilities CIM_RoleLimitedToTarget CIM_SAPAvailableForElement CIM_SecurityService CIM_Sensor CIM_Service CIM_ServiceAccessBySAP CIM_ServiceAccessPoint CIM_ServiceAffectsElement CIM_ServiceAvailableToElement CIM_ServiceSAPDependency CIM_ServiceServiceDependency CIM_SettingData CIM_SharedCredential CIM_SoftwareElement CIM_SoftwareFeature CIM_SoftwareFeatureSoftwareElements CIM_SoftwareIdentity CIM_StatisticalData CIM_StorageExtent CIM_System CIM_SystemBIOS CIM_SystemComponent CIM_SystemDevice CIM_SystemPackaging CIM_UseOfLog CIM_Watchdog CIM_WiFiEndpoint CIM_WiFiEndpointCapabilities CIM_WiFiEndpointSettings CIM_WiFiPort CIM_WiFiPortCapabilities IPS_AdminProvisioningRecord IPS_ClientProvisioningRecord IPS_HostBasedSetupService IPS_HostIPSettings IPS_HTTPProxyService IPS_HTTPProxyAccessPoint IPS_IderSessionUsingPort IPS_IPv6PortSettings IPS_KVMRedirectionSettingData IPS_KvmSessionUsingPort IPS_ManualProvisioningRecord IPS_OptInService IPS_PowerManagementService IPS_ProvisioningAuditRecord IPS_ProvisioningRecordLog IPS_RasSessionUsingPort IPS_ScreenConfigurationService IPS_ScreenSettingData IPS_SecIOService IPS_SessionUsingPort IPS_SolSessionUsingPort IPS_TLSProvisioningRecord IPS_WatchDogAction".split(" "),disconnecturl=
|
|
null,terminal,currentView=0,LoadingHtml="<div style=text-align:center;padding-top:20px>Cargando...<div>",amtversion=0,amtversionmin=0,amtFirstPull=0,amtwirelessif=-1,desktop,desktopsettings={encflags:1,showfocus:!1,showmouse:!0,showcad:!0,limitFrameRate:!1,noMouseRotate:!1,decimation:!1},currentMeshNode=null,webcompilerfeatures="AgentPresence Alarms AuditLog Certificates ComputerSelectorToolbar Desktop DesktopInband DesktopInbandFiles Desktop-Multi DesktopRotation Desktop-Settings DesktopType EventLog EventSubscriptions FileSaver HardwareInfo IDER IDERDebug IDERStats Inflate Look-MeshCentral Mode-MeshCentral2 NetworkSettings PowerControl PowerControl-Advanced RemoteAccess Storage SystemDefense Terminal Terminal-Enumation-All Terminal-FxEnumation-All TerminalSize VersionWarning Wireless WsmanBrowser".split(" "),
|
|
StatusStrs=["Desconectado","Conectando ...","Preparar...","Conectado"],t,t2,rsepass=null;
|
|
function startup(){var b=document.getElementsByTagName("input");for(t=0;t<b.length;t++)b[t].id&&(window[b[t].id]=b[t]);urlvars=getUrlVars();for(var c in AllWsman)b=document.createElement("option"),b.text=AllWsman[c],b.id="WSB-"+AllWsman[c],Q(22).add(b);desktop=CreateAmtRedirect(CreateAmtRemoteDesktop("Desk",Q(8)));desktop.onStateChanged=onDesktopStateChange;QE("c10",!0);try{t=localStorage.getItem("desktopsettings")}catch(a){}t&&(desktopsettings=JSON.parse(t));
|
|
applyDesktopSettings();terminal=CreateAmtRedirect(CreateAmtRemoteTerminal("Term"));terminal.onStateChanged=onTerminalStateChange;Q(33).value=terminalEmulations[terminal.m.terminalEmulation];Q(30).value="\r\n"==terminal.m.lineFeed?"CR + LF":"LF";QE("c4",!0);Q("p13").addEventListener("dragover",haltEvent,!1);Q("p13").addEventListener("dragleave",haltEvent,!1);Q("p13").addEventListener("drop",terminal_FileSelectHandler,!1);document.addEventListener("dragover",
|
|
haltEvent,!1);document.addEventListener("dragleave",haltEvent,!1);document.addEventListener("drop",documentFileSelectHandler,!1);Q("p16").addEventListener("dragover",haltEvent,!1);Q("p16").addEventListener("dragleave",haltEvent,!1);Q("p16").addEventListener("drop",cert_FileSelectHandler,!1);Q("Desk").toBlob||QV("c6",!1);document.onkeyup=handleKeyUp;document.onkeydown=handleKeyDown;document.onkeypress=handleKeyPress;window.onresize=center;center();Q("p24filetable").addEventListener("drop",
|
|
p24fileDragDrop,!1);Q("p24filetable").addEventListener("dragover",p24fileDragOver,!1);Q("p24filetable").addEventListener("dragleave",p24fileDragLeave,!1)}
|
|
function documentFileSelectHandler(b){haltEvent(b);for(var c=!0,a=0;a<b.dataTransfer.files.length;a++)0==b.dataTransfer.files[a].name.toLowerCase().endsWith(".img")&&0==b.dataTransfer.files[a].name.toLowerCase().endsWith(".iso")&&(c=!1);1==c&&null!=b.dataTransfer&&0<currentView&&100>currentView&&(1==b.dataTransfer.files.length||2==b.dataTransfer.files.length)?(a=c=null,b.dataTransfer.files[0].name.toLowerCase().endsWith(".iso")&&(a=b.dataTransfer.files[0]),b.dataTransfer.files[0].name.toLowerCase().endsWith(".img")&&
|
|
(c=b.dataTransfer.files[0]),2==b.dataTransfer.files.length&&(b.dataTransfer.files[1].name.toLowerCase().endsWith(".iso")&&(a=b.dataTransfer.files[1]),b.dataTransfer.files[1].name.toLowerCase().endsWith(".img")&&(c=b.dataTransfer.files[1])),null==c&&null==a||iderStart3(c,a,1)):null!=b.dataTransfer&&1==b.dataTransfer.files.length&&(c=b.dataTransfer.files[0].name.toLowerCase(),21==currentView&&UploadToStorage(b.dataTransfer.files[0],c))}
|
|
function connectButtonfunction(){wsstack&&0!=wsstack.socketState?disconnect():meshcentral2credCallback()}function connectButtonfunctionEx(){currentMeshNode=parent.getCurrentNode();connect(currentMeshNode._id,16992,null,null,0);Q("xconnectbutton1").value="Desconectar"}function getCurrentMeshNode(){return currentMeshNode}function setConnectionState(b){QE("xconnectbutton1",b);0==b&&disconnect()}function setFrameHeight(b){}function setAuthCallback(b){meshcentral2credCallback=b}
|
|
function setUrlVar(b,c){urlvars||(urlvars={});urlvars[b]=c}function cleanup(){c3.value="Iniciar captura";terminal.m.capture&&delete terminal.m.capture;terminal.Stop();desktop.disconnectCode=0;desktop.Stop()}
|
|
function handleKeyUp(b){if(!xxdialogMode){if(14==currentView&&3==desktop.State){if(Q(48).checked)return;if(null!=webRtcDesktop&&null!=webRtcDesktop.softdesktop)webRtcDesktop.softdesktop.m.handleKeyUp(b),desktop.m.sendKeepAlive();else return desktop.m.handleKeyUp(b)}if(13==currentView&&3==terminal.State)return terminal.m.TermHandleKeyUp(b)}}
|
|
function handleKeyDown(b){if(!xxdialogMode){if(14==currentView&&3==desktop.State){if(Q(48).checked)return;if(null!=webRtcDesktop&&null!=webRtcDesktop.softdesktop)webRtcDesktop.softdesktop.m.handleKeyDown(b),desktop.m.sendKeepAlive();else return desktop.m.handleKeyDown(b)}if(13==currentView&&3==terminal.State)return terminal.m.TermHandleKeyDown(b)}}
|
|
function handleKeyPress(b){if(!xxdialogMode){if(14==currentView&&3==desktop.State){if(Q(48).checked)return;if(null!=webRtcDesktop&&null!=webRtcDesktop.softdesktop)webRtcDesktop.softdesktop.m.handleKeys(b),desktop.m.sendKeepAlive();else return desktop.m.handleKeys(b)}if(13==currentView&&3==terminal.State)return terminal.m.TermHandleKeys(b)}}var connectFunc=null,connectFuncTag=null;
|
|
function connect(b,c,a,d,e,v,n){go(0);fullscreenonly=!1;connectFunc=v;connectFuncTag=n;1==urlvars.kvm&&go(14);if(1==urlvars.kvmfull||1==urlvars.kvmonly)go(14),deskToggleFull(1==urlvars.kvmonly);1==urlvars.sol&&go(13);wsstack=WsmanStackCreateService(b,c,a,d,e);amtstack=AmtStackCreateService(wsstack);amtstack.onProcessChanged=onProcessChanged;for(b=2;25>b;b++)QV("go"+b,!1);QV("go8",!0);QV("go13",!1);QE("TermWD",!1);QV("go12",!0);QH(28,"");QH(39,"");amtversion=amtversionmin=amtFirstPull=
|
|
0;amtsysstate=amtdeltatime=amtlogicalelements=HardwareInventory=void 0;amtPowerBootCapabilities=null;xxAccountFetch=999;QH(15,LoadingHtml);QH(19,LoadingHtml);amtwirelessif=-1;xxWireless=void 0;QH(20,"");QH(16,LoadingHtml);xxAccountAdminName=null;xxAccountRealmInfo={};QH(21,LoadingHtml);eventmessages=null;QH(17,"");QH(18,LoadingHtml);auditLog=null;QH(49,"");
|
|
QH(50,LoadingHtml);xxCertificates=null;QH(51,LoadingHtml);QH(24,"");iderStop();xxPolicies=xxMPSUserPass=xxRemoteAccessCredentiaLinks=xxUserInitiatedCira=xxCiraServers=xxEnvironementDetection=xxRemoteAccess=null;QH(52,LoadingHtml);QH(54,LoadingHtml);xxSystemDefense=null;xxSystemDefenceLinkedPolicy={};xxUpdatingDefenseStats=!1;xxFilterStatistics=[{},{}];xxFilterStatisticsTimer=null;xxFilterStatisticsTimerActive=
|
|
!1;QH(53,LoadingHtml);QE(43,!1);QE("DeskWD",!1);QE("deskkeys",!1);urlvars.kvmviewonly&&(QE(48,!1),Q(48).checked=!0);QE(44,!1);desktopScreenInfo=null;amtstack.BatchEnum("",["CIM_SoftwareIdentity","*AMT_SetupAndConfigurationService"],processSystemVersion);QV(11,!1)}
|
|
function disconnect(){null!=desktopPollTimer&&(clearInterval(desktopPollTimer),desktopPollTimer=null);fullscreen&&deskToggleFull();iderStop();StopDefenseStatsTimer();dialogclose(0);amtstack&&(amtstack.onProcessChanged=null,amtstack.CancelAllQueries(999),amtstack=null);cleanup();wsstack=null;delete amtstack;onProcessChanged(0,1);go(101);Q("xconnectbutton1").value="Conectar";QH(5,"Desconectado");go(100)}
|
|
function onProcessChanged(b,c){QS(3).width=100*b/c+"%";0==b&&refreshButtons(!0);0==b&&amtstack&&(0<amtversion&&0==(amtFirstPull&64)?(amtFirstPull|=64,PullPowerPolicy(),subscriptionsFilters=null,PullEventSubscriptions(),PullWatchdog(),5<amtversion&&(PullCertificates(),PullRemoteAccess())):0==(amtFirstPull&1)?PullHardware():0==(amtFirstPull&16)?PullEventLog():0==(amtFirstPull&32)&&PullAuditLog())}
|
|
function checkAmtVersion(b){var c=b.split(".");b=parseInt(c[0]);var a=parseInt(c[1]),c=parseInt(c[2]),c=1E3*a+c,d=0;5>=b||12<=b?d=1:6==b&&2061<=c?d=1:7==b&&1091<=c?d=1:8==b&&1071<=c?d=1:9==b?5>a&&1041<=c?d=1:5061<=c&&(d=1):10==b&&55<=c?d=1:11==b&&(5>a&&25<=c?d=1:6027<=c&&(d=1));return 0==d}
|
|
function processSystemVersion(b,c,a,d){if(200==d||400==d){if(200==d){amtlogicalelements=[];null!=a&&null!=a.CIM_SoftwareIdentity&&null!=a.CIM_SoftwareIdentity.responses&&(amtlogicalelements=a.CIM_SoftwareIdentity.responses,null!=a.AMT_SetupAndConfigurationService&&null!=a.AMT_SetupAndConfigurationService.response&&amtlogicalelements.push(a.AMT_SetupAndConfigurationService.response));if(0==amtlogicalelements.length){console.error("ERROR: Could not get Intel AMT version.");disconnect();return}c=getInstance(amtlogicalelements,
|
|
"AMT").VersionString}else if(c=b.wsman.comm.amtVersion,!c){errcheck(400,b);return}amtversion=parseInt(c.split(".")[0]);amtversionmin=parseInt(c.split(".")[1]);QV(11,checkAmtVersion(c));PullSystemStatus();updateSystemStatus();1!=urlvars.kvmonly&&0==fullscreenonly&&(PullUserInfo(),8<=amtversion&&PullAlarms());connectFunc&&(connectFunc(connectFuncTag),connectFuncTag=connectFunc=null);1==urlvars.kvm&&(go(14),connectDesktop());if(1==urlvars.kvmfull||1==urlvars.kvmonly)go(14),connectDesktop();
|
|
1==urlvars.sol&&(go(13),connectTerminal())}else errcheck(d,b)}var refreshButtonsState=!0;function refreshButtons(b){if(refreshButtonsState!=b){refreshButtonsState=b;for(var c=0,a=document.getElementsByTagName("input");c<a.length;c++)"refreshbtn"==a[c].name&&(a[c].disabled=!b)}}
|
|
function PullPowerState(){amtstack&&0==amtstack.GetPendingActions()&&amtsysstate&&amtsysstate.CIM_ServiceAvailableToElement&&amtstack.Enum("CIM_ServiceAvailableToElement",function(b,c,a,d){200==d&&(amtsysstate.CIM_ServiceAvailableToElement.responses=a,9<amtversion&&null!=amtsysstate.CIM_ServiceAvailableToElement&&null!=amtsysstate.CIM_ServiceAvailableToElement.responses&&0<amtsysstate.CIM_ServiceAvailableToElement.responses.length&&2==amtsysstate.CIM_ServiceAvailableToElement.responses[0].PowerState?
|
|
amtstack.Get("IPS_PowerManagementService",function(a,b,c,d){200==d&&(amtsysstate.IPS_PowerManagementService.response=c.Body,updateSystemStatus())}):updateSystemStatus())})}
|
|
function PullSystemStatus(b){refreshButtons(!1);amtstack.AMT_TimeSynchronizationService_GetLowAccuracyTimeSynch(processSystemTime);var c=["CIM_ServiceAvailableToElement","*AMT_GeneralSettings","AMT_EthernetPortSettings","*AMT_RedirectionService","CIM_ElementSettingData"];5<amtversion&&c.push("IPS_IPv6PortSettings","*CIM_KVMRedirectionSAP","*IPS_OptInService","*IPS_KVMRedirectionSettingData");9<amtversion&&c.push("*IPS_ScreenConfigurationService","*IPS_PowerManagementService");15<amtversion&&1==amtstack.wsman.comm.xtls&&
|
|
c.push("*CIM_BootService");amtstack.BatchEnum("",c,processSystemStatus,!0);1==b&&PullWireless()}function processSystemTime(b,c,a,d){errcheck(d,b)||200!=d||(b=new Date,c=new Date,b.setTime(1E3*a.Body.Ta0),amtdeltatime=b-c,updateSystemStatus())}var amtdeltatime,amtsysstate,amtlogicalelements,amtfeatures={};
|
|
function processSystemStatus(b,c,a,d){if(void 0==a.IPS_ScreenConfigurationService||400==a.IPS_ScreenConfigurationService.status)a.IPS_ScreenConfigurationService=null;if(void 0==a.IPS_KVMRedirectionSettingData||400==a.IPS_KVMRedirectionSettingData.status)a.IPS_KVMRedirectionSettingData=null;if(void 0==a.CIM_KVMRedirectionSAP||400==a.CIM_KVMRedirectionSAP.status)a.CIM_KVMRedirectionSAP=null;if(void 0==a.IPS_OptInService||400==a.IPS_OptInService.status)a.IPS_OptInService=null;void 0!=a.AMT_RedirectionService&&
|
|
200==a.AMT_RedirectionService.status&&QV("go13",!0);d=0;for(var e in a)null!=a[e]&&a[e].status>d&&(d=a[e].status);400!=d&&errcheck(d,b)||(amtsysstate=a,applyDesktopSettings(),updateSystemStatus())}function syncClock(){xxdialogMode||setDialogMode(11,"Sincronizar reloj",3,syncClockEx,"\u00bfSincronizar el reloj Intel AMT con esta computadora?")}
|
|
function syncClockEx(){amtstack.AMT_TimeSynchronizationService_GetLowAccuracyTimeSynch(function(b,c,a,d){200!=d?messagebox("","Error al establecer la hora, estado ="+d):0!=a.Body.ReturnValue?messagebox("","Error al establecer la hora, error: "+a.Body.ReturnValueStr):(b=Math.round((new Date).getTime()/1E3),amtstack.AMT_TimeSynchronizationService_SetHighAccuracyTimeSynch(a.Body.Ta0,b,b,function(){amtstack.AMT_TimeSynchronizationService_GetLowAccuracyTimeSynch(processSystemTime)}))})}
|
|
var DMTFPowerStates=";;Encendido;Sue\u00f1o ligero;Sue\u00f1o profundo;Ciclo de encendido (apagado suave);Apagado: duro;Hibernar (apagado suave);Suave apagado;Ciclo de encendido (apagado);Reinicio del bus principal;Interrupci\u00f3n de diagn\u00f3stico (NMI);No aplica;Apagado: suave y elegante;Apagado: duro y elegante;Reinicio del bus maestro agraciado;Ciclo de encendido (apagado - suave y elegante);Ciclo de encendido (Apagado - Gracioso duro);Interrupci\u00f3n de diagn\u00f3stico (INIT)".split(";");
|
|
function updateSystemStatus(){if(amtsysstate&&!(99<currentView)){var b=0,c,a,d=TableStart(),e="",v=amtsysstate.AMT_GeneralSettings.response,n="<i>Desconocido</i>";null!=amtsysstate.CIM_ServiceAvailableToElement&&null!=amtsysstate.CIM_ServiceAvailableToElement.responses&&0<amtsysstate.CIM_ServiceAvailableToElement.responses.length&&(n=DMTFPowerStates[amtsysstate.CIM_ServiceAvailableToElement.responses[0].PowerState],9<amtversion&&"Encendido"==n&&amtsysstate.IPS_PowerManagementService&&amtsysstate.IPS_PowerManagementService.response&&
|
|
3==amtsysstate.IPS_PowerManagementService.response.OSPowerSavingState&&(n="Standby (Connected)"),QH(28,n),QH(39,n));v.PowerSource&&(n+=[", Conectado",", En la bater\u00eda"][v.PowerSource]);d+=TableEntry("Poder",addLink(n,"showPowerActionDlg()"));c=v.HostName;a=v.DomainName;null!=a&&0<a.length&&(c+="."+a);c=0==c.length?"<i>Ninguna</i>":EscapeHtml(c);d+=TableEntry("Nombre y dominio",addLinkConditional(c,"showEditNameDlg()",xxAccountAdminName));amtstack.amtauth&&amtstack.amtauth.uuidStr?
|
|
d+=TableEntry("ID del sistema",amtstack.amtauth.uuidStr):HardwareInventory&&(d+=TableEntry("ID del sistema",guidToStr(HardwareInventory.CIM_ComputerSystemPackage.response.PlatformGUID.toLowerCase())));if(amtlogicalelements){var n="",l=getItem(amtlogicalelements,"CreationClassName","AMT_SetupAndConfigurationService");2==l.ProvisioningState&&5<amtversion&&(n=" activado en modo de control de administrador (ACM)",4==l.ProvisioningMode&&(n=" activado en modo de control de cliente (CCM)",b=9));d+=TableEntry("Intel® ME",
|
|
"v"+getItem(amtlogicalelements,"InstanceID","AMT").VersionString+n)}null!=amtsysstate.CIM_ServiceAvailableToElement&&null!=amtsysstate.CIM_ServiceAvailableToElement.responses&&0<amtsysstate.CIM_ServiceAvailableToElement.responses.length&&(QV(27,2!=amtsysstate.CIM_ServiceAvailableToElement.responses[0].PowerState),QV(38,2!=amtsysstate.CIM_ServiceAvailableToElement.responses[0].PowerState));if(200==amtsysstate.AMT_RedirectionService.status){var p=amtfeatures[0]=1==amtsysstate.AMT_RedirectionService.response.ListenerEnabled,
|
|
q=amtfeatures[1]=0!=(amtsysstate.AMT_RedirectionService.response.EnabledState&2),n=amtfeatures[2]=0!=(amtsysstate.AMT_RedirectionService.response.EnabledState&1),h=amtfeatures[3]=void 0;5<amtversion&&null!=amtsysstate.CIM_KVMRedirectionSAP&&(QV("go14",!0),h=amtfeatures[3]=6==amtsysstate.CIM_KVMRedirectionSAP.response.EnabledState&&2==amtsysstate.CIM_KVMRedirectionSAP.response.RequestedState||2==amtsysstate.CIM_KVMRedirectionSAP.response.EnabledState||6==amtsysstate.CIM_KVMRedirectionSAP.response.EnabledState);
|
|
p&&(e+=", Puerto de redireccionamiento");q&&(e+=", Serie sobre LAN");n&&(e+=", IDE-Redirect");h&&(e+=", KVM");""==e&&(e=" Ninguna");d+=TableEntry("Caracter\u00edsticas activas",addLinkConditional(e.substring(2),"showFeaturesDlg()",xxAccountAdminName))}null!=amtsysstate.IPS_KVMRedirectionSettingData&&amtsysstate.IPS_KVMRedirectionSettingData.response&&(n=amtsysstate.IPS_KVMRedirectionSettingData.response,e="Pantalla principal",7<amtversion&&void 0!==n.DefaultScreen&&255>n.DefaultScreen&&(e=["Pantalla principal",
|
|
"Pantalla secundaria","Tercera pantalla"][n.DefaultScreen]),e='<span title="'+format("La pantalla remota predeterminada es {0}",e.toLowerCase())+'">'+e+"</span>",1==n.Is5900PortEnabled&&(e+=", Puerto 5900 habilitado"),1==n.OptInPolicy&&(e+=","+n.OptInPolicyTimeout+" "+(0<n.OptInPolicyTimeout?"segundos de suscripci\u00f3n":"segundo opt-in")),e+=","+n.SessionTimeout+" minuto"+(0<n.SessionTimeout?"s":"")+" hora de t\u00e9rmino de la sesi\u00f3n",9<amtversion&&null!=amtsysstate.IPS_ScreenConfigurationService?
|
|
((n=0!=(amtsysstate.IPS_ScreenConfigurationService.response.EnabledState&1))&&(e+=", Blanking permitido"),QV(45,n),Q(46).checked=!1):QV(45,!1),d+=TableEntry("Escritorio remoto",addLinkConditional(e,"showDesktopSettingsDlg()",xxAccountAdminName)));QV(25,!p||!q);QV(26,xxAccountAdminName);QV(36,!p||!h);QV(37,xxAccountAdminName);5<amtversion&&null!=amtsysstate&&null!=amtsysstate.IPS_OptInService&&void 0!=amtsysstate.IPS_OptInService.response&&
|
|
(e="Estado desconocido",p=amtsysstate.IPS_OptInService.response.OptInRequired,0==p&&(e="No requerido"),1==p&&(e="Requerido solo para KVM"),4294967295==p&&(e="Siempre requerido"),1==amtsysstate.IPS_OptInService.response.CanModifyOptInPolicy&&(e=addLinkConditional(e,"showConsentDlg()",xxAccountAdminName)),d+=TableEntry("Consentimiento del usuario",e));1==amtstack.wsman.comm.xtls&&null!=amtsysstate.CIM_BootService&&null!=amtsysstate.CIM_BootService.response.EnabledState&&(e={0:"Desconocido",1:"Otro",
|
|
2:"Habilitado",3:"Discapacitado",4:"Apagando",5:"No aplica",6:"Habilitado pero sin conexi\u00f3n",7:"En prueba",8:"Diferido",9:"Quietud",10:"Comenzando",32768:"OCR Disabled",32769:"OCR Enabled",32770:"OCR Disabled, RPE Enabled",32771:"RPE & OCR Enabled"},15<amtversion&&(e[32768]="OCR & RPE Disabled",e[32769]="OCR Enabled, RPE Disabled"),n=e[amtsysstate.CIM_BootService.response.EnabledState]?e[amtsysstate.CIM_BootService.response.EnabledState]:"Desconocido",d+=TableEntry("Boot Features",addLinkConditional(n,
|
|
"showEnableBootServiceDlg()",xxAccountAdminName)));if(null!=AmtSystemPowerSchemes)for(var e=amtsysstate.CIM_ElementSettingData.responses,B=0;B<e.length;B++)if(e[B].SettingData&&1==e[B].IsCurrent&&"http://intel.com/wbem/wscim/1/amt-schema/1/AMT_SystemPowerScheme"==e[B].SettingData.ReferenceParameters.ResourceURI)for(p=e[B].SettingData.ReferenceParameters.SelectorSet.Selector[1].Value,q=0;q<AmtSystemPowerSchemes.length;q++)AmtSystemPowerSchemes[q].SchemeGUID==p&&(d+=TableEntry("Pol\u00edtica de energ\u00eda",
|
|
addLinkConditional(AmtSystemPowerSchemes[q].Description.split(":")[1],'showPowerPolicyDlg("'+p+'")',xxAccountAdminName)));amtdeltatime&&(d+=TableEntry("Fecha y hora",addLinkConditional((new Date((new Date).getTime()+amtdeltatime)).toLocaleString(),"syncClock()",xxAccountAdminName)));e=AddRefreshButton("PullSystemStatus()")+" ";e+=AddButton("Acciones de poder ...","showPowerActionDlg()")+" ";e+=AddButton("Guardar Estado...","saveEntireAmtState()")+" ";d+=TableEnd(e);amtstack.amtauth&&(d+="<div style=position:absolute;top:10px;right:20px;cursor:pointer onclick=showAuthCsme()><img src=authcsme.png width=100 height=100 /></div>");
|
|
QH(15,d);d="<table class=log1 cellpadding=0 cellspacing=0 style=width:100%;border-radius:8px>"+TableEnd("<div> "+AddRefreshButton("PullSystemStatus(1)")+" Cambiar la configuraci\u00f3n de red puede hacer que esta p\u00e1gina no est\u00e9 disponible.");d=d+"<br><h2>Configuraci\u00f3n general</h2>"+TableStart();e="";"<i>Ninguna</i>"!=c&&(1==v.SharedFQDN&&(e=", compartido con el sistema operativo"),0==v.SharedFQDN&&(e=", diferente del sistema operativo"));d+=TableEntry("Nombre y dominio",
|
|
addLinkConditional(c+e,"showEditNameDlg(1)",xxAccountAdminName));c="Discapacitado";1==v.DDNSUpdateEnabled?c="Habilitado cada"+v.DDNSPeriodicUpdateInterval+" minutos, TTL es"+v.DDNSTTL+" minutos":1==v.DDNSUpdateByDHCPServerEnabled&&(c="Actualizaci\u00f3n por servidor DHCP");d+=TableEntry("DNS Din\u00e1mico",addLinkConditional(c,"showEditDnsDlg()",xxAccountAdminName));d+=TableEnd();for(a in amtsysstate.AMT_EthernetPortSettings.responses){c=amtsysstate.AMT_EthernetPortSettings.responses[a];if(c.WLANLinkProtectionLevel||
|
|
1==a)amtwirelessif=a;if(0!=a||amtwirelessif==a||"00-00-00-00-00-00"!=c.MACAddress){0==a&&b++;d+="<br><h2>"+(amtwirelessif==a?"Interfaz inal\u00e1mbrica":"Interfaz cableada")+"</h2>";d+=TableStart();d+=TableEntry("Estado de enlace",1==c.LinkIsUp?"Enlace est\u00e1 arriba":"El enlace est\u00e1 ca\u00eddo");if(c.LinkPolicy){c.LinkPolicy=MakeToArray(c.LinkPolicy);e=[];for(B in c.LinkPolicy)1==c.LinkPolicy[B]&&e.push("S0 / AC"),14==c.LinkPolicy[B]&&e.push("Sx / AC"),16==c.LinkPolicy[B]&&e.push("S0 / DC"),
|
|
224==c.LinkPolicy[B]&&e.push("Sx / DC");0==e.length&&e.push("");d+=TableEntry("Pol\u00edtica de enlaces",addLinkConditional(0==e.length?"No disponible":"Disponible en: "+e.join(", "),"showLinkPolicyDlg("+a+")",xxAccountAdminName))}"00-00-00-00-00-00"!=c.MACAddress&&(d+=TableEntry("Direcci\u00f3n MAC",c.MACAddress));amtwirelessif==a&&xxWireless&&xxWireless.CIM_WiFiPortCapabilities.response&&(d+=TableEntry("Estado",addLinkConditional(xxWifiState[xxWireless.CIM_WiFiPort.response.EnabledState],"showWifiStateDlg()",
|
|
xxAccountAdminName)),s=xxWireless.CIM_WiFiEndpoint.response.LANID,d+=TableEntry("Radio State",xxRadioState[xxWireless.CIM_WiFiEndpoint.response.EnabledState]+", SSID: "+(s?s:"<i>Ninguna</i>")),xxWireless.AMT_WiFiPortConfigurationService&&xxWireless.AMT_WiFiPortConfigurationService.response&&"number"==typeof xxWireless.AMT_WiFiPortConfigurationService.response.localProfileSynchronizationEnabled&&(d+=TableEntry("Local WIFI Profile Sync",addLinkConditional(1==xxWireless.AMT_WiFiPortConfigurationService.response.localProfileSynchronizationEnabled?
|
|
"Habilitado":"Discapacitado","showWifiSyncDlg("+a+")",xxAccountAdminName))),d=null!=xxWireless.AMT_BootCapabilities.response.UEFIWiFiCoExistenceAndProfileShare&&1==xxWireless.AMT_BootCapabilities.response.UEFIWiFiCoExistenceAndProfileShare&&null!=xxWireless.AMT_WiFiPortConfigurationService.response.UEFIWiFiProfileShareEnabled?d+TableEntry("UEFI WiFi CoEx Profile sharing",addLinkConditional(1==xxWireless.AMT_WiFiPortConfigurationService.response.UEFIWiFiProfileShareEnabled?"Habilitado":"Discapacitado",
|
|
"showUefiWifiCoExDlg()",xxAccountAdminName)):d+TableEntry("UEFI WiFi CoEx Profile sharing","Unavailable"));amtwirelessif!=a&&(d+=TableEntry("Responder al ping",addLinkConditional(["Discapacitado","Respuesta ICMP","Respuesta RMCP","Respuesta ICMP y RMCP"][v.PingResponseEnabled+(v.RmcpPingResponseEnabled<<1)],"showPingActionDlg()",xxAccountAdminName)),e=1==c.DHCPEnabled?"Autom\u00e1tico usando el servidor DHCP":"Direcci\u00f3n IP est\u00e1tica",1==c.IpSyncEnabled&&(e+=", IP sync with OS"),d+=TableEntry("Estado IPv4",
|
|
addLinkConditional(e,"showIPSetupDlg()",xxAccountAdminName)));d+=TableEntry("Direcci\u00f3n IPv4",isIpAddress(c.IPAddress,"Ninguna"));isIpAddress(c.DefaultGateway)&&(d+=TableEntry("Puerta de enlace IPv4 / M\u00e1scara",c.DefaultGateway+" / "+isIpAddress(c.SubnetMask,"Ninguna")));e=c.PrimaryDNS;isIpAddress(e)&&(c.SecondaryDNS&&(e+=" / "+c.SecondaryDNS),d+=TableEntry("Servidor de nombres de dominio IPv4",e));if(200==amtsysstate.IPS_IPv6PortSettings.status&&5<amtversion){c=amtsysstate.IPS_IPv6PortSettings.responses[a];
|
|
for(var p="Discapacitado",w,e=amtsysstate.CIM_ElementSettingData.responses,B=0;B<e.length;B++)e[B].SettingData&&e[B].SettingData.ReferenceParameters.SelectorSet.Selector.Value=="Intel(r) IPS IPv6 Settings "+a&&(w=1==e[B].IsCurrent);1==w&&(p=(e=isIpAddress(c.IPv6Address)||isIpAddress(c.DefaultRouter)||isIpAddress(c.PrimaryDNS)||isIpAddress(c.SecondaryDNS))?"Direcciones habilitadas, autom\u00e1ticas y manuales":"Habilitado, direcciones autom\u00e1ticas");d+=TableEntry("Estado IPv6",addLinkConditional(p,
|
|
"showIPv6StateDlg("+a+","+w+")",xxAccountAdminName));if(1==w){if(c.CurrentAddressInfo&&0<c.CurrentAddressInfo.length){c.CurrentAddressInfo=MakeToArray(c.CurrentAddressInfo);ipv6addr="";for(B=0;B<c.CurrentAddressInfo.length;B++)0<ipv6addr.length&&(ipv6addr+=","),ipv6addr+=c.CurrentAddressInfo[B].split(",")[0];d+=TableEntry("Direcci\u00f3n IPv6",addLink(ipv6addr,"showIPv6AddrDlg("+a+',"'+c.CurrentAddressInfo+'")'))}else d+=TableEntry("Direcci\u00f3n IPv6","Ninguna");isIpAddress(c.CurrentDefaultRouter)&&
|
|
(d+=TableEntry("Enrutador predeterminado IPv6",c.CurrentDefaultRouter));isIpAddress(c.CurrentPrimaryDNS)&&(e=c.CurrentPrimaryDNS,isIpAddress(c.CurrentSecondaryDNS)&&(e+=" / "+c.CurrentSecondaryDNS),d+=TableEntry("Servidor de nombres de dominio IPv6",e))}}d+=TableEnd()}}1!=urlvars.kvmonly&&0==fullscreenonly&&(-1!=amtwirelessif&&0==(amtFirstPull&2)&&PullWireless(),QH(19,d),1==b&&0==(amtFirstPull&4)&&PullSystemDefense(),0==(amtFirstPull&8)&&(11<amtversion||11==amtversion&&
|
|
5<amtversionmin)&&PullStorage());0==currentView&&go(1,1)}}function isIpAddress(b,c){return b&&null!=b&&0<b.length&&"::"!=b&&"::0"!=b?b:c}
|
|
function showLinkPolicyDlg(b){if(!xxdialogMode){var c=amtsysstate.AMT_EthernetPortSettings.responses[b],a;a=""+("<label><input type=checkbox id=d11p1 value=1 "+(0<=c.LinkPolicy.indexOf(1)?"checked":"")+">Available in S0/AC - Powered on & plugged in</label><br>");a+="<label><input type=checkbox id=d11p2 value=14 "+(0<=c.LinkPolicy.indexOf(14)?"checked":"")+">Available in Sx/AC - Sleeping & plugged in</label><br>";a+="<label><input type=checkbox id=d11p3 value=16 "+(0<=c.LinkPolicy.indexOf(16)?"checked":
|
|
"")+">Available in S0/DC - Powered on & on battery</label><br>";a+="<label><input type=checkbox id=d11p4 value=224 "+(0<=c.LinkPolicy.indexOf(224)?"checked":"")+">Available in Sx/DC - Sleeping & on battery</label><br>";setDialogMode(11,"Pol\u00edtica de enlaces",3,showLinkPolicyDlgEx,a,b)}}
|
|
function showLinkPolicyDlgEx(b,c){var a=Clone(amtsysstate.AMT_EthernetPortSettings.responses[c]);a.DHCPEnabled&&(delete a.IPAddress,delete a.SubnetMask,delete a.DefaultGateway,delete a.PrimaryDNS,delete a.SecondaryDNS);a.LinkPolicy=[];Q("d11p1").checked&&a.LinkPolicy.push(1);Q("d11p2").checked&&a.LinkPolicy.push(14);Q("d11p3").checked&&a.LinkPolicy.push(16);Q("d11p4").checked&&a.LinkPolicy.push(224);amtstack.Put("AMT_EthernetPortSettings",a,showLinkPolicyDlgExDone,0,1,a)}
|
|
function showLinkPolicyDlgExDone(b,c,a,d){200==d?(amtsysstate=void 0,PullSystemStatus()):messagebox("Pol\u00edtica de enlaces",format("No se puede establecer una nueva pol\u00edtica de enlaces, error {0}",d))}
|
|
function showAuthCsme(){if(!xxdialogMode){var b;b="<div style=margin-top:8px>Intel® AMT supports authentic CSME feature, however MeshCommander cannot verify the authenticity yet.</div><hr style=margin-top:8px;margin-bottom:8px;height:2px;border-width:0;color:gray;background-color:gray />"+addHtmlValue("FW Version",amtstack.amtauth.FWVersion);b+=addHtmlValue("FQDN",amtstack.amtauth.FQDN?amtstack.amtauth.FQDN:"<i>Ninguna</i>");b+="<hr style=margin-top:8px;margin-bottom:8px;height:2px;border-width:0;color:gray;background-color:gray /><div style=max-height:200px;overflow-y:auto><table>";
|
|
for(var c in amtstack.amtauth.Certificates){var a=amtstack.amtauth.Certificates[c];b+="<tr><td style=width:32px;vertical-align:top><img src=images-commander/cert1.png height=32 width=32 />";b+="<td style=padding-bottom:6px><b>"+EscapeHtml(a.subject.getField("CN").value)+(!0===a.xTrusted?", <span style=color:#080>Trusted</span>":"")+"</b><br />";a.subject.getField("OU")&&(b+=EscapeHtml(a.subject.getField("OU").value)+"<br />");b+=amtstack.amtauth.CertificatesDer[c].length+" bytes,<a style=cursor:pointer;color:blue onclick=downloadAuthCert("+
|
|
c+")>Descargar</a>";a.xCrl&&(b+="<br />CRL "+a.xCrl.length+" bytes,<a style=cursor:pointer;color:blue onclick=downloadCertCrl("+c+")>Descargar</a>")}setDialogMode(11,"Authentic CSME",1,null,b+"</table><div>")}}function downloadCertCrl(b){b=parseInt(b);saveAs(data2blob(amtstack.amtauth.Certificates[b].xCrl),amtstack.amtauth.Certificates[b].subject.getField("CN").value+".crl")}
|
|
function downloadAuthCert(b){b=parseInt(b);saveAs(data2blob(amtstack.amtauth.CertificatesDer[b]),amtstack.amtauth.Certificates[b].subject.getField("CN").value+".cer")}var IntelAmtEntireState,IntelAmtEntireStateCalls;
|
|
function saveEntireAmtState(){if(!xxdialogMode){var b="",c=new Date;amtsysstate&&(b="-"+amtsysstate.AMT_GeneralSettings.response.HostName);b+="-"+c.getFullYear()+"-"+("0"+(c.getMonth()+1)).slice(-2)+"-"+("0"+c.getDate()).slice(-2)+"-"+("0"+c.getHours()).slice(-2)+"-"+("0"+c.getMinutes()).slice(-2);c30.value="amtstate"+b+".json";setDialogMode(19,"Guardar todo el estado de Intel® AMT",3,saveEntireAmtStateOk)}}
|
|
function saveEntireAmtStateOk(){IntelAmtEntireState={webappversion:version,localtime:Date(),utctime:(new Date).toUTCString(),isotime:(new Date).toISOString()};QH(60,"Fetching entire state, please wait...");setDialogMode(1,"Guardar todo el estado de Intel® AMT",0,null);IntelAmtEntireStateCalls=3;amtstack.BatchEnum(null,AllWsman,saveEntireAmtStateOk2,null,!0);amtstack.GetAuditLog(saveEntireAmtStateOk3);amtstack.GetMessageLog(saveEntireAmtStateOk4)}
|
|
function saveEntireAmtStateOk2(b,c,a,d){IntelAmtEntireState.wsmanenums=a;saveEntireAmtStateDone()}function saveEntireAmtStateOk3(b,c){IntelAmtEntireState.auditlog=c;saveEntireAmtStateDone()}function saveEntireAmtStateOk4(b,c){IntelAmtEntireState.eventlog=c;saveEntireAmtStateDone()}function saveEntireAmtStateDone(){0==--IntelAmtEntireStateCalls&&(setDialogMode(),saveAs(data2blob(JSON.stringify(IntelAmtEntireState,null," ").replace(/\n/g,"\r\n")),c30.value))}
|
|
function showDesktopSettingsDlg(){if(!xxdialogMode){var b=amtsysstate.IPS_KVMRedirectionSettingData.response,c;c="<div style=text-align:left><div style=height:26px;margin-top:4px><select id=subddisplay style=float:right;width:200px><option value=0>Pantalla principal</option><option value=1>Pantalla secundaria</option>";9<amtversion&&(c+="<option value=2>Tercera pantalla</option>");c+='</select><div style=padding-top:4px>Pantalla predeterminada</div></div><div style=height:26px;margin-top:4px><input id=subsessiontimeout style=float:right;width:200px maxlength=5 onkeypress="return numbersOnly(event)"><div style=padding-top:4px>Tiempo de espera de la sesi\u00f3n (minutos)</div></div>';
|
|
1==b.OptInPolicy&&(c+='<div style=height:26px;margin-top:4px><input id=suboptintimeout style=float:right;width:200px maxlength=5 onkeypress="return numbersOnly(event)"><div style=padding-top:4px>Opt-in timeout (segundos)</div></div>');c+="<div style=height:26px;margin-top:4px><select id=subdlegacy style=float:right;width:200px onchange=showDesktopSettingsDlgUpdate()><option value=0>Deshabilitado, Recomendado</option><option value=1>Habilitado, visores KVM heredados</option></select><div style=padding-top:4px>Puerto 5900</div></div>";
|
|
c+="<div style=height:26px;margin-top:4px id=subspassx><input id=subspass type=password autocomplete=off style=float:right;width:200px maxlength=8 onkeyup=showDesktopSettingsDlgUpdate()><div style=padding-top:4px>5900 contrase\u00f1a (8 caracteres)</div></div>";9<amtversion&&null!=amtsysstate.IPS_ScreenConfigurationService&&(c+='<div style=height:26px;margin-top:4px><select id=subsb style=float:right;width:200px onchange=showDesktopSettingsDlgUpdate()><option value=0>Discapacitado</option><option value=1>Habilitado</option></select><div style=padding-top:4px title="Esta caracter\u00edstica no suele ser compatible">Pantalla en blanco</div></div>');
|
|
c+="</div>";setDialogMode(11,"Configuraci\u00f3n de escritorio remoto",3,showDesktopSettingsDlgOk,c);Q("subddisplay").value=b.DefaultScreen;Q("subsessiontimeout").value=b.SessionTimeout;1==b.OptInPolicy&&(Q("suboptintimeout").value=b.OptInPolicyTimeout);Q("subdlegacy").value=1==b.Is5900PortEnabled?1:0;9<amtversion&&null!=amtsysstate.IPS_ScreenConfigurationService&&(Q("subsb").value=amtsysstate.IPS_ScreenConfigurationService.response.EnabledState);showDesktopSettingsDlgUpdate()}}
|
|
function showDesktopSettingsDlgUpdate(){QV("subspassx",1==Q("subdlegacy").value);var b=(0==Q("subdlegacy").value||8==Q("subspass").value.length||0==Q("subspass").value.length)&&0<Q("subsessiontimeout").value.length;1==amtsysstate.IPS_KVMRedirectionSettingData.response.OptInPolicy&&0==Q("suboptintimeout").value.length&&(b=!1);QE("c54",b)}
|
|
function showDesktopSettingsDlgOk(){var b=Clone(amtsysstate.IPS_KVMRedirectionSettingData.response);b.DefaultScreen=Q("subddisplay").value;b.SessionTimeout=Q("subsessiontimeout").value;b.Is5900PortEnabled=1==Q("subdlegacy").value;1==b.OptInPolicy&&(b.OptInPolicyTimeout=Q("suboptintimeout").value);1==b.Is5900PortEnabled&&(b.RFBPassword=Q("subspass").value);amtstack.Put("IPS_KVMRedirectionSettingData",b,showDesktopSettingsDlgOk2);b=Clone(amtsysstate.IPS_ScreenConfigurationService.response);b.EnabledState=
|
|
parseInt(Q("subsb").value);amtstack.Put("IPS_ScreenConfigurationService",b,showDesktopSettingsDlgOk3)}function showDesktopSettingsDlgOk2(b,c,a,d){200==d?PullSystemStatus():messagebox("Configuraci\u00f3n de escritorio remoto",format("Error {0}, no se pueden establecer valores.",d))}
|
|
function showDesktopSettingsDlgOk3(b,c,a,d){200!=d?messagebox("Error",format("No se pudo establecer la supresi\u00f3n de pantalla, es posible que la supresi\u00f3n de este sistema no sea compatible ({0})",d)):amtstack.Get("IPS_ScreenConfigurationService",function(a,b,c,d){200==d&&(amtsysstate.IPS_ScreenConfigurationService.response=c.Body,updateSystemStatus())},0,1)}
|
|
function PullEventLog(b){1==b&&xxdialogMode||(amtFirstPull|=16,amtstack.Enum("AMT_MessageLog",processMessageLog0),amtstack.GetMessageLog(processMessageLog1))}var processMessageLog0responses=null;
|
|
function processMessageLog0(b,c,a,d){200==d&&(d&&QV("go6",!0),a&&(processMessageLog0responses=a),b="",c="<table class=log1 cellpadding=0 cellspacing=0 style=width:100%;border-radius:8px>",null!=processMessageLog0responses&&(b=1==processMessageLog0responses[0].IsFrozen?AddButton("Descongelar registro","FreezeLog(0)"):AddButton("Congelar registro","FreezeLog(1)")),c+=TableEnd('<div style=float:right><input id=eventFilter placeholder="Filtrar" style=margin:4px onkeyup=eventFilter()> </div><div> '+
|
|
AddRefreshButton("PullEventLog(1)")+AddButton("Borrar registro","ClearLog()")+AddButton("Salvar...","SaveEventLog()")+b),QH(17,c+"<br>"))}function SaveEventLog(){xxdialogMode||null==eventmessages||SaveJsonFile("IntelAmtEventlog","events","Intel AMT Event Log",eventmessages)}var eventmessages=null;
|
|
function processMessageLog1(b,c){eventmessages=c;var a,d=0,e;e="<table class=log1 cellpadding=0 cellspacing=0 style=width:100%;border-radius:8px><tr><td width=80px><p><td><td><td><tr><td class=r1 style=width:90px><b> Event</b><td class=r1 style=width:110px><b>Time</b><td class=r1 style=width:160px><b>Fuente</b><td class=r1><b>Descripci\u00f3n</b>";for(a in c){d++;var v=1,n=c[a];8<=n.EventSeverity&&(v=2);16<=n.EventSeverity&&(v=3);e+="<tr id=xamtevent"+a+" class=r3 onclick=showEventDetails("+
|
|
a+")><td class=r1><p><div class=icon"+v+" style=display:block;float:left;margin-left:5px;margin-right:5px></div>"+(parseInt(a)+1)+'<td class=r1 title="'+n.Time.toLocaleString()+'">'+n.Time.toLocaleDateString("en",{year:"numeric",month:"2-digit",day:"numeric"})+"<br>"+n.Time.toLocaleTimeString("en",{hour:"2-digit",minute:"2-digit",second:"2-digit"})+"<td class=r1>"+n.EntityStr.replace("(r)","®")+"<td class=r1>"+n.Desc}e+=TableEnd(0==d?" ":"");QH(18,e+"<br>");processMessageLog0()}
|
|
function FreezeLog(b){xxdialogMode||amtstack.AMT_MessageLog_FreezeLog(b,function(){amtstack.Enum("AMT_MessageLog",processMessageLog0)})}function ClearLog(b){xxdialogMode||(QH(60,"\u00bfBorrar el registro de eventos?"),setDialogMode(1,"Registro de eventos",3,ClearLogEx))}function ClearLogEx(){amtstack.AMT_MessageLog_ClearLog(function(b,c,a,d){200!=d?messagebox("Registro de eventos","No se puede borrar, error: "+d):PullEventLog()})}
|
|
function showEventDetails(b){if(!xxdialogMode){var c=eventmessages[b],a;a="<div style=text-align:left>"+addHtmlValue("Hora",c.Time.toLocaleString());a+=addHtmlValue("Fuente",c.EntityStr.replace("(r)","®"));a+=addHtmlValue("Descripci\u00f3n",c.Desc);a+=MoreStart();a+=addHtmlValue("Direcci\u00f3n del dispositivo",c.DeviceAddress);a+=addHtmlValue("Entidad",c.Entity);a+=addHtmlValue("Instancia de entidad",c.EntityInstance);var d="",e;for(e in c.EventData)0<d.length&&(d+=","),d+=c.EventData[e];a+=
|
|
addHtmlValue("Datos",d);a+=addHtmlValue("Compensar",c.EventOffset);a+=addHtmlValue("Tipo de sensor",c.EventSensorType);a+=addHtmlValue("Gravedad",c.EventSeverity);a+=addHtmlValue("tipo de fuente",c.EventSourceType);a+=addHtmlValue("Tipo",c.EventType);a+=addHtmlValue("N\u00famero de sensor",c.SensorNumber);a+=MoreEnd();a+="</div>";messagebox(format("Evento # {0} Detalles",b+1),a)}}
|
|
function eventFilter(){var b=Q("eventFilter").value.toLowerCase(),c;for(c in eventmessages)QV("xamtevent"+c,""==b||0<=eventmessages[c].Desc.toLowerCase().indexOf(b)||0<=eventmessages[c].EntityStr.toLowerCase().indexOf(b))}var subscriptionsFilters=null,subscriptionsListeners=null;
|
|
function PullEventSubscriptions(){null==subscriptionsFilters&&amtstack.Enum("CIM_FilterCollection",processEventSubscriptions0);amtstack.BatchEnum(null,["CIM_ListenerDestination","CIM_FilterCollectionSubscription"],processEventSubscriptions1)}function processEventSubscriptions0(b,c,a,d){408!=d&&400!=d&&(d&&errcheck(d,b)||(subscriptionsFilters=a))}
|
|
function processEventSubscriptions1(b,c,a,d){if(!(408==d||400==d||d&&errcheck(d,b))){d&&QV("go22",!0);a&&(subscriptionsListeners=a);c=0;b=TableStart2()+"<tr><td class=r1 style=padding-left:15px><br>Gestionar suscriptores de eventos.<br><br>";for(var e in subscriptionsListeners.CIM_ListenerDestination.responses)a=subscriptionsListeners.CIM_FilterCollectionSubscription.responses[e].Filter.ReferenceParameters.SelectorSet.Selector.Value.replace("(r)","®"),d=subscriptionsListeners.CIM_ListenerDestination.responses[e],
|
|
b+='<div class=itemBar onclick="showSubscriptionDetails('+e+')"><div style=float:right></div><div style=padding-top:3px;overflow-x:hidden title="'+a+" - "+d.Destination+'"><b>'+a+"</b> - "+d.Destination+"</div><div style=padding-top:3px></div></div>",c++;0==c&&(b+="<div style=padding-left:15px><br><i>No se encontraron suscripciones.</i></div><br>");e="<div> "+AddRefreshButton("PullEventSubscriptions()");xxAccountAdminName&&(e+=AddButton("Nueva suscripci\u00f3n","newSubscriptionButton()"));b+=
|
|
"<br><td class=r1>"+TableEnd(e+"</div>");QH(56,b)}}var subscriptionDeliveryModes={2:"empujar",3:"Empujar con ACK",4:"Eventos",5:"Halar"};
|
|
function showSubscriptionDetails(b){if(!xxdialogMode){var c=subscriptionsListeners.CIM_FilterCollectionSubscription.responses[b].Filter.ReferenceParameters.SelectorSet.Selector.Value.replace("(r)","®"),a=subscriptionsListeners.CIM_ListenerDestination.responses[b],d;d="<div style=text-align:left>"+addHtmlValue("Destino",a.Destination);d+=addHtmlValue("Filtrar",c);d+=addHtmlValue("Modo de entrega",subscriptionDeliveryModes[a.DeliveryMode]);setDialogMode(11,"Suscripci\u00f3n"+(b+1),xxAccountAdminName?
|
|
5:1,deleteSubscriptionButton,d+"</div>",b)}}
|
|
function deleteSubscriptionButton(b,c){2==b&&amtstack.UnSubscribe("CIM_FilterCollectionSubscription",PullEventSubscriptions,null,1,{Filter:'<a:EndpointReference><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address><a:ReferenceParameters><w:ResourceURI>http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_FilterCollection</w:ResourceURI><w:SelectorSet><w:Selector Name="InstanceID">'+subscriptionsListeners.CIM_FilterCollectionSubscription.responses[c].Filter.ReferenceParameters.SelectorSet.Selector.Value+"</w:Selector></w:SelectorSet></a:ReferenceParameters></a:EndpointReference>",
|
|
Handler:'<a:EndpointReference><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address><a:ReferenceParameters><w:ResourceURI>http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ListenerDestinationWSManagement</w:ResourceURI><w:SelectorSet><w:Selector Name="CreationClassName">CIM_ListenerDestinationWSMAN</w:Selector><w:Selector Name="Name">'+subscriptionsListeners.CIM_ListenerDestination.responses[c].Name+'</w:Selector><w:Selector Name="SystemCreationClassName">CIM_ComputerSystem</w:Selector><w:Selector Name="SystemName">Intel(r) AMT</w:Selector></w:SelectorSet></a:ReferenceParameters></a:EndpointReference>'})}
|
|
function newSubscriptionButton(){if(!xxdialogMode&&null!=subscriptionsFilters){var b;b="<div style=height:26px;margin-top:4px><select id=subtype style=float:right;width:260px><option value=Push>empujar</option><option value=PushWithAck>Empujar con ACK</option></select><div style=padding-top:4px>Tipo</div></div><div style=height:26px;margin-top:4px><select id=subfilter style=float:right;width:260px>";for(var c in subscriptionsFilters)b+='<option value="'+subscriptionsFilters[c].InstanceID+'">'+subscriptionsFilters[c].CollectionName.substring(13)+
|
|
"</option>";b+="</select><div style=padding-top:4px>Filtrar</div></div>";b+='<div style=height:26px;margin-top:4px><input id=suburl style=float:right;width:260px maxlength=253 onkeyup=newSubscriptionUpdate() value="http://"><div style=padding-top:4px>URL</div></div>';b+="<div style=height:26px;margin-top:4px><select id=subauth style=float:right;width:260px onchange=newSubscriptionUpdate()><option value=0>Ninguna</option><option value=1>Digerir</option></select><div style=padding-top:4px>Autenticaci\u00f3n</div></div>";
|
|
b+="<div style=height:26px;margin-top:4px id=subxuser><input id=subuser style=float:right;width:260px maxlength=32 onkeyup=newSubscriptionUpdate()><div style=padding-top:4px>Nombre de usuario</div></div>";b+="<div style=height:26px;margin-top:4px id=subxpass><input id=subpass style=float:right;width:260px maxlength=32 onkeyup=newSubscriptionUpdate()><div style=padding-top:4px>Contrase\u00f1a</div></div>";b+="<div style=height:26px;margin-top:4px><input id=subargs style=float:right;width:260px maxlength=128><div style=padding-top:4px>Argumentos</div></div>";
|
|
setDialogMode(11,"Agregar suscripci\u00f3n de evento",3,newSubscriptionButtonOk,b);newSubscriptionUpdate()}}function newSubscriptionUpdate(){QE("c54",0<Q("suburl").value.length&&Q("suburl").value.startsWith("http://")&&(0==Q("subauth").value||0<Q("subuser").value.length&&0<Q("subpass").value.length));QV("subxuser",1==Q("subauth").value);QV("subxpass",1==Q("subauth").value)}
|
|
function newSubscriptionButtonOk(){var b=0==Q("subuser").value.length?void 0:Q("subuser").value,c=0==Q("subpass").value.length?void 0:Q("subpass").value;amtstack.Subscribe("CIM_FilterCollection",Q("subtype").value,Q("suburl").value,newSubscriptionButtonOk2,null,1,{InstanceID:Q("subfilter").value},0<Q("subargs").value.length?Q("subargs").value:null,b,c)}function newSubscriptionButtonOk2(b,c,a,d){200==d&&PullEventSubscriptions()}
|
|
function PullAuditLog(b){1==b&&xxdialogMode||(amtFirstPull|=32,amtstack.Enum("AMT_AuditLog",processAuditLog0))}var auditLog=null,auditLogEnabledStates="Desconocido;Otro;Habilitado;Discapacitado;Apagando;No aplica;Habilitado pero sin conexi\u00f3n;En prueba;Diferido;Quietud;Comenzando".split(";");
|
|
function processAuditLog0(b,c,a,d){200==d&&(QV("go15",!0),c=a[0].AuditState,b=c&1?"Discapacitado":"Habilitado",c&2&&(b+=", Bloqueado"),c&4&&(b+=", Casi lleno"),c&8&&(b+=", Completo"),c&16&&(b+=", No hay llave"),c="<h1>Configuraci\u00f3n del registro de auditor\u00eda</h1>"+TableStart(),c+=TableEntry("Estado",b),c+=TableEntry("Almacenamiento",a[0].CurrentNumberOfRecords+" registros),"+a[0].PercentageFree+"% gratis"),c+=TableEntry("Pol\u00edtica de sobrescritura",2==a[0].OverwritePolicy?"Se envuelve cuando est\u00e1 lleno":
|
|
"Nunca sobrescribe"),c+=TableEnd(),QH(49,c),amtstack.GetAuditLog(processAuditLog1))}
|
|
function processAuditLog1(b,c){auditLog=c;var a,d;d="<table class=log1 cellpadding=0 cellspacing=0 style=width:100%;border-radius:8px>"+(TableEnd('<div style=float:right><input id=auditFilter placeholder="Filtrar" style=margin:4px onkeyup=auditFilter()> </div><div> '+AddRefreshButton("PullAuditLog(1)")+AddButton("Salvar...","SaveAuditLog()")+AddButton("Borrar registro","ClearAuditLog()"))+"<br>");if(0==c.length)d="No se encontraron eventos de registro de auditor\u00eda.";else{var e=0;d+="<table class=log1 cellpadding=0 cellspacing=0 style=width:100%;border-radius:8px><tr><td width=80px><p><td><td><td><tr><td class=r1 style=width:110px> <b>Hora</b><td class=r1 style=width:260px><b>Iniciador</b><td class=r1><b>Action</b>";
|
|
for(a in c){var v=c[a],n=v.AuditApp,l=v.Initiator;e++;var p="";0<v.NetAddress.length&&(p=v.NetAddress.replace("0000:0000:0000:0000:0000:0000:0000:0001","::1"));v.Event&&(n+=","+v.Event);null!=v.ExStr&&(n+=","+v.ExStr);""!=l&&""!=p&&(l+=",");d+="<tr id=xamtaudit"+a+" class=r3 onclick=showAuditDetails("+a+')><td class=r1 title="'+v.Time.toLocaleString()+'"> '+v.Time.toLocaleDateString("en",{year:"numeric",month:"2-digit",day:"numeric"})+"<br> "+v.Time.toLocaleTimeString("en",{hour:"2-digit",
|
|
minute:"2-digit",second:"2-digit"})+"<td class=r1>"+l+p+"<td class=r1>"+n}d+=TableEnd(0==e?" ":"")+"<br>"}QH(50,d)}function auditFilter(){var b=Q("auditFilter").value.toLowerCase(),c;for(c in auditLog)QV("xamtaudit"+c,""==b||0<=JSON.stringify(auditLog[c]).toLowerCase().indexOf(b))}function SaveAuditLog(){xxdialogMode||null==auditLog||SaveJsonFile("IntelAmtAuditlog","auditevents","Registro de auditor\u00eda de Intel AMT",auditLog)}
|
|
function ClearAuditLog(b){QH(60,"\u00bfBorrar el registro de auditor\u00eda?");setDialogMode(1,"Registro de auditor\u00eda",3,ClearAuditLogEx)}function ClearAuditLogEx(){var b=amtstack.AMT_AuditLog_SetAuditLock(1,0,b,function(){amtstack.AMT_AuditLog_ClearLog(function(){amtstack.AMT_AuditLog_SetAuditLock(0,2,b,function(){setTimeout(PullAuditLog,1E3)})})})}function ShowAuditLogSettings(){xxdialogMode||amtstack.AMT_AuditLog_RequestStateChange(2,0,AuditLogSettingsCompleted)}
|
|
function AuditLogSettingsCompleted(b,c,a,d){200==d?PullAuditLog():messagebox("Registro de auditor\u00eda","Error: "+d)}
|
|
function showAuditDetails(b){if(!xxdialogMode){var c,a=auditLog[b],d;d="<div style=text-align:left>"+addHtmlValue("Hora",a.Time.toLocaleString());""!=a.Initiator&&(d+=addHtmlValue("Iniciador",a.Initiator));""!=a.NetAddress&&(d+=addHtmlValue("Habla a",a.NetAddress));d+=addHtmlValue("Solicitud",a.AuditApp);d+=addHtmlValue("Evento",a.Event);if(null!=a.ExStr)d+=addHtmlValue("Datos extendidos",a.ExStr);else if(0<a.Ex.length){var e="";for(c in a.Ex)0<e.length&&(e+=","),e+=a.Ex.charCodeAt(c);""!=e&&(d+=
|
|
addHtmlValue("Valores de datos",e));2<a.Ex.length&&ReadShort(a.Ex,0)==a.Ex.length-2&&(d+=addHtmlValue("Cadena de datos",a.Ex.substring(2)))}messagebox("Evento de auditor\u00eda #"+(b+1)+" Detalles",d+"</div>")}}var xxCertificates=null,xxCertPrivateKeys=null,xxTlsSettings=null,xxTlsCurrentCert=null,xxTLSCredentialContext=null,xxCaPrivateKey=null,xxCaSubjectAttributes=null;
|
|
function PullCertificates(){amtstack.BatchEnum(null,["AMT_PublicKeyCertificate","AMT_PublicPrivateKeyPair","AMT_TLSSettingData","AMT_TLSCredentialContext"],processCerts1)}
|
|
function processCerts1(b,c,a,d){if(400!=d&&!errcheck(d,b)){QV("go16",!0);xxCertificates=a.AMT_PublicKeyCertificate.responses;xxCertPrivateKeys=a.AMT_PublicPrivateKeyPair.responses;xxTlsSettings=a.AMT_TLSSettingData.responses;xxTLSCredentialContext=a.AMT_TLSCredentialContext.responses;xxTlsCurrentCert=null;if(0<xxTLSCredentialContext.length){b=xxTLSCredentialContext[0].ElementInContext.ReferenceParameters.SelectorSet.Selector.Value;for(var e in xxCertificates)xxCertificates[e].InstanceID==b&&(xxTlsCurrentCert=
|
|
e)}for(e in xxCertificates)xxCertificates[e].TrustedRootCertficate=1==xxCertificates[e].TrustedRootCertficate,xxCertificates[e].X509Certificate=window.atob(xxCertificates[e].X509Certificate),xxCertificates[e].XIssuer=parseCertName(xxCertificates[e].Issuer),xxCertificates[e].XSubject=parseCertName(xxCertificates[e].Subject);amtcert_linkCertPrivateKey(xxCertificates,xxCertPrivateKeys);updateCertificates()}}
|
|
function parseCertName(b){var c={},a=b.split(","),d;for(d in a)b=a[d].indexOf("="),c[a[d].substring(0,b)]=a[d].substring(b+1);return c}
|
|
function getTlsSecurityState(b){if(0==xxTlsSettings[b].Enabled)return"Discapacitado";var c=(1==xxTlsSettings[b].MutualAuthentication?"TLS de autenticaci\u00f3n mutua":"TLS de autenticaci\u00f3n de servidor")+(1==xxTlsSettings[b].AcceptNonSecureConnections?" y no TLS":"");1==xxTlsSettings[b].MutualAuthentication&&xxTlsSettings[b].TrustedCN&&(b=MakeToArray(xxTlsSettings[b].TrustedCN),0<b.length&&(c+=", "+(1<b.length?"Trusted names":"Trusted name")+": "+b.join(", ")+"."));return c}
|
|
function updateCertificates(){if(null!=xxCertificates){var b="Intel(r) AMT LMS TLS Settings"==xxTlsSettings[0].InstanceID?0:1,c=1-b,a=TableStart(),a=a+TableEntry("Seguridad remota de TLS",addLinkConditional(getTlsSecurityState(c),"showSetTlsSecurityDlg()",xxAccountAdminName)),a=a+TableEntry("Seguridad local de TLS",addLinkConditional(getTlsSecurityState(b),"showSetTlsSecurityDlg()",xxAccountAdminName)),a=a+TableEnd(),a=a+("<br>"+TableStart2()+"<tr><td class=r1 style=padding-left:15px><br>Administre los certificados Intel® AMT para esta computadora.<br><br>");
|
|
if(0==xxCertificates.length&&0==xxCertPrivateKeys.length)a+="<div style=padding-left:15px><br><i>No se encontraron certificados.</i></div><br>";else{for(var d in xxCertificates)b="",xxCertificates[d].TrustedRootCertficate&&(b=", Ra\u00edz de confianza"),xxCertificates[d].XPrivateKey&&(b=", Llave privada"),d==xxTlsCurrentCert&&(b+=", Certificado TLS"),a+="<div class=itemBar onclick=showCertDetails("+d+")><div style=padding-top:3px><b>"+EscapeHtml(xxCertificates[d].XSubject.CN)+"</b><i>"+b+"</i></div></div>";
|
|
for(d in xxCertPrivateKeys)xxCertPrivateKeys[d].XCert||(a+="<div class=itemBar onclick=showKeyPairDetails("+d+")><div style=padding-top:3px><i>Par de claves privadas sin asignar #"+d+"</i></div></div>")}d=AddRefreshButton("PullCertificates()");xxAccountAdminName&&(d+=AddButton("Agregar certificado ...","addCertButton()")+AddButton("Emitir certificado ...","issueCertButton()"));a+="<br><td class=r1>"+TableEnd(d);QH(51,a)}}
|
|
function showKeyPairDetails(b){setDialogMode(11,"Par de claves #"+b,5,function(c){2==c&&amtstack.Delete("AMT_PublicPrivateKeyPair",{InstanceID:xxCertPrivateKeys[b].InstanceID},PullCertificates,0,1)},"Este es un par de claves de certificado p\u00fablico / privado que no pertenece a ning\u00fan certificado. Esta entrada debe ser temporal.")}
|
|
var xxCertSubjectNames={CN:"Nombre com\u00fan",O:"Organizaci\u00f3n",OU:"Unidad Org",S:"Provincia del estado",ST:"Provincia del estado",L:"Localidad",C:"Pa\u00eds",SN:"Apellido",GN:"Nombre de pila"};
|
|
function showCertDetails(b){if(!xxdialogMode){var c=xxCertificates[b],a;a="<br>"+addHtmlValue("Certificado",c.X509Certificate.length+" bytes,<a style=cursor:pointer;color:blue onclick=downloadCert("+b+")>Descargar</a>");a+=addHtmlValue("Ra\u00edz de confianza",c.TrustedRootCertficate?"si":"No");0==c.TrustedRootCertficate&&c.XPrivateKey&&(a+=addHtmlValue("Llave privada","Presente"));a+='<br><div style="border-bottom:1px solid gray"><i>Asunto del certificado</i></div><br>';for(var d in c.XSubject)c.XSubject[d]&&
|
|
(a+=addHtmlValue(xxCertSubjectNames[d]?xxCertSubjectNames[d]:d,EscapeHtml(c.XSubject[d])));a+='<br><div style="border-bottom:1px solid gray"><i>Certificado de emisor</i></div><br>';for(d in c.XIssuer)c.XIssuer[d]&&(a+=addHtmlValue(xxCertSubjectNames[d]?xxCertSubjectNames[d]:d,EscapeHtml(c.XIssuer[d])));setDialogMode(11,"Certificado -"+EscapeHtml(c.XSubject.CN),5,function(a){2==a&&(xxCertificates[b].XPrivateKey&&amtstack.Delete("AMT_PublicPrivateKeyPair",{InstanceID:xxCertificates[b].XPrivateKey.InstanceID},
|
|
function(){},0,1),amtstack.Delete("AMT_PublicKeyCertificate",xxCertificates[b],certificateRemoved,0,1))},a)}}function downloadCert(b){saveAs(data2blob(xxCertificates[b].X509Certificate),xxCertificates[b].XSubject.CN+".cer")}function cert_FileSelectHandler(b){haltEvent(b);1==b.dataTransfer.files.length&&(b.dataTransfer.files[0].name.toLowerCase().endsWith(".p12")?issueCertButton(b.dataTransfer.files):addCertButton(b.dataTransfer.files))}var xxDragDropCertFiles=null;
|
|
function addCertButton(b){!xxdialogMode&&xxAccountAdminName&&(xxDragDropCertFiles=b,b='<input id=certopen onchange=addCertButtonUpdate() type=file style=float:right;width:260px accept=".cer,.pem">',xxDragDropCertFiles&&(b='<input style=float:right;width:260px readonly disabled value="'+xxDragDropCertFiles[0].name+'">'),b="<div style=height:10px></div>"+("<div style=height:26px;margin-top:4px>"+b+"<div style=padding-top:4px>Archivo de certificado</div></div>")+"<div style=height:26px;margin-top:4px><select id=certtype style=float:right;width:260px><option value=1>Certificado ra\u00edz de confianza</option><option value=0>Certificado de cadena</option></select><div style=padding-top:4px>Tipo de certificado</div></div>",
|
|
setDialogMode(11,"Agregar certificado",3,addCertButtonOk,b),addCertButtonUpdate())}function addCertButtonUpdate(){var b=getInputElement("certopen");QE("c54",!b||1==b.files.length||2==Q("certoptype").value)}function addCertButtonOk(){var b=getInputElement("certopen"),c=xxDragDropCertFiles;b&&(c=b.files);c&&1==c.length&&(b=new FileReader,b.onload=addCertButtonOk2,b.readAsBinaryString(c[0]))}
|
|
function addCertButtonOk2(b){b=b.target.result;var c=b.indexOf("-----BEGIN CERTIFICATE-----");0<=c?(b=b.substring(c+27),c=b.indexOf("-----END CERTIFICATE-----"),0<=c&&(b=b.substring(0,c)),b=b.replace(/\r\n/g,"")):b=btoa(b);1==getSelectElement("certtype").value?amtstack.AMT_PublicKeyManagementService_AddTrustedRootCertificate(b,certificateAdded):amtstack.AMT_PublicKeyManagementService_AddCertificate(b,certificateAdded)}
|
|
function issueCertButton(b){!xxdialogMode&&xxAccountAdminName&&(xxDragDropCertFiles=b,b='<input id=certopen type=file style=float:right;width:230px onchange=issueCertButtonUpdate() accept=".p12">',xxDragDropCertFiles&&(b='<input style=float:right;width:230px readonly disabled value="'+xxDragDropCertFiles[0].name+'">'),b=""+("<div styleheight:26px;margin-top:14px>"+b+"<div style=padding-top:4px>Certificate file</div></div>")+"<div style=height:26px;margin-top:4px><input onkeyup=issueCertButtonUpdate() id=certopenpass type=password autocomplete=off style=float:right;width:230px><div style=padding-top:4px>Contrase\u00f1a del certificado</div></div>",
|
|
b+='<br><div style="border-bottom:1px solid gray"><i>Certificado Intel® AMT</i></div>',b+="<div style=height:26px;margin-top:4px><input onkeyup=issueCertButtonUpdate() id=certcn style=float:right;width:230px><div style=padding-top:4px>Nombre com\u00fan</div></div>",b+="<div style=height:26px;margin-top:4px><input onkeyup=issueCertButtonUpdate() id=certo style=float:right;width:230px><div style=padding-top:4px>Organizaci\u00f3n</div></div>",b+="<div style=height:26px;margin-top:4px><input onkeyup=issueCertButtonUpdate() id=certst style=float:right;width:230px><div style=padding-top:4px>Provincia del estado</div></div>",
|
|
b+="<div style=height:26px;margin-top:4px><input onkeyup=issueCertButtonUpdate() id=certc style=float:right;width:230px><div style=padding-top:4px>Pa\u00eds</div></div>",b+='<div>Usos de certificado</div><ul style="list-style-type:none;height:100px;overflow:auto;width:100%;border: 1px solid #000;background-color:white;overflow-x:hidden;margin:0;padding:0">',b+="<li><label><input type=checkbox id=d11_cu4 checked>Servidor TLS (HTTPS)</label></li>",b+="<li><label><input type=checkbox id=d11_cu5>Cliente TLS (HTTPS)</label></li>",
|
|
b+="<li><label><input type=checkbox id=d11_cu6>Protecci\u00f3n de correo electr\u00f3nico</label></li>",b+="<li><label><input type=checkbox id=d11_cu7>Firma de c\u00f3digo</label></li>",b+="<li><label><input type=checkbox id=d11_cu8>Sello de tiempo</label></li>",b+="</ul>",setDialogMode(11,"Emitir certificado",3,issueCertButtonOk,b),issueCertButtonUpdate())}
|
|
function issueCertButtonUpdate(){var b=getInputElement("certopen");QE("certopenpass",!b||b&&1==b.files.length);var c=!b||2>b.files.length;1==(!b||b&&b.files.length)&&""==Q("certopenpass").value&&(c=!1);if(""==getInputElement("certcn").value||""==getInputElement("certo").value||""==getInputElement("certst").value||""==getInputElement("certc").value)c=!1;QE("c54",c)}
|
|
function issueCertButtonOk(){var b=getInputElement("certopen"),c=xxDragDropCertFiles;b&&(c=b.files);c&&1==c.length?(b=new FileReader,b.onload=issueCertButtonOk2,b.readAsBinaryString(c[0])):issueCertButtonOk3(null)}function issueCertButtonOk2(b){0==amtcert_loadP12File(b.target.result,Q("certopenpass").value,issueCertButtonOk3)&&messagebox("Emitir certificado","No se puede descifrar / decodificar el certificado.")}
|
|
function issueCertButtonOk3(b,c,a){xxCaPrivateKey=b;xxCaSubjectAttributes=c;amtstack.AMT_PublicKeyManagementService_GenerateKeyPair(0,2048,GenerateKeyPairResponse)}
|
|
function GenerateKeyPairResponse(b,c,a,d){200!=d?messagebox("Emitir certificado","Error al generar par de claves. Estado: "+d):0!=a.Body.ReturnValue?messagebox("Emitir certificado","Error al generar par de claves,"+a.Body.ReturnValueStr):amtstack.Enum("AMT_PublicPrivateKeyPair",GenerateKeyPairResponse2,a.Body.KeyPair.ReferenceParameters.SelectorSet.Selector.Value)}
|
|
function GenerateKeyPairResponse2(b,c,a,d,e){if(200!=d)messagebox("Emitir certificado","Error al generar par de claves. Estado: "+d);else{b=null;for(var v in a)a[v].InstanceID==e&&(b=a[v].DERKey);a={CN:getInputElement("certcn").value,O:getInputElement("certo").value,ST:getInputElement("certst").value,C:getInputElement("certc").value};e={CN:"Certificado ra\u00edz no confiable"};if(null!=xxCaPrivateKey&&xxCaSubjectAttributes)for(v in e={},xxCaSubjectAttributes)e[xxCaSubjectAttributes[v].shortName]=
|
|
xxCaSubjectAttributes[v].value;v={name:"extKeyUsage"};Q("d11_cu4").checked&&(v.serverAuth=!0);Q("d11_cu5").checked&&(v.clientAuth=!0);Q("d11_cu6").checked&&(v.emailProtection=!0);Q("d11_cu7").checked&&(v.codeSigning=!0);Q("d11_cu8").checked&&(v.timeStamping=!0);v=amtcert_signWithCaKey(b,xxCaPrivateKey,a,e,v);null==v?messagebox("Emitir certificado","No se puede firmar el certificado."):(v=forge.pki.certificateToPem(v).replace(/(\r\n|\n|\r)/gm,""),amtstack.AMT_PublicKeyManagementService_AddCertificate(v.substring(27,
|
|
v.length-25),GenerateKeyPairResponse4))}}function GenerateKeyPairResponse4(b,c,a,d){200!=d?messagebox("Emitir certificado","Error al generar par de claves. Estado: "+d):PullCertificates()}function certificateAdded(b,c,a,d){200!=d||0!=a.Body.ReturnValue?messagebox("Agregar certificado","No se puede agregar el certificado, error"+(200!=d?d:a.Body.ReturnValueStr)):PullCertificates()}
|
|
function certificateRemoved(b,c,a,d){200!=d?messagebox("Eliminar certificado","No se puede eliminar el certificado, error"+d):PullCertificates()}function getInputElement(b){var c=document.getElementsByTagName("input");for(t=0;t<c.length;t++)if(c[t].id==b)return c[t]}function getSelectElement(b){var c=document.getElementsByTagName("select");for(t=0;t<c.length;t++)if(c[t].id==b)return c[t]}
|
|
function showSetTlsSecurityDlg(b){if(!xxdialogMode){b="<div style=height:26px;margin-top:4px><select onchange=showSetTlsSecurityDlgUpdate() id=tlscert style=float:right;width:260px><option value=-1>Sin certificado, TLS deshabilitado</option>";for(var c in xxCertificates)0!=xxCertificates[c].TrustedRootCertficate||!xxCertificates[c].XPrivateKey||null!=xxTlsCurrentCert&&xxTlsCurrentCert!=c||(b+="<option value="+c+">"+xxCertificates[c].XSubject.CN+"</option>");b+="</select><div style=padding-top:4px>Certificado</div></div><div style=height:26px;margin-top:4px><select id=tlsremote style=float:right;width:260px onchange=showSetTlsSecurityDlgUpdate()><option value=0>Server-auth TLS only</option><option value=1>Server-auth, non-TLS allowed</option>";
|
|
b+="<option value=2>Mutual-auth TLS only</option><option value=3>Mutual-auth, non-TLS allowed</option>";b+='</select><div style=padding-top:4px>Security</div></div><div style=height:26px id=d11rcn title="Lista separada por comas de nombres comunes de certificados que se les permitir\u00e1 conectarse de forma remota."><input id=d11_rcn style=float:right;width:260px onkeyup=showSetTlsSecurityDlgUpdate() placeholder="nombre1, nombre2"><div style=padding-top:4px>CN remotos</div></div>';setDialogMode(11,
|
|
"Configuraciones TLS",3,showSetTlsSecurityDlgOk,b);if(0==xxTLSCredentialContext.length||0==xxTlsSettings[0].Enabled||0==xxTlsSettings[1].Enabled)getSelectElement("tlscert").value=-1;else for(c in b=xxTLSCredentialContext[0].ElementInContext.ReferenceParameters.SelectorSet.Selector.Value,xxCertificates)xxCertificates[c].InstanceID==b&&(getSelectElement("tlscert").value=c);c=1-("Intel(r) AMT LMS TLS Settings"==xxTlsSettings[0].InstanceID?0:1);getSelectElement("tlsremote").value=(1==xxTlsSettings[c].MutualAuthentication?
|
|
2:0)+(1==xxTlsSettings[c].AcceptNonSecureConnections?1:0);xxTlsSettings[c].TrustedCN&&(Q("d11_rcn").value=MakeToArray(xxTlsSettings[c].TrustedCN).join(", "));showSetTlsSecurityDlgUpdate()}}function showSetTlsSecurityDlgUpdate(){var b=getSelectElement("tlscert").value;QE("tlsremote",-1!=b);QV("d11rcn",-1!=b&&1<getSelectElement("tlsremote").value);b=!0;1<getSelectElement("tlsremote").value&&!splitDomains(Q("d11_rcn").value)&&(b=!1);QE("c54",b)}var setTlsSecurityPendingCalls,setTlsSecurityDeleteCredentialContext;
|
|
function showSetTlsSecurityDlgOk(){var b=getSelectElement("tlscert").value,c=getSelectElement("tlsremote").value,a=Clone(xxTlsSettings);setTlsSecurityPendingCalls=0;setTlsSecurityDeleteCredentialContext=null;if(-1!=b){if(0<xxTLSCredentialContext.length){var d=Clone(xxTLSCredentialContext[0]);d.ElementInContext.ReferenceParameters.SelectorSet.Selector.Value=xxCertificates[b].InstanceID;amtstack.Put("AMT_TLSCredentialContext",d,setTlsSecurityResponse,0,1)}else amtstack.Create("AMT_TLSCredentialContext",
|
|
{ElementInContext:"<a:Address>/wsman</a:Address><a:ReferenceParameters><w:ResourceURI>"+amtstack.CompleteName("AMT_PublicKeyCertificate")+'</w:ResourceURI><w:SelectorSet><w:Selector Name="InstanceID">'+xxCertificates[b].InstanceID+"</w:Selector></w:SelectorSet></a:ReferenceParameters>",ElementProvidingContext:"<a:Address>/wsman</a:Address><a:ReferenceParameters><w:ResourceURI>"+amtstack.CompleteName("AMT_TLSProtocolEndpointCollection")+'</w:ResourceURI><w:SelectorSet><w:Selector Name="ElementName">TLSProtocolEndpointInstances Collection</w:Selector></w:SelectorSet></a:ReferenceParameters>'},
|
|
setTlsSecurityResponse);setTlsSecurityPendingCalls++}else 0<xxTLSCredentialContext.length&&(setTlsSecurityDeleteCredentialContext=Clone(xxTLSCredentialContext[0]));var d="Intel(r) AMT LMS TLS Settings"==xxTlsSettings[0].InstanceID?0:1,e=1-d;a[e].Enabled=-1!=b;a[e].MutualAuthentication=2<=c;a[e].AcceptNonSecureConnections=1==c%2;a[e].TrustedCN=splitDomains(Q("d11_rcn").value);a[d].Enabled=-1!=b;a[d].TrustedCN=splitDomains(Q("d11_rcn").value);2<=c&&(setTlsSecurityPendingCalls++,amtstack.AMT_TimeSynchronizationService_GetLowAccuracyTimeSynch(function(a,
|
|
b,c,d){200!=d?messagebox("","Error al establecer la hora, estado ="+d):0!=c.Body.ReturnValue?messagebox("","Error al establecer la hora, error: "+c.Body.ReturnValueStr):(a=Math.round((new Date).getTime()/1E3),amtstack.AMT_TimeSynchronizationService_SetHighAccuracyTimeSynch(c.Body.Ta0,a,a,function(){setTlsSecurityResponse()}))}));setTlsSecurityPendingCalls+=2;amtstack.Put("AMT_TLSSettingData",a[0],setTlsSecurityResponse,0,1,a[0]);amtstack.Put("AMT_TLSSettingData",a[1],setTlsSecurityResponse,0,1,a[1]);
|
|
statusbox("Configuraciones TLS","Aplicando nuevas configuraciones de seguridad ...")}function splitDomains(b){b=b.split(",");if(0!=b.length){for(var c in b)if(b[c]=b[c].trim(),0<=b[c].indexOf(" ")||0==b[c].length)return;if(!(4<b.length))return b}}
|
|
function setTlsSecurityResponse(b,c,a,d){if(b){if(200!=d){messagebox("","Error al establecer la seguridad de TLS, estado ="+d);return}if(a.Body.ReturnValueStr&&!methodcheck(a))return}0==--setTlsSecurityPendingCalls&&amtstack.AMT_SetupAndConfigurationService_CommitChanges(null,setTlsSecurityResponse2)}
|
|
function setTlsSecurityResponse2(b,c,a,d){200!=d?messagebox("","Error al establecer la seguridad de TLS, estado ="+d):0!=a.Body.ReturnValue?messagebox("","Error al establecer la seguridad de TLS, error: "+a.Body.ReturnValueStr):setTimeout(setTlsSecurityResponse3,2E3)}
|
|
function setTlsSecurityResponse3(){null!=setTlsSecurityDeleteCredentialContext&&amtstack.Delete("AMT_TLSCredentialContext",setTlsSecurityDeleteCredentialContext,function(){});PullCertificates();setDialogMode();amtstack.AMT_TimeSynchronizationService_GetLowAccuracyTimeSynch(processSystemTime)}var xxWatchdog=null;
|
|
function PullWatchdog(){amtstack.BatchEnum(null,["*AMT_AgentPresenceCapabilities","AMT_AgentPresenceWatchdog","AMT_AgentPresenceWatchdogAction","AMT_StateTransitionCondition","CIM_ConcreteDependency"],PullWatchdogResponse)}
|
|
function PullWatchdogResponse(b,c,a,d){if(200==d&&200==a.AMT_AgentPresenceCapabilities.status){xxWatchdog=a;for(var e in xxWatchdog.CIM_ConcreteDependency.responses)b=xxWatchdog.CIM_ConcreteDependency.responses[e],(c=getItem(b.Antecedent.ReferenceParameters.SelectorSet.Selector,"@Name","CreationClassName"))&&"AMT_AgentPresenceWatchdog"==c.Value&&(d=getItem(b.Antecedent.ReferenceParameters.SelectorSet.Selector,"@Name","DeviceID").Value,a=getItem(b.Dependent.ReferenceParameters.SelectorSet.Selector,
|
|
"@Name","PolicyConditionName").Value,d=getItem(xxWatchdog.AMT_AgentPresenceWatchdog.responses,"DeviceID",d),a=getItem(xxWatchdog.AMT_StateTransitionCondition.responses,"PolicyConditionName",a),d.transitions||(d.transitions=[]),d.transitions.push(a)),c&&"AMT_StateTransitionCondition"==c.Value&&(a=getItem(b.Antecedent.ReferenceParameters.SelectorSet.Selector,"@Name","PolicyConditionName").Value,b=getItem(b.Dependent.ReferenceParameters.SelectorSet.Selector,"@Name","PolicyActionName").Value,a=getItem(xxWatchdog.AMT_StateTransitionCondition.responses,
|
|
"PolicyConditionName",a),b=getItem(xxWatchdog.AMT_AgentPresenceWatchdogAction.responses,"PolicyActionName",b),a.actions||(a.actions=[]),a.actions.push(b));updateWatchdog();QV("go19",!0)}}var watchdogEnabledStates="Desconocido;Otro;Habilitado;Discapacitado;Apagando;No aplica;Habilitado pero sin conexi\u00f3n;En prueba;Diferido;Quietud;Comenzando".split(";"),watchdogMonitoredEntity="Desconocido;Otro;Sistema operativo;Proceso de arranque del sistema operativo;Proceso de apagado del sistema operativo;Proceso de arranque del firmware;Proceso de arranque del BIOS;Solicitud;Procesador de servicio".split(";");
|
|
function updateWatchdog(){if(null!=xxWatchdog){var b;b=""+TableStart();b+=TableEntry("Watchdogs m\u00e1ximos",xxWatchdog.AMT_AgentPresenceCapabilities.response.MaxTotalAgents+" perros guardianes");b+=TableEntry("M\u00e1ximo total de acciones",xxWatchdog.AMT_AgentPresenceCapabilities.response.MaxTotalActions+" comportamiento");b+=TableEnd()+"<br>";b+=TableStart2();b+="<tr><td class=r1 style=padding-left:15px><br>Administre los perros guardianes de presencia de agente Intel® AMT.<br><br>";if(null==
|
|
xxWatchdog.AMT_AgentPresenceWatchdog.responses||0==xxWatchdog.AMT_AgentPresenceWatchdog.responses.length)b+="<div style=padding-left:15px><i>No se encontr\u00f3 ning\u00fan agente de vigilancia de presencia de agentes.</i></div><br>";else for(var c in xxWatchdog.AMT_AgentPresenceWatchdog.responses){var a=xxWatchdog.AMT_AgentPresenceWatchdog.responses[c],d=guidToStr(rstr2hex(atob(a.DeviceID)));a.MonitoredEntityDescription&&""!=a.MonitoredEntityDescription&&(d=EscapeHtml(a.MonitoredEntityDescription));
|
|
b+="<div class=itemBar onclick=showWatchdogDetails("+c+')><input type=button style=float:right value="Agregar acci\u00f3n ..." onclick=addWatchdogAction(event,'+c+")>";a.transitions&&(b+='<input type=button style=float:right value="Eliminar acciones ..." onclick=deleteWatchdogActions(event,'+c+")>");b+="<div style=padding-top:3px><b>"+d+"</b>, "+amtstack.WatchdogCurrentStates[a.CurrentState]+"</div>";var d="",e;for(e in a.transitions){var v=a.transitions[e];""!=d&&(d+="<br>");d+=getWatchdogTransitionStr(v.OldState)+
|
|
" → "+getWatchdogTransitionStr(v.NewState);v.actions&&1==v.actions[0].EventOnTransition&&(d+=": Evento para registrar")}""!=d&&(b+="<div style=padding:12px>"+d+"</div>");b+="</div>"}b=b+"<br>"+TableEnd(AddRefreshButton("PullWatchdog()")+AddButton("A\u00f1adir perro guardi\u00e1n ...","AddWatchdog()"));b+="<br>";QH(54,b)}}
|
|
function getWatchdogTransitionStr(b){if(31==b)return"Cualquier estado";var c="",a;for(a in amtstack.WatchdogCurrentStates)0!=(b&a)&&(c+=", "+amtstack.WatchdogCurrentStates[a]);return c.substring(2)}
|
|
function showWatchdogDetails(b){b=xxWatchdog.AMT_AgentPresenceWatchdog.responses[b];var c="";b.MonitoredEntityDescription&&""!=b.MonitoredEntityDescription&&(c+=addHtmlValue("Descripci\u00f3n",EscapeHtml(b.MonitoredEntityDescription)));c+=addHtmlValue("Entidad monitoreada",watchdogMonitoredEntity[b.MonitoredEntity]);c+=addHtmlValue("Estado actual",amtstack.WatchdogCurrentStates[b.CurrentState]);c+=addHtmlValue("Estado habilitado",watchdogEnabledStates[b.EnabledState]);c+=addHtmlValue("Intervalo de inicio",
|
|
b.StartupInterval+" segundos)");c+=addHtmlValue("Intervalo de tiempo de espera",b.TimeoutInterval+" segundos)");setDialogMode(11,format("Perro guardi\u00e1n {0}",guidToStr(rstr2hex(atob(b.DeviceID)))),5,showWatchdogDetailsOk,c,b)}function showWatchdogDetailsOk(b,c){2==b&&amtstack.Delete("AMT_AgentPresenceWatchdog",{DeviceID:c.DeviceID},PullWatchdog)}
|
|
function AddWatchdog(){var b;b="<div style=height:26px;margin-top:4px><input id=wgname style=float:right;width:240px maxlength=16 onkeyup=AddWatchdogUpdate()><div style=padding-top:4px>Nombre</div></div>"+('<div style=height:26px;margin-top:4px><input id=wgguid style=float:right;width:240px maxlength=36 onkeyup=AddWatchdogUpdate()><div style=padding-top:4px title="Generar DeviceID aleatorio">'+addLink("ID del dispositivo","GenerateWatchdogGuid()")+"</div></div>");b+="<div style=height:26px;margin-top:4px><input id=wgstart style=float:right;width:240px maxlength=8 placeholder=3600 onkeyup=AddWatchdogUpdate()><div style=padding-top:4px>Inicio (segundos)</div></div>";
|
|
b+="<div style=height:26px;margin-top:4px><input id=wgtimeout style=float:right;width:240px maxlength=8 placeholder=60 onkeyup=AddWatchdogUpdate()><div style=padding-top:4px>Tiempo de espera (segundos)</div></div>";setDialogMode(11,"Agregar perro guardi\u00e1n",3,AddWatchdogOk,b);AddWatchdogUpdate()}function GenerateWatchdogGuid(){var b,c="";for(b=0;16>b;b++)c+=String.fromCharCode(random(255));Q("wgguid").value=guidToStr(rstr2hex(c));AddWatchdogUpdate()}
|
|
function AddWatchdogUpdate(){for(var b=(""==Q("wgstart").value||0<parseInt(Q("wgstart").value))&&(""==Q("wgtimeout").value||0<parseInt(Q("wgtimeout").value)),c=0,a=Q("wgguid").value.toLowerCase(),d=0;d<a.length;d++){var e=a.charCodeAt(d);45!=e&&(48<=e&&57>=e||97<=e&&102>=e?c++:b=!1)}32!=c&&(b=!1);QE("dlgOkButton",b)}
|
|
function AddWatchdogOk(){var b=Q("wgtimeout").value,c=Q("wgstart").value;""==b&&(b=60);""==c&&(c=3600);b={CreationClassName:0,DeviceID:btoa(hex2rstr(guidToStr(Q("wgguid").value.replace(/-/g,"")).replace(/-/g,""))),StartupInterval:c,SystemCreationClassName:0,SystemName:0,TimeoutInterval:b,MonitoredEntityDescription:Q("wgname").value};amtstack.Create("AMT_AgentPresenceWatchdog",b,AddWatchdogOk2)}
|
|
function AddWatchdogOk2(b,c,a,d){200!=d?messagebox("Perro guardi\u00e1n","No se puede agregar el perro guardi\u00e1n, error #"+d):PullWatchdog()}
|
|
function addWatchdogAction(b,c){var a=xxWatchdog.AMT_AgentPresenceWatchdog.responses[c],d;d="<table><td style=width:180px>Desde<br>";for(c in amtstack.WatchdogCurrentStates)d+="<input id=wgsa"+c+" type=checkbox onclick=addWatchdogActionUpdate()> "+amtstack.WatchdogCurrentStates[c]+"<br />";d+="<td>A<br>";for(c in amtstack.WatchdogCurrentStates)d+="<input id=wgsb"+c+" type=checkbox onclick=addWatchdogActionUpdate()> "+amtstack.WatchdogCurrentStates[c]+"<br />";setDialogMode(11,"Agregar acci\u00f3n de vigilancia",
|
|
3,addWatchdogActionOk,d+"</table><br>Realizar una acci\u00f3n<br><input id=wgsevent type=checkbox checked onclick=addWatchdogActionUpdate()>Escribir en el registro de eventos<br />",a);addWatchdogActionUpdate();haltEvent(b)}function addWatchdogActionUpdate(){var b=0,c=0,a;for(a in amtstack.WatchdogCurrentStates)1==Q("wgsa"+a).checked&&(b+=parseInt(a)),1==Q("wgsb"+a).checked&&(c+=parseInt(a));QE("dlgOkButton",0<b&&0<c&&1==Q("wgsevent").checked)}
|
|
function addWatchdogActionOk(b,c){var a=0,d=0,e;for(e in amtstack.WatchdogCurrentStates)1==Q("wgsa"+e).checked&&(a+=parseInt(e)),1==Q("wgsb"+e).checked&&(d+=parseInt(e));amtstack.AMT_AgentPresenceWatchdog_AddAction(a,d,Q("wgsevent").checked,null,null,AddWatchdogActionResponse,null,0,{DeviceID:c.DeviceID})}function AddWatchdogActionResponse(b,c,a,d){200!=d?messagebox("Acci\u00f3n de vigilancia","No se puede agregar la acci\u00f3n de vigilancia, error #"+d):PullWatchdog()}
|
|
function deleteWatchdogActions(b,c){setDialogMode(11,"Eliminar acciones de vigilancia",3,deleteWatchdogActionsOk,"\u00bfEliminar todas las acciones para este perro guardi\u00e1n?",xxWatchdog.AMT_AgentPresenceWatchdog.responses[c]);haltEvent(b)}function deleteWatchdogActionsOk(b,c){amtstack.AMT_AgentPresenceWatchdog_DeleteAllActions(deleteWatchdogActionResponse,null,0,{DeviceID:c.DeviceID})}
|
|
function deleteWatchdogActionResponse(b,c,a,d){200!=d?messagebox("Acci\u00f3n de vigilancia","No se pueden eliminar las acciones de vigilancia, error #"+d):PullWatchdog()}
|
|
var xxSystemDefense=null,xxSystemDefenceLinkedPolicy={},xxUpdatingDefenseStats=!1,xxFilterStatistics=[{},{}],xxFilterStatisticsTimer=null,xxFilterStatisticsTimerActive=!1,xxSystemDefenceFilterEthernetTypes={2048:"Todos los paquetes IP",2054:"Todos los paquetes ARP"},xxSystemDefenceFilterIPTypes={4:"IPv4",6:"IPv6"},xxSystemDefenceFilterDesc={0:"Permitir, contar",1:"Drop, Count",2:"L\u00edmite de tarifa",3:"Permitir",4:"soltar"},xxSystemDefenceFilters={HdrProtocolID:1,HdrDestAddress:2,HdrDestMask:2,
|
|
HdrSrcAddress:2,HdrSrcMask:2,HdrSrcPortStart:1,HdrSrcPortEnd:1,HdrDestPortStart:1,HdrDestPortEnd:1,HdrSrcAddressEndOfRange:2,"HdrDestAddressEndOfRange ":2,TCPFlagsOn:3,TCPFlagsOff:3};function PullSystemDefense(){amtFirstPull|=4;amtstack.BatchEnum(null,["AMT_SystemDefensePolicy","AMT_NetworkPortSystemDefensePolicy","AMT_Hdr8021Filter","AMT_IPHeadersFilter","AMT_NetworkFilter"],PullSystemDefenseResponse)}
|
|
function PullSystemDefenseResponse(b,c,a,d){200==d&&(xxSystemDefense=a,updateSystemDefense(),QV("go18",!0),urlvars.norefresh&&UpdateDefenseStats())}
|
|
function updateSystemDefense(){if(null!=xxSystemDefense){var b="";xxSystemDefenceLinkedPolicy={};for(var c in xxSystemDefense.AMT_NetworkPortSystemDefensePolicy.responses){var a=xxSystemDefense.AMT_NetworkPortSystemDefensePolicy.responses[c],d=+getItem(a.Antecedent.ReferenceParameters.SelectorSet.Selector,"@Name","DeviceID").Value.substring(27),a=getItem(xxSystemDefense.AMT_SystemDefensePolicy.responses,"InstanceID",a.Dependent.ReferenceParameters.SelectorSet.Selector.Value);xxSystemDefenceLinkedPolicy[d]=
|
|
a}b+=TableStart();c="<i>Ninguna</i>";xxSystemDefenceLinkedPolicy[0]&&(c=xxSystemDefenceLinkedPolicy[0].PolicyName);b+=TableEntry("Pol\u00edtica cableada predeterminada",addLink(c,"changeDefaultPolicy(0)"));for(c=0;2>c;c++){var a=xxFilterStatistics[c],e;for(e in a)d=a[e],d=1==d?d+" paquete":d+" paquetes",b+=TableEntry((0==c?"Cableado":"Inal\u00e1mbrico")+e,d)}b+=TableEnd();b=b+"<br>"+TableStart2();b+="<tr><td class=r1 style=padding-left:15px;border:0><br>Administre las pol\u00edticas de defensa del sistema Intel® AMT.<br><br>";
|
|
if(0==xxSystemDefense.AMT_SystemDefensePolicy.responses.length)b+="<div style=padding-left:15px><i>No se encontraron pol\u00edticas de defensa del sistema.</i></div><br>";else for(c in xxSystemDefense.AMT_SystemDefensePolicy.responses)a=xxSystemDefense.AMT_SystemDefensePolicy.responses[c],d="",a.FilterCreationHandles&&(a.FilterCreationHandles=MakeToArray(a.FilterCreationHandles),d=a.FilterCreationHandles.length,d=", "+d+" filter"+(1<d?"s":"")),b+="<div class=itemBar onclick=showPolicyDetails("+c+
|
|
")><div style=padding-top:3px><b>"+EscapeHtml(a.PolicyName)+"</b>"+d+"</div></div>";b+="<tr><td class=r1 style=padding-left:15px><br>Administre los filtros de defensa del sistema Intel® AMT.<br><br>";if(0==xxSystemDefense.AMT_Hdr8021Filter.responses.length&&0==xxSystemDefense.AMT_IPHeadersFilter.responses.length)b+="<div style=padding-left:15px><i>No se encontraron filtros de defensa del sistema.</i></div><br>";else{for(c in xxSystemDefense.AMT_Hdr8021Filter.responses)a=xxSystemDefense.AMT_Hdr8021Filter.responses[c],
|
|
(d=xxSystemDefenceFilterEthernetTypes[a.HdrProtocolID8021])||(d="Todo el protocolo de Ethernet"+a.HdrProtocolID8021),d+=", "+xxSystemDefenceFilterDesc[a.FilterProfile],2==a.FilterProfile&&(d+=" a"+a.FilterProfileData+" paquete / seg"),1==a.ActionEventOnMatch&&(d+=", Evento en partido"),b+="<div class=itemBar onclick=showFilterDetails(0,"+c+")><div style=padding-top:3px><b>"+(0==a.FilterDirection?"← ":"→ ")+EscapeHtml(a.Name)+"</b>, "+d+"</div></div>";for(c in xxSystemDefense.AMT_IPHeadersFilter.responses){a=
|
|
xxSystemDefense.AMT_IPHeadersFilter.responses[c];(d=xxSystemDefenceFilterIPTypes[a.HdrIPVersion])||(d="Todo el protocolo de Ethernet"+a.HdrIPVersion);d+=", "+xxSystemDefenceFilterDesc[a.FilterProfile];2==a.FilterProfile&&(d+=" a"+a.FilterProfileData+" paquete / seg");1==a.ActionEventOnMatch&&(d+=", Evento en partido");var v=0;for(e in xxSystemDefenceFilters)a[e]&&v++;0<v&&(d+=", "+v+" filter"+(1<v?"s":""));b+="<div class=itemBar onclick=showFilterDetails(1,"+c+")><div style=padding-top:3px><b>"+(0==
|
|
a.FilterDirection?"← ":"→ ")+EscapeHtml(a.Name)+"</b>, "+d+"</div></div>"}}b+="<br><td class=r1>"+TableEnd(AddRefreshButton("PullSystemDefense()")+AddButton("A\u00f1adir filtro...","AddDefenseFilter()")+AddButton("Agregar pol\u00edtica ...","AddDefensePolicy()"));QH(53,b);null==xxFilterStatisticsTimer&&(xxFilterStatisticsTimerActive=!1,urlvars.norefresh||(UpdateDefenseStats(),xxFilterStatisticsTimer=setInterval(UpdateDefenseStats,5E3)))}}
|
|
function StopDefenseStatsTimer(){null!=xxFilterStatisticsTimer&&(clearInterval(xxFilterStatisticsTimer),xxFilterStatisticsTimer=null);xxFilterStatisticsTimerActive=!1}
|
|
function UpdateDefenseStats(b){if(b||1!=xxFilterStatisticsTimerActive)xxFilterStatisticsTimerActive=!0,b=b?b:0,xxSystemDefenceLinkedPolicy[b]?amtstack.AMT_SystemDefensePolicy_UpdateStatistics('<a:Address></a:Address><a:ReferenceParameters><w:ResourceURI>http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_EthernetPort</w:ResourceURI><w:SelectorSet><w:Selector Name="DeviceID">Intel(r) AMT Ethernet Port '+b+"</w:Selector></w:SelectorSet></a:ReferenceParameters>",!1,UpdateDefenseStats2,b,0,{InstanceID:xxSystemDefenceLinkedPolicy[b].InstanceID}):
|
|
(xxFilterStatistics[b]={},StopDefenseStatsTimer())}function UpdateDefenseStats2(b,c,a,d,e){200==d?amtstack.Enum("AMT_ActiveFilterStatistics",UpdateDefenseStats3,e):StopDefenseStatsTimer()}
|
|
function UpdateDefenseStats3(b,c,a,d,e){b=0;if(200==d){xxFilterStatistics[e]={};for(var v in a)d=a[v].ReadCount,c=getItem(a[v].Dependent.ReferenceParameters.SelectorSet.Selector[1].Value.EndpointReference.ReferenceParameters.SelectorSet.Selector,"@Name","Name").Value,xxFilterStatistics[e][c]=d,b++;updateSystemDefense()}xxFilterStatisticsTimerActive=!1;0==b&&StopDefenseStatsTimer()}
|
|
function changeDefaultPolicy(b){if(!xxdialogMode){var c;c="<div style=height:26px;margin-top:4px><select id=policySelection style=float:right;width:266px><option value=-1>Ninguna";for(var a in xxSystemDefense.AMT_SystemDefensePolicy.responses)c+="<option value="+a+(xxSystemDefenceLinkedPolicy[b]&&xxSystemDefense.AMT_SystemDefensePolicy.responses[a].InstanceID==xxSystemDefenceLinkedPolicy[b].InstanceID?" selected":"")+">"+xxSystemDefense.AMT_SystemDefensePolicy.responses[a].PolicyName;setDialogMode(11,
|
|
"Pol\u00edtica predeterminada de defensa del sistema",3,changeDefaultPolicyOk,c+"</select><div style=padding-top:4px>Pol\u00edtica predeterminada</div></div>",b)}}
|
|
function changeDefaultPolicyOk(b,c){var a=Q("policySelection").value,d=xxSystemDefenceLinkedPolicy[c];d&&amtstack.Delete("AMT_NetworkPortSystemDefensePolicy",'<w:SelectorSet><w:Selector Name="Antecedent"><a:EndpointReference xmlns:b="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:c="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address><a:ReferenceParameters><w:ResourceURI>http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_EthernetPort</w:ResourceURI><w:SelectorSet><w:Selector Name="CreationClassName">CIM_EthernetPort</w:Selector><w:Selector Name="DeviceID">Intel(r) AMT Ethernet Port '+c+
|
|
'</w:Selector></w:SelectorSet></a:ReferenceParameters></a:EndpointReference></w:Selector><w:Selector Name="Dependent"><a:EndpointReference xmlns:b="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:c="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address><a:ReferenceParameters><w:ResourceURI>http://intel.com/wbem/wscim/1/amt-schema/1/AMT_SystemDefensePolicy</w:ResourceURI><w:SelectorSet><w:Selector Name="InstanceID">'+
|
|
d.InstanceID+"</w:Selector></w:SelectorSet></a:ReferenceParameters></a:EndpointReference></w:Selector></w:SelectorSet>",-1==a?PullSystemDefense:function(){});0<=a&&amtstack.Create("AMT_NetworkPortSystemDefensePolicy",{Antecedent:'<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2004/08/addressing</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_EthernetPort</ResourceURI><SelectorSet xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><Selector Name="DeviceID">Puerto Ethernet Intel (r) AMT '+
|
|
c+"</Selector></SelectorSet></ReferenceParameters>",Dependent:'<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2004/08/addressing</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://intel.com/wbem/wscim/1/amt-schema/1/AMT_SystemDefensePolicy</ResourceURI><SelectorSet xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><Selector Name="InstanceID">'+
|
|
xxSystemDefense.AMT_SystemDefensePolicy.responses[a].InstanceID+"</Selector></SelectorSet></ReferenceParameters>"},changeDefaultPolicyOk2)}function changeDefaultPolicyOk2(b,c,a,d){200!=d?messagebox("Pol\u00edtica predeterminada de defensa del sistema","No se puede establecer la pol\u00edtica, error"+d):PullSystemDefense()}
|
|
function AddDefenseFilter(){if(!xxdialogMode){var b;b="<div style=height:26px;margin-top:4px><input id=filtername style=float:right;width:260px maxlength=16 onkeyup=AddDefenseFilterUpdate()><div style=padding-top:4px>Nombre</div></div><div style=height:26px;margin-top:4px><select id=filtertype style=float:right;width:266px onchange=AddDefenseFilterUpdate()><option value=0>Filtro de paquete IP Ethernet<option value=1>Filtro de paquetes Ethernet ARP<option value=2>Filtro de paquetes IPv4<option value=3>Filtro de paquetes IPv6</select><div style=padding-top:4px>Tipo</div></div>";b+=
|
|
'<div style=height:26px;margin-top:4px id=ipfilterdiv><input id=ipfilter style=float:right;width:260px placeholder="Reglas opcionales" onkeyup=AddDefenseFilterUpdate()><div style=padding-top:4px>Reglas a juego</div></div>';b+="<div style=height:26px;margin-top:4px><select id=filterdir style=float:right;width:266px onchange=AddDefenseFilterUpdate()><option value=0>Saliente / Transmitir<option value=1>Entrante / Recibir</select><div style=padding-top:4px>Direcci\u00f3n</div></div>";b+="<div style=height:26px;margin-top:4px><select id=filterprofile style=float:right;width:266px onchange=AddDefenseFilterUpdate()><option value=0>Permitir, contar<option value=1>Drop, Count<option value=2>L\u00edmite de tarifa<option value=3>Permitir<option value=4>soltar</select><div style=padding-top:4px>Acci\u00f3n</div></div>";
|
|
b+="<div style=height:26px;margin-top:4px id=filterdatadiv><input id=filterdata style=float:right;width:260px maxlength=8 onkeyup=AddDefenseFilterUpdate()><div style=padding-top:4px>Paquetes / segundo</div></div>";b+="<div style=height:26px;margin-top:4px><select id=filteraction style=float:right;width:266px onchange=AddDefenseFilterUpdate()><option value=false>Hacer nada<option value=1>Evento en partido</select><div style=padding-top:4px>Registro de eventos</div></div>";setDialogMode(11,"Agregar filtro de defensa del sistema",
|
|
3,AddDefenseFilterOk,b);AddDefenseFilterUpdate()}}
|
|
function AddDefenseFilterOk(){if(1>=Q("filtertype").value){var b=0==Q("filtertype").value?2048:2054,c={"InstanceID ":0,Name:Q("filtername").value,CreationClassName:0,SystemName:0,SystemCreationClassName:0,HdrProtocolID8021:b,FilterProfile:Q("filterprofile").value,FilterDirection:Q("filterdir").value,ActionEventOnMatch:Q("filteraction").value};2==Q("filterprofile").value&&(c.FilterProfileData=Q("filterdata").value);amtstack.Create("AMT_Hdr8021Filter",c,AddDefenseFilterOk2)}else{var b=2==Q("filtertype").value?
|
|
4:6,c={"InstanceID ":0,Name:Q("filtername").value,CreationClassName:0,SystemName:0,SystemCreationClassName:0,HdrIPVersion:b,FilterProfile:Q("filterprofile").value,FilterDirection:Q("filterdir").value,ActionEventOnMatch:Q("filteraction").value},a=Q("ipfilter").value.split(","),d;for(d in a){var e=a[d].indexOf("="),v=a[d].substring(0,e),e=a[d].substring(e+1),n=xxSystemDefenceFilters[v];n||(v="Hdr"+v,n=xxSystemDefenceFilters[v]);n&&(2==n&&4==b?(e=e.split("."),4==e.length&&(c[v]=rstr2hex(String.fromCharCode(parseInt(e[0]),
|
|
parseInt(e[1]),parseInt(e[2]),parseInt(e[3]))))):c[v]=e)}2==Q("filterprofile").value&&(c.FilterProfileData=Q("filterdata").value);amtstack.Create("AMT_IPHeadersFilter",c,AddDefenseFilterOk2)}}function AddDefenseFilterUpdate(){var b=0<Q("filtername").value.length;b&&2==Q("filterprofile").value&&(b=parseInt(Q("filterdata").value),b=0<b&&4294967295>b);QE("c54",b);QV("filterdatadiv",2==Q("filterprofile").value);QV("ipfilterdiv",2<=Q("filtertype").value)}
|
|
function AddDefenseFilterOk2(b,c,a,d){200!=d?messagebox("Agregar filtro de defensa del sistema","No se puede agregar el filtro, error #"+d):PullSystemDefense()}
|
|
function showFilterDetails(b,c){if(!xxdialogMode){var a,d,e,v;0==b?(v="AMT_Hdr8021Filter",e="Tr\u00e1fico Ethernet",d=xxSystemDefense[v].responses[c],(a=xxSystemDefenceFilterEthernetTypes[d.HdrProtocolID8021])||(a="Todo el protocolo de Ethernet"+d.HdrProtocolID8021)):(v="AMT_IPHeadersFilter",e="Tr\u00e1fico IP",d=xxSystemDefense[v].responses[c],(a=xxSystemDefenceFilterIPTypes[d.HdrIPVersion])||(a="Todo el protocolo IP"+d.HdrIPVersion));var n;n=""+addHtmlValue("Nombre",EscapeHtml(d.Name));n+=addHtmlValue("Tipo",
|
|
e);n+=addHtmlValue("Tr\u00e1fico a juego",a);n+=addHtmlValue("Direcci\u00f3n",0==d.FilterDirection?"Outbound / Transmit":"Inbound / Receive");if(1==b)for(var l in xxSystemDefenceFilters)d[l]&&(a=l,e=d[l],b=xxSystemDefenceFilters[l],2==b&&4==e.length&&(e=hex2rstr(e),e=e.charCodeAt(0)+"."+e.charCodeAt(1)+"."+e.charCodeAt(2)+"."+e.charCodeAt(3)),a.startsWith("Hdr")&&(a=a.substring(3)),n+=addHtmlValue("Filtrar"+a,e));n+=addHtmlValue("Evento en partido",1==d.ActionEventOnMatch?"Yes":"No");setDialogMode(11,
|
|
"Filtro Ethernet #"+d.InstanceID,5,showFilterDetailsOk,n,[v,d])}}function showFilterDetailsOk(b,c){2==b&&amtstack.Delete(c[0],c[1],deleteDefenseFilter)}function deleteDefenseFilter(b,c,a,d){200!=d?messagebox("Eliminar filtro","No se puede quitar el filtro, aseg\u00farese de que no est\u00e9 en uso."):PullSystemDefense()}var xxAddDefensePolicyFilters;
|
|
function AddDefensePolicy(){if(!xxdialogMode){xxAddDefensePolicyFilters=[];var b;b='<div style=height:26px;margin-top:4px><input id=policyname title="<policy name>:<policy precedence number>" style=float:right;width:260px maxlength=16 onkeyup=AddDefensePolicyUpdate()><div style=padding-top:4px>Nombre</div></div><div style=height:26px;margin-top:4px><select id=policytx title="Acci\u00f3n predeterminada a tomar para el tr\u00e1fico saliente" style=float:right;width:133px><option value=0>Allow<option value=1>soltar<option value=2>Permitir, contar<option value=3>Drop, Count<option value=4>Permitir, contar, evento<option value=5>Drop, Count, Event</select><select id=policyrx style=float:right;width:133px title="Acci\u00f3n predeterminada a tomar para el tr\u00e1fico entrante"><option value=0>Permitir<option value=1>soltar<option value=2>Permitir, contar<option value=3>Drop, Count<option value=4>Permitir, contar, evento<option value=5>Drop, Count, Event</select><div style=padding-top:4px>TX / RX predeterminado</div></div>';b+=
|
|
"<div id=policyFilters></div>";if(0<xxSystemDefense.AMT_Hdr8021Filter.responses.length||0<xxSystemDefense.AMT_IPHeadersFilter.responses.length){b+="<div style=height:26px;margin-top:4px><div style=float:right><select id=xfilter style=width:186px>";for(var c in xxSystemDefense.AMT_Hdr8021Filter.responses){var a=xxSystemDefense.AMT_Hdr8021Filter.responses[c];b+="<option value="+a.InstanceID+">"+a.Name}for(c in xxSystemDefense.AMT_IPHeadersFilter.responses)a=xxSystemDefense.AMT_IPHeadersFilter.responses[c],
|
|
b+="<option value="+a.InstanceID+">"+a.Name;b+="</select><input id=addFilterButton type=button value=Add style=width:80px onclick=addFilterButton()></div><div style=padding-top:4px>A\u00f1adir filtro</div></div>"}setDialogMode(11,"Agregar pol\u00edtica de defensa del sistema",3,AddDefensePolicyOk,b);AddDefensePolicyUpdate()}}function addFilterButton(){0<=xxAddDefensePolicyFilters.indexOf(Q("xfilter").value)||(xxAddDefensePolicyFilters.push(Q("xfilter").value),AddDefensePolicyUpdate())}
|
|
function removeFilterButton(b){xxAddDefensePolicyFilters.splice(b,1);AddDefensePolicyUpdate()}
|
|
function AddDefensePolicyUpdate(){var b=0<Q("policyname").value.split(":")[0].length;QE("c54",b);if(0==xxAddDefensePolicyFilters.length)QH("policyFilters","<br><i>Esta pol\u00edtica no contiene filtros.</i><br><br>");else{var b="",c;for(c in xxAddDefensePolicyFilters)b+="<div class=itemBar style=margin-right:0><div style=float:right>"+AddButton2("Eliminar","removeFilterButton("+c+")")+"</div><div style=padding-top:3px;max-width:260px;overflow:hidden><b>"+GetFilterById(xxAddDefensePolicyFilters[c]).Name+
|
|
"</b></div></div>";QH("policyFilters",b)}}function GetFilterById(b){for(var c in xxSystemDefense.AMT_Hdr8021Filter.responses){var a=xxSystemDefense.AMT_Hdr8021Filter.responses[c];if(a.InstanceID==b)return a}for(c in xxSystemDefense.AMT_IPHeadersFilter.responses)if(a=xxSystemDefense.AMT_IPHeadersFilter.responses[c],a.InstanceID==b)return a}
|
|
function AddDefensePolicyOk(){var b=Q("policytx").value,c=Q("policyrx").value,a=0,d=Q("policyname").value.split(":");2==d.length&&(a=parseInt(d[1]));b={"InstanceID ":0,PolicyName:d[0],PolicyPrecedence:a,TxDefaultCount:1<b,TxDefaultDrop:1==b%2,TxDefaultMatchEvent:3<b,RxDefaultCount:1<c,RxDefaultDrop:1==c%2,RxDefaultMatchEvent:3<c};0<xxAddDefensePolicyFilters.length&&(b.FilterCreationHandles=xxAddDefensePolicyFilters);amtstack.Create("AMT_SystemDefensePolicy",b,AddDefensePolicyOk2)}
|
|
function AddDefensePolicyOk2(b,c,a,d){200!=d?messagebox("Agregar pol\u00edtica de defensa del sistema","No se puede agregar la pol\u00edtica, error #"+d):PullSystemDefense()}
|
|
function showPolicyDetails(b){if(!xxdialogMode){var c=xxSystemDefense.AMT_SystemDefensePolicy.responses[b],a;a=""+addHtmlValue("Nombre",EscapeHtml(c.PolicyName));0!=c.PolicyPrecedence&&(a+=addHtmlValue("Precedencia",c.PolicyPrecedence));var d=1==c.TxDefaultDrop?"soltar":"Permitir";1==c.TxDefaultCount&&(d+=", Cuenta");1==c.TxDefaultMatchEvent&&(d+="Evento");a+=addHtmlValue("Acci\u00f3n TX predeterminada",d);d=1==c.RxDefaultDrop?"Drop":"Allow";1==c.RxDefaultCount&&(d+=", Count");1==c.RxDefaultMatchEvent&&
|
|
(d+=", Event");a+=addHtmlValue("Acci\u00f3n RX predeterminada",d);if(c.FilterCreationHandles)for(b in c.FilterCreationHandles)a+=addHtmlValue("Filtro #"+(+b+1),GetFilterById(c.FilterCreationHandles[b]).Name);setDialogMode(11,format("Pol\u00edtica #",c.InstanceID.substring(20)),5,showPolicyDetailsOk,a,c)}}function showPolicyDetailsOk(b,c){2==b&&amtstack.Delete("AMT_SystemDefensePolicy",c,deleteDefensePolicy)}
|
|
function deleteDefensePolicy(b,c,a,d){200!=d?messagebox("Eliminar pol\u00edtica","No se puede eliminar la pol\u00edtica, aseg\u00farese de que no est\u00e9 en uso."):PullSystemDefense()}var xxWireless;function PullWireless(){amtFirstPull|=2;-1!=amtwirelessif&&amtstack.BatchEnum("","*CIM_WiFiPortCapabilities *CIM_WiFiPort *CIM_WiFiEndpoint CIM_WiFiEndpointSettings *AMT_WiFiPortConfigurationService *AMT_BootCapabilities".split(" "),processWireless)}
|
|
function wifiRefresh(){xxdialogMode||PullWireless()}var xxWifiState={3:"Discapacitado",32768:"Habilitado en S0",32769:"Habilitado en S0, Sx / AC"},xxRadioState={2:"Encendido, conectado",3:"Apagado",6:"Encendido, desconectado"},xxWifiAuthenticationMethod={1:"Otro",2:"Abierto",3:"Llave compartida",4:"PSK WPA",5:"WPA IEEE 802.1x",6:"WPA2 PSK",7:"WPA2 IEEE 802.1x",32768:"WPA3 SAE"},xxWifiEncryptionMethod={1:"Otro",2:"WEP",3:"TKIP-RC4",4:"CCMP-AES",5:"Ninguna"};
|
|
function processWireless(b,c,a,d){xxWireless=200==d?a:void 0;updateSystemStatus();showWirelessInfo()}
|
|
function showWirelessInfo(){if(xxWireless){var b,c,a="",d,e;if(xxWireless.CIM_WiFiPortCapabilities.response){e="<br><h2>Perfiles inal\u00e1mbricos</h2>"+TableStart2();e+="<tr><td class=r2 style=padding-left:15px><br>Perfiles inal\u00e1mbricos que Intel® AMT usar\u00e1 para la conectividad de red.<br><br>";for(b=a=0;256>b;b++)for(c in xxWireless.CIM_WiFiEndpointSettings.responses)d=xxWireless.CIM_WiFiEndpointSettings.responses[c],1!=d.AuthenticationMethod&&d.Priority==b&&(e+="<div class=itemBar onclick=showWifiDetails("+
|
|
c+")><div style=float:right>"+EscapeHtml(d.SSID)+", "+xxWifiAuthenticationMethod[d.AuthenticationMethod]+", "+xxWifiEncryptionMethod[d.EncryptionMethod]+" ",xxAccountAdminName&&(e+=AddButton2("Eliminar",'wifiRemoveButton("'+c+'")')),e+="</div><div style=padding-top:3px><b>"+EscapeHtml(d.ElementName)+"</b></div></div>",a++);0==a&&(e+="<i>No hay perfiles inal\u00e1mbricos presentes</i><br>");e+="<br><td class=r2>";e=xxAccountAdminName?e+TableEnd(AddButton("Nuevo perfil","showWifiNewProfile()")):
|
|
e+TableEnd("");QH(20,e+"<br>")}}}function showWifiStateDlg(){if(!xxdialogMode){var b="",c;for(c in xxWifiState)b+="<label><input type=radio name=d11 id=wl"+c+" value="+c+" "+(xxWireless.CIM_WiFiPort.response.EnabledState==c?"checked":"")+">"+xxWifiState[c]+"</label><br>";setDialogMode(11,"Estado inal\u00e1mbrico",3,wifiStateDlg,b)}}
|
|
function wifiStateDlg(){amtstack.CIM_WiFiPort_RequestStateChange(document.querySelector("input[name=d11]:checked").value,null,function(){amtstack.Get("CIM_WiFiPort",function(b,c,a,d){200==d&&(xxWireless.CIM_WiFiPort.response=a.Body,showWirelessInfo())})})}
|
|
function showWifiSyncDlg(){if(!xxdialogMode){var b;b=""+("<label><input type=radio name=d11 id=wl0 value=0 "+(0==xxWireless.AMT_WiFiPortConfigurationService.response.localProfileSynchronizationEnabled?"checked":"")+">Discapacitado</label><br>");b+="<label><input type=radio name=d11 id=wl0 value=1 "+(1==xxWireless.AMT_WiFiPortConfigurationService.response.localProfileSynchronizationEnabled?"checked":"")+">Habilitado</label><br>";setDialogMode(11,"Local Profile Sync",3,showWifiSyncDlgEx,b)}}
|
|
function showWifiSyncDlgEx(){var b=Clone(xxWireless.AMT_WiFiPortConfigurationService.response);b.localProfileSynchronizationEnabled=document.querySelector("input[name=d11]:checked").value;amtstack.Put("AMT_WiFiPortConfigurationService",b,function(){amtstack.Get("AMT_WiFiPortConfigurationService",function(b,a,d,e){200==e&&(xxWireless.AMT_WiFiPortConfigurationService.response=d.Body,showWirelessInfo())})})}
|
|
function showUefiWifiCoExDlg(){if(!xxdialogMode){var b;b=""+("<label><input type=radio name=d12 value=0 "+(0==xxWireless.AMT_WiFiPortConfigurationService.response.UEFIWiFiProfileShareEnabled?"checked":"")+">Disabled</label><br>");b+="<label><input type=radio name=d12 value=1 "+(1==xxWireless.AMT_WiFiPortConfigurationService.response.UEFIWiFiProfileShareEnabled?"checked":"")+">Enabled</label><br>";setDialogMode(11,"UEFI Wifi CoEx Profile Sharing",3,UefiWifiCoExDlg,b)}}
|
|
function UefiWifiCoExDlg(){var b=Clone(xxWireless.AMT_WiFiPortConfigurationService.response);b.UEFIWiFiProfileShareEnabled=document.querySelector("input[name=d12]:checked").value;amtstack.Put("AMT_WiFiPortConfigurationService",b,function(b,a,d,e){200==e&&PullWireless()})}
|
|
function showWifiDetails(b){if(!xxdialogMode){b=xxWireless.CIM_WiFiEndpointSettings.responses[b];var c;c="<div style=text-align:left>"+addHtmlValue("Nombre de perfil",EscapeHtml(b.ElementName));c+=addHtmlValue("SSID",b.SSID);c+=addHtmlValue("Autenticaci\u00f3n",xxWifiAuthenticationMethod[b.AuthenticationMethod]);c+=addHtmlValue("Cifrado",xxWifiEncryptionMethod[b.EncryptionMethod]);c+=addHtmlValue("Prioridad",b.Priority);messagebox("Perfil inal\u00e1mbrico",c+"</div>")}}
|
|
function wifiRemoveButton(b){xxdialogMode||(QH(60,format('\u00bfEliminar el perfil inal\u00e1mbrico "{0}"?',xxWireless.CIM_WiFiEndpointSettings.responses[b].ElementName)),setDialogMode(1,"Perfil inal\u00e1mbrico",3,function(){removeWifiButtonEx(b)}))}function removeWifiButtonEx(b){amtstack.Delete("CIM_WiFiEndpointSettings",{InstanceID:xxWireless.CIM_WiFiEndpointSettings.responses[b].InstanceID},removeWifiEntryResponse,0,1)}
|
|
function removeWifiEntryResponse(b,c,a,d,e){methodcheck(a)||amtstack.Enum("CIM_WiFiEndpointSettings",function(a,b,c,d){200==d&&(xxWireless.CIM_WiFiEndpointSettings.responses=c,showWirelessInfo())})}
|
|
function showWifiNewProfile(){if(!xxdialogMode){var b="";for(i=1;256>i;i++){var c=1;for(j in xxWireless.CIM_WiFiEndpointSettings.responses)xxWireless.CIM_WiFiEndpointSettings.responses[j].Priority==i&&(c=0);c&&(b+="<option value="+i+">"+i)}QH("c24",b);QV("c26",13<amtversion);c25.value=6;c27.value=4;c22.value=c23.value=c28.value=c29.value="";setDialogMode(12,"Agregar perfil inal\u00e1mbrico",3,function(){addWifiProfile()});
|
|
updateWifiDialog()}}
|
|
function addWifiProfile(){amtstack.AMT_WiFiPortConfigurationService_AddWiFiSettings({__parameterType:"reference",__resourceUri:amtstack.CompleteName("CIM_WiFiEndpoint"),Name:"WiFi Endpoint 0"},{__parameterType:"instance",__namespace:amtstack.CompleteName("CIM_WiFiEndpointSettings"),ElementName:c22.value,InstanceID:"Intel(r) AMT:WiFi Endpoint Settings "+c22.value,AuthenticationMethod:c25.value,EncryptionMethod:c27.value,SSID:c23.value,Priority:c24.value,PSKPassPhrase:c28.value},
|
|
null,null,null,removeWifiEntryResponse)}
|
|
function updateWifiDialog(){var b=!0,c=c25.value,a=c27.value;QV(66,4>c);QV(65,3<c);QV(64,3<c);QV(67,4>c);4>c&&(3==a||4==a)&&(c27.value=2);3<c&&(2==a||5==a)&&(c27.value=3);32768==c&&(c27.value=4);for(var d in xxWireless.CIM_WiFiEndpointSettings.responses)xxWireless.CIM_WiFiEndpointSettings.responses[d].ElementName==c22.value&&(b=!1);QE("c54",1==b&&0<c22.value.length&&0<c23.value.length&&7<c28.value.length&&
|
|
c28.value==c29.value)}function PullHardware(){amtstack.BatchEnum("","*CIM_ComputerSystemPackage CIM_SystemPackaging *CIM_Chassis CIM_Chip *CIM_Card *CIM_BIOSElement CIM_Processor CIM_PhysicalMemory CIM_MediaAccessDevice CIM_PhysicalPackage *CIM_Battery".split(" "),processHardware);amtFirstPull|=1}
|
|
var DMTFCPUStatus="Desconocido;Habilitado;Deshabilitado por el usuario;Deshabilitado por BIOS (error POST);Ocioso;Otro".split(";"),DMTFMemType="Desconocido;Otro;DRACMA;DRAM sincr\u00f3nico;DRAM de cach\u00e9;EDO;EDRAM;VRAM;SRAM;RAM;ROM;Destello;EEPROM;FEPROM;EPROM;CDRAM;3DRAM;SDRAM;SGRAM;RDRAM;DDR;DDR-2;BRAM;FB-DIMM;DDR3;FBD2;DDR4;LPDDR;LPDDR2;LPDDR3;LPDDR4".split(";"),DMTFMemFormFactor=";Otro;Desconocido;SIMM;sorbo;Chip;INMERSI\u00d3N;ZIP;Tarjeta propietaria;DIMM;TSOP;Fila de papas fritas;RIMM;SODIMM;SRIMM;FB-DIM".split(";"),
|
|
DMTFProcFamilly={191:"Procesador Intel® Core ™ 2 Duo",192:"Procesador Intel® Core ™ 2 Solo",193:"Procesador Intel® Core ™ 2 Extreme",194:"Procesador Intel® Core ™ 2 Quad",195:"Procesador m\u00f3vil Intel® Core ™ 2 Extreme",196:"Procesador m\u00f3vil Intel® Core ™ 2 Duo",197:"Procesador m\u00f3vil Intel® Core ™ 2 Solo",198:"Procesador Intel® Core ™ i7",199:"Procesador Intel® Celeron® de doble n\u00facleo"},HardwareInventory;
|
|
function processHardware(b,c,a,d){if(200==d){var e;b="<table class=log1 cellpadding=0 cellspacing=0 style=width:100%;border-radius:8px>";HardwareInventory=a;QV("go2",!0);b+=TableEnd("<div> "+AddRefreshButton("PullHardware(1)")+AddButton("Salvar...","SaveHardwareLog()")+" La informaci\u00f3n de hardware se recopila en el momento del arranque del sistema.");c=a.CIM_Chassis.response;d=a.CIM_Card.response;var v=a.CIM_BIOSElement.response.SoftwareElementID;b=b+"<br><h2>Plataforma</h2>"+FullTable({"Modelo de computadora":c.Model,
|
|
Fabricante:c.Manufacturer,"Versi\u00f3n":c.Version,"N\u00famero de serie":c.SerialNumber,"ID del sistema":guidToStr(a.CIM_SystemPackaging.responses[0].PlatformGUID).toLowerCase()},"");b+="<br><h2>Z\u00f3calo</h2>";b+=FullTable({Fabricante:d.Manufacturer,"Nombre del producto":d.Model,"Versi\u00f3n":d.Version,"N\u00famero de serie":d.SerialNumber,"Etiqueta de propiedad":d.Tag,"\u00bfReemplazable?":1==d.CanBeFRUed?"Yes":"No"},"");b+="<br><h2>BIOS</h2>";b+=FullTable({Vendedor:a.CIM_BIOSElement.response.Manufacturer,
|
|
"Versi\u00f3n":v,"Fecha de lanzamiento":(new Date(a.CIM_BIOSElement.response.ReleaseDate.Datetime)).toLocaleDateString("en",{timeZone:"UTC"})},"");b+="<br>";for(e in a.CIM_Processor.responses)c=a.CIM_Processor.responses[e],d=a.CIM_Chip.responses[e],b+="<h2>Procesador "+(parseInt(e)+1)+"</h2>",b+=FullTable({Fabricante:trademarks(d.Manufacturer),Familia:DMTFProcFamilly[c.Family],"Versi\u00f3n":trademarks(d.Version),"Velocidad m\u00e1xima del z\u00f3calo":c.MaxClockSpeed+" megahercio",Estado:DMTFCPUStatus[c.CPUStatus]},
|
|
"");b+="<br>";for(e in a.CIM_PhysicalMemory.responses)c=a.CIM_PhysicalMemory.responses[e],b+="<h2>M\u00f3dulo de memoria "+(+e+1)+"</h2>",b+=FullTable({"Etiqueta del banco":c.BankLabel,Fabricante:c.Manufacturer,"N\u00famero de serie":c.SerialNumber,Talla:parseInt(c.Capacity/1048576)+" MEGABYTE","Factor de forma":DMTFMemFormFactor[c.FormFactor],Tipo:DMTFMemType[c.MemoryType],"Etiqueta de propiedad":c.Tag,"N\u00famero de pieza":c.PartNumber},"");b+="<br>";for(e in a.CIM_MediaAccessDevice.responses)c=
|
|
a.CIM_MediaAccessDevice.responses[e],d=a.CIM_PhysicalPackage.responses[+e+1],b+="<h2>Medios de almacenamiento "+(parseInt(e)+1)+"</h2>",b+=FullTable({Modelo:d.Model,"N\u00famero de serie":""==d.SerialNumber?"Unknown":d.SerialNumber,Talla:parseInt(Math.round(1E3*c.MaxMediaSize/1048576))+" MEGABYTE"},"");b+="<br>";if(null!=a.CIM_Battery.response){c=null;for(e in a.CIM_PhysicalPackage.responses)11==a.CIM_PhysicalPackage.responses[e].PackageType&&(c=a.CIM_PhysicalPackage.responses[e]);null!=c&&(b+="<h2>Battery</h2>",
|
|
e=(new Date(c.ManufactureDate.Datetime)).toDateString(),a={"Device name":a.CIM_Battery.response.DeviceID,Fabricante:c.Manufacturer,"Manufacture date":e,"N\u00famero de serie":c.SerialNumber,Tipo:"Otro;Desconocido;Lead Acid;Nickel Cadmium;Nickel Metal Hydride;Lithium-ion;Zinc air;Lithium Polymer".split(";")[a.CIM_Battery.response.Chemistry],"Design capacity":a.CIM_Battery.response.DesignCapacity+" mWatt-hours","Design voltage":a.CIM_Battery.response.DesignVoltage+" mVolts"},c.OtherIdentifyingInfo&&
|
|
(a["Other Info"]=c.OtherIdentifyingInfo),b+=FullTable(a,""))}b+="<br>";QH(16,b);updateSystemStatus()}}function SaveHardwareLog(){!xxdialogMode&&HardwareInventory&&SaveJsonFile("IntelAmtHardware","hardware","Informaci\u00f3n de hardware de Intel AMT",HardwareInventory)}var AmtSystemPowerSchemes=null;function PullPowerPolicy(){amtstack.Enum("AMT_SystemPowerScheme",powerPolicyResponse)}function powerPolicyResponse(b,c,a,d){AmtSystemPowerSchemes=a;updateSystemStatus()}
|
|
function showPowerPolicyDlg(b){if(!xxdialogMode){for(var c="",a=0;a<AmtSystemPowerSchemes.length;a++)c+='<input type=radio name=powerpolicy value="'+AmtSystemPowerSchemes[a].InstanceID+'" '+(AmtSystemPowerSchemes[a].SchemeGUID==b?" checked":"")+">"+AmtSystemPowerSchemes[a].Description+"<br>";setDialogMode(11,"Pol\u00edtica de energ\u00eda Intel® AMT",3,showPowerPolicyDlgOk,c)}}
|
|
function showPowerPolicyDlgOk(){for(var b=null,c=0,a=document.getElementsByTagName("input");c<a.length;c++)"powerpolicy"==a[c].name&&a[c].checked&&(b=a[c].value);amtstack.AMT_SystemPowerScheme_SetPowerScheme(showPowerPolicyDlgOkDone,b)}function showPowerPolicyDlgOkDone(b,c,a,d){200==d&&PullSystemStatus()}var xxAccountAdminName,xxAccountRealmInfo,xxAccountEnabledInfo={},xxAccountFetch,showHiddenAccounts=!1;
|
|
function PullUserInfo(){xxAccountFetch=1;delete xxAccountAdminName;xxAccountRealmInfo={};amtstack.AMT_AuthorizationService_GetAdminAclEntry(getAdminAclEntryResponse);amtstack.AMT_AuthorizationService_EnumerateUserAclEntries(1,enumerateUserAclEntriesResponse)}function getAdminAclEntryResponse(b,c,a,d){200==d&&(xxAccountRealmInfo[-1]={AccessPermission:999,DigestUsername:a.Body.Username,Realms:null},xxAccountAdminName=a.Body.Username,updateAccounts())}
|
|
function enumerateUserAclEntriesResponse(b,c,a,d){if(200==d){methodcheck(a);QV("go11",!0);xxAccountFetch=a.Body.Handles.length;for(var e in a.Body.Handles)b=a.Body.Handles[e],amtstack.AMT_AuthorizationService_GetAclEnabledState(b,getAclEnabledStateResponse,b),amtstack.AMT_AuthorizationService_GetUserAclEntryEx(b,getUserAclEntryExResponse,b);updateAccounts()}}
|
|
function getUserAclEntryExResponse(b,c,a,d,e){xxAccountFetch--;200==d&&(a.Body.Handle=e,a.Body.Realms?Array.isArray(a.Body.Realms)||(a.Body.Realms=[a.Body.Realms]):a.Body.Realms=[],xxAccountRealmInfo[e]=a.Body,updateAccounts())}function getAclEnabledStateResponse(b,c,a,d,e){200==d&&(xxAccountEnabledInfo[e]=a.Body,updateAccounts())}function setAclEnabledStateResponse(b,c,a,d,e){errcheck(d,b)||(methodcheck(a),amtstack.AMT_AuthorizationService_GetAclEnabledState(e,getAclEnabledStateResponse,e))}
|
|
function updateAccounts(){if(!(0<xxAccountFetch)){var b=TableStart2(),b=b+"<tr><td class=r1 style=padding-left:15px><br>Administre las cuentas de usuario Intel® AMT para esta computadora.<br><br>",c;for(c in xxAccountRealmInfo){var a=xxAccountRealmInfo[c],d,e=!1,v=0;a.DigestUsername?(d=a.DigestUsername,e="$"==d[0]&&"$"==d[1]):d=GetSidString(atob(a.KerberosUserSid));xxAccountEnabledInfo[c]&&"$$OsAdmin"!=d&&(v=1==xxAccountEnabledInfo[c].Enabled?1:2);if(showHiddenAccounts||!e){var n="";if(999!=a.AccessPermission){2==
|
|
v&&(n+="Discapacitado,");var l=0;for(c in a.Realms)""!=amtstack.RealmNames[a.Reinos[c]]&&l++;0<=a.Realms.indexOf(20)&&(n+="Auditor,");n=0<=a.Realms.indexOf(3)?n+"Administrador":1==l?n+"1 reino":n+(l+" reinos")}else n+="Administrador",a.Handle=-1;b+="<div class=itemBar onclick=showUserDetails("+a.Handle+")><div style=float:right>";0<v&&xxAccountAdminName&&(b+=" "+AddButton2(1==v?"Disable":"Enable","changeAccountStateButton(event,"+a.Handle+","+v+")"));!e&&xxAccountAdminName&&(b+=" "+AddButton2("Editar...",
|
|
"changeAccountButton(event,"+a.Handle+")"));b+='</div><div style=padding-top:3px;width:330px;float:left;overflow-x:hidden title="'+d+'"><b>'+d+"</b></div><div style=padding-top:3px>"+n+"</div></div>"}}c='<div style=float:right;margin-right:8px><a title="Alternar cuentas ocultas" style=color:gray;cursor:pointer onclick=toggleAccountButton()>'+(showHiddenAccounts?"▲":"▼")+"</a></div><div> "+AddRefreshButton("xxAccountFetch=999;PullUserInfo()");xxAccountAdminName&&(c+=AddButton("Nueva cuenta",
|
|
"newAccountButton()"));b+="<br><td class=r1>"+TableEnd(c+"</div>");QH(21,b)}}function toggleAccountButton(){showHiddenAccounts=!showHiddenAccounts;updateAccounts()}function removeUserAclEntryResponse(b,c,a,d,e){methodcheck(a)||PullUserInfo()}function changeAccountStateButton(b,c,a){haltEvent(b);xxdialogMode||amtstack.AMT_AuthorizationService_SetAclEnabledState(c,1==a?!1:!0,setAclEnabledStateResponse,c)}
|
|
function changeAccountButton(b,c){haltEvent(b);xxdialogMode||(updateRealms(xxAccountRealmInfo[c].Realms),d2username.value=xxAccountRealmInfo[c].DigestUsername?xxAccountRealmInfo[c].DigestUsername:GetSidString(atob(xxAccountRealmInfo[c].KerberosUserSid)),d2password1.value=d2password2.value="",d2permission.value=xxAccountRealmInfo[c].AccessPermission,setDialogMode(2,"Editar cuenta",-1==c?3:7,function(a){changeAccountButtonEx(c,a)}),updateAccountDialog())}
|
|
function newAccountButton(){xxdialogMode||(updateRealms([]),d2username.value=d2password1.value=d2password2.value="",d2permission.value=2,setDialogMode(2,"Nueva cuenta",3,function(){changeAccountButtonEx(null,1)}),updateAccountDialog())}
|
|
function changeAccountButtonEx(b,c){if(1==c){var a=[],d=d2username.value,e=d2permission.value,v=d2password1.value,n=GetSidByteArray(Q("d2username").value),l=null;if(0==d.length||v!=d2password2.value){messagebox("Error de cuenta","Par\u00e1metros inv\u00e1lidos");return}null==n?l=window.btoa(rstr_md5(d+":"+amtsysstate.AMT_GeneralSettings.response.DigestRealm+":"+v)):(d=null,n=btoa(n));if(-1!=b)for(var p in amtstack.RealmNames)(amtstack.RealmNames[p]||3==p)&&Q("rx"+p).checked&&a.push(p);null==b?amtstack.AMT_AuthorizationService_AddUserAclEntryEx(d,
|
|
l,n,e,a,userAclEntryExResponse):-1==b?amtstack.AMT_AuthorizationService_SetAdminAclEntryEx(d,l,userAclEntryExResponse):amtstack.AMT_AuthorizationService_UpdateUserAclEntryEx(b,d,l,n,e,a,userAclEntryExResponse)}2==c&&amtstack.AMT_AuthorizationService_RemoveUserAclEntry(b,removeUserAclEntryResponse)}function userAclEntryExResponse(b,c,a,d,e){methodcheck(a)||PullUserInfo()}
|
|
function updateRealms(b){QV(61,null!=b);if(null!=b){var c="<li><label><input type=checkbox onchange=updateAccountDialog() id=rx3"+(0<=b.indexOf(3)?" checked":"")+">Administrador</label></li><hr />",a;for(a in amtstack.RealmNames){var d="";0<=b.indexOf(parseInt(a))&&(d=" checked");amtstack.RealmNames[a]&&(c+="<li><label><input type=checkbox onchange=updateAccountDialog() id=rx"+a+d+">"+amtstack.RealmNames[a]+"</label></li>")}QH(62,c)}}
|
|
function updateAccountDialog(){var b=!0;if("none"!=Q(61).style.display){var b=!1,c;for(c in amtstack.RealmNames)(amtstack.RealmNames[c]||3==c)&&Q("rx"+c).checked&&(b=!0)}b&&(b=0<d2username.value.length&&passwordcheck(d2password1.value)&&d2password1.value==d2password2.value);QE("c54",b)}var xxUserPermissions=["Solo locales","Solo red","Todo (local y de red)"];
|
|
function showUserDetails(b){if(!xxdialogMode){var c=xxAccountRealmInfo[b],a="<div style=text-align:left>",d,e=c.DigestUsername;e||(e=GetSidString(atob(c.KerberosUserSid)));a+=addHtmlValue("Nombre",e);xxAccountEnabledInfo[b]&&(a+=addHtmlValue("Estado",1==xxAccountEnabledInfo[b].Enabled?"Habilitado":"Discapacitado"));if(e==xxAccountAdminName)a+=addHtmlValue("Permiso","Administrador");else{var a=a+addHtmlValue("Permiso",xxUserPermissions[c.AccessPermission]),v="";if(0<=c.Realms.indexOf(3))v="Administrador",
|
|
0<=c.Realms.indexOf(20)&&(v+="Auditor");else for(d in xxAccountRealmInfo[b].Realms)""!=amtstack.RealmNames[c.Realms[d]]&&(0<v.length&&(v+=","),v+=amtstack.RealmNames[c.Realms[d]]);0==v.length&&(v="Ninguna");a+=addHtmlValue("Reinos","")+"<b>"+v+"</b>"}messagebox("Cuenta"+e,a+"</div>")}}
|
|
function wsmanQuery(){QH(24,"");var b=getSelectedOptions(Q(22)),c=[],a;for(a in b)""==QS("WSB-"+b[a]).display&&c.push(b[a]);0!=c.length&&(QE(23,!1),c&&0<c.length&&amtstack.BatchEnum("Navegador",c,browserResponse,null,!0))}
|
|
function browserResponse(b,c,a,d){QE(23,!0);b="";for(var e in a)c=a[e],b+="<h2>"+e+"</h2><div style=margin-left:20px>",b=200==c.status?0==c.responses.length?b+"<br>(Vac\u00edo)":b+ObjectToString(c.responses).replace(/Intel\(r\)/g,"Intel®"):b+("<br><div style=color:red>Error #"+c.status+"</div>"),b+="</div><br>";QH(24,b)}
|
|
function wsmanFilter(){var b=c0.value.toLowerCase(),c;for(c in AllWsman)QV("WSB-"+AllWsman[c],""==b||0<=AllWsman[c].toLowerCase().indexOf(b))}function connectTerminal(){terminal&&(0==terminal.State?(terminal.tlsv1only=amtstack.wsman.comm.tlsv1only,terminal.Start(currentMeshNode._id,16994,"*","*",0)):terminal.Stop())}
|
|
function onTerminalStateChange(b,c){c4.value=0==c?"Conectar":"Desconectar";Q(29).textContent=StatusStrs[c];QE(34,3==c);QE("TermWD",3==c);switch(c){case 0:b.m.TermResetScreen();b.m.TermDraw();3==xxdialogMode&&setDialogMode();QV("termRecordIcon",!1);2==b.disconnectCode?messagebox("Remote Terminal","The remote device is busy, a session may already be open."):3==b.disconnectCode&&messagebox("Remote Terminal","The device indicated that this type of connection of not supported.");
|
|
break;case 3:1==b.serverIsRecording&&QV("termRecordIcon",!0)}}function termPaste(){terminal.m.TermSendKeys(d3pastetextarea.value);return!1}function termSendKey(b){terminal.m.TermSendKey(b);return!1}function termSendKeys(){var b=Q("termkeys").value;1E3>b?termSendKey(b):terminal.m.TermHandleKeyDown({which:b-889,repeat:!1})}function termToggleSize(){80==terminal.m.width?(Q(31).value="100x30",terminal.m.Init(100,30)):(Q(31).value="80x25",terminal.m.Init(80,25))}
|
|
var terminalEmulations=["Terminal UTF8","ASCII extendido","Intel ASCII"];function termToggleType(){terminal.m.terminalEmulation=(terminal.m.terminalEmulation+1)%3;Q(33).value=terminalEmulations[terminal.m.terminalEmulation]}function termToggleFx(){Q(32).value=["Intel (F10 = ESC + [OM)","Alternativo (F10 = ESC + 0)","VT100 + (F10 = ESC + [OY)"][terminal.m.fxEmulation=(terminal.m.fxEmulation+1)%3]}
|
|
function termToggleCr(){"\r\n"==terminal.m.lineFeed?(Q(30).value="LF",terminal.m.lineFeed="\n"):(Q(30).value="CR + LF",terminal.m.lineFeed="\r\n")}
|
|
function terminalCaptureToggle(b){if(!xxdialogMode)if(void 0==terminal.m.capture)terminal.m.capture="",c3.value="Detener captura";else{if(0<terminal.m.capture.length){b="TerminalCapture";var c=new Date;amtsysstate&&(b+="-"+amtsysstate.AMT_GeneralSettings.response.HostName);b+="-"+c.getFullYear()+"-"+("0"+(c.getMonth()+1)).slice(-2)+"-"+("0"+c.getDate()).slice(-2)+"-"+("0"+c.getHours()).slice(-2)+"-"+("0"+c.getMinutes()).slice(-2);saveAs(data2blob(terminal.m.capture),b+".txt")}delete terminal.m.capture;
|
|
c3.value="Iniciar captura"}}function terminal_FileSelectHandler(b){haltEvent(b);if(3==terminal.State&&null!=b.dataTransfer&&1==b.dataTransfer.files.length){var c=new FileReader;c.onload=terminal_onSetupBinRead;c.readAsText(b.dataTransfer.files[0])}}function terminal_onSetupBinRead(b){d3pastetextarea.value=b.target.result;setDialogMode(3,"Pegar",3,termPaste)}var desktopScreenInfo=null,desktopPollTimer=null,webRtcDesktop=null;
|
|
function webRtcDesktopReset(){if(null!=webRtcDesktop){null!=webRtcDesktop.softdesktop&&(webRtcDesktop.softdesktop.Stop(),webRtcDesktop.softdesktop=null);if(null!=webRtcDesktop.webchannel){try{webRtcDesktop.webchannel.close()}catch(b){}webRtcDesktop.webchannel=null}if(null!=webRtcDesktop.webrtc){try{webRtcDesktop.webrtc.close()}catch(b){}webRtcDesktop.webrtc=null}webRtcDesktop=null;desktop.m.hold(!1);updateDesktopState();p24files=null;p24downloadFileCancel();p24uploadFileCancel();QV("go24",!1);24==
|
|
currentView&&go(14)}}function connectDesktopButton(b){desktop.disconnectCode=0;connectDesktop(b)}var connectDesktopConsent=!1;
|
|
function connectDesktop(b){desktop&&!xxdialogMode&&(connectDesktopConsent=!1,0==desktop.State?!0!==b&&5<amtversion&&null!=amtsysstate&&null!=amtsysstate.IPS_OptInService&&void 0!=amtsysstate.IPS_OptInService.response&&4294967295==amtsysstate.IPS_OptInService.response.OptInRequired?(connectDesktopConsent=!0,amtstack.Get("IPS_OptInService",powerActionResponse0,0,1)):(desktop.m.useRLE=0!=(desktopsettings.encflags&1),desktop.m.bpp=desktopsettings.encflags&2?2:1,15<amtversion&&null!=amtsysstate&&null!=
|
|
amtsysstate.IPS_KVMRedirectionSettingData&&amtsysstate.IPS_KVMRedirectionSettingData.response?(desktop.m.lowcolor=amtsysstate.IPS_KVMRedirectionSettingData.response.GrayscalePixelFormatSupported&&0!=(desktopsettings.encflags&16),desktop.m.graymode=amtsysstate.IPS_KVMRedirectionSettingData.response.GrayscalePixelFormatSupported&&0!=(desktopsettings.encflags&4),desktop.m.useZLib=amtsysstate.IPS_KVMRedirectionSettingData.response.ZlibControlSupported&&0!=(desktopsettings.encflags&8),desktop.m.decimation=
|
|
amtsysstate.IPS_KVMRedirectionSettingData.response.InitialDecimationModeForLowRes&&desktopsettings.decimation):(desktop.m.lowcolor=!1,desktop.m.graymode=!1,desktop.m.useZLib=!1,desktop.m.decimation=!1),desktop.m.showmouse=desktopsettings.showmouse,desktop.m.onScreenSizeChange=center,desktop.m.onKvmData=function(b){var a=null;try{a=JSON.parse(b)}catch(d){}null!=a&&null!=a.action&&("restart"==a.action?(webRtcDesktopReset(),desktop.m.sendKvmData(JSON.stringify({action:"present",ver:1}))):"present"==
|
|
a.action&&null==webRtcDesktop?(webRtcDesktop={platform:a.platform},"undefined"!==typeof RTCPeerConnection?webRtcDesktop.webrtc=new RTCPeerConnection(null):"undefined"!==typeof webkitRTCPeerConnection&&(webRtcDesktop.webrtc=new webkitRTCPeerConnection(null)),webRtcDesktop.webchannel=webRtcDesktop.webrtc.createDataChannel("DataChannel",{}),webRtcDesktop.webchannel.onopen=function(){urlvars&&urlvars.kvmdatatrace&&console.log("WebRTC Data Channel Open");desktop.m.hold(!0);webRtcDesktop.webRtcActive=!0;
|
|
webRtcDesktop.softdesktop=CreateKvmDataChannel(webRtcDesktop.webchannel,CreateAgentRemoteDesktop("Desk",Q(8)),desktop.m);webRtcDesktop.softdesktop.m.setRotation(desktop.m.rotation);desktopsettings.quality&&(webRtcDesktop.softdesktop.m.CompressionLevel=desktopsettings.quality);desktopsettings.scaling&&(webRtcDesktop.softdesktop.m.ScalingLevel=desktopsettings.scaling);webRtcDesktop.softdesktop.Start();updateDesktopState();QV("go24",!0);downloadFile=null;p24files=webRtcDesktop.softdesktop;
|
|
p24targetpath="";webRtcDesktop.softdesktop.onControlMsg=onFilesControlData;webRtcDesktop.softdesktop.sendCtrlMsg(JSON.stringify({action:"ls",reqid:1,path:""}))},webRtcDesktop.webchannel.onclose=function(a){urlvars.kvmdatatrace&&console.log("WebRTC Data Channel Closed");webRtcDesktopReset()},webRtcDesktop.webrtc.onicecandidate=function(a){null==a.candidate?desktop.m.sendKvmData(JSON.stringify({action:"offer",ver:1,sdp:webRtcDesktop.webrtcoffer.sdp})):webRtcDesktop.webrtcoffer.sdp+="a="+a.candidate.candidate+
|
|
"\r\n"},webRtcDesktop.webrtc.oniceconnectionstatechange=function(){null==webRtcDesktop||null==webRtcDesktop.webrtc||"disconnected"!=webRtcDesktop.webrtc.iceConnectionState&&"failed"!=webRtcDesktop.webrtc.iceConnectionState||webRtcDesktopReset()},webRtcDesktop.webrtc.createOffer(function(a){webRtcDesktop.webrtcoffer=a;webRtcDesktop.webrtc.setLocalDescription(a,function(){},webRtcDesktopReset)},webRtcDesktopReset,{mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}})):"answer"==a.action&&null!=
|
|
webRtcDesktop&&webRtcDesktop.webrtc.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:a.sdp}),function(){},webRtcDesktopReset))},desktop.m.kvmExtChanged=15<amtversion||urlvars.kvmext?updateDesktopState:null,desktop.m.frameRateDelay=1==desktopsettings.limitFrameRate?200:0,desktop.m.noMouseRotate=desktopsettings.noMouseRotate,desktop.tlsv1only=amtstack.wsman.comm.tlsv1only,desktop.Start(currentMeshNode._id,16994,"*","*",0),PullDesktopDisplayInfo(),urlvars.norefresh||(desktopPollTimer=
|
|
setInterval(PullDesktopDisplayInfo,5E3))):(desktop.Stop(),clearInterval(desktopPollTimer),desktopPollTimer=null,PullDesktopDisplayInfo(),webRtcDesktopReset()))}function PullDesktopDisplayInfo(){7<amtversion&&0<desktop.State?amtstack.BatchEnum("",["*IPS_ScreenSettingData","*IPS_KVMRedirectionSettingData"],ProcessDesktopDisplayInfo):(desktopScreenInfo=null,Q(42).innerHTML="")}
|
|
function ProcessDesktopDisplayInfo(b,c,a,d){200!=d?desktopScreenInfo=null:(desktopScreenInfo=a.IPS_ScreenSettingData.responses.Body,desktopScreenInfo.KVMRSD=a.IPS_KVMRedirectionSettingData.responses.Body,UpdateDesktopDisplayInfo())}
|
|
function UpdateDesktopDisplayInfo(){for(var b="",c=0,a=0;3>a;a++)1==desktopScreenInfo.IsActive[a]&&(c++,b+='<input type="button" '+(a==desktopScreenInfo.KVMRSD.DefaultScreen?'style="background-color:DodgerBlue"':"")+' value="'+(a+1)+'" title="Switch to screen '+(a+1)+'" onkeypress="return false" onkeydown="return false" onclick="desktopSwitchScreen('+a+')"> ');1<c?Q(42).innerHTML=b+" ":Q(42).innerHTML=""}
|
|
function desktopSwitchScreen(b){var c=Clone(desktopScreenInfo.KVMRSD);c.DefaultScreen=b;amtstack.Put("IPS_KVMRedirectionSettingData",c,desktopSwitchScreenEx)}function desktopSwitchScreenEx(b,c,a,d){200==d&&(desktopScreenInfo.KVMRSD=a.Body,UpdateDesktopDisplayInfo())}
|
|
function onDesktopStateChange(b,c){var a=!1;c10.value=0==c?"Conectar":"Desconectar";var d=3==c&&!urlvars.kvmviewonly;QE(43,d);QE("deskkeys",d);QE("DeskWD",d);QE(44,d);switch(c){case 0:webRtcDesktopReset();QV("deskRecordIcon",!1);2==b.disconnectCode?messagebox("Escritorio remoto","The remote device is busy, a session may already be open."):3==b.disconnectCode?messagebox("Escritorio remoto","The device indicated that this type of connection of not supported."):5E4==
|
|
b.disconnectCode?messagebox("Escritorio remoto","KVM disconnection, they may indicate that Intel AMT is unable to capture the display (Try RLE8 encoding), or unsupported GPU."):50001==b.disconnectCode&&(a=!0);break;case 3:12<=amtversion&&b.m.sendKvmData(JSON.stringify({action:"present",ver:1})),1==b.serverIsRecording&&QV("deskRecordIcon",!0)}center();updateDesktopState();a&&setTimeout(connectDesktop,200)}
|
|
function updateDesktopState(){var b="";3==desktop.State&&(webRtcDesktop&&1==webRtcDesktop.webRtcActive?b=", Soft-KVM":desktop.m&&desktop.m.kvmExt&&1==desktop.m.kvmExt.compression&&(b+=", Compressed"));Q(40).textContent=StatusStrs[desktop.State]+b}function showDesktopSettings(){xxdialogMode||(applyDesktopSettings(),setDialogMode(7,"Configuraci\u00f3n de escritorio remoto",3,showDesktopSettingsChanged))}
|
|
function showDesktopSettingsChanged(){desktopsettings.encflags=parseInt(c11.value);desktopsettings.showmouse=d7showcursor.checked;desktopsettings.showcad=d7showcad.checked;desktopsettings.limitFrameRate=d7limitFrameRate.checked;desktopsettings.noMouseRotate=d7noMouseRotate.checked;desktopsettings.quality=d7bitmapquality.value;desktopsettings.scaling=d7bitmapscaling.value;try{localStorage.setItem("desktopsettings",JSON.stringify(desktopsettings))}catch(b){}applyDesktopSettings();desktop.m.frameRateDelay=
|
|
1==desktopsettings.limitFrameRate?200:0;0!=desktop.State&&(desktop.disconnectCode=0,desktop.Stop(),setTimeout(connectDesktop,800))}
|
|
function applyDesktopSettings(){d7showcursor.checked=desktopsettings.showmouse;d7showcad.checked=desktopsettings.showcad;d7limitFrameRate.checked=desktopsettings.limitFrameRate;d7noMouseRotate.checked=desktopsettings.noMouseRotate;desktopsettings.quality&&(d7bitmapquality.value=desktopsettings.quality);desktopsettings.scaling&&(d7bitmapscaling.value=desktopsettings.scaling);QV("d7softkvmsettings",12<=amtversion);var b=desktopsettings.encflags,c="";15<amtversion&&null!=amtsysstate&&null!=amtsysstate.IPS_KVMRedirectionSettingData&&
|
|
amtsysstate.IPS_KVMRedirectionSettingData.response?(amtsysstate.IPS_KVMRedirectionSettingData.response.GrayscalePixelFormatSupported||(b&=11),amtsysstate.IPS_KVMRedirectionSettingData.response.ZlibControlSupported||(b&=23),amtsysstate.IPS_KVMRedirectionSettingData.response.GrayscalePixelFormatSupported&&(c+='<option id="d7exm1" value=21>RLE4G, 16 Grays</option><option id="d7exm2" value=5>RLE8G, 256 Grays</option>'),c+="<option value=1>RLE8, 256 Colors</option>",c+="<option value=3>RLE16, 64k Colors</option>",
|
|
amtsysstate.IPS_KVMRedirectionSettingData.response.ZlibControlSupported&&(amtsysstate.IPS_KVMRedirectionSettingData.response.GrayscalePixelFormatSupported&&(c+='<option id="d7exm3" value=29>ZRLE4G, Compressed Gray</option>',c+='<option id="d7exm4" value=13>ZRLE8G, Compressed Gray</option>'),c+='<option id="d7exm5" value=9>ZRLE8, Compressed Color</option>',c+='<option id="d7exm6" value=11>ZRLE16, Compressed Color</option>'),QV("d7decimationspan",0<amtsysstate.IPS_KVMRedirectionSettingData.response.InitialDecimationModeForLowRes)):
|
|
(b&=3,c+="<option value=1>RLE8, 256 Colors</option>",c+="<option value=3>RLE16, 64k Colors</option>",QV("d7decimationspan",!1));c+="<option value=0>RAW8, 256 Colors</option>";c+="<option value=2>RAW16, 16k Colors</option>";QH("c11",c);c11.value=b;QV(43,desktopsettings.showcad)}var fullscreen=!1,fullscreenonly=!1;
|
|
function deskToggleFull(b){xxdialogMode||(1==fullscreenonly?(console.log("deskToggleFull1",fullscreenonly,urlvars.kvmonly),fullscreenonly=!1,1==urlvars.kvmonly?console.log("deskToggleFull2"):disconnect()):(fullscreenonly=b,fullscreen=!fullscreen,QV(7,!fullscreen),QV(35,!fullscreen),QV("c5",!fullscreen),QV("c9",fullscreen),fullscreen?(QS(8).left=0,QS(14).padding=0):(QS(8).left="156px",QS(14).padding=
|
|
"8px"),center()))}
|
|
function deskShowTypeDialog(){xxdialogMode||3!=desktop.State||(Q(44).blur(),setDialogMode(11,"Entrada remota de teclado",3,showDeskTypeEx,'<div>Ingrese el texto y haga clic en Aceptar para escribirlo de forma remota con un teclado de ingl\u00e9s de EE. UU. Aseg\u00farese de colocar el cursor remoto en la posici\u00f3n correcta antes de continuar.<div><textarea id=d2typeText style="margin-top:5px;width:100%;height:184px;resize:none" maxlength=2000></textarea>'),Q("d2typeText").focus())}
|
|
var AmtDeskTypeTimer=null,AmtDeskTypeContent=null,DeskTypeTranslate={39:222,42:106,43:107,44:188,45:189,46:190,47:191,59:186,61:187,91:219,92:220,93:221,96:192,191:111},DeskTypeShiftTranslate={33:49,34:222,35:51,36:52,37:53,38:55,40:57,41:48,58:186,60:188,62:190,63:191,64:50,94:54,95:189,106:56,107:187,123:219,124:220,125:221,126:192};
|
|
function showDeskTypeEx(){var b=Q("d2typeText").value;Q("d2typeText").value.toUpperCase();var c=[],a;for(a in b){var d=b.charCodeAt(a);c.push([d,1],[d,0])}AmtDeskTypeContent=c;AmtDeskTypeTimer=setInterval(function(){var a=AmtDeskTypeContent.shift();desktop&&desktop.m.sendkey(a[0],a[1]);if(null==desktop||0==AmtDeskTypeContent.length)clearInterval(AmtDeskTypeTimer),AmtDeskTypeContent=null},10)}function sendCAD(){Q(48).checked||desktop.m.sendcad()}
|
|
var deskkeysset={0:[[65511,1],[65511,0]],1:[[65511,1],[65364,1],[65364,0],[65511,0]],2:[[65511,1],[65362,1],[65362,0],[65511,0]],3:[[65511,1],[108,1],[108,0],[65511,0]],4:[[65511,1],[109,1],[109,0],[65511,0]],5:[[65505,1],[65511,1],[109,1],[109,0],[65511,0],[65505,0]],6:[[65470,1],[65470,0]],7:[[65471,1],[65471,0]],8:[[65472,1],[65472,0]],9:[[65473,1],[65473,0]],10:[[65474,1],[65474,0]],11:[[65475,1],[65475,0]],12:[[65476,1],[65476,0]],13:[[65477,1],[65477,0]],14:[[65478,1],[65478,0]],15:[[65479,
|
|
1],[65479,0]],16:[[65480,1],[65480,0]],17:[[65481,1],[65481,0]],19:[[65513,1],[65289,1],[65289,0],[65513,0]],20:[[65511,1],[114,1],[114,0],[65511,0]],21:[[65513,1],[65473,1],[65473,0],[65513,0]],22:[[65507,1],[119,1],[119,0],[65507,0]],23:[[65511,1],[65361,1],[65361,0],[65511,0]],24:[[65511,1],[65363,1],[65363,0],[65511,0]]};
|
|
function deskSendKeys(){if(!Q(48).checked){var b=Q("deskkeys").value;if(null!=b&&null!=deskkeysset[b]&&0!=desktop.State)for(var c=0;c<deskkeysset[b].length;c++)desktop.m.sendkey(deskkeysset[b][c][0],deskkeysset[b][c][1])}}
|
|
function deskSaveImage(){if(!(xxdialogMode||3!=desktop.State||urlvars&&urlvars.norecord)){var b="Desktop",c=new Date;amtsysstate&&(b+="-"+amtsysstate.AMT_GeneralSettings.response.HostName);b+="-"+c.getFullYear()+"-"+("0"+(c.getMonth()+1)).slice(-2)+"-"+("0"+c.getDate()).slice(-2)+"-"+("0"+c.getHours()).slice(-2)+"-"+("0"+c.getMinutes()).slice(-2);Q("Desk").toBlob(function(a){saveAs(a,b+".jpg")})}}
|
|
function dmousedown(b){xxdialogMode||Q(48).checked||(null!=webRtcDesktop&&null!=webRtcDesktop.softdesktop?(webRtcDesktop.softdesktop.m.mousedown(b),desktop.m.sendKeepAlive()):desktop.m.mousedown(b))}function dmouseup(b){xxdialogMode||Q(48).checked||(null!=webRtcDesktop&&null!=webRtcDesktop.softdesktop?(webRtcDesktop.softdesktop.m.mouseup(b),desktop.m.sendKeepAlive()):desktop.m.mouseup(b))}
|
|
function dmousemove(b){xxdialogMode||Q(48).checked||(null!=webRtcDesktop&&null!=webRtcDesktop.softdesktop?(webRtcDesktop.softdesktop.m.mousemove(b),desktop.m.sendKeepAlive()):desktop.m.mousemove(b))}function dmousewheel(b){xxdialogMode||Q(48).checked||null==webRtcDesktop||null==webRtcDesktop.softdesktop||(webRtcDesktop.softdesktop.m.mousewheel(b),desktop.m.sendKeepAlive())}
|
|
function drotate(b){xxdialogMode||(b=desktop.m.rotation+b,desktop.m.setRotation(b),null!=webRtcDesktop&&null!=webRtcDesktop.softdesktop&&null!=webRtcDesktop.softdesktop.m&&webRtcDesktop.softdesktop.m.setRotation(b),center())}var p24files=null,p24filetree=null,p24targetpath=null,p24filetreelocation=[];
|
|
function onFilesControlData(b){if(0<b.length&&123!=b.charCodeAt(0))p24gotDownloadBinaryData(b);else if(b=JSON.parse(b),"download"==b.action)p24gotDownloadCommand(b);else if("upload"==b.action)p24gotUploadData(b);else if("pong"!=b.action)if(b.path=b.path.replace(/\//g,"\\"),null!=p24filetree&&b.path==p24filetree.path){var c=p24getCheckedNames();p24filetree=b;p24updateFiles(c)}else{for(var c=b.path.split("/").join("\\"),a=p24targetpath.split("/").join("\\");0<c.length&&"\\"==c[0];)c=c.substring(1);
|
|
for(;0<a.length&&"\\"==a[0];)a=a.substring(1);if(c==a||"\\"==b.path&&""==p24targetpath)p24filetree=b,p24updateFiles()}}function p24getCheckedNames(){for(var b=[],c=document.getElementsByName("fd"),a=0;a<c.length;a++)c[a].checked&&b.push(p24filetree.dir[c[a].value].n);return b}
|
|
function p24updateFiles(b){var c="",a="",d="<a style=cursor:pointer onclick=p24folderup(0)>Ra\u00edz</a>",e=p24filetree.path.split("\\");p24filetreelocation=[];for(var v in e)""!=e[v]&&p24filetreelocation.push(e[v]);for(v in p24filetreelocation)d+=" / <a style=cursor:pointer onclick=p24folderup("+(parseInt(v)+1)+")>"+p24filetreelocation[v]+"</a>";var e=p24filetreelocation.join("/"),n=p24sort_files(p24filetree.dir);for(v in n){var l=n[v],p=l.n,q;q=70<p.length?'<span title="'+EscapeHtml(p)+'">'+EscapeHtml(p.substring(0,
|
|
70))+"...</span>":EscapeHtml(p);var p=EscapeHtml(p),h="";null!=l.d&&(h=new Date(l.d),h=h.getMonth()+1+"/"+h.getDate()+"/"+h.getFullYear()+" "+h.toLocaleTimeString()+" ");var B="";null!=l.s&&(B=getFileSizeStr(l.s));var w="";3>l.t?w='<div class=filelist file=999><input file=999 style=float:left name=fd class=fcb type=checkbox onchange=p24setActions() value="'+l.nx+'"> <span style=float:right title=""></span><span><div class=fileIcon'+l.t+'></div><a style=cursor:pointer onclick=p24folderset("'+
|
|
encodeURIComponent(l.nx)+'")>'+q+"</a></span></div>":(w=q,0<l.s&&(w='<a rel="noreferrer noopener" target="_blank" style=cursor:pointer onclick=\'p24downloadfile("'+encodeURIComponent(e+"/"+p)+'","'+encodeURIComponent(p)+'",'+l.s+")'>"+q+"</a>"),w='<div class=filelist file=3><input file=3 style=float:left name=fd class=fcb type=checkbox onchange=p24setActions() value="'+l.nx+'"> <span class=fsize>'+h+"</span><span style=float:right>"+B+"</span><span><div class=fileIcon"+l.t+"></div>"+w+"</span></div>");
|
|
3>l.t?c+=w:a+=w}QH("p24files",c+a);QH("p24currentpath",d);QE("p24FolderUp",0!=p24filetreelocation.length);if(null!=b)for(c=document.getElementsByName("fd"),v=0;v<c.length;v++)0<=b.indexOf(p24filetree.dir[c[v].value].n)&&(c[v].checked=!0);p24setActions()}function p24folderset(b){p24targetpath=joinPaths(p24filetree.path,p24filetree.dir[b].n).split("\\").join("/");p24files.sendCtrlMsg(JSON.stringify({action:"ls",reqid:1,path:p24targetpath}))}
|
|
function p24folderup(b){if(null==b)p24filetreelocation.pop();else for(;p24filetreelocation.length>b;)p24filetreelocation.pop();p24targetpath=p24filetreelocation.join("/");p24files.sendCtrlMsg(JSON.stringify({action:"ls",reqid:1,path:p24targetpath}))}var p24sortorder;function p24sort_filename(b,c){return b.ln>c.ln?1*p24sortorder:b.ln<c.ln?-1*p24sortorder:0}function p24sort_timestamp(b,c){return b.d>c.d?1*p24sortorder:b.d<c.d?-1*p24sortorder:0}
|
|
function p24sort_bysize(b,c){return b.s==c.s?p24sort_filename(b,c):(b.s-c.s)*p24sortorder}function p24sort_files(b){var c=[],a=Q("p24sortdropdown").value,d;for(d in b)b[d].nx=d,null==b[d].s&&(b[d].s=0),null==b[d].n&&(b[d].n=d),b[d].ln=b[d].n.toLowerCase(),c.push(b[d]);p24sortorder=1;3<a&&(p24sortorder=-1,a-=3);1==a?c.sort(p24sort_filename):2==a?c.sort(p24sort_bysize):3==a&&c.sort(p24sort_timestamp);return c}
|
|
function p24setActions(){if(null==p24filetree)QE("p24DeleteFileButton",!1),QE("p24NewFolderButton",!1),QE("p24UploadButton",!1),QE("p24RenameFileButton",!1),QE("p24SelectAllButton",!1),Q("p24SelectAllButton").value="Seleccionar todo",QE("p24RefreshButton",!1),QE("p24CutButton",!1),QE("p24CopyButton",!1),QE("p24PasteButton",!1);else{var b=p24getFileSelCount(),c=p24getFileCount(),a=p24getFileSelCount(!1),d="win32"==webRtcDesktop.platform;QE("p24DeleteFileButton",0<b&&(0<p24filetreelocation.length||
|
|
0==d));QE("p24NewFolderButton",0<p24filetreelocation.length||0==d);QE("p24UploadButton",0<p24filetreelocation.length||0==d);QE("p24RenameFileButton",1==b&&(0<p24filetreelocation.length||0==d));QE("p24SelectAllButton",0<c);Q("p24SelectAllButton").value=0<b?"No seleccionar ninguno":"Seleccionar todo";QE("p24RefreshButton",!0);QE("p24CutButton",0<b&&b==a&&(0<p24filetreelocation.length||0==d));QE("p24CopyButton",0<b&&b==a&&(0<p24filetreelocation.length||0==d));QE("p24PasteButton",(0<p24filetreelocation.length||
|
|
0==d)&&null!=p24clipboard&&0<p24clipboard.length)}}function p24getFileSelCount(b){for(var c=0,a=document.getElementsByName("fd"),d=0;d<a.length;d++)!a[d].checked||0==b&&"3"!=a[d].attributes.file.value||c++;return c}function p24getFileCount(){return document.getElementsByName("fd").length}function p24selectallfile(){for(var b=0==p24getFileSelCount(),c=document.getElementsByName("fd"),a=0;a<c.length;a++)c[a].checked=b;p24setActions()}
|
|
function p24createfolder(){setDialogMode(11,"Nueva carpeta",3,p24createfolderEx,"<input type=text id=p24renameinput maxlength=64 onkeyup=p24fileNameCheck(event) style=width:100% />");focusTextBox("p24renameinput");p24fileNameCheck()}function p24createfolderEx(){p24files.sendCtrlMsg(JSON.stringify({action:"mkdir",reqid:1,path:p24filetreelocation.join("/")+"/"+Q("p24renameinput").value}));p24folderup(999)}
|
|
function p24deletefile(){var b=p24getFileSelCount();setDialogMode(11,"Eliminar",3,p24deletefileEx,1<b?"Delete "+b+" selected items?":"Delete selected item?")}function p24deletefileEx(){for(var b=[],c=document.getElementsByName("fd"),a=0;a<c.length;a++)c[a].checked&&b.push(p24filetree.dir[c[a].value].n);p24files.sendCtrlMsg(JSON.stringify({action:"rm",reqid:1,path:p24filetreelocation.join("/"),delfiles:b}));p24folderup(999)}
|
|
function p24renamefile(){for(var b,c=document.getElementsByName("fd"),a=0;a<c.length;a++)c[a].checked&&(b=p24filetree.dir[c[a].value].n);setDialogMode(11,"Rebautizar",3,p24renamefileEx,'<input type=text id=p24renameinput maxlength=64 onkeyup=p24fileNameCheck(event) style=width:100% value="'+b+'" />',{action:"rename",path:p24filetreelocation.join("/"),oldname:b});focusTextBox("p24renameinput");p24fileNameCheck()}
|
|
function p24renamefileEx(b,c){c.newname=Q("p24renameinput").value;p24files.sendCtrlMsg(JSON.stringify(c));p24folderup(999)}function p24fileNameCheck(b){var c=isFilenameValid(Q("p24renameinput").value);QE("c54",c);1==c&&null!=b&&24==b.keyCode&&dialogclose(1)}
|
|
function p24uploadFile(){setDialogMode(11,"Subir archivo",3,p24uploadFileEx,"<input type=file name=files id=p24uploadinput style=width:100% multiple=multiple onchange=\"updateUploadDialogOk('p24uploadinput')\" />");updateUploadDialogOk("p24uploadinput")}function p24uploadFileEx(){p24doUploadFiles(Q("p24uploadinput").files)}function updateUploadDialogOk(b){QE("c54",""!=Q(b).value)}var p24clipboard=null,p24clipboardFolder=null,p24clipboardCut=0;
|
|
function p24copyFile(b){var c=document.getElementsByName("fd");p24clipboard=[];p24clipboardCut=b;p24clipboardFolder=p24targetpath;for(b=0;b<c.length;b++)c[b].checked&&"3"==c[b].attributes.file.value&&p24clipboard.push(p24filetree.dir[c[b].value].n);p24updateClipview()}
|
|
function p24pasteFile(){var b="";null!=p24clipboard&&0<p24clipboard.length&&(b="Confim "+(0==p24clipboardCut?"copy":"move")+" of "+p24clipboard.length+" entrie"+(1<p24clipboard.length?"s":"")+" to this location?");setDialogMode(11,"Pegar",3,p24pasteFileEx,b)}
|
|
function p24pasteFileEx(){p24files.sendCtrlMsg(JSON.stringify({action:0==p24clipboardCut?"copy":"move",reqid:1,scpath:p24clipboardFolder,dspath:p24targetpath,names:p24clipboard}));p24folderup(999);1==p24clipboardCut&&(p24clipboardFolder=p24clipboard=null,p24clipboardCut=0,p24updateClipview())}
|
|
function p24updateClipview(){var b="";null!=p24clipboard&&0<p24clipboard.length&&(b="Holding "+p24clipboard.length+" entrie"+(1<p24clipboard.length?"s":"")+" for "+(0==p24clipboardCut?"copy":"move")+", <a onclick=p24clearClip() style=cursor:pointer>Clear</a>.");QH("p24bottomstatus",b);p24setActions()}function p24clearClip(){p24clipboardFolder=p24clipboard=null;p24clipboardCut=0;p24updateClipview()}
|
|
function p24fileDragDrop(b){haltEvent(b);QV("p24bigfail",!1);QV("p24bigok",!1);null!=b.dataTransfer&&0!=b.dataTransfer.files.length&&null!=p24filetree&&(0==p24filetreelocation.length&&"win32"==webRtcDesktop.platform||p24doUploadFiles(b.dataTransfer.files))}var p24dragtimer=null;
|
|
function p24fileDragOver(b){haltEvent(b);null!=p24dragtimer&&(clearTimeout(p24dragtimer),p24dragtimer=null);b=null!=p24filetree;0==p24filetreelocation.length&&"win32"==webRtcDesktop.platform&&(b=!1);QV("p24bigok",b);QV("p24bigfail",!b)}function p24fileDragLeave(b){haltEvent(b);"p24filetable"!=b.target.id?(QV("p24bigfail",!1),QV("p24bigok",!1)):p24dragtimer=setTimeout(function(){QV("p24bigfail",!1);QV("p24bigok",!1);p24dragtimer=null},200)}
|
|
function getFileSizeStr(b){return 1==b?"1 byte":format("{0} bytes",b)}function joinPaths(){var b=[],c;for(c in arguments){var a=arguments[c];if(null!=a&&""!=a){for(;a.endsWith("/")||a.endsWith("\\");)a=a.substring(0,a.length-1);for(;a.startsWith("/")||a.startsWith("\\");)a=a.substring(1);b.push(a)}}return b.join("/")}var isFilenameValid=function(){var b=/^[^\\/:\*\?"<>\|]+$/,c=/^\./,a=/^(nul|prn|con|lpt[0-9]|com[0-9])(\.|$)/i;return function(d){return b.test(d)&&!c.test(d)&&!a.test(d)&&"."!=d[0]}}();
|
|
function focusTextBox(b){setTimeout(function(){Q(b).selectionStart=Q(b).selectionEnd=65535;Q(b).focus()},0)}var downloadFile;
|
|
function p24downloadfile(b,c,a){xxdialogMode||downloadFile||!p24files||(downloadFile={path:decodeURIComponent(b),file:decodeURIComponent(c),size:a,tsize:0,data:"",state:0,id:Math.random()},p24files.sendCtrlMsg(JSON.stringify({action:"download",sub:"start",id:downloadFile.id,path:downloadFile.path})),setDialogMode(11,"Descargar archivo",10,p24downloadFileCancel,"<div>"+downloadFile.file+"</div><br /><progress id=d2progressBar style=width:100% value=0 max="+a+" />"))}
|
|
function p24downloadFileCancel(){null!=downloadFile&&(setDialogMode(0),null!=p24files&&p24files.sendCtrlMsg(JSON.stringify({action:"download",sub:"cancel",id:downloadFile.id})),downloadFile=null)}function p24gotDownloadCommand(b){null!=downloadFile&&b.id==downloadFile.id&&("start"==b.sub?(downloadFile.state=1,p24files.sendCtrlMsg(JSON.stringify({action:"download",sub:"startack",id:downloadFile.id}))):"cancel"==b.sub&&(downloadFile=null,setDialogMode(0)))}
|
|
function p24gotDownloadBinaryData(b){if(downloadFile&&0!=downloadFile.state){try{b=atob(b)}catch(c){return}null==b||4>b.length||(4<b.length&&(downloadFile.tsize+=b.length-4,downloadFile.data+=b.substring(4),Q("d2progressBar").value=downloadFile.tsize),0!=(ReadInt(b,0)&1)?(saveAs(data2blob(downloadFile.data),downloadFile.file),downloadFile=null,setDialogMode(0)):p24files.sendCtrlMsg(JSON.stringify({action:"download",sub:"ack",id:downloadFile.id})))}}var uploadFile;
|
|
function p24doUploadFiles(b){xxdialogMode||(uploadFile={xpath:p24filetreelocation.join("/"),xfiles:b,xfilePtr:-1},setDialogMode(11,"Subir archivo",10,p24uploadFileCancel,"<div id=p24dfileName>Configurando ...</div><br /><progress id=d2progressBar style=width:100% value=0 max=0 />",99),p24uploadNextFile())}
|
|
function p24uploadNextFile(){uploadFile.xfilePtr++;if(uploadFile.xfiles.length>uploadFile.xfilePtr){uploadFile.xptr=0;var b=uploadFile.xfiles[uploadFile.xfilePtr];QH("p24dfileName",b.name);Q("d2progressBar").max=b.size;Q("d2progressBar").value=0;uploadFile.xreader=new FileReader;uploadFile.xreader.onload=function(){uploadFile.xdata=uploadFile.xreader.result;p24files.sendCtrlMsg(JSON.stringify({action:"upload",sub:"start",reqid:uploadFile.xfilePtr,path:uploadFile.xpath,name:b.name,size:uploadFile.xdata.byteLength}))};
|
|
uploadFile.xreader.onerror=function(){p24uploadNextFile()};uploadFile.xreader.readAsArrayBuffer(b)}else p24uploadFileCancel(),p24folderup(9999)}function p24uploadFileCancel(b,c){null!=uploadFile&&(uploadFile=null,setDialogMode(0),99==c&&null!=p24files&&p24files.sendCtrlMsg(JSON.stringify({action:"upload",sub:"cancel"})))}
|
|
function p24gotUploadData(b){if(null!=uploadFile&&parseInt(uploadFile.xfilePtr)==parseInt(b.reqid))if("start"==b.sub)for(p24uploadNextPart(!1),b=0;8>b;b++)p24uploadNextPart(!0);else"ack"==b.sub?p24uploadNextPart(!1):"error"==b.sub&&p24uploadFileCancel()}function ab2str(b){return String.fromCharCode.apply(null,new Uint8Array(b))}
|
|
function p24uploadNextPart(b){var c=uploadFile.xdata,a=uploadFile.xptr,d=uploadFile.xptr+4096;if(d>c.byteLength){if(1==b)return;d=c.byteLength}a==c.byteLength?p24uploadNextFile():(p24files.sendCtrlMsg(btoa(IntToStr(d!=c.byteLength?16777216:16777217)+ab2str(c.slice(a,d)))),uploadFile.xptr=d,Q("d2progressBar").value=d)}var ider,iderCodeBlock,iderTimer;
|
|
function iderStart(b){if(!xxdialogMode){b="<div>Montar im\u00e1genes de disco en una computadora Intel® AMT - Experimental.</div><br />"+('<div style=height:26px><input id=floppyImageInput type=file style=float:right;width:250px accept=".img"><div>'+NoBreak("Disquete (.img)")+"</div></div>");b+='<div style=height:26px><input id=cdromImageInput type=file style=float:right;width:250px accept=".iso"><div>'+NoBreak("CDROM (.iso)")+"</div></div>";setDialogMode(11,"Redireccionamiento de almacenamiento",
|
|
3,iderStart2,b+"<div style=height:26px><select id=iderStartType style=float:right;width:250px><option value=0>En el pr\u00f3ximo arranque<option value=1>Agraciado<option value=2>Inmediato</select><div>Inicio de sesi\u00f3n</div></div>");b=null;try{b=localStorage.getItem("iderurl")}catch(c){}b&&(Q("storageserverurl").value=b.substring(1,b.length-1))}}
|
|
function iderStart2(){if(1!=Q("floppyImageInput").files.length&&1!=Q("cdromImageInput").files.length)messagebox("Error de redireccionamiento de almacenamiento","Se debe seleccionar al menos un archivo de imagen de disco.");else if(1==Q("floppyImageInput").files.length&&0!=Q("floppyImageInput").files[0].size%512)messagebox("Error de redireccionamiento de almacenamiento","Archivo .img no v\u00e1lido");else if(1==Q("cdromImageInput").files.length&&0!=Q("cdromImageInput").files[0].size%2048)messagebox("Error de redireccionamiento de almacenamiento",
|
|
"Archivo .iso no v\u00e1lido");else{var b=null,c=null;1==Q("floppyImageInput").files.length&&(b=Q("floppyImageInput").files[0]);1==Q("cdromImageInput").files.length&&(c=Q("cdromImageInput").files[0]);null==b&&null==c||iderStart3(b,c,Q("iderStartType").value)}}
|
|
function iderStart3(b,c,a){iderStop();ider=CreateAmtRedirect(CreateAmtRemoteIder());ider.onStateChanged=onIderStateChange;ider.m.floppy=b;ider.m.cdrom=c;ider.m.iderStart=a;ider.m.sectorStats=iderSectorStats;ider.tlsv1only=amtstack.wsman.comm.tlsv1only;ider.Start(currentMeshNode._id,16994,"*","*",0);QV("IDERDiskMapButton",!0)}
|
|
function iderStop(){ider&&(ider.m.Stop(),ider.onStateChanged=null,ider.m.onDialogPrompt=null,delete ider);iderTimer&&(clearInterval(iderTimer),delete iderTimer);iderToggleDiskMap(!1)}function onIderStateChange(b,c){QE("c2",3!=c);QE("c8",3!=c);QE("c1",3!=c);QE("c7",3!=c);QV(9,3==c);center();3==c?(urlvars.norefresh||(iderTimer=setInterval(onIderTimer,500)),onIderTimer()):iderTimer&&(clearInterval(iderTimer),delete iderTimer)}
|
|
function onIderTimer(){ider.m.Update&&ider.m.Update();-1==ider.m.bytesFromAmt?iderStop():QH(10,"<b>"+(ider.m.server?"Servidor":"")+"Sesi\u00f3n IDE-R </b>, conectada,"+ider.m.bytesFromAmt+" en,"+ider.m.bytesToAmt+" fuera.")}var heatMapWidth=600,heatMapDividor={};
|
|
function iderSectorStats(b,c,a,d,e){var v=c?Q("cdromHeatMapCanvas"):Q("floppyHeatMapCanvas"),n=v.getContext("2d");if(0==b){heatMapDividor[c]=1;if(0<a)for(;8E3<a/heatMapDividor[c];)heatMapDividor[c]*=2;c?(QV("cdromHeatMap",a),QH("cdromHeatMapText",format("<b> CDROM </b>, los bloques son {0} bytes.",2048*heatMapDividor[c]))):(QV("floppyHeatMap",a),QH("floppyHeatMapText",format("<b> Disquete </b>, los bloques son {0} bytes.",512*heatMapDividor[c])))}c=heatMapDividor[c];a/=c;d/=c;e/=c;if(0==b)v.height=
|
|
6*(Math.floor(a/(heatMapWidth/6))+(a%heatMapWidth?1:0)),n.fillStyle="rgba(225,250,225,1)",n.fillRect(0,0,heatMapWidth,6*Math.floor(a/(heatMapWidth/6))),a%heatMapWidth&&n.fillRect(0,6*Math.floor(a/(heatMapWidth/6)),a%(heatMapWidth/6)*6,6),n.fillStyle="rgba(0,0,0,0.3)";else for(b=d;b<d+e;b++)sectorHeat(n,b,6,c)}function sectorHeat(b,c,a,d){b.fillRect(c%(heatMapWidth/a)*a,Math.floor(c/(heatMapWidth/a))*a,a,a)}
|
|
function iderToggleDiskMap(b){var c="none"!=QS("iderHeatmap").display;null==b&&(b=!c);xxdialogMode&&(b=!1);QS("iderHeatmap").display=b?"":"none"}function onIderDialogPrompt(b,c,a){iderCodeBlock&&(document.body.removeChild(iderCodeBlock),delete iderCodeBlock);c.js&&(b=document.createElement("script"),b.text=c.js,iderCodeBlock=document.body.appendChild(b));setDialogMode(11,"Redireccionamiento de almacenamiento",a?a:3,onIderDialogPromptOk,c.html)}
|
|
function onIderDialogPromptOk(b){1==b?window.iderServerCall?ider.m.dialogPrompt(window.iderServerCall()):ider.m.dialogPrompt():iderStop()}function iderServerStart(){xxdialogMode||(iderStop(),ider=CreateAmtRemoteServerIder(),null!=ider&&(ider.onStateChanged=onIderStateChange,ider.m.sectorStats=iderSectorStats,ider.m.onDialogPrompt=onIderDialogPrompt,ider.tlsv1only=amtstack.wsman.comm.tlsv1only,ider.Start(currentMeshNode._id,16994,"*","*",0)))}
|
|
var xxRemoteAccess=null,xxEnvironementDetection=null,xxCiraServers=null,xxUserInitiatedCira=null,xxUserInitiatedEnabledState={32768:"Discapacitado",32769:"BIOS habilitado",32770:"OS habilitado",32771:"BIOS y SO habilitados"},xxRemoteAccessCredentiaLinks=null,xxMPSUserPass=null,xxPolicies=null;
|
|
function PullRemoteAccess(){var b="*AMT_EnvironmentDetectionSettingData AMT_ManagementPresenceRemoteSAP AMT_RemoteAccessCredentialContext AMT_RemoteAccessPolicyAppliesToMPS AMT_RemoteAccessPolicyRule *AMT_UserInitiatedConnectionService AMT_MPSUsernamePassword".split(" ");11<amtversion&&b.push("*IPS_HTTPProxyService","IPS_HTTPProxyAccessPoint");amtstack.BatchEnum(null,b,processRemote1)}
|
|
function processRemote1(b,c,a,d){if(11<amtversion&&400==d){d=200;400==a.IPS_HTTPProxyAccessPoint.status&&delete a.IPS_HTTPProxyAccessPoint;400==a.IPS_HTTPProxyService.status&&delete a.IPS_HTTPProxyService;for(var e in a)200!=a[e].status&&(d=a[e].status)}if(400!=d&&!errcheck(d,b)&&void 0!=a.AMT_UserInitiatedConnectionService&&void 0!=a.AMT_UserInitiatedConnectionService.response){QV("go17",!0);xxRemoteAccess=a;xxEnvironementDetection=a.AMT_EnvironmentDetectionSettingData.response;xxEnvironementDetection.DetectionStrings=
|
|
MakeToArray(xxEnvironementDetection.DetectionStrings);xxCiraServers=a.AMT_ManagementPresenceRemoteSAP.responses;xxUserInitiatedCira=a.AMT_UserInitiatedConnectionService.response;xxRemoteAccessCredentiaLinks=a.AMT_RemoteAccessCredentialContext.responses;xxMPSUserPass=a.AMT_MPSUsernamePassword.responses;xxPolicies={User:[],Alert:[],Periodic:[]};for(e in a.AMT_RemoteAccessPolicyAppliesToMPS.responses)c=a.AMT_RemoteAccessPolicyAppliesToMPS.responses[e],b=Clone(getItem(xxCiraServers,"Name",getItem(c.ManagedElement.ReferenceParameters.SelectorSet.Selector,
|
|
"@Name","Name").Value)),b.MpsType=c.MpsType,c=getItem(c.PolicySet.ReferenceParameters.SelectorSet.Selector,"@Name","PolicyRuleName").Value.split(" ")[0],xxPolicies[c].push(b);updateRemoteAccess()}}
|
|
function updateRemoteAccess(){if(null!=xxEnvironementDetection){var b,c="Discapacitado",a=xxRemoteAccess.IPS_HTTPProxyService&&xxRemoteAccess.IPS_HTTPProxyAccessPoint;xxEnvironementDetection.DetectionStrings&&0<xxEnvironementDetection.DetectionStrings.length&&(c="Habilitado,"+xxEnvironementDetection.DetectionStrings.length+" "+(1<xxEnvironementDetection.DetectionStrings.length?"domains":"domain"));b=""+TableStart();b+=TableEntry("Detecci\u00f3n del entorno",addLink(c,"editEnvironmentDetection()"));
|
|
b+=TableEntry("Opciones de iniciaci\u00f3n del usuario",addLinkConditional(xxUserInitiatedEnabledState[xxUserInitiatedCira.EnabledState],"editUserInitiatedCira()",xxAccountAdminName));c="<i>Ninguna</i>";if(0<xxPolicies.User.length){var c="",d;for(d in xxPolicies.User)0<c.length&&(c+=", "),c+=xxPolicies.User[d].AccessInfo,1==xxPolicies.User[d].MpsType&&(c+=" (CILA)")}b+=TableEntry("Conexi\u00f3n iniciada por el usuario",addLinkConditional(c,'editMpsPolicy("User")',xxAccountAdminName));c="<i>Ninguna</i>";
|
|
if(0<xxPolicies.Alert.length)for(d in c="",xxPolicies.Alert)0<c.length&&(c+=", "),c+=xxPolicies.Alert[d].AccessInfo,1==xxPolicies.Alert[d].MpsType&&(c+=" (CILA)");b+=TableEntry("Conexi\u00f3n iniciada por alerta",addLinkConditional(c,'editMpsPolicy("Alert")',xxAccountAdminName));c="<i>Ninguna</i>";if(0<xxPolicies.Periodic.length)for(d in c="",xxPolicies.Periodic)0<c.length&&(c+=", "),c+=xxPolicies.Periodic[d].AccessInfo,1==xxPolicies.Periodic[d].MpsType&&(c+=" (CILA)");var e=getItem(xxRemoteAccess.AMT_RemoteAccessPolicyRule.responses,
|
|
"PolicyRuleName","Peri\u00f3dico");if(e){var v=atob(e.ExtendedData);0==ReadInt(v,0)&&(c+=format(", cada {0} segundos",ReadInt(v,4)));1==ReadInt(v,0)&&(e=ReadInt(v,4),v=ReadInt(v,8),10>v&&(v="0"+v),c+=", at "+e+":"+v+" daily")}b+=TableEntry("Conexi\u00f3n peri\u00f3dica",addLinkConditional(c,'editMpsPolicy("Periodic")',xxAccountAdminName));b+=TableEnd();b=b+"<br>"+TableStart2();b+="<tr><td class=r1 style=padding-left:15px><br>Administre los servidores de administraci\u00f3n remota Intel® AMT.<br><br>";
|
|
if(0==xxCiraServers.length)b+="<div style=padding-left:15px><br><i>No se encontraron servidores remotos.</i></div><br>";else for(d in xxCiraServers)c=":"+xxCiraServers[d].Port,xxCiraServers[d].CN&&(c+=", "+xxCiraServers[d].CN),b+="<div class=itemBar onclick=showServerDetails("+d+")><div style=padding-top:3px><b>"+xxCiraServers[d].AccessInfo+"</b>"+EscapeHtml(c)+"</div></div>";if(a)if(b+="<br>Administre los servidores proxy HTTP utilizados para las conexiones de administraci\u00f3n.<br><br>",c=xxRemoteAccess.IPS_HTTPProxyAccessPoint.responses,
|
|
0==c.length)b+="<div style=padding-left:15px><br><i>No hay proxies configurados.</i></div><br>";else for(d in c)b+="<div class=itemBar onclick=showProxyDetails("+d+")><div style=padding-top:3px><b>"+EscapeHtml(c[d].AccessInfo)+":"+c[d].Port+"</b> / "+EscapeHtml(c[d].NetworkDnsSuffix)+"</div></div>";d="";xxAccountAdminName&&(d=AddButton("Agregar servidor...","AddRemoteAccessServer()"),a&&(d+=AddButton("A\u00f1adir proxy ...","AddRemoteAccessProxy()")));b+="<br><td class=r1>"+TableEnd(AddRefreshButton("PullRemoteAccess()")+
|
|
d);QH(52,b)}}var xxEditMpsPolicyType;
|
|
function editMpsPolicy(b){var c="",a=11<amtversion||11==amtversion&&6<=amtversionmin,d=xxEditMpsPolicyType=b;"User"==d&&(d="Usuario iniciado");var d=getItem(xxRemoteAccess.AMT_RemoteAccessPolicyRule.responses,"PolicyRuleName",d),c=c+"<div style=height:26px><select id=d2server1 style=float:right;width:206px onchange=editMpsPolicyUpdate()><option value=-1>(Ninguna)",e;for(e in xxCiraServers)c+="<option value="+e+""+(xxPolicies[b][0]&&xxPolicies[b][0].Name==xxCiraServers[e].Name?" selected":"")+">"+
|
|
xxCiraServers[e].AccessInfo;c+="</select><div>Servidor primario</div></div>";a&&(c+="<div style=height:26px><select id=d2server1cira style=float:right;width:206px onchange=editMpsPolicyUpdate()><option value=0>CIRA - Externo<option value=1"+(xxPolicies[b][0]&&1==xxPolicies[b][0].MpsType?" selected":"")+">CILA - Interna</select><div>Tipo de MPS primario</div></div>");if(1<xxCiraServers.length){c+="<div style=height:26px><select id=d2server2 style=float:right;width:206px onchange=editMpsPolicyUpdate()>";
|
|
c+="<option value=-1>(Ninguna)";for(e in xxCiraServers)c+="<option value="+e+""+(xxPolicies[b][1]&&xxPolicies[b][1].Name==xxCiraServers[e].Name?" selected":"")+">"+xxCiraServers[e].AccessInfo;c+="</select><div>Servidor secundario</div></div>";a&&(c+="<div style=height:26px><select id=d2server2cira style=float:right;width:206px onchange=editMpsPolicyUpdate()><option value=0>CIRA - Externo<option value=1"+(xxPolicies[b][1]&&1==xxPolicies[b][1].MpsType?" selected":"")+">CILA - Interna</select><div>Tipo secundario de MPS</div></div>")}e=
|
|
0;d&&(e=d.TunnelLifeTime);c+="<div style=height:26px><input id=d2lifetime style=float:right;width:200px onchange=editMpsPolicyUpdate() value="+e+">";c+="<div>Vida \u00fatil del t\u00fanel (segundos)</div></div>";"Periodic"==b&&(a=0,e=3600,d&&(d=atob(d.ExtendedData),a=ReadInt(d,0),e=ReadInt(d,4),1==a&&(d=ReadInt(d,8),10>d&&(d="0"+d),e+=":"+d)),c+="<div style=height:26px><select id=d2ttype style=float:right;width:206px onchange=editMpsPolicyUpdate()>",c+="<option value=0"+(0==a?" selected":"")+">Periodico, intervalo de tiempo<option value=1"+
|
|
(1==a?" selected":"")+">Hora del d\u00eda, una vez al d\u00eda.",c+="</select><div>Tipo de disparador</div></div><div style=height:26px><input id=d2timer style=float:right;width:200px onkeyup=editMpsPolicyUpdate() value="+e+"><div id=ttypelabel></div></div>");setDialogMode(11,format("{0} Conexi\u00f3n",b),3,editMpsPolicyOk,c);editMpsPolicyUpdate()}
|
|
function editMpsPolicyUpdate(){var b=11<amtversion||11==amtversion&&6<=amtversionmin,c=1>=xxCiraServers.length||-1==Q("d2server1").value||Q("d2server1").value!=Q("d2server2").value;if(1==c&&"Periodic"==xxEditMpsPolicyType&&1==Q("d2ttype").value){var a=Q("d2timer").value.split(":");if(2!=a.length)c=!1;else{var d=parseInt(a[0]),a=parseInt(a[1]);if(0>d||23<d||0>a||59<a)c=!1}}QE("c54",c);1<xxCiraServers.length&&QE("d2server2",-1!=Q("d2server1").value);"Periodic"==xxEditMpsPolicyType&&(QE("d2timer",
|
|
-1!=Q("d2server1").value),QH("ttypelabel",0==Q("d2ttype").value?"Intervalo de activaci\u00f3n (segundos)":"Hora del d\u00eda (HH: MM)"),QE("d2ttype",-1!=Q("d2server1").value));QE("d2lifetime",-1!=Q("d2server1").value);b&&(QE("d2server1cira",-1<Q("d2server1").value),1<xxCiraServers.length&&QE("d2server2cira",-1<Q("d2server1").value&&-1<Q("d2server2").value))}
|
|
function editMpsPolicyOk(){var b=xxEditMpsPolicyType;"User"==b&&(b="User Initiated");getItem(xxRemoteAccess.AMT_RemoteAccessPolicyRule.responses,"PolicyRuleName",b)?amtstack.Delete("AMT_RemoteAccessPolicyRule",{PolicyRuleName:b},editMpsPolicyOk2):editMpsPolicyOk2()}
|
|
function editMpsPolicyOk2(b,c,a,d){b=11<amtversion||11==amtversion&&6<=amtversionmin;if(-1==Q("d2server1").value)PullRemoteAccess();else{c=0;"Alert"==xxEditMpsPolicyType&&(c=1);"Periodic"==xxEditMpsPolicyType&&(c=2);a=null;2==c&&(a=Q("d2ttype").value,d=IntToStr(Q("d2timer").value),1==a&&(d=Q("d2timer").value.split(":"),d=IntToStr(parseInt(d[0]))+IntToStr(parseInt(d[1]))),a=btoa(IntToStr(a)+d));var e,v;0<=Q("d2server1").value&&(e='<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://intel.com/wbem/wscim/1/amt-schema/1/AMT_ManagementPresenceRemoteSAP</ResourceURI><SelectorSet xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><Selector Name="Name">'+
|
|
xxCiraServers[Q("d2server1").value].Name+"</Selector></SelectorSet></ReferenceParameters>");0<=Q("d2server1").value&&1<xxCiraServers.length&&0<=Q("d2server2").value&&(v='<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://intel.com/wbem/wscim/1/amt-schema/1/AMT_ManagementPresenceRemoteSAP</ResourceURI><SelectorSet xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><Selector Name="Name">'+
|
|
xxCiraServers[Q("d2server2").value].Name+"</Selector></SelectorSet></ReferenceParameters>");d=[];var n=[];b?e&&(0==Q("d2server1cira").value?d.push(e):n.push(e),v&&(0==Q("d2server2cira").value?d.push(v):n.push(v))):e&&(d.push(e),v&&d.push(v));amtstack.AMT_RemoteAccessService_AddRemoteAccessPolicyRule(c,Q("d2lifetime").value,a,d,n,PullRemoteAccess)}}var editEnvironmentDetectionTmp;
|
|
function editEnvironmentDetection(b){1!=b&&(editEnvironmentDetectionTmp=xxEnvironementDetection.DetectionStrings?Clone(xxEnvironementDetection.DetectionStrings):[]);var c="";xxAccountAdminName&&(c+="Ingrese hasta 5 sufijos de dominio de intranet. Si la computadora est\u00e1 fuera de estos dominios, los puertos locales Intel® AMT se cerrar\u00e1n y las conexiones remotas del servidor estar\u00e1n activas.<br><br>");0==editEnvironmentDetectionTmp.length&&(c+="<i>Sin dominios de intranet, detecci\u00f3n de entorno deshabilitada.</i><br>");
|
|
for(var a in editEnvironmentDetectionTmp)c+="<div class=itemBar style=margin-right:0><div style=float:right>"+AddButton2("Eliminar","editEnvironmentDetectionRemove("+a+")")+'</div><div style=padding-top:3px;max-width:260px;overflow:hidden title="'+editEnvironmentDetectionTmp[a]+'"><b>'+editEnvironmentDetectionTmp[a]+"</b></div></div>";xxAccountAdminName&&5>editEnvironmentDetectionTmp.length&&(c+="<br><input id=edInput placeholder=intranet.org style=width:276px onkeyup=edInputChg() maxlength=63><input type=button id=edAdd value=Add style=width:80px;margin-left:5px onclick=editEnvironmentDetectionAdd()>");
|
|
1==b?QH(63,c):setDialogMode(11,"Detecci\u00f3n de ambiente",xxAccountAdminName?3:1,editEnvironmentDetectionDlg,c);edInputChg()}function editEnvironmentDetectionDlg(){if(xxAccountAdminName){var b=Clone(xxEnvironementDetection);b.DetectionStrings=editEnvironmentDetectionTmp;amtstack.Put("AMT_EnvironmentDetectionSettingData",b,editEnvironmentDetectionDlg2,0,1)}}
|
|
function editEnvironmentDetectionDlg2(b,c,a,d){200!=d?messagebox("Detecci\u00f3n de ambiente",format("Error al agregar servidor, estado {0}",d)):a.Body.ReturnValue&&0!=a.Body.ReturnValue?messagebox("Detecci\u00f3n de ambiente",a.Body.ReturnValueStr.replace(/_/g," ")):PullRemoteAccess()}function edInputChg(){5>editEnvironmentDetectionTmp.length&&QE("edAdd",0<Q("edInput").value.length)}
|
|
function editEnvironmentDetectionAdd(){editEnvironmentDetectionTmp.push(Q("edInput").value);editEnvironmentDetection(1)}function editEnvironmentDetectionRemove(b){editEnvironmentDetectionTmp.splice(b,1);editEnvironmentDetection(1)}
|
|
function editUserInitiatedCira(){if(!xxdialogMode){var b="",c;for(c in xxUserInitiatedEnabledState)b+="<input type=radio name=d11 id=wl"+c+" value="+c+" "+(xxUserInitiatedCira.EnabledState==c?"checked":"")+">"+xxUserInitiatedEnabledState[c]+"<br>";setDialogMode(11,"T\u00fanel iniciado por el usuario",3,editUserInitiatedCiraDlg,b)}}
|
|
function editUserInitiatedCiraDlg(){amtstack.AMT_UserInitiatedConnectionService_RequestStateChange(document.querySelector("input[name=d11]:checked").value,null,editUserInitiatedCiraDlg2)}function editUserInitiatedCiraDlg2(b,c,a,d){200==d&&amtstack.Get("AMT_UserInitiatedConnectionService",editUserInitiatedCiraDlg3,0,1)}function editUserInitiatedCiraDlg3(b,c,a,d){200==d&&(xxUserInitiatedCira=a.Body,updateRemoteAccess())}var xxShowServerDetailsHandle;
|
|
function showServerDetails(b){xxShowServerDetailsHandle=b;var c=xxCiraServers[b],a;a=""+addHtmlValue("Nombre de acceso",c.AccessInfo);c.Port&&(a+=addHtmlValue("Puerto",c.Port));c.CN&&(a+=addHtmlValue("Nombre com\u00fan",c.CN));if(c=getElementWithContextSelectorValue(xxRemoteAccessCredentiaLinks,c.Name))c=c.ElementInContext.ReferenceParameters.SelectorSet.Selector.Value,0<c.indexOf("Username")?(a+=addHtmlValue("tipo de autenticaci\u00f3n","Usuario y Pass / Server-Auth TLS"),a+=addHtmlValue("ID remota",
|
|
getInstance(xxMPSUserPass,c).RemoteID)):(a+=addHtmlValue("tipo de autenticaci\u00f3n","Certificado / Mutual-Auth TLS"),c=getInstance(xxCertificates,c),a+=addHtmlValue("Nombre del certificado",parseCertName(c.Subject).CN));c=1;xxAccountAdminName&&(c=5);setDialogMode(11,"Servidor remoto #"+(b+1),c,showServerDetailsOk,a)}
|
|
function getElementWithContextSelectorValue(b,c){for(var a in b){b[a].ElementProvidingContext.ReferenceParameters.SelectorSet.Selector=MakeToArray(b[a].ElementProvidingContext.ReferenceParameters.SelectorSet.Selector);for(var d in b[a].ElementProvidingContext.ReferenceParameters.SelectorSet.Selector)if(b[a].ElementProvidingContext.ReferenceParameters.SelectorSet.Selector[d].Value==c)return b[a]}return null}
|
|
function showServerDetailsOk(b){2==b&&amtstack.Delete("AMT_ManagementPresenceRemoteSAP",{Name:xxCiraServers[xxShowServerDetailsHandle].Name},showServerDetailsOk2)}function showServerDetailsOk2(b,c,a,d){408==d?messagebox("Remoci\u00f3n remota del servidor","No se puede eliminar el servidor, acceso denegado."):PullRemoteAccess()}function parseCertName(b){var c={},a=b.split(","),d;for(d in a)b=a[d].indexOf("="),c[a[d].substring(0,b)]=a[d].substring(b+1);return c}
|
|
function showProxyDetails(b){var c=xxRemoteAccess.IPS_HTTPProxyAccessPoint.responses[b],a=addHtmlValue("Nombre de acceso",c.AccessInfo+":"+c.ProxyPort),a=a+addHtmlValue("DNS suffex",c.NetworkDnsSuffix),a=a+addHtmlValue("Tipo de proxy",["Administrator","Operating system"][c.Type]),c=1;xxAccountAdminName&&(c=5);setDialogMode(11,"HTTP Proxy #"+(b+1),c,showProxyDetailsOk,a,b)}
|
|
function showProxyDetailsOk(b,c){var a=xxRemoteAccess.IPS_HTTPProxyAccessPoint.responses[c];2==b&&amtstack.Delete("IPS_HTTPProxyAccessPoint",{Name:a.Name},showProxyDetailsOk2)}function showProxyDetailsOk2(b,c,a,d){408==d?messagebox("Eliminaci\u00f3n de proxy HTTP","No se puede eliminar el proxy HTTP, acceso denegado."):PullRemoteAccess()}
|
|
function AddRemoteAccessProxy(){var b;b='<div style=height:26px><select id=d2type style=float:right;width:206px onchange=AddRemoteAccessProxyUpdate()><option value=2>Nombre de host FQDN<option value=3>Direcci\u00f3n IPv4<option value=4>Direcci\u00f3n IPv6</select><div>Tipo de conecci\u00f3n</div></div><div style=height:26px><input id=d2host style=float:right;width:200px maxlength=255 onkeyup=AddRemoteAccessProxyUpdate()><div id=d2typespan></div></div><div style=height:26px><input id=d2port onkeypress="return (event.charCode == 0 || (event.charCode >= 48 && event.charCode <= 57))" style=float:right;width:200px onkeyup=AddRemoteAccessProxyUpdate()><div>Puerto</div></div>';b+=
|
|
"<div style=height:26px><input id=d2domain style=float:right;width:200px maxlength=191 onkeyup=AddRemoteAccessProxyUpdate()><div>Sufijo DNS</div></div>";setDialogMode(11,"Agregar proxy HTTP",3,AddRemoteAccessProxyOk,b);AddRemoteAccessProxyUpdate()}
|
|
function AddRemoteAccessProxyUpdate(){var b=0!=Q("d2host").value.length&&0!=Q("d2domain").value.length;if(0==Q("d2port").value.length||65535<parseInt(Q("d2port").value))b=!1;QE("c54",b);QH("d2typespan",["","","FQDN / nombre de host","Direcci\u00f3n IPv4","Direcci\u00f3n IPv6"][Q("d2type").value])}
|
|
function AddRemoteAccessProxyOk(){amtstack.IPS_HTTPProxyService_AddProxyAccessPoint(Q("d2host").value,Q("d2type").value,parseInt(Q("d2port").value),Q("d2domain").value,AddRemoteAccessProxyOk2)}function AddRemoteAccessProxyOk2(b,c,a,d){200!=d?messagebox("Agregar servidor proxy","Error al agregar proxy, estado"+d):0!=a.Body.ReturnValue?messagebox("Agregar servidor proxy",a.Body.ReturnValueStr.replace(/_/g," ")):PullRemoteAccess()}
|
|
function AddRemoteAccessServer(){var b=[],c;for(c in xxCertificates)xxCertificates[c].XPrivateKey&&b.push(xxCertificates[c]);var a;a="<div style=height:26px><select id=d2type style=float:right;width:206px onchange=AddRemoteAccessServerUpdate()><option value=201>Nombre de host FQDN<option value=3>Direcci\u00f3n IPv4</select><div>Tipo de conecci\u00f3n</div></div><div style=height:26px><input id=d2name style=float:right;width:200px onkeyup=AddRemoteAccessServerUpdate()><div id=d2lname></div></div>";
|
|
a+='<div style=height:26px><input id=d2port onkeypress="return (event.charCode == 0 || (event.charCode >= 48 && event.charCode <= 57))" style=float:right;width:200px value=4433 onkeyup=AddRemoteAccessServerUpdate()><div>Puerto de servicio</div></div>';a+="<div style=height:26px id=d2ucn><input id=d2cn style=float:right;width:200px onkeyup=AddRemoteAccessServerUpdate()><div>Nombre com\u00fan del servidor</div></div>";a+="<div style=height:26px><select id=d2auth style=float:right;width:206px onchange=AddRemoteAccessServerUpdate()>";
|
|
0<b.length&&(a+="<option value=1>Certificado");a+="<option value=2>Usuario Contrase\u00f1a</select><div>Tipo de autenticaci\u00f3n</div></div>";a+="<span id=d2utype>";a+="<div style=height:26px><input id=d2user style=float:right;width:200px onkeyup=AddRemoteAccessServerUpdate()><div>Nombre de usuario</div></div>";a+="<div style=height:26px><input id=d2pass style=float:right;width:200px onkeyup=AddRemoteAccessServerUpdate()><div>Contrase\u00f1a segura</div></div>";a+="</span>";a+="<span id=d2ctype>";
|
|
a+="<div style=height:26px><select id=d2cert style=float:right;width:206px onchange=AddRemoteAccessServerUpdate()>";for(c in b)a+="<option value="+b[c].InstanceID.substring(34)+">"+parseCertName(b[c].Subject).CN;a+="</select><div>Certificado</div></div></span>";setDialogMode(11,"Agregar servidor remoto",3,AddRemoteAccessServerOk,a);AddRemoteAccessServerUpdate()}
|
|
function AddRemoteAccessServerOk(){var b,c,a,d;1==Q("d2auth").value?b='<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2004/08/addressing</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://intel.com/wbem/wscim/1/amt-schema/1/AMT_PublicKeyCertificate</ResourceURI><SelectorSet xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><Selector Name="InstanceID">Intel(r) AMT Certificate: Handle: '+Q("d2cert").value+
|
|
"</Selector></SelectorSet></ReferenceParameters>":(c=Q("d2user").value,a=Q("d2pass").value);0<Q("d2cn").value.length&&(d=Q("d2cn").value);amtstack.AMT_RemoteAccessService_AddMpServer(Q("d2name").value,Q("d2type").value,Q("d2port").value,Q("d2auth").value,b,c,a,d,AddRemoteAccessServerOk2)}
|
|
function AddRemoteAccessServerOk2(b,c,a,d){200!=d?messagebox("Agregar servidor de Internet",format("Error al agregar servidor, estado {0}",d)):0!=a.Body.ReturnValue?messagebox("Agregar servidor de Internet",a.Body.ReturnValueStr.replace(/_/g," ")):PullRemoteAccess()}
|
|
function AddRemoteAccessServerUpdate(){var b=0!=Q("d2name").value.length;3==Q("d2type").value&&1==b&&(b=0!=Q("d2cn").value.length);2==Q("d2auth").value&&1==b&&(b=0!=Q("d2user").value.length&&passwordcheck(Q("d2pass").value));if(0==Q("d2port").value.length||65535<parseInt(Q("d2port").value))b=!1;if(-1!=Q("d2name").value.indexOf(":")||3==Q("d2type").value&&-1!=Q("d2cn").value.indexOf(":"))b=!1;QH("d2lname",201==Q("d2type").value?"Nombre de host":"Direcci\u00f3n IPv4");QV("d2utype",2==Q("d2auth").value);
|
|
QV("d2ucn",3==Q("d2type").value);QV("d2ctype",1==Q("d2auth").value);QE("c54",b)}
|
|
function showEditNameDlg(b){if(!xxdialogMode){var c=amtsysstate.AMT_GeneralSettings.response.HostName,a=amtsysstate.AMT_GeneralSettings.response.DomainName;null!=a&&0<a.length&&(c+="."+a);c='<br><div style=height:26px><input id=d11name value="'+c+'" style=float:right;width:200px><div>Nombre y dominio</div></div>';1==b&&(b=1==amtsysstate.AMT_GeneralSettings.response.SharedFQDN,c+="<div style=height:26px><select id=d11fqdn style=float:right;width:200px><option value=true "+(b?"selected":"")+'>Compartido, igual que el sistema operativo<option value="false" '+
|
|
(b?"":"selected")+">Dedicado, diferente del sistema operativo</select><div>Nombre compartido</div></div>");setDialogMode(11,"Nombre de la computadora",3,editNameDlgOk,c)}}
|
|
function editNameDlgOk(){var b=Q("d11name").value,c=b.indexOf("."),a="";0<=c&&(a=b.substring(c+1),b=b.substring(0,c));c=Clone(amtsysstate.AMT_GeneralSettings.response);c.HostName=b;c.DomainName=a;Q("d11fqdn")&&(c.SharedFQDN=d11fqdn.value);amtstack.Put("AMT_GeneralSettings",c,function(){amtstack.Get("AMT_GeneralSettings",computerNameGet,0,1)},0,1)}function computerNameGet(b,c,a,d){200==d&&(amtsysstate.AMT_GeneralSettings.response=a.Body,updateSystemStatus())}
|
|
function showEditDnsDlg(){if(!xxdialogMode){var b=amtsysstate.AMT_GeneralSettings.response,c=0;1==b.DDNSUpdateByDHCPServerEnabled&&(c=1);1==b.DDNSUpdateEnabled&&(c=2);c36.value=c;c37.value=b.DDNSPeriodicUpdateInterval;c38.value=b.DDNSTTL;showEditDnsDlgChange();setDialogMode(23,"Cliente DNS din\u00e1mico",3,showEditDnsDlgOk)}}
|
|
function showEditDnsDlgOk(){var b=Clone(amtsysstate.AMT_GeneralSettings.response);b.DDNSUpdateEnabled=2==c36.value?!0:!1;b.DDNSUpdateByDHCPServerEnabled=1==c36.value?!0:!1;2==c36.value&&(b.DDNSPeriodicUpdateInterval=c37.value,b.DDNSTTL=c38.value);amtstack.Put("AMT_GeneralSettings",b,function(){amtstack.Get("AMT_GeneralSettings",computerNameGet,0,1)},0,1)}
|
|
function showEditDnsDlgChange(){QE("c37",2==c36.value);QE("c38",2==c36.value)}function showFeaturesDlg(){!xxdialogMode&&xxAccountAdminName&&(c14.checked=amtfeatures[0],c16.checked=amtfeatures[3],c17.checked=amtfeatures[2],c18.checked=amtfeatures[1],QV("c15",null!=amtfeatures[3]),setDialogMode(9,"Funciones Intel® AMT",3,featuresDlgOk))}
|
|
function featuresDlgOk(){var b=amtsysstate.AMT_RedirectionService.response;b.ListenerEnabled=c14.checked;b.EnabledState=32768+((c17.checked?1:0)+(c18.checked?2:0));amtstack.AMT_RedirectionService_RequestStateChange(b.EnabledState,function(c,a,d,e){200!=e?messagebox("Error","RedirectionService, RequestStateChange Error"+e):null!=amtfeatures[3]&&amtstack.CIM_KVMRedirectionSAP_RequestStateChange(c16.checked?2:3,0,function(a,c,d,e){200!=e?messagebox("Error","KVMRedirectionSAP, RequestStateChange Error"+
|
|
e):amtstack.Put("AMT_RedirectionService",b,function(a,b,c,d){200!=d?messagebox("Error","RedirectionService PUT Error"+d):(amtstack.Get("AMT_RedirectionService",featuresDlgGet1,0,1),amtstack.Get("CIM_KVMRedirectionSAP",featuresDlgGet2,0,1))},0,1)})})}function featuresDlgGet1(b,c,a,d){200==d&&(amtsysstate.AMT_RedirectionService.response=a.Body,updateSystemStatus())}function featuresDlgGet2(b,c,a,d){200==d&&(amtsysstate.CIM_KVMRedirectionSAP.response=a.Body,updateSystemStatus())}
|
|
function showEnableBootServiceDlg(){xxdialogMode||(null!=amtsysstate.CIM_BootService.response.EnabledState&&(QV("d26rpediv",15<amtversion),15<amtversion&&(c49.checked=amtsysstate.CIM_BootService.response.EnabledState&2,c50.checked=!c49.checked),c51.checked=amtsysstate.CIM_BootService.response.EnabledState&1,c52.checked=!c51.checked),setDialogMode(26,"Boot Features",3,showEnableBootServiceDlgOk))}
|
|
function showEnableBootServiceDlgOk(){var b=32768+parseInt(document.querySelector("input[name=d26a]:checked").value);15<amtversion&&(b+=parseInt(document.querySelector("input[name=d26b]:checked").value));amtstack.CIM_BootService_RequestStateChange(b,null,showEnableBootServiceDlgResponse,b)}
|
|
function showEnableBootServiceDlgResponse(b,c,a,d,e){200==d?("SUCCESS"!=a.Body.ReturnValueStr&&messagebox("Boot Features Error",a.Body.ReturnValueStr),amtstack.Get("CIM_BootService",showEnableBootServiceDlgResponse2,e),PullSystemStatus()):a.Header.WsmanError?messagebox("Boot Features Error",a.Header.WsmanError.replace(/_/g," ")):messagebox("Boot Features Error","Error, Status = "+d)}
|
|
function showEnableBootServiceDlgResponse2(b,c,a,d,e){200==d&&a.Body.EnabledState!=e&&messagebox("Boot Features Error","Unable to set OCR/RPE, check that these features are enabled in BIOS.")}function showConsentDlg(){if(!xxdialogMode){var b=amtsysstate.IPS_OptInService.response.OptInRequired;c19.checked=0==b;c20.checked=1==b;c21.checked=4294967295==b;setDialogMode(10,"Consentimiento del usuario",3,consentDlgOk)}}
|
|
function consentDlgOk(){amtsysstate.IPS_OptInService.response.OptInRequired=document.querySelector("input[name=d10]:checked").value;amtstack.Put("IPS_OptInService",amtsysstate.IPS_OptInService.response,function(){amtstack.Get("IPS_OptInService",consentGet,0,1)},0,1)}function consentGet(b,c,a,d){200==d&&PullSystemStatus()}var ipv6addrtype="Direcci\u00f3n local del enlace;Direcci\u00f3n local de red;Direcci\u00f3n global;Usuario configurado;No permitido;DAD en progreso;v\u00e1lido;obsoleto;preferido / en desuso;Caducado;colisi\u00f3n;No permitido".split(";");
|
|
function showIPv6AddrDlg(b,c){if(!xxdialogMode){var a=TableStart();t=c.split(",");for(var d=0;d<t.length;d+=3)a+=TableEntry("<b>"+t[d]+"</b><br><span style=font-size:10px>"+ipv6addrtype[t[d+1]]+","+ipv6addrtype[+t[d+2]+5]+"</span>","");setDialogMode(11,0==b?"Direcciones IPv6 para interfaz cableada":"Direcciones IPv6 para interfaz inal\u00e1mbrica",1,null,a+TableEnd())}}
|
|
function showIPv6StateDlg(b,c){if(!xxdialogMode&&amtsysstate){var a=amtsysstate.IPS_IPv6PortSettings.responses[b];ipv6manual=0==b&&(isIpAddress(a.IPv6Address)||isIpAddress(a.DefaultRouter)||isIpAddress(a.PrimaryDNS)||isIpAddress(a.SecondaryDNS));QV(69,0==b);QV(70,!1);QV("d21o0",!0);QV("d21l0",!0);QH("d21l0","IPv6 deshabilitado");QH("d21l1","IPv6 habilitado, autom\u00e1tico");QH("d21l2","IPv6 habilitado, autom\u00e1tico + direcci\u00f3n manual");d21o0.checked=!c;d21o1.checked=
|
|
c&&!ipv6manual;d21o2.checked=c&&ipv6manual;c31.value=isIpAddress(a.IPv6Address,"");c33.value=isIpAddress(a.DefaultRouter,"");c34.value=isIpAddress(a.PrimaryDNS,"");c35.value=isIpAddress(a.SecondaryDNS,"");setDialogMode(21,0==b?"Soporte IPv6 para interfaz cableada":"Compatibilidad con IPv6 para interfaz inal\u00e1mbrica",3,function(){showIPv6StateDlgOk(b)});updateIPSetupDlg()}}
|
|
function showIPv6StateDlgOk(b){var c='<w:SelectorSet><w:Selector Name="InstanceID">Intel(r) IPS IPv6 Settings '+b+"</w:Selector></w:SelectorSet>",a=amtsysstate.IPS_IPv6PortSettings.responses[b];0==b&&(d21o1.checked&&(a.IPv6Address=a.DefaultRouter=a.PrimaryDNS=a.SecondaryDNS="::",amtstack.Put("IPS_IPv6PortSettings",a,showIPv6StateDlgDone,null,0,c)),d21o2.checked&&(a.IPv6Address=""==c31.value?"::":c31.value.toLocaleLowerCase(),a.DefaultRouter=""==c33.value?"::":c33.value.toLocaleLowerCase(),
|
|
a.PrimaryDNS=""==c34.value?"::":c34.value.toLocaleLowerCase(),a.SecondaryDNS=""==c35.value?"::":c35.value.toLocaleLowerCase(),amtstack.Put("IPS_IPv6PortSettings",a,showIPv6StateDlgDone,null,0,c)));c=amtsysstate.CIM_ElementSettingData.responses;for(a=0;a<c.length;a++)if(c[a].SettingData&&c[a].SettingData.ReferenceParameters.SelectorSet.Selector.Value=="Intel(r) IPS IPv6 Settings "+b){var d=getItem(c[a].ManagedElement.ReferenceParameters.SelectorSet.Selector,"@Name",
|
|
"CreationClassName").Value,e=getItem(c[a].ManagedElement.ReferenceParameters.SelectorSet.Selector,"@Name","DeviceID").Value,d='<w:SelectorSet><w:Selector Name="ManagedElement"><a:EndpointReference xmlns:b="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:c="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address><a:ReferenceParameters><w:ResourceURI>http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/'+d+'</w:ResourceURI><w:SelectorSet><w:Selector Name="CreationClassName">'+
|
|
d+'</w:Selector><w:Selector Name="DeviceID">'+e+'</w:Selector><w:Selector Name="SystemCreationClassName">CIM_ComputerSystem</w:Selector><w:Selector Name="SystemName">Intel(r) AMT</w:Selector></w:SelectorSet></a:ReferenceParameters></a:EndpointReference></w:Selector><w:Selector Name="SettingData"><a:EndpointReference xmlns:b="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:c="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address><a:ReferenceParameters><w:ResourceURI>http://intel.com/wbem/wscim/1/ips-schema/1/IPS_IPv6PortSettings</w:ResourceURI><w:SelectorSet><w:Selector Name="InstanceID">Intel(r) IPS IPv6 Settings '+
|
|
b+"</w:Selector></w:SelectorSet></a:ReferenceParameters></a:EndpointReference></w:Selector></w:SelectorSet>",e=Clone(c[a]);e.IsCurrent=d21o0.checked?2:1;amtstack.Put("CIM_ElementSettingData",e,showIPv6StateDlgDone,null,0,d)}}function showIPv6StateDlgDone(b,c,a,d){200==d?(amtsysstate=void 0,PullSystemStatus()):messagebox("Soporte IPv6",format("No se puede establecer el estado de IPv6, error {0}",d))}
|
|
function showPingActionDlg(){if(!xxdialogMode){var b=amtsysstate.AMT_GeneralSettings.response,b=(1==b.PingResponseEnabled)+((1==b.RmcpPingResponseEnabled)<<1);d20a.checked=0==b;d20b.checked=1==b;d20c.checked=2==b;d20d.checked=3==b;setDialogMode(20,"Respuesta Intel® AMT Ping",3,showPingActionDlgOk)}}
|
|
function showPingActionDlgOk(){var b=Clone(amtsysstate.AMT_GeneralSettings.response),c=document.querySelector("input[name=d20]:checked").value;b.PingResponseEnabled=0!=(c&1);b.RmcpPingResponseEnabled=0!=(c&2);amtstack.Put("AMT_GeneralSettings",b,PullSystemStatus,0,1)}
|
|
function showIPSetupDlg(){if(!xxdialogMode&&null!=amtsysstate){var b=amtsysstate.AMT_EthernetPortSettings.responses[0];QV(68,6<amtversion);6<amtversion&&(Q("d21ipsync").checked=b.IpSyncEnabled);QV(69,!0);QV(70,!0);QV("d21o0",!1);QV("d21l0",!1);QH("d21l1","Configuraci\u00f3n autom\u00e1tica con servidor DHCP");QH("d21l2","Configuraci\u00f3n est\u00e1tica usando la configuraci\u00f3n de IPv4 a continuaci\u00f3n");d21o1.checked=1==b.DHCPEnabled;d21o2.checked=
|
|
!d21o1.checked;c31.value=isIpAddress(b.IPAddress,"");c32.value=isIpAddress(b.SubnetMask,"");c33.value=isIpAddress(b.DefaultGateway,"");c34.value=isIpAddress(b.PrimaryDNS,"");c35.value=isIpAddress(b.SecondaryDNS,"");updateIPSetupDlg();setDialogMode(21,"Configuraciones IPv4",3,showIPSetupDlgOk)}}
|
|
function updateIPSetupDlg(){var b=!0;d21o2.checked&&"IPv6 habilitado, autom\u00e1tico + direcci\u00f3n manual"==Q("d21l2").innerHTML&&2>c31.value.split(":").length&&(b=!1);QE("c54",b);c31.disabled=c32.disabled=c33.disabled=c34.disabled=c35.disabled=!(d21o2.checked&&(7>amtversion||0==Q("d21ipsync").checked))}
|
|
function showIPSetupDlgOk(){var b=Clone(amtsysstate.AMT_EthernetPortSettings.responses[0]);b.DHCPEnabled=d21o1.checked;delete b.IPAddress;delete b.SubnetMask;delete b.DefaultGateway;delete b.PrimaryDNS;delete b.SecondaryDNS;6<amtversion&&(b.IpSyncEnabled=Q("d21ipsync").checked);0==d21o1.checked&&0==Q("d21ipsync").checked&&(b.IPAddress=c31.value,b.SubnetMask=c32.value,b.DefaultGateway=c33.value,""!=c34.value&&(b.PrimaryDNS=c34.value),""!=c35.value&&
|
|
(b.SecondaryDNS=c35.value));amtstack.Put("AMT_EthernetPortSettings",b,showIPSetupDlgDone,0,1,b)}function showIPSetupDlgDone(b,c,a,d){200==d?(amtsysstate=void 0,PullSystemStatus()):messagebox("Configuraciones IPv4",format("No se pueden establecer los par\u00e1metros de red, error {0}",d))}amtPowerBootCapabilities=null;function showPowerActionDlg(){xxdialogMode||(statusbox("Acciones de poder","Comprobando capacidades ..."),amtstack.Get("AMT_BootCapabilities",powerActionResponse00,0,1))}
|
|
function powerActionResponse00(b,c,a,d){if(200==d){b=3;try{b=2==amtsysstate.CIM_ServiceAvailableToElement.responses[0].PowerState?1:2}catch(e){}amtPowerBootCapabilities=a.Body;QH("d5actionSelect","");b&2&&addOption("d5actionSelect","Encender",2);b&1&&(addOption("d5actionSelect","Reiniciar",10),addOption("d5actionSelect","Ciclo de poder",5),addOption("d5actionSelect","Corriente cortada",8));1==amtPowerBootCapabilities.ForceDiagnosticBoot&&(b&2&&addOption("d5actionSelect","Encendido al diagn\u00f3stico",
|
|
300),b&1&&addOption("d5actionSelect","Restablecer a diagn\u00f3stico",301));9<amtversion&&b&1&&(addOption("d5actionSelect","OS Wake desde Standby",500),addOption("d5actionSelect","Ahorro de energ\u00eda del sistema operativo",501),addOption("d5actionSelect","Soft-off",12),addOption("d5actionSelect","Reinicio suave",14),addOption("d5actionSelect","Dormir",4),addOption("d5actionSelect","Hibernar",7));1==amtPowerBootCapabilities.BIOSSetup&&(b&2&&addOption("d5actionSelect","Encienda el BIOS",100),b&1&&
|
|
addOption("d5actionSelect","Restablecer a BIOS",101));1==amtPowerBootCapabilities.SecureErase&&(b&2&&addOption("d5actionSelect","Encender para borrar de forma segura",104),b&1&&addOption("d5actionSelect","Restablecer a borrado seguro",105));null!=amtPowerBootCapabilities.PlatformErase&&null!=amtsysstate.CIM_BootService&&32768<=amtsysstate.CIM_BootService.response.EnabledState&&amtsysstate.CIM_BootService.response.EnabledState&2&&(b&2&&addOption("d5actionSelect","Power up to Platform Erase",106),b&
|
|
1&&addOption("d5actionSelect","Reset to Platform Erase",107));b&1&&addOption("d5actionSelect","Restablecer al disquete IDE-R",200);b&2&&addOption("d5actionSelect","Encienda el disquete IDE-R",201);b&1&&addOption("d5actionSelect","Restablecer a IDE-R CDROM",202);b&2&&addOption("d5actionSelect","Encienda el CDROM IDE-R",203);b&1&&addOption("d5actionSelect","Restablecer a PXE",400);b&2&&addOption("d5actionSelect","Encender a PXE",401);addOption("d5actionSelect","Acci\u00f3n personalizada ...",999);5<
|
|
amtversion&&addOption("d5actionSelect","Consentimiento del usuario ...",998);setDialogMode(5,"Acciones de poder",3,powerActionDlgCheck)}else messagebox("Acci\u00f3n de poder",format("No se pueden obtener las capacidades del sistema, error {0}",d))}
|
|
function powerActionDlgCheck(){AmtOcrPba=null;AmtOcrPbaLength=0;var b=d5actionSelect.value;500==b||501==b?amtstack.RequestOSPowerStateChange(501==b?3:2,function(b,a,d,e){200==e?QH(60,"Acci\u00f3n de poder completada."):QH(60,format("Error de acci\u00f3n de energ\u00eda # {0}.",e));setDialogMode(1,"Acci\u00f3n de poder",0);setTimeout(function(){setDialogMode(0)},1300)}):104==b||105==b?(b="\u00bfConfirmar la ejecuci\u00f3n de Intel® Remote Secure Erase?<br>Ingrese la contrase\u00f1a de borrado seguro si es necesario.<br><br><div style=height:16px><input type=password id=rsepass maxlength=32 style=float:right;width:240px><div>Contrase\u00f1a</div></div><br><div style=color:red><b> ADVERTENCIA: </b> Esto borrar\u00e1 los datos del sistema remoto.</div>",
|
|
rsepass=1,setDialogMode(11,"Acciones de poder",3,powerActionDlg,b)):106==b||107==b?powerActionDlgRPE():powerActionDlg()}
|
|
function powerActionDlgRPE(b){var c;c="Confirm execution of Intel® Remote Platform Erase?<br><br><div style=color:red><b> ADVERTENCIA: </b> Esto borrar\u00e1 los datos del sistema remoto.</div>";var a=[],d=amtPowerBootCapabilities.PlatformErase;d&2&&a.push("<label><input id=rpef1 type=checkbox onchange=powerActionDlgRPEValidate()>Pyrite Revert</label>");d&4&&a.push("<label><input id=rpef2 type=checkbox onchange=powerActionDlgRPEValidate()>Secure Erase All SSDs</label>");d&64&&a.push("<label><input id=rpef6 type=checkbox onchange=powerActionDlgRPEValidate()>TPM Clear</label>");
|
|
d&33554432&&a.push("<label><input id=rpef25 type=checkbox onchange=powerActionDlgRPEValidate()>Clear BIOS NVM Variables</label>");d&67108864&&a.push("<label><input id=rpef26 type=checkbox onchange=powerActionDlgRPEValidate()>BIOS Reload of Golden Configuration</label>");d&-2147483648&&a.push("<label><input id=rpef31 type=checkbox onchange=powerActionDlgRPEValidate()>CSME Unconfigure</label>");1<a.length&&(c+=format("<br />Select the actions to take:<br /><br /><div style=margin-left:16px>{0}</div><br />",
|
|
a.join("<br />")));c+="<div id=rpepsid style=margin-top:4px;margin-bottom:4px;display:none>"+addHtmlValue("Pyrite PSID","<input id=rpepsidx style=width:210px maxlength=64 type=input>")+"</div>";c+="<div id=rpessdpass style=margin-top:4px;margin-bottom:4px;display:none>"+addHtmlValue("SSD Master Password","<input id=rpessdpassx style=width:210px maxlength=64 type=input>")+"</div>";setDialogMode(11,"Acciones de poder",3,powerActionDlgRPEEx,c,b);QE("c54",!1)}
|
|
function powerActionDlgRPEValidate(){var b=0,c=amtPowerBootCapabilities.PlatformErase,a=[1,2,6,25,26,31],d;for(d in a)c&1<<a[d]&&Q("rpef"+a[d]).checked&&(b+=1<<a[d]);QV("rpepsid",b&2);QV("rpessdpass",b&4);QE("c54",b)}var platfromEraseTLV=null;
|
|
function powerActionDlgRPEEx(b,c){var a=0,d=amtPowerBootCapabilities.PlatformErase,e=[1,2,6,25,26,31],v;for(v in e)d&1<<e[v]&&Q("rpef"+e[v]).checked&&(a+=1<<e[v]);d=makeUefiBootParam(1,a,4);e=1;a&2&&(d+=makeUefiBootParam(10,Q("rpepsidx").value),e++);a&4&&(d+=makeUefiBootParam(20,Q("rpessdpassx").value),e++);platfromEraseTLV={tlv:btoa(d),tlvlen:e};c?(statusbox("Acci\u00f3n de poder","Comprobando estado ..."),amtstack.Get("IPS_OptInService",powerActionResponse0,0,1)):powerActionDlg()}
|
|
function powerActionDlg(){var b=d5actionSelect.value;if(999==b)showAdvPowerDlg();else if(998==b)amtstack.Get("IPS_OptInService",powerActionResponse0,0,1);else{10>b&&2<b&&null==urlvars.noredirdisconnect&&(3==desktop.State&&connectDesktop(),3==terminal.State&&connectTerminal(),void 0!=ider&&3==ider.state&&iderStop());statusbox("Acci\u00f3n de poder","Comprobando estado ...");null!=rsepass&&1===rsepass&&(rsepass=Q("rsepass").value);var c=!0;6>amtversion&&(c=!1);13==currentView&&8==b&&(c=!1);13!=currentView&&
|
|
10>=b&&(c=!1);c?amtstack.Get("IPS_OptInService",powerActionResponse0,0,1):amtstack.Get("AMT_BootSettingData",powerActionResponse1,0,1)}}var AvdPowerDlg;
|
|
function showAdvPowerDlg(){try{Q("c39").value=2==amtsysstate.CIM_ServiceAvailableToElement.responses[0].PowerState?10:2}catch(b){}QV("d24dBiosPause",1==amtPowerBootCapabilities.BIOSPause);QV("d24dBiosSecureBoot",1==amtPowerBootCapabilities.BIOSSecureBoot);QV("d24dReflashBios",1==amtPowerBootCapabilities.BIOSReflash);QV("d24dBiosSetup",1==amtPowerBootCapabilities.BIOSSetup);QV("ForceDVDBootOption",1==amtPowerBootCapabilities.ForceCDorDVDBoot);QV("ForceDiagBootOption",1==amtPowerBootCapabilities.ForceDiagnosticBoot);
|
|
QV("ForceHDBootOption",1==amtPowerBootCapabilities.ForceHardDriveBoot);QV("ForcePXEBootOption",1==amtPowerBootCapabilities.ForcePXEBoot);QV("d24dForceProgressEvents",1==amtPowerBootCapabilities.ForcedProgressEvents);QV("d24dUseIDER",1==amtPowerBootCapabilities.IDER);QV("d24dLockKeyboard",1==amtPowerBootCapabilities.KeyboardLock);QV("d24dLockPowerButton",1==amtPowerBootCapabilities.PowerButtonLock);QV("d24dLockResetButton",1==amtPowerBootCapabilities.ResetButtonLock);QV("d24dSerialOverLan",1==amtPowerBootCapabilities.SOL);
|
|
QV("d24dSecureErase",1==amtPowerBootCapabilities.SecureErase);QV("d24dPlatformErase",null!=amtPowerBootCapabilities.PlatformErase&&null!=amtsysstate.CIM_BootService&&32768<=amtsysstate.CIM_BootService.response.EnabledState&&0!=(amtsysstate.CIM_BootService.response.EnabledState&2));QV("d24dFirmwareReset",1==amtPowerBootCapabilities.ConfigurationDataReset);QV("d24dLockSleepButton",1==amtPowerBootCapabilities.SleepButtonLock);QV("d24dUserPasswordBypass",1==amtPowerBootCapabilities.UserPasswordBypass);
|
|
QV("c46",1==amtPowerBootCapabilities.VerbosityQuiet);QV("c47",1==amtPowerBootCapabilities.VerbosityVerbose);QV("c48",1==amtPowerBootCapabilities.VerbosityScreenBlank);QV("d24p500",9<amtversion);QV("d24p501",9<amtversion);setDialogMode(24,"Acci\u00f3n de poder personalizada",3,showAdvPowerDlgOk);showAdvPowerDlgChange()}
|
|
function showAdvPowerDlgChange(){QV("idd_d24IDERBootDevice",Q("d24UseIDER").checked);QV("idd_d24RSEPass",Q("d24SecureErase")?Q("d24SecureErase").checked:!1);var b=500<=Q("c39").value&&600>Q("c39").value;QE("c41",!b);QE("c43",!b);QE("idd_d24IDERBootDevice",!b);QE("c45",!b);QE("idd_d24RSEPass",!b);QE("c54",!0)}
|
|
function showAdvPowerDlgOk(){var b=Q("c39").value;500==b||501==b?amtstack.RequestOSPowerStateChange(501==b?3:2,function(b,a,d,e){200==e?QH(60,"Acci\u00f3n de poder completada."):QH(60,format("Error de acci\u00f3n de energ\u00eda # {0}.",e));setDialogMode(1,"Acci\u00f3n de poder",0);setTimeout(function(){setDialogMode(0)},1300)}):(AvdPowerDlg={},AvdPowerDlg.Action=Q("c39").value,AvdPowerDlg.BIOSPause=Q("d24BiosPause").checked,AvdPowerDlg.BIOSSecureBoot=
|
|
Q("d24BiosSecureBoot").checked,AvdPowerDlg.BIOSSetup=Q("d24BiosSetup").checked,AvdPowerDlg.BootMediaIndex=Q("c43").value,AvdPowerDlg.FirmwareVerbosity=Q("c45").value,AvdPowerDlg.ForcedProgressEvents=Q("d24ForceProgressEvents").checked,AvdPowerDlg.IDERBootDevice=Q("c44").value,AvdPowerDlg.LockKeyboard=Q("d24LockKeyboard").checked,AvdPowerDlg.LockPowerButton=Q("d24LockPowerButton").checked,AvdPowerDlg.LockResetButton=Q("d24LockResetButton").checked,AvdPowerDlg.LockSleepButton=
|
|
Q("d24LockSleepButton").checked,AvdPowerDlg.ReflashBIOS=Q("d24ReflashBios").checked,AvdPowerDlg.UseIDER=Q("d24UseIDER").checked,AvdPowerDlg.UseSOL=Q("d24SerialOverLan").checked,AvdPowerDlg.UseSafeMode=Q("d24SafeMode").checked,AvdPowerDlg.UserPasswordBypass=Q("d24UserPasswordBypass").checked,AvdPowerDlg.SecureErase=Q("d24SecureErase").checked,AvdPowerDlg.PlatformErase=Q("d24PlatformErase").checked,AvdPowerDlg.FirmwareReset=Q("d24FirmwareReset").checked,!0===AvdPowerDlg.SecureErase&&0<Q("d24rsepass").value.length&&
|
|
(AvdPowerDlg.RSEPassword=Q("d24rsepass").value),!0===AvdPowerDlg.PlatformErase?powerActionDlgRPE(!0):(statusbox("Acci\u00f3n de poder","Comprobando estado ..."),amtstack.Get("IPS_OptInService",powerActionResponse0,0,1)))}
|
|
function powerActionResponse0(b,c,a,d){200!=d?connectDesktopConsent?connectDesktop(!0):messagebox("Acci\u00f3n de poder",format("Error # {0}",d)):4294967295==a.Body.OptInRequired&&3!=a.Body.OptInState&&4!=a.Body.OptInState?2==a.Body.OptInState?(d6ConsentText.value="",setDialogMode(6,"Consentimiento del usuario",11,powerActionSendConsent),checkConsentDisplay(),consentChanged()):(statusbox("Acci\u00f3n de poder","Iniciando opt-in ..."),amtstack.IPS_OptInService_StartOptIn(powerActionResponseC1,0,1)):
|
|
connectDesktopConsent?(setDialogMode(0),connectDesktop(!0)):998==d5actionSelect.value?messagebox("Consentimiento del usuario","El consentimiento del usuario no es necesario."):(statusbox("Acci\u00f3n de poder","Obteniendo la configuraci\u00f3n de arranque ..."),amtstack.Get("AMT_BootSettingData",powerActionResponse1,0,1))}
|
|
function powerActionResponseC1(b,c,a,d){200!=d?connectDesktopConsent?(setDialogMode(0),connectDesktop(!0)):messagebox("Acci\u00f3n de poder",format("Error #",d)):0!=a.Body.ReturnValue?connectDesktopConsent?(setDialogMode(0),connectDesktop(!0)):messagebox("Error de consentimiento del usuario",a.Body.ReturnValueStr.replace(/_/g," ")):(d6ConsentText.value="",setDialogMode(6,"Consentimiento del usuario",11,powerActionSendConsent),checkConsentDisplay(),consentChanged(),amtstack.Enum("CIM_ServiceAvailableToElement",
|
|
function(a,b,c,d){errcheck(d,a)||(amtsysstate.CIM_ServiceAvailableToElement.responses=c,updateSystemStatus(),null!=amtsysstate.CIM_ServiceAvailableToElement&&null!=amtsysstate.CIM_ServiceAvailableToElement.responses&&0<amtsysstate.CIM_ServiceAvailableToElement.responses.length&&2!=amtsysstate.CIM_ServiceAvailableToElement.responses[0].PowerState&&amtstack.RequestPowerStateChange(2,function(a,b,c,d){}))}))}
|
|
function powerActionSendConsent(b){0==b?amtstack.IPS_OptInService_CancelOptIn(function(){}):(statusbox("Acci\u00f3n de poder","Enviando consentimiento del usuario ..."),amtstack.IPS_OptInService_SendOptInCode(d6ConsentText.value,powerActionResponseC2,0,1))}
|
|
function powerActionResponseC2(b,c,a,d){200!=d?messagebox("Acci\u00f3n de poder",format("Error # {0}",d)):0!=a.Body.ReturnValue?amtstack.Get("IPS_OptInService",powerActionResponse0,0,1):connectDesktopConsent?(setDialogMode(0),connectDesktop(!0)):998==d5actionSelect.value?messagebox("Consentimiento del usuario","Consentimiento del usuario exitoso."):(statusbox("Acci\u00f3n de poder","Comprobando estado ..."),amtstack.Get("AMT_BootSettingData",powerActionResponse1,0,1))}
|
|
function powerActionResponse1(b,c,a,d){if(200!=d)messagebox("Acci\u00f3n de poder",format("Error # {0}",d));else{b=d5actionSelect.value;var e=a.Body;e.ConfigurationDataReset=!1;delete e.WinREBootEnabled;delete e.UEFILocalPBABootEnabled;delete e.UEFIHTTPSBootEnabled;delete e.SecureBootControlEnabled;delete e.BootguardStatus;delete e.OptionsCleared;delete e.BIOSLastStatus;delete e.UefiBootParametersArray;delete e.RPEEnabled;999==b?(e.BIOSPause=AvdPowerDlg.BIOSPause,e.EnforceSecureBoot=AvdPowerDlg.BIOSSecureBoot,
|
|
e.BIOSSetup=AvdPowerDlg.BIOSSetup,e.BootMediaIndex=AvdPowerDlg.BootMediaIndex,e.FirmwareVerbosity=AvdPowerDlg.FirmwareVerbosity,e.ForcedProgressEvents=AvdPowerDlg.ForcedProgressEvents,e.IDERBootDevice=AvdPowerDlg.IDERBootDevice,e.LockKeyboard=AvdPowerDlg.LockKeyboard,e.LockPowerButton=AvdPowerDlg.LockPowerButton,e.LockResetButton=AvdPowerDlg.LockResetButton,e.LockSleepButton=AvdPowerDlg.LockSleepButton,e.ReflashBIOS=AvdPowerDlg.ReflashBIOS,e.UseIDER=AvdPowerDlg.UseIDER,e.UseSOL=AvdPowerDlg.UseSOL,
|
|
e.UseSafeMode=AvdPowerDlg.UseSafeMode,e.UserPasswordBypass=AvdPowerDlg.UserPasswordBypass,null!=e.SecureErase&&(e.SecureErase=AvdPowerDlg.SecureErase&&1==amtPowerBootCapabilities.SecureErase,1==e.SecureErase&&AvdPowerDlg.RSEPassword&&(e.RSEPassword=AvdPowerDlg.RSEPassword)),null!=e.PlatformErase&&null!=amtsysstate.CIM_BootService&&32768<=amtsysstate.CIM_BootService.response.EnabledState&&amtsysstate.CIM_BootService.response.EnabledState&2&&AvdPowerDlg.PlatformErase&&null!=amtPowerBootCapabilities.PlatformErase&&
|
|
0!=(amtPowerBootCapabilities.PlatformErase&1)&&(e.PlatformErase=!0,e.UefiBootParametersArray=platfromEraseTLV.tlv,e.UefiBootNumberOfParams=platfromEraseTLV.tlvlen),null!=e.ConfigurationDataReset&&(e.ConfigurationDataReset=AvdPowerDlg.FirmwareReset)):(e.BIOSPause=!1,e.EnforceSecureBoot=!1,e.BIOSSetup=99<b&&104>b,e.BootMediaIndex=0,e.FirmwareVerbosity=0,e.ForcedProgressEvents=!1,e.IDERBootDevice=202==b||203==b?1:0,e.LockKeyboard=!1,e.LockPowerButton=!1,e.LockResetButton=!1,e.LockSleepButton=!1,e.ReflashBIOS=
|
|
!1,e.UseIDER=199<b&&300>b,e.UseSOL=13==currentView&&8!=b&&300>b,e.UseSafeMode=!1,e.UserPasswordBypass=!1,null!=e.SecureErase&&(e.SecureErase=(104==b||105==b)&&1==amtPowerBootCapabilities.SecureErase,!0===e.SecureErase&&0<rsepass.length&&(e.RSEPassword=rsepass)),null!=e.PlatformErase&&null!=amtsysstate.CIM_BootService&&32768<=amtsysstate.CIM_BootService.response.EnabledState&&amtsysstate.CIM_BootService.response.EnabledState&2&&(106==b||107==b)&&null!=amtPowerBootCapabilities.PlatformErase&&0!=(amtPowerBootCapabilities.PlatformErase&
|
|
1)&&(e.PlatformErase=!0,e.UefiBootParametersArray=platfromEraseTLV.tlv,e.UefiBootNumberOfParams=platfromEraseTLV.tlvlen),null!=e.ConfigurationDataReset&&(e.ConfigurationDataReset=!1),rsepass=null);console.log("Acci\u00f3n de arranque: "+b);console.log("Configuraci\u00f3n de arranque: "+ObjectToString2(e));statusbox("Acci\u00f3n de poder","Establecer la configuraci\u00f3n de arranque ...");amtstack.CIM_BootConfigSetting_ChangeBootOrder(null,function(a,b,c,d){200!=d?messagebox("Acci\u00f3n de poder",
|
|
format("PUT CIM_BootConfigSetting_ChangeBootOrder, Error #{0}",d)+(c.Header&&c.Header.WsmanError?", "+c.Header.WsmanError:"")):0!=c.Body.ReturnValue?messagebox("Change Boot Order","(1) Change Boot Order returns "+c.Body.ReturnValueStr):amtstack.Put("AMT_BootSettingData",e,powerActionResponse2,0,1)},0,1)}}
|
|
function powerActionResponse2(b,c,a,d,e){200!=d?messagebox("Acci\u00f3n de poder",format("PONER AMT_BootSettingData, Error # {0}",d)+(a.Header&&a.Header.WsmanError?", "+a.Header.WsmanError:"")):(statusbox("Acci\u00f3n de poder","Configurando el pr\u00f3ximo arranque ..."),amtstack.SetBootConfigRole(1,powerActionResponse3x,0,1))}
|
|
function powerActionResponse3x(b,c,a,d){b=d5actionSelect.value;c=null;if(999==b)0<c41.value&&(c=["Force CD/DVD Boot","Force PXE Boot","Force Hard-drive Boot","Force Diagnostic Boot"][c41.value-1]);else{if(300==b||301==b)c="Force Diagnostic Boot";if(400==b||401==b)c="Force PXE Boot";if(600==b||601==b)c="Force OCR UEFI HTTPS Boot"}Q("c41").value=0;console.log("ChangeBootOrder: "+c);amtstack.CIM_BootConfigSetting_ChangeBootOrder(null==c?c:'<Address xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2004/08/addressing</Address><ReferenceParameters xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"><ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootSourceSetting</ResourceURI><SelectorSet xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"><Selector Name="InstanceID">Intel(r) AMT: '+
|
|
c+"</Selector></SelectorSet></ReferenceParameters>",powerActionResponse3)}var targetPowerAction=0;
|
|
function powerActionResponse3(b,c,a,d){console.log("powerActionResponse3("+c+","+a+","+d+")");if(!errcheck(d,b))if(0!=a.Body.ReturnValue)messagebox("Change Boot Order","(2) Change Boot Order returns "+a.Body.ReturnValueStr);else{statusbox("Acci\u00f3n de poder","Realizando acci\u00f3n de poder ...");b=d5actionSelect.value;if(100==b||201==b||203==b||300==b||401==b||601==b)b=2;if(101==b||200==b||202==b||301==b||400==b||600==b)b=10;104==b&&(b=2);105==b&&(b=10);106==b&&(b=2);107==b&&(b=10);999==b&&(b=
|
|
AvdPowerDlg.Action);targetPowerAction=b;11==b&&(b=10);999>b?(console.log("RequestPowerStateChange("+b+")"),amtstack.RequestPowerStateChange(b,powerActionResponse4)):messagebox("Acci\u00f3n de poder","Siguiente conjunto de acciones de arranque.")}}
|
|
function powerActionResponse4(b,c,a,d){200==d&&(QH(60,"Acci\u00f3n de poder completada."),setDialogMode(1,"Acci\u00f3n de poder",0),setTimeout(function(){setDialogMode(0)},1300));amtstack.Get("CIM_AssociatedPowerManagementService",powerActionResponse5,0,1)}function powerActionResponse5(b,c,a,d){}function consentChanged(){QE("c54",6==d6ConsentText.value.length)}function changeConsentDisplay(){xxchangeConsentDisplay=!0;checkConsentDisplay()}
|
|
function checkConsentDisplay(){amtstack.Get("IPS_SecIOService",checkConsentDisplayResponse1)}var xxchangeConsentDisplay=!1;
|
|
function checkConsentDisplayResponse1(b,c,a,d){200==d&&(a.Body.DefaultScreen&&(a.Body.DefaultScreen=parseInt(a.Body.DefaultScreen)),a.Body.NumberOfScreens&&(a.Body.NumberOfScreens=parseInt(a.Body.NumberOfScreens)),1==xxchangeConsentDisplay?(xxchangeConsentDisplay=!1,a.Body.DefaultScreen=d6Display.value,amtstack.Put("IPS_SecIOService",a.Body,checkConsentDisplayResponse1)):(d6Display.value=a.Body.DefaultScreen,QV("d6ThirdDisplay",2<a.Body.NumberOfScreens)))}
|
|
var xxStorage=null,xxStorageVendors=[],xxStorageApplications=[];function PullStorage(){amtFirstPull|=8;wsstack.comm.PerformAjax("",PullStorageResponse,null,0,"/amt-storage/","GET")}
|
|
function PullStorageResponse(b,c,a){0==amtstack.PendingBatchOperations&&refreshButtons(!0);if(200==c){QV("go21",!0);for(c=0;32>c;c++){do a=b.length,b=b.replace(String.fromCharCode(c),"");while(a>b.length)}try{xxStorage=JSON.parse(b)}catch(E){return}xxStorageVendors=[];xxStorageApplications=[];b=xxStorage.content;if(Array.isArray(b)){a={};for(c in b){var d=b[c].vendor?b[c].vendor:"";a[d]||(a[d]={});var e=b[c].app?b[c].app:"";a[d][e]||(a[d][e]={});b[c].name&&(a[d][e][b[c].name]=b[c])}xxStorage.content=
|
|
b=a}else{if(b["index.htm"]||b["logon.htm"])b[""]={"":{}};b["index.htm"]&&(b[""][""]["index.htm"]=b["index.htm"],delete b["index.htm"]);b["logon.htm"]&&(b[""][""]["logon.htm"]=b["logon.htm"],delete b["logon.htm"])}d=0;a=TableStart2()+"<tr><td class=r1 style=padding-left:15px><br>Administre el almacenamiento Intel® AMT para esta computadora.<br><br>";var v,n,e="";for(c in b){var l=0,p;for(p in b[c]){l++;var q=0,h;for(h in b[c][p]){q++;if(c!=v||p!=n)""!=e&&(a+=e,e="<br>"),v=c,n=p,e=""!=c?e+EscapeHtml(c+
|
|
" / "+p):e+"Ra\u00edz";var B='"'+c+(""!=c?"/":"")+p+(""!=p?"/":"")+h+'"',e=e+('<div class=itemBar onclick=showStorageDetails("'+c+'","'+p+'","'+h+'",'+B+")><div style=float:right>"),e=e+(" "+AddButton2("Descargar","DownloadFromStorage("+B+',"'+h+'",event)')),e=e+("</div><div style=padding-top:3px><b>"+EscapeHtml(h)+"</b>, <i>"+b[c][p][h].size+" bytes</i></div></div>");d++;-1==xxStorageVendors.indexOf(c)&&xxStorageVendors.push(c);-1==xxStorageApplications.indexOf(p)&&xxStorageApplications.push(p)}0==
|
|
q&&(wsstack.comm.PerformAjax("",function(){},null,0,"/amt-storage/"+c+"/"+p,"DELETE"),wsstack.comm.PerformAjax("",function(){},null,0,"/amt-storage/"+c,"DELETE"))}0==l&&wsstack.comm.PerformAjax("",function(){},null,0,"/amt-storage/"+c,"DELETE")}""!=e&&(a+=e);0==d&&(a+="<div style=padding-left:15px><br><i>No se encontraron archivos.</i></div><br>");v=!1;try{var w=new FileReader;v=null!=w&&null!=w.readAsBinaryString}catch(E){console.log(E)}a+="<br><td class=r1>"+TableEnd(AddRefreshButton("PullStorage()")+
|
|
(v?AddButton("Subir...","UploadToStorage()"):""));QH(55,a)}else QH(55,"No se pueden cargar los datos de almacenamiento ...<br/>"+AddButton("Actualizar","PullStorage()"))}
|
|
function showStorageDetails(b,c,a,d){if(!xxdialogMode){var e="",v=xxStorage.content[b][c][a];""!=b&&(e+=addHtmlValue("Vendedor",b));""!=c&&(e+=addHtmlValue("Solicitud",c));e+=addHtmlValue("Nombre",a);e+=addHtmlValue("Talla",v.size+" bytes");v.link&&(e+=addHtmlValue("Enlace",v.link));setDialogMode(11,"Art\u00edculo de almacenamiento",5,showStorageDetailsEx,e,d)}}function showStorageDetailsEx(b,c){2==b&&wsstack.comm.PerformAjax("",storageDeleteResponse,null,0,"/amt-storage/"+c,"DELETE")}
|
|
function storageDeleteResponse(b,c){200!=c?messagebox("Almacenamiento",format("No se puede eliminar el archivo (ERR {0}), verifique que la computadora est\u00e9 encendida.",c)):PullStorage()}function DownloadFromStorage(b,c,a){xxdialogMode||(haltEvent(a),wsstack.comm.PerformAjax("",DownloadFromStorageEx,c,0,"/amt-storage/"+b,"GET"))}function DownloadFromStorageEx(b,c,a){200!=c||null==b?console.log(c,"Data = null"):saveAs(data2blob(b),a)}
|
|
function OpenFromStorage(b,c){if(!xxdialogMode){haltEvent(c);var a=window.open("http://"+wsstack.comm.host+":"+wsstack.comm.port+"/amt-storage/"+b,"_blank","noopener,noreferrer");a.opener=null;a.focus()}}function PushToStorage(b,c,a){var d=null;7E3<c.length&&(d=[b,c.substring(7E3)],c=c.substring(0,7E3));wsstack.comm.PerformAjax(c,PushToStorageResponse,d,0,"/amt-storage/"+b+(1==a?"?append=":""),"PUT")}
|
|
function PushToStorageResponse(b,c,a){200!=c?messagebox("Almacenamiento",format("No se puede enviar el archivo (ERR {0}), verifique que la computadora est\u00e9 encendida.",c)):null!=a?PushToStorage(a[0],a[1],!0):PullStorage()}
|
|
function UploadToStorage(b,c){if(!xxdialogMode){c||(c="");var a;a="<br>Seleccione un archivo peque\u00f1o para cargar al almacenamiento e ingrese un proveedor, una aplicaci\u00f3n y un nombre de archivo.<br>";a=(b?a+('<br><div style=height:20px><input id=mstoragefile style=float:right;width:240px readonly disabled=disabled value="'+c+'" ><div>Subir archivo</div></div>'):a+"<br><div style=height:20px><input type=file id=mstoragefile style=float:right;width:240px onchange=SetStorageName()><div>Upload file</div></div>")+
|
|
'<br><div style=height:16px><input id=mstoragevendor placeholder="Vendedor" list=mstoragevendorlist maxlength=11 style=float:right;width:240px><div>Nombre del vendedor</div></div>';a+='<br><div style=height:16px><input id=mstorageapplication placeholder="App" list=mstorageapplicationlist maxlength=11 style=float:right;width:240px><div>Nombre de la aplicaci\u00f3n</div></div>';a+='<br><div style=height:16px><input id=mstoragefilename placeholder="Nombre del archivo" maxlength=11 style=float:right;width:240px><div>Nombre del archivo</div></div>';
|
|
a+="<br><div style=height:16px><input id=mstoragetype placeholder=application/octet-stream list=mstoragetypelist style=float:right;width:240px><div>Tipo de Mimica</div></div>";a+='<br><div style=height:16px><input id=mstoragelink style=float:right;width:240px><div title="Si est\u00e1 configurado, crea un enlace a este contenido desde la p\u00e1gina web principal">Enlace</div></div><br>';a+="<datalist id=mstoragevendorlist>";for(var d in xxStorageVendors)a+='<option value="'+xxStorageVendors[d]+'">';
|
|
a+="</datalist>";a+="<datalist id=mstorageapplicationlist>";for(d in xxStorageApplications)a+='<option value="'+xxStorageApplications[d]+'">';a+='</datalist><datalist id=mstoragetypelist><option value="application/octet-stream"><option value="image/jpeg"><option value="text/html"><option value="text/plain"></datalist>';setDialogMode(11,"Carga de almacenamiento",3,UploadToStorageEx,a,b);b&&SetStorageName(c)}}
|
|
function UploadToStorageEx(b,c){if(c)d=new FileReader,d.onload=UploadToStorageEx2,d.filename=Q("mstoragefile").value,d.readAsBinaryString(c);else{var a=Q("mstoragefile");if(1==a.files.length){var d=new FileReader;d.onload=UploadToStorageEx2;d.filename=a.files[0].name;d.readAsBinaryString(a.files[0])}}}
|
|
function SetStorageName(b){b||(b=Q("mstoragefile"),b=1==b.files.length?b.files[0].name:"");b=b.split(" ").join("");var c=b.split("-");3==c.length&&12>c[0].length&&12>c[1].length&&(Q("mstoragevendor").value=c[0],Q("mstorageapplication").value=c[1],b=c[2]);b=b.split("-").join("");b.endsWith(".gz")&&(b=b.substring(0,b.length-3));b.endsWith(".htm")||b.endsWith(".html")?Q("mstoragetype").value="text/html":b.endsWith(".txt")&&(Q("mstoragetype").value="text/plain");11<b.length&&(b=b.substring(0,11));Q("mstoragefilename").value=
|
|
b}
|
|
function UploadToStorageEx2(b){var c;c=Q("mstoragevendor").value;var a=Q("mstorageapplication").value,d=Q("mstoragefilename").value;""==d&&(d="Filename");var e=Q("mstoragetype").value;""==e&&(e="application/octet-stream");var v=Q("mstoragelink").value;""!=c||""!=a||"logon.htm"!=d.toLowerCase()&&"index.htm"!=d.toLowerCase()?(""==c&&(c="Vendor"),""==a&&(a="App"),c=c+"/"+a+"/"+d):c=d.toLowerCase();a="<metadata><headers>";d=b.target.filename;d||(d=Q("mstoragefile").files[0].name);d.endsWith(".gz")&&(a+=
|
|
"<h>Content-Encoding: gzip</h>");a+="<h>Content-Type: "+e+"</h></headers>";""!=v&&(a+="<link>"+v+"</link>");a+="</metadata>"+b.target.result;PushToStorage(c,a)}function _fmtdatetime(b){return b.replace("T"," ").replace("Z","")}
|
|
function _fmtinterval(b){b=b.replace("T","").substring(b.indexOf("P")+1);b=" "+b.replace("D"," dias").replace("H"," horas").replace("M"," minutos");b=b.replace(" 1 d\u00eda"," 1 d\u00eda").replace(" 1 hora"," 1 hora").replace(" 1 minuto"," 1 minuto");return b.substring(0,b.length-1)}function _fmttimepad(b){for(b=""+b;2>b.length;)b="0"+b;return b}var xxAlarms=null;
|
|
function PullAlarms(){var b=TableStart2()+"<tr><td class=r1 style=padding-left:15px><br>Gestionar alarmas de despertador.<br><br>";amtstack.Enum("IPS_AlarmClockOccurrence",function(c,a,d,e){if(200==e){QV("go23",!0);if(0<d.length)for(xxAlarms=d,c=0;c<d.length;c++)a="<b>"+d[c].ElementName+"</b>, despertar en "+(new Date(d[c].StartTime.Datetime)).toLocaleString().replace(", "," a"),void 0!=d[c].Interval&&(a+=" y cada"+_fmtinterval(d[c].Interval.Interval)),1==d[c].DeleteOnCompletion&&(a+=", eliminar cuando haya terminado"),
|
|
b+="<div class=itemBar onclick=showAlertDetails("+c+")><div style=float:right>",xxAccountAdminName&&(b+=" "+AddButton2("Editar...",'showAddAlarm(" + i + ")')),b+="</div><div style=padding-top:3px;width:auto;float:left;overflow-x:hidden>"+a+"</div></div>";else xxAlarms=null,b+="<div style=padding-left:15px><br><i>No hay alarmas de despertador registradas.</i></div><br>";d="<div> "+AddRefreshButton("PullAlarms()");xxAccountAdminName&&(d+=AddButton("Eliminar todas las alarmas","RemoveAllAlarms()")+
|
|
AddButton("A\u00f1adir","showAddAlarm()"));b+="<br><td class=r1>"+TableEnd(d+"</div>");QH(57,b)}},null,!0)}
|
|
function prepareAlarmOccurenceTemplate(b,c,a,d,e){return'<d:AlarmTemplate xmlns:d="http://intel.com/wbem/wscim/1/amt-schema/1/AMT_AlarmClockService" xmlns:s="http://intel.com/wbem/wscim/1/ips-schema/1/IPS_AlarmClockOccurrence"><s:InstanceID>'+b+'</s:InstanceID><s:StartTime><p:Datetime xmlns:p="http://schemas.dmtf.org/wbem/wscim/1/common">'+a+'</p:Datetime></s:StartTime><s:Interval><p:Interval xmlns:p="http://schemas.dmtf.org/wbem/wscim/1/common">'+d+"</p:Interval></s:Interval><s:DeleteOnCompletion>"+
|
|
e+"</s:DeleteOnCompletion></d:AlarmTemplate>"}function RemoveAllAlarms(){setDialogMode(1,"Eliminar todas las alarmas de activaci\u00f3n",3,RemoveAllAlarmsEx,"\u00bfConfirmar la eliminaci\u00f3n de todas las alarmas de activaci\u00f3n?")}function RemoveAllAlarmsEx(){var b=xxAlarms.length,c;for(c in xxAlarms)amtstack.Delete("IPS_AlarmClockOccurrence",xxAlarms[c],function(a,c,e,v){0==--b&&PullAlarms()})}
|
|
function showAddAlarm(b){if(!xxdialogMode){QE("d25alarm_name",!b);if(void 0!=b){var c=xxAlarms[b],a=new Date(c.StartTime.Datetime);Q("d25alarm_name").value=c.ElementName;Q("d25alarm_sdate").value=a.getFullYear()+"-"+_fmttimepad(a.getMonth()+1)+"-"+_fmttimepad(a.getDate());Q("d25alarm_stime").value=a.getHours()+":"+_fmttimepad(a.getMinutes())+":"+_fmttimepad(a.getSeconds());if(c.Interval){var a=c.Interval.Interval.replace("P","").replace("T","").replace("D","D,").replace("H","H,").replace("M","M,").split(","),
|
|
d=[0,0,0],e;for(e in a){var v=a[e].length-1;"D"==a[e][v]&&(d[0]=parseInt(a[e].substring(0,v)));"H"==a[e][v]&&(d[1]=parseInt(a[e].substring(0,v)));"M"==a[e][v]&&(d[2]=parseInt(a[e].substring(0,v)))}Q("d25alarm_interval").value=d.join("-")}else Q("d25alarm_interval").value="";Q("d25alarm_doc").value=1==c.DeleteOnCompletion?1:0}else c=new Date,c.setDate((new Date).getDate()+1),Q("d25alarm_name").value="",Q("d25alarm_sdate").value=c.getFullYear()+"-"+_fmttimepad(c.getMonth()+1)+"-"+_fmttimepad(c.getDate()),
|
|
Q("d25alarm_stime").value=c.getHours()+":"+_fmttimepad(c.getMinutes())+":00",Q("d25alarm_interval").value="",Q("d25alarm_doc").value=0;setDialogMode(25,"Agregar nueva alarma",void 0!=b?7:3,showAddAlarmOk,"",b);alertDialogUpdate()}}function alertDialogUpdate(){var b=Q("d25alarm_interval").value.split("-").length,b=0<Q("d25alarm_name").value.length&&3==Q("d25alarm_sdate").value.split("-").length&&3==Q("d25alarm_stime").value.split(":").length&&(1==b||3==b);QE("c54",b)}
|
|
function showAddAlarmOk(b,c){if(2==b)showAlertDetailsDelete(b,c);else{var a=Q("d25alarm_name").value,d=Q("d25alarm_sdate").value.split("-"),e=Q("d25alarm_stime").value.split(":"),d=new Date(d[0],d[1]-1,d[2],e[0],e[1],e[2],0),d=_fmttimepad(d.getUTCFullYear())+"-"+_fmttimepad(d.getUTCMonth()+1)+"-"+_fmttimepad(d.getUTCDate())+"T"+_fmttimepad(d.getUTCHours())+":"+_fmttimepad(d.getUTCMinutes())+":"+_fmttimepad(d.getUTCSeconds())+"Z",e=Q("d25alarm_interval").value.split("-");3!=e.length&&(e=[0,0,0]);var e=
|
|
"P"+e[0]+"DT"+e[1]+"H"+e[2]+"M",v=1==Q("d25alarm_doc").value,a=prepareAlarmOccurenceTemplate(a,a,d,e,v);void 0==c?wsstack.ExecMethodXml(amtstack.CompleteName("AMT_AlarmClockService"),"AddAlarm",a,function(a,b,c,d){200!=d?messagebox("Agregar alarma",format("No se pudo agregar la alarma. Estado: {0}. <br/> Verifique que la alarma sea para un tiempo futuro.",d)):0!=c.Body.ReturnValue?messagebox("Agregar alarma",format("No se pudo agregar la alarma {0}. <br/> Verifique que la alarma sea para un tiempo futuro.",
|
|
c.Body.ReturnValueStr)):PullAlarms()}):(a=Clone(xxAlarms[c]),a.StartTime='<p:Datetime xmlns:p="http://schemas.dmtf.org/wbem/wscim/1/common">'+d+"</p:Datetime>",a.Interval='<p:Interval xmlns:p="http://schemas.dmtf.org/wbem/wscim/1/common">'+e+"</p:Interval>",a.DeleteOnCompletion=v,amtstack.Put("IPS_AlarmClockOccurrence",a,function(a,b,c,d){200!=d?messagebox("Editar alarma",format("Failed to change alarm. Status: {0}.<br/>Verify the alarm for at a future time.",d)):PullAlarms()},null,null,{InstanceID:a.InstanceID}))}}
|
|
function showAlertDetails(b){if(!xxdialogMode){var c=xxAlarms[b],a=new Date(c.StartTime.Datetime),a="<div style=text-align:left>"+addHtmlValue("Nombre",c.ElementName)+addHtmlValue("Hora de despertarse",a.toLocaleString().replace(", "," at "));void 0!=c.Interval&&(a+=addHtmlValue("Interno",_fmtinterval(c.Interval.Interval)));a+=addHtmlValue("Despues de despertar",1==c.DeleteOnCompletion?"Eliminar alarma":"Mantener alarma")+"</div>";messagebox(format("Alarma {0}",c.ElementName),a);setDialogMode(11,
|
|
"Alarma"+c.ElementName,5,showAlertDetailsDelete,a,b)}}function showAlertDetailsDelete(b,c){2==b&&amtstack.Delete("IPS_AlarmClockOccurrence",xxAlarms[c],function(a,b,c,v){PullAlarms()})}var xxdialogMode,xxdialogFunc,xxdialogButtons,xxdialogTag;
|
|
function setDialogMode(b,c,a,d,e,v){xxdialogMode=b;xxdialogFunc=d;xxdialogButtons=a;xxdialogTag=v;QE("c54",!0);QV("c54",a&1);QV("c53",a&2);QV(58,a&2);QV("c55",a&4);c&&QH(59,c);for(c=1;27>c;c++)QV("dialog"+c,c==b);QV("dialog",b);e&&(11==b?QH(63,e):QH(60,e));0!=xxdialogMode&&iderToggleDiskMap(!1)}
|
|
function dialogclose(b){var c=xxdialogFunc,a=xxdialogButtons,d=xxdialogTag;setDialogMode();(a&8||b)&&c&&c(b,d)}
|
|
function center(){QS("dialog").left=(getDocWidth()-400)/2+"px";var b=0,c=Q(8).offsetHeight-(0==fullscreen?126:53);""==QS(9).display&&(b+=32);QS(14).height=Q(8).offsetHeight-b-(0==fullscreen?16:0)+"px";QS("Desk")["max-height"]=c-b+"px";QS("Desk")["max-width"]=Q(8).offsetWidth-(0==fullscreen?32:0)+"px";0!=Q(41).offsetWidth&&(QS("Desk")["max-width"]=Q(41).offsetWidth);fullscreen?(QS(14)["overflow-y"]=
|
|
"hidden",b=(c-b-Q("Desk").offsetHeight)/2,QS("Desk")["margin-top"]=b+"px",QS("Desk")["margin-bottom"]=b+"px"):(QS(14)["overflow-y"]="scroll",QS("Desk")["margin-top"]="0",QS("Desk")["margin-bottom"]="0")}function messagebox(b,c){QH(60,c);setDialogMode(1,b,1)}function statusbox(b,c){QH(60,c);setDialogMode(1,b)}
|
|
function SaveJsonFile(b,c,a,d){var e="",v={},n=new Date;amtsysstate&&(e="-"+amtsysstate.AMT_GeneralSettings.response.HostName,v={webappversion:version,description:a,hostname:amtsysstate.AMT_GeneralSettings.response.HostName,localtime:Date(),utctime:(new Date).toUTCString(),isotime:(new Date).toISOString()},HardwareInventory&&(v.systemid=guidToStr(HardwareInventory.CIM_ComputerSystemPackage.response.PlatformGUID.toLowerCase())));e+="-"+n.getFullYear()+"-"+("0"+(n.getMonth()+1)).slice(-2)+"-"+("0"+
|
|
n.getDate()).slice(-2)+"-"+("0"+n.getHours()).slice(-2)+"-"+("0"+n.getMinutes()).slice(-2);v[c]=d;saveAs(data2blob(JSON.stringify(v,null," ").replace(/\n/g,"\r\n")),b+e+".json")}var httpErrorTable={200:"Okay",401:"Error de autenticaci\u00f3n",408:"Error de tiempo de espera",601:"Error de an\u00e1lisis de WSMAN",602:"No se puede analizar el encabezado de respuesta HTTP",603:"Respuesta inesperada de enumeraci\u00f3n HTTP",604:"Respuesta de extracci\u00f3n HTTP inesperada",997:"Reino de resumen inv\u00e1lido"};
|
|
function errcheck(b,c){if(null==wsstack||amtstack!=c)return!0;200!=b&&9!=b&&(setDialogMode(),wsstack.comm.FailAllError=999,amtstack.CancelAllQueries(999),QH(5,httpErrorTable[b]?httpErrorTable[b]:format("Error # {0}",b)),401==b&&QH(5,'Error de autenticaci\u00f3n<br /><br /><input type=button value="Set new credentials" onclick=meshcentral2credCallback(true)></input>'),go(100),QS(3).width=0);return 200!=b}
|
|
function goiFrame(b,c,a){if(!xxdialogMode){go(c);if(1==b.shiftKey||0==Q(13).src.endsWith(a))Q(13).src=a;QV(14,!1);QV(12,!0)}}function go(b,c){if(!xxdialogMode||1==c){QV(12,!1);QV(14,!0);QV(4,100==b);QV(6,100>b);for(var a=0;80>a;a++){QV("p"+a,a==b);var d=QS("go"+a);d&&(d["background-color"]=a==b?"#abcae1":"");d&&(d["background-color"]=a==b?"gray":"")}currentView=b;center()}}
|
|
function portsFromHost(b,c){b=decodeURIComponent(b);var a=b.split(":"),d=0==c?16992:16993,e=0==c?16994:16995;if(0==a[0].indexOf("[")){a=b.split("]:");if(1==a.length)return{host:b.substring(1,b.length-1),http:d,redir:e};if(1<a.length){var v=a[1].split(":");0<v.length&&(d=parseInt(v[0]));1<v.length&&(e=parseInt(v[1]))}return{host:a[0].substring(1),http:d,redir:e}}1<a.length&&(d=parseInt(a[1]));2<a.length&&(e=parseInt(a[2]));return{host:a[0],http:d,redir:e}}
|
|
function addLink(b,c){return"<a style=cursor:pointer;color:blue onclick='"+c+"'>♦ "+b+"</a>"}function addLinkConditional(b,c,a){return a?addLink(b,c):b}function haltEvent(b){b.preventDefault&&b.preventDefault();b.stopPropagation&&b.stopPropagation();return!1}function addOption(b,c,a){var d=document.createElement("option");d.text=c;d.value=a;Q(b).add(d)}function addDisabledOption(b,c,a){var d=document.createElement("option");d.text=c;d.value=a;d.disabled=1;Q(b).add(d)}
|
|
function passwordcheck(b){if(8>b.length)return!1;var c=0,a=0,d=0,e=0,v;for(v in b){var n=b.charCodeAt(v);64<n&&91>n?c=1:96<n&&123>n?a=1:47<n&&58>n?d=1:e=1}return 4==c+a+d+e}function methodcheck(b){return b&&null!=b&&b.Body&&0!=b.Body.ReturnValue?(messagebox("Error de llamada",b.Header.Method+": "+(b.Body.ReturnValueStr+"").replace("_"," ")),!0):!1}function TableStart(){return"<table class='log1 us' cellpadding=0 cellspacing=0 style=width:100%;border-radius:8px><tr><td width=200px><p><td>"}
|
|
function TableStart2(){return"<table class='log1 us' cellpadding=0 cellspacing=0 style=width:100%;border-radius:8px><tr><td><p><td>"}function TableEntry(b,c){return"<tr><td class=r1><p>"+b+"<td class=r1>"+c}function FullTable(b,c){var a=TableStart();for(i in b)i&&b[i]&&(a+=TableEntry(i,b[i]));return a+TableEnd(c)}function TableEnd(b){return"<tr><td colspan=2><p>"+(b?b:"")+"</table>"}function AddButton(b,c){return"<input type=button value='"+b+"' onclick='"+c+"' style=margin:4px>"}
|
|
function AddButton2(b,c,a){return"<input type=button value='"+b+"' onclick='"+c+"' "+a+">"}function AddRefreshButton(b){return'<input type=button name=refreshbtn value="Actualizar" onclick=\'refreshButtons(false);'+b+"' style=margin:4px "+(0==refreshButtonsState?"disabled":"")+">"}function MoreStart(){return'<a style=cursor:pointer;color:blue id=morexxx1 onclick=QV("morexxx1",false);QV("morexxx2",true)>▼ More</a><div id=morexxx2 style=display:none><br><hr>'}
|
|
function MoreEnd(){return'<a style=cursor:pointer;color:blue onclick=QV("morexxx2",false);QV("morexxx1",true)>▲ Less</a></div>'}function getSelectedOptions(b){for(var c=[],a,d=0,e=b.options.length;d<e;d++)a=b.options[d],a.selected&&c.push(a.value);return c}function getInstance(b,c){for(var a in b)if(b[a].InstanceID==c)return b[a];return null}function getItem(b,c,a){for(var d in b)if(b[d][c]==a)return b[d];return null}
|
|
function guidToStr(b){return b.substring(6,8)+b.substring(4,6)+b.substring(2,4)+b.substring(0,2)+"-"+b.substring(10,12)+b.substring(8,10)+"-"+b.substring(14,16)+b.substring(12,14)+"-"+b.substring(16,20)+"-"+b.substring(20)}function getUrlVars(){for(var b,c=[],a=window.location.href.slice(window.location.href.indexOf("?")+1).split("&"),d=0;d<a.length;d++)b=a[d].indexOf("="),0<b&&(c[a[d].substring(0,b)]=a[d].substring(b+1,a[d].length));return c}
|
|
function getDocWidth(){return window.innerWidth?window.innerWidth:document.documentElement&&document.documentElement.clientWidth&&0!=document.documentElement.clientWidth?document.documentElement.clientWidth:document.getElementsByTagName("body")[0].clientWidth}
|
|
function getDocHeight(){return window.innerHeight?window.innerHeight:document.documentElement&&document.documentElement.clientHeight&&0!=document.documentElement.clientHeight?document.documentElement.clientHeight:document.getElementsByTagName("body")[0].clientHeight}function addHtmlValue(b,c){return'<div style=height:20px><div style=float:right;width:220px;overflow:hidden><b title="'+c+'">'+c+"</b></div><div>"+b+"</div></div>"}
|
|
function addHtmlValueNoTitle(b,c){return"<div style=height:20px><div style=float:right;width:220px;overflow:hidden>"+c+"</b></div><div>"+b+"</div></div>"}function numbersOnly(b,c){return 0==event.charCode||event.charCode==c||48<=event.charCode&&57>=event.charCode}function format(b){var c=Array.prototype.slice.call(arguments,1);return b.replace(/{(\d+)}/g,function(a,b){return"undefined"!=typeof c[b]?c[b]:a})}startup();
|
|
</script> |