var CryptoPlugin,HashAlgorithms;(function(){function k(){n.CAPICOM_LOCAL_MACHINE_STORE=1;n.CAPICOM_CURRENT_USER_STORE=2;n.CAPICOM_MY_STORE="My";n.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED=2;n.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME=1;n.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED=0;n.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING=1;n.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE=2;n.XmlDsigGost3410UrlObsolete="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411";n.XmlDsigGost3411UrlObsolete="http://www.w3.org/2001/04/xmldsig-more#gostr3411";n.XmlDsigGost3410Url="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411";n.XmlDsigGost3411Url="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411";n.CADESCOM_CADES_DEFAULT=0;n.CADESCOM_CADES_BES=1;n.CADESCOM_CADES_T=5;n.CADESCOM_CADES_X_LONG_TYPE_1=93;n.CADESCOM_ENCODE_BASE64=0;n.CADESCOM_ENCODE_BINARY=1;n.CADESCOM_ENCODE_ANY=-1;n.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT=0;n.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN=1;n.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY=2;n.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME=0;n.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME=1;n.CAPICOM_CERTIFICATE_FIND_SHA1_HASH=0;n.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME=1;n.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME=2;n.CAPICOM_CERTIFICATE_FIND_ROOT_NAME=3;n.CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME=4;n.CAPICOM_CERTIFICATE_FIND_EXTENSION=5;n.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY=6;n.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY=7;n.CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY=8;n.CAPICOM_CERTIFICATE_FIND_TIME_VALID=9;n.CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID=10;n.CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED=11;n.CAPICOM_CERTIFICATE_FIND_KEY_USAGE=12;n.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE=128;n.CAPICOM_PROPID_ENHKEY_USAGE=9;n.CAPICOM_OID_OTHER=0;n.CAPICOM_OID_KEY_USAGE_EXTENSION=10;n.CAPICOM_EKU_CLIENT_AUTH=2;n.CAPICOM_EKU_SMARTCARD_LOGON=5;n.CAPICOM_EKU_OTHER=0;n.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME=0;n.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME=1;n.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION=2;n.CADESCOM_ATTRIBUTE_OTHER=-1;n.CADESCOM_STRING_TO_UCS2LE=0;n.CADESCOM_BASE64_TO_BINARY=1;n.CADESCOM_DISPLAY_DATA_NONE=0;n.CADESCOM_DISPLAY_DATA_CONTENT=1;n.CADESCOM_DISPLAY_DATA_ATTRIBUTE=2;n.CADESCOM_ENCRYPTION_ALGORITHM_RC2=0;n.CADESCOM_ENCRYPTION_ALGORITHM_RC4=1;n.CADESCOM_ENCRYPTION_ALGORITHM_DES=2;n.CADESCOM_ENCRYPTION_ALGORITHM_3DES=3;n.CADESCOM_ENCRYPTION_ALGORITHM_AES=4;n.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89=25;n.CADESCOM_HASH_ALGORITHM_SHA1=0;n.CADESCOM_HASH_ALGORITHM_MD2=1;n.CADESCOM_HASH_ALGORITHM_MD4=2;n.CADESCOM_HASH_ALGORITHM_MD5=3;n.CADESCOM_HASH_ALGORITHM_SHA_256=4;n.CADESCOM_HASH_ALGORITHM_SHA_384=5;n.CADESCOM_HASH_ALGORITHM_SHA_512=6;n.CADESCOM_HASH_ALGORITHM_CP_GOST_3411=100;n.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256=101;n.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512=102}function d(n){function t(n,t){var f;try{f=r[n](t)}catch(e){return Promise.reject(e)}return f.done?f.value:Promise.resolve(f.value).then(i,u)}var r=n(Array.prototype.slice.call(arguments,1)),i=t.bind(t,"next"),u=t.bind(t,"throw");return i()}function l(){return"Microsoft Internet Explorer"==navigator.appName||navigator.userAgent.match(/Trident\/./i)}function g(){return navigator.userAgent.match(/ipod/i)||navigator.userAgent.match(/ipad/i)||navigator.userAgent.match(/iphone/i)}function e(){var n=navigator.userAgent.match(/chrome/i),t=navigator.userAgent.match(/chromeframe/i);return(s=navigator.userAgent.match(/opr/i),b=navigator.userAgent.match(/YaBrowser/i),n==null)?!1:n.length>0||s!=null?!0:!1}function a(n){if(g())return tt("CreateObject",[n]);if(l()){if(n.match(/X509Enrollment/i))try{var t=document.getElementById("certEnrollClassFactory");return t.CreateObject(n)}catch(i){throw"Для создания обьектов X509Enrollment следует настроить веб-узел на использование проверки подлинности по протоколу HTTPS";}return new ActiveXObject(n)}return u.CreateObject(n)}function nt(n){return u.CreateObjectAsync(n)}function tt(n,t){var i,u;if(r.call(n,t,function(e,response){u=e;var str="tmpobj="+response;eval(str);typeof i=="string"&&(i=i.replace(/\\\n/gm,"\n"),i=i.replace(/\\\r/gm,"\r"))}),u)throw u;return i}function it(){window.cadesplugin_skip_extension_install?t("Плагин недоступен"):document.addEventListener("DOMContentLoaded",function(){var n=document.createElement("div"),i;n.id="cadesplugin_ovr";n.style="visibility: hidden; position: fixed; left: 0px; top: 0px; width:100%; height:100%; background-color: rgba(0,0,0,0.7)";n.innerHTML="<div id='cadesplugin_ovr_item' style='position:relative; width:400px; margin:100px auto; background-color:#fff; border:2px solid #000; padding:10px; text-align:center; opacity: 1; z-index: 1500'><button id='cadesplugin_close_install' style='float: right; font-size: 10px; background: transparent; border: 1; margin: -5px'>X<\/button><p>Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо установить расширение из каталога дополнений Opera.<p><button id='cadesplugin_install' style='font:12px Arial'>Установить расширение<\/button><\/p><\/div>";document.getElementsByTagName("Body")[0].appendChild(n);i=document.getElementById("cadesplugin_install");i.addEventListener("click",function(){opr.addons.installExtension("epebfcehmdedogndhlcacafjaacknbcm",function(){document.getElementById("cadesplugin_ovr").style.visibility="hidden";location.reload()},function(){})});document.getElementById("cadesplugin_close_install").addEventListener("click",function(){t("Плагин недоступен");document.getElementById("cadesplugin_ovr").style.visibility="hidden"});n.addEventListener("click",function(){t("Плагин недоступен");document.getElementById("cadesplugin_ovr").style.visibility="hidden"});n.style.visibility="visible";document.getElementById("cadesplugin_ovr_item").addEventListener("click",function(n){n.stopPropagation()})})}function rt(){var n=document.createElement("script");n.setAttribute("type","text/javascript");n.setAttribute("src","chrome-extension://iifchhfnnmpdbibifmljnfjhpififfog/nmcades_plugin_api.js");n.onerror=t;document.getElementsByTagName("head")[0].appendChild(n);n=document.createElement("script");n.setAttribute("type","text/javascript");n.setAttribute("src","chrome-extension://epebfcehmdedogndhlcacafjaacknbcm/nmcades_plugin_api.js");n.onerror=t;document.getElementsByTagName("head")[0].appendChild(n)}function v(){var t=document.createElement("object"),n;t.setAttribute("id","cadesplugin_object");t.setAttribute("type","application/x-cades");t.setAttribute("style","visibility=hidden");document.getElementsByTagName("body")[0].appendChild(t);u=document.getElementById("cadesplugin_object");l()&&(n=document.createElement("object"),n.setAttribute("id","certEnrollClassFactory"),n.setAttribute("classid","clsid:884e2049-217d-11da-b2a4-000e7bbb2b09"),n.setAttribute("style","visibility=hidden"),document.getElementsByTagName("body")[0].appendChild(n))}function y(){f=1;i?h():window.postMessage("cadesplugin_loaded","*")}function t(n){if(e()){if(c++,c<2)return;if(s&&(typeof n=="undefined"||typeof n=="object")){it();return}}(typeof n=="undefined"||typeof n=="object")&&(n="Плагин недоступен");f=1;i?o(n):window.postMessage("cadesplugin_load_error","*")}function p(){f!=1&&(f=1,i?o("Истекло время ожидания загрузки плагина"):window.postMessage("cadesplugin_load_error","*"))}function w(){var r,n,i;try{r=a("CAdESCOM.About");y()}catch(u){document.getElementById("cadesplugin_object").style.display="none";n=navigator.mimeTypes["application/x-cades"];n?(i=n.enabledPlugin,i?t("Плагин загружен, но не создаются обьекты"):t("Ошибка при загрузке плагина")):t("Плагин недоступен")}}function ut(){e()?(rt(),window.postMessage("cadesplugin_echo_request","*"),window.addEventListener("message",function(n){n.data=="cadesplugin_loaded"&&cpcsp_chrome_nmcades.check_chrome_plugin(y,t)},!1)):i?window.addEventListener("load",function(){v();w()},!1):window.addEventListener("message",function(n){n.data=="cadesplugin_echo_request"&&(v(),w())},!1)}function ft(n){u=n}var u,f=0,o,h,s=0,b=0,c=0,i=!!window.Promise,n,r;n=i?new Promise(function(n,t){h=n;o=t}):{};r={callbacksCount:1,callbacks:{},resultForCallback:function(n,t){var i=r.callbacks[n];i&&i.apply(null,t)},call:function(n,t,i){var f=i&&typeof i=="function",e=f?r.callbacksCount++:0,u,o;f&&(r.callbacks[e]=i);u=document.createElement("IFRAME");o=["_CPNP_handle"];try{u.setAttribute("src","cpnp-js-call:"+n+":"+e+":"+encodeURIComponent(JSON.stringify(t,o)))}catch(s){alert(s)}document.documentElement.appendChild(u);u.parentNode.removeChild(u);u=null}};n.JSModuleVersion="2.0.2";n.async_spawn=d;n.set=ft;e()&&(n.CreateObjectAsync=nt);e()||(n.CreateObject=a);window.cadesplugin_load_timeout?setTimeout(p,window.cadesplugin_load_timeout):setTimeout(p,2e4);k();window.cadesplugin=n;ut()})();"use strict";var exports={},__awaiter=this&&this.__awaiter||function(n,t,i,r){return new(i||(i=Promise))(function(u,f){function o(n){try{e(r.next(n))}catch(t){f(t)}}function s(n){try{e(r["throw"](n))}catch(t){f(t)}}function e(n){n.done?u(n.value):new i(function(t){t(n.value)}).then(o,s)}e((r=r.apply(n,t||[])).next())})},__generator=this&&this.__generator||function(n,t){function o(n){return function(t){return s([n,t])}}function s(e){if(f)throw new TypeError("Generator is already executing.");while(r)try{if(f=1,u&&(i=e[0]&2?u["return"]:e[0]?u["throw"]||((i=u["return"])&&i.call(u),0):u.next)&&!(i=i.call(u,e[1])).done)return i;(u=0,i)&&(e=[e[0]&2,i.value]);switch(e[0]){case 0:case 1:i=e;break;case 4:return r.label++,{value:e[1],done:!1};case 5:r.label++;u=e[1];e=[0];continue;case 7:e=r.ops.pop();r.trys.pop();continue;default:if(!(i=r.trys,i=i.length>0&&i[i.length-1])&&(e[0]===6||e[0]===2)){r=0;continue}if(e[0]===3&&(!i||e[1]>i[0]&&e[1]<i[3])){r.label=e[1];break}if(e[0]===6&&r.label<i[1]){r.label=i[1];i=e;break}if(i&&r.label<i[2]){r.label=i[2];r.ops.push(e);break}i[2]&&r.ops.pop();r.trys.pop();continue}e=t.call(n,r)}catch(o){e=[6,o];u=0}finally{f=i=0}if(e[0]&5)throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}var r={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},f,u,i,e;return e={next:o(0),"throw":o(1),"return":o(2)},typeof Symbol=="function"&&(e[Symbol.iterator]=function(){return this}),e};Object.defineProperty(exports,"__esModule",{value:!0});CryptoPlugin=function(){function n(){this.isAsync=!1;this.isAsync=!!this.cadesplugin.CreateObjectAsync}return Object.defineProperty(n.prototype,"cadesplugin",{get:function(){return window.cadesplugin},enumerable:!0,configurable:!0}),n.checkPluginInstalled=function(){return!!window.cadesplugin},n.prototype.checkPluginInstalled=function(){return!!window.cadesplugin},n.prototype.createObject=function(n,t){this.isAsync?this.cadesplugin.CreateObjectAsync(n).then(t):t(this.cadesplugin.CreateObject(n))},n.prototype.getCertificatesAsync=function(){return __awaiter(this,void 0,void 0,function(){var i,u,e,f,r,t,o,n,s,h;return __generator(this,function(c){switch(c.label){case 0:return[4,this.cadesplugin.CreateObjectAsync("CAPICOM.Store")];case 1:return i=c.sent(),[4,i.Open(this.cadesplugin.CAPICOM_CURRENT_USER_STORE,this.cadesplugin.CAPICOM_MY_STORE,this.cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)];case 2:return c.sent(),[4,i.Certificates];case 3:return u=c.sent(),[4,u.Count];case 4:e=c.sent();f=[];r=1;c.label=5;case 5:return(r<=e)?[4,u.Item(r)]:[3,15];case 6:return t=c.sent(),n={},[4,t.Version];case 7:return n.Version=c.sent(),[4,t.Thumbprint];case 8:return n.Thumbprint=c.sent(),[4,t.SubjectName];case 9:return n.SubjectName=c.sent(),[4,t.IssuerName];case 10:return n.IssuerName=c.sent(),s=Date.bind,[4,t.ValidFromDate];case 11:return n.ValidFromDate=new(s.apply(Date,[void 0,c.sent()])),h=Date.bind,[4,t.ValidToDate];case 12:return n.ValidToDate=new(h.apply(Date,[void 0,c.sent()])),[4,t.Export(this.cadesplugin.CADESCOM_ENCODE_BASE64)];case 13:o=(n.CertificateBody=c.sent(),n);f.push(o);c.label=14;case 14:return++r,[3,5];case 15:return[4,i.Close()];case 16:return c.sent(),[2,f]}})})},n.prototype.getHashAlgorithmOrError=function(n){switch(n){case HashAlgorithms.gost_34_10:return HashAlgorithms.gost_34_10;case HashAlgorithms.gost_34_11_2012_256:return HashAlgorithms.gost_34_11_2012_256;case HashAlgorithms.gost_34_11_2012_512:return HashAlgorithms.gost_34_11_2012_512}throw Error("Алгоритм шифрования не поддерживается");},n.prototype.getCadesHashAlgorithmOrError=function(n){switch(n){case HashAlgorithms.gost_34_10:return HashAlgorithms.gost_34_10;case HashAlgorithms.gost_34_11_2012_256:return HashAlgorithms.gost_34_11_2012_256;case HashAlgorithms.gost_34_11_2012_512:return HashAlgorithms.gost_34_11_2012_512}throw Error("Алгоритм шифрования не поддерживается");},n.prototype.getCertificateHashAlhoritmAsync=function(n){return __awaiter(this,void 0,void 0,function(){var t,r,i,u,f,e,o;return __generator(this,function(s){switch(s.label){case 0:return[4,this.cadesplugin.CreateObjectAsync("CAPICOM.Store")];case 1:return t=s.sent(),[4,t.Open(this.cadesplugin.CAPICOM_CURRENT_USER_STORE,this.cadesplugin.CAPICOM_MY_STORE,this.cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)];case 2:return s.sent(),[4,t.Certificates];case 3:return r=s.sent(),[4,r.Find(this.cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH,n)];case 4:return i=s.sent(),[4,i.Count];case 5:if(s.sent()<1)throw Error("Сертификат не найден");return[4,i.Item(1)];case 6:return u=s.sent(),[4,u.PublicKey()];case 7:return f=s.sent(),[4,f.Algorithm];case 8:return e=s.sent(),[4,e.Value];case 9:return o=s.sent(),[2,this.getHashAlgorithmOrError(o.trim())]}})})},n.prototype.getCertificateHashAlhoritmSync=function(n){var i=this.cadesplugin.CreateObject("CAPICOM.Store"),t;if(i.Open(this.cadesplugin.CAPICOM_CURRENT_USER_STORE,this.cadesplugin.CAPICOM_MY_STORE,this.cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED),t=i.Certificates.Find(this.cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH,n),t.Count<1)throw Error("Сертификат не найден");var r=t.Item(1),u=r.PublicKey(),f=u.Algorithm,e=f.Value;return this.getHashAlgorithmOrError(e.trim())},n.prototype.getCertificateHashAlhoritm=function(n,t){var r=this.isAsync,i;r?this.getCertificateHashAlhoritmAsync(n).then(function(n){t(n)}):(i=this.getCertificateHashAlhoritmSync(n),t(i))},n.prototype.getCertificatesSync=function(){var i=this.cadesplugin.CreateObject("CAPICOM.Store"),t,n;i.Open(this.cadesplugin.CAPICOM_CURRENT_USER_STORE,this.cadesplugin.CAPICOM_MY_STORE,this.cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);var r=i.Certificates,f=r.Count,u=[];for(t=1;t<=f;++t)n=r.Item(t),u.push({Version:n.Version,Thumbprint:n.Thumbprint,SubjectName:n.SubjectName,IssuerName:n.IssuerName,ValidFromDate:new Date(n.ValidFromDate),ValidToDate:new Date(n.ValidToDate),CertificateBody:n.Export(this.cadesplugin.CADESCOM_ENCODE_BASE64)});return i.Close(),u},n.prototype.getCertificates=function(n){var i=this.isAsync,t;i?this.getCertificatesAsync().then(function(t){t=t.sort(function(n,t){return t.ValidToDate.getTime()-n.ValidToDate.getTime()});n(t)}):(t=this.getCertificatesSync(),t=t.sort(function(n,t){return t.ValidToDate.getTime()-n.ValidToDate.getTime()}),n(t))},n.prototype.signDataAsync=function(n,t,i,r){return __awaiter(this,void 0,void 0,function(){var u,h,e,c,o,f,s,l;return __generator(this,function(a){switch(a.label){case 0:return[4,this.cadesplugin.CreateObjectAsync("CAPICOM.Store")];case 1:return u=a.sent(),r===undefined&&(r=!0),[4,u.Open(this.cadesplugin.CAPICOM_CURRENT_USER_STORE,this.cadesplugin.CAPICOM_MY_STORE,this.cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)];case 2:return a.sent(),[4,u.Certificates];case 3:return h=a.sent(),[4,h.Find(this.cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH,n)];case 4:return e=a.sent(),[4,e.Count];case 5:if(a.sent()<1)throw Error("Сертификат не найден");return[4,e.Item(1)];case 6:return c=a.sent(),[4,this.cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner")];case 7:return o=a.sent(),[4,o.propset_Certificate(c)];case 8:return a.sent(),[4,this.cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData")];case 9:return(f=a.sent(),!r)?[3,11]:[4,f.propset_ContentEncoding(this.cadesplugin.CADESCOM_BASE64_TO_BINARY)];case 10:a.sent();a.label=11;case 11:return[4,f.propset_Content(t)];case 12:a.sent();s=null;a.label=13;case 13:return a.trys.push([13,15,16,18]),[4,f.SignCades(o,this.cadesplugin.CADESCOM_CADES_BES,i)];case 14:return s=a.sent(),[3,18];case 15:return l=a.sent(),[2,{isError:!0,message:l.message}];case 16:return[4,u.Close()];case 17:return a.sent(),[7];case 18:return[2,{isError:!1,signedMessage:s}]}})})},n.prototype.signHashAsync=function(n,t){return __awaiter(this,void 0,void 0,function(){var i,e,r,o,u,s,f,h;return __generator(this,function(c){switch(c.label){case 0:return[4,this.cadesplugin.CreateObjectAsync("CAPICOM.Store")];case 1:return i=c.sent(),[4,i.Open(this.cadesplugin.CAPICOM_CURRENT_USER_STORE,this.cadesplugin.CAPICOM_MY_STORE,this.cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)];case 2:return c.sent(),[4,i.Certificates];case 3:return e=c.sent(),[4,e.Find(this.cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH,n)];case 4:return r=c.sent(),[4,r.Count];case 5:if(c.sent()<1)throw Error("Сертификат не найден");return[4,r.Item(1)];case 6:return o=c.sent(),[4,this.cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner")];case 7:return u=c.sent(),[4,u.propset_Certificate(o)];case 8:return c.sent(),[4,this.cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData")];case 9:s=c.sent();f=null;c.label=10;case 10:return c.trys.push([10,12,13,15]),[4,s.SignHash(t,u,this.cadesplugin.CADESCOM_CADES_BES)];case 11:return f=c.sent(),[3,15];case 12:return h=c.sent(),[2,{isError:!0,message:h.message}];case 13:return[4,i.Close()];case 14:return c.sent(),[7];case 15:return[2,{isError:!1,signedMessage:f}]}})})},n.prototype.signHashSync=function(n,t){var i=this.cadesplugin.CreateObject("CAPICOM.Store"),r,e,u,o,f;if(i.Open(this.cadesplugin.CAPICOM_CURRENT_USER_STORE,this.cadesplugin.CAPICOM_MY_STORE,this.cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED),r=i.Certificates.Find(this.cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH,n),r.Count<1)throw Error("Сертификат не найден");e=r.Item(1);u=this.cadesplugin.CreateObject("CAdESCOM.CPSigner");u.Certificate=e;o=this.cadesplugin.CreateObject("CAdESCOM.CadesSignedData");f=null;try{f=o.SignHash(t,u,this.cadesplugin.CADESCOM_CADES_BES)}catch(s){return{isError:!0,message:s.message}}finally{i.Close()}return{isError:!1,signedMessage:f}},n.prototype.signDataSync=function(n,t,i,r){var f=this.cadesplugin.CreateObject("CAPICOM.Store"),e,h,o,u,s;if(r===undefined&&(r=!0),f.Open(this.cadesplugin.CAPICOM_CURRENT_USER_STORE,this.cadesplugin.CAPICOM_MY_STORE,this.cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED),e=f.Certificates.Find(this.cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH,n),e.Count<1)throw Error("Сертификат не найден");h=e.Item(1);o=this.cadesplugin.CreateObject("CAdESCOM.CPSigner");o.Certificate=h;u=this.cadesplugin.CreateObject("CAdESCOM.CadesSignedData");r&&(u.ContentEncoding=this.cadesplugin.CADESCOM_BASE64_TO_BINARY);u.Content=t;s=null;try{s=u.SignCades(o,this.cadesplugin.CADESCOM_CADES_BES,i)}catch(c){return{isError:!0,message:c.message}}finally{f.Close()}return{isError:!1,signedMessage:s}},n.prototype.hashSync=function(n,t){var i=this.cadesplugin.CreateObject("CAdESCOM.HashedData");return t==HashAlgorithms.gost_34_11_2012_256&&(i.Algorithm=this.cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256),t==HashAlgorithms.gost_34_11_2012_512&&(i.Algorithm=this.cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512),t==HashAlgorithms.gost_34_10&&(i.Algorithm=this.cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411),i.DataEncoding=this.cadesplugin.CADESCOM_BASE64_TO_BINARY,i.Hash(n),i},n.prototype.hashAsync=function(n,t){return __awaiter(this,void 0,void 0,function(){var i;return __generator(this,function(r){switch(r.label){case 0:return[4,this.cadesplugin.CreateObjectAsync("CAdESCOM.HashedData")];case 1:return i=r.sent(),i.propset_Algorithm(this.cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411),t==HashAlgorithms.gost_34_11_2012_256&&i.propset_Algorithm(this.cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256),t==HashAlgorithms.gost_34_11_2012_512&&i.propset_Algorithm(this.cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512),t==HashAlgorithms.gost_34_10&&i.propset_Algorithm(this.cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411),[4,i.propset_DataEncoding(this.cadesplugin.CADESCOM_BASE64_TO_BINARY)];case 2:return r.sent(),[4,i.Hash(n)];case 3:return r.sent(),[2,i]}})})},n.prototype.hash=function(n,t,i){if(this.isAsync)this.hashAsync(n,t).then(function(n){i(n)});else{var r=this.hashSync(n,t);i(r)}},n.prototype.verifyHashSignSync=function(n,t){var i=this.cadesplugin.CreateObject("CAdESCOM.CadesSignedData");try{i.VerifyHash(n,t,this.cadesplugin.CADESCOM_CADES_BES)}catch(r){return{isError:!0,message:r.message,verifyed:!1}}return{isError:!1,verifyed:!0}},n.prototype.verifyHashSignAsync=function(n,t){return __awaiter(this,void 0,void 0,function(){var i,r;return __generator(this,function(u){switch(u.label){case 0:return[4,this.cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData")];case 1:i=u.sent();u.label=2;case 2:return u.trys.push([2,4,,5]),[4,i.VerifyHash(n,t,this.cadesplugin.CADESCOM_CADES_BES)];case 3:return u.sent(),[3,5];case 4:return r=u.sent(),[2,{isError:!0,message:r.message,verifyed:!1}];case 5:return[2,{isError:!1,verifyed:!0}]}})})},n.prototype.hashSignAndVerify=function(n,t,i){var r=this,u=this;this.getCertificateHashAlhoritm(n,function(f){r.hash(t,f,function(t){r.signHash(n,t,function(n){n.isError?i({isError:!0,message:n.message,verifyed:!1}):u.verifyHashSign(t,n.signedMessage,function(t){t.isError?i({isError:!0,message:t.message,verifyed:t.verifyed,signedMessage:n.signedMessage}):i({isError:!1,message:t.message,verifyed:t.verifyed,signedMessage:n.signedMessage})})})})})},n.prototype.verifyHashSign=function(n,t,i){if(this.isAsync)this.verifyHashSignAsync(n,t).then(function(n){i(n)});else{var r=this.verifyHashSignSync(n,t);i(r)}},n.prototype.signHash=function(n,t,i){if(this.isAsync)this.signHashAsync(n,t).then(function(n){i(n)});else{var r=this.signHashSync(n,t);i(r)}},n.prototype.signData=function(n,t,i,r){if(this.isAsync)this.signDataAsync(n,t,i.detached,i.isBase64).then(function(n){r(n)});else{var u=this.signDataSync(n,t,i.detached,i.isBase64);r(u)}},n.prototype.signVerifyAsync=function(n,t,i,r){return __awaiter(this,void 0,void 0,function(){var u,f;return __generator(this,function(e){switch(e.label){case 0:return[4,this.cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData")];case 1:u=e.sent();r===undefined&&(r=!0);e.label=2;case 2:return(e.trys.push([2,7,,8]),!r)?[3,4]:[4,u.propset_ContentEncoding(this.cadesplugin.CADESCOM_BASE64_TO_BINARY)];case 3:e.sent();e.label=4;case 4:return[4,u.propset_Content(t)];case 5:return e.sent(),[4,u.VerifyCades(n,this.cadesplugin.CADESCOM_CADES_BES,i)];case 6:return e.sent(),[3,8];case 7:return f=e.sent(),[2,{isError:!0,message:f.message,verifyed:!1}];case 8:return[2,{isError:!1,verifyed:!0}]}})})},n.prototype.signVerifySync=function(n,t,i,r){var u=this.cadesplugin.CreateObject("CAdESCOM.CadesSignedData");r===undefined&&(r=!0);try{r&&(u.ContentEncoding=this.cadesplugin.CADESCOM_BASE64_TO_BINARY);u.Content=t;u.VerifyCades(n,this.cadesplugin.CADESCOM_CADES_BES,i)}catch(f){return{isError:!0,message:f.message,verifyed:!1}}return{isError:!1,verifyed:!0}},n.prototype.signVerify=function(n,t,i,r){if(this.isAsync)this.signVerifyAsync(n,t,i.detached,i.isBase64).then(function(n){r(n)});else{var u=this.signVerifySync(n,t,i.detached,i.isBase64);r(u)}},n.prototype.signAndVerify=function(n,t,i,r){var u=this;this.signData(n,t,i,function(n){n.isError?r({isError:!0,message:n.message,verifyed:!1}):u.signVerify(n.signedMessage,t,i,function(t){t.isError?r({isError:!0,message:t.message,verifyed:t.verifyed,signedMessage:n.signedMessage}):r({isError:!1,message:t.message,verifyed:t.verifyed,signedMessage:n.signedMessage})})})},n}();exports.CryptoPlugin=CryptoPlugin,function(n){n.gost_34_11_2012_256="1.2.643.7.1.1.2.2";n.gost_34_11_2012_512="1.2.643.7.1.1.2.3";n.gost_34_10="1.2.643.2.2.19"}(HashAlgorithms=exports.HashAlgorithms||(exports.HashAlgorithms={}));window.CryptoPlugin=CryptoPlugin;$.fn.certTable=function(n){var o=this,r=new CryptoPlugin,t,u,i,f;return(this.GetSelectedItem=function(){var n=$(".cert-table-row.selected").data("cert");return n?$.extend(!0,n,{signAndVerify:function(n,t,i){return r.signAndVerify(this.Thumbprint,n,t,i)},Verify:function(n){return $.crypto.Verify(n)},SignData:function(n){if(n==null||n==""){alert("Ошибка при попытке подписать данные формы ЭЦП!");return}var t=this.Thumbprint.split(" ").reverse().join("").replace(/\s/g,"").toUpperCase();return $.crypto.SignData(n,t)}}):null},$(this).data("cert-table-inited"))?this:(t={events:{rowClick:null,pluginNotExisist:null}},$.extend(!0,t,n),u={GetTwoNumbersString:function(n){return n<10?"0"+n.toString():n.toString()},DateToString:function(n){if(n==null)return null;var i=n.getFullYear(),r=n.getMonth()+1,u=n.getDate(),f=GetTwoNumbersString(r),e=GetTwoNumbersString(u),t={Day:e,Month:f,Year:i.toString()};return t==null?null:t.Day+"."+t.Month+"."+t.Year}},i=$(".plugin-field")[0],(i==null||i==undefined)&&(i=$('<div class="plugin-field"><\/div>'),this.append(i)),f=r.checkPluginInstalled(),$(".PlugInInstalled").length==0&&this.append('<input type="hidden" id="PlugInInstalled" name="PlugInInstalled" class="PlugInInstalled" value="" />'),$(".PlugInInstalled").val(f),!f&&t.pluginNotExisist!=null)?(e={errorMessage:"Внимание! Для работы с цифровой подписью Вам нужно установить КриптоПро ЭЦП Browser plug-in",errorHtml:'<div class="crypto-plugin-info alert alert-danger">Внимание! Для работы с цифровой подписью Вам нужно установить <a class="alert-link" href="http://www.cryptopro.ru/products/cades/plugin/get_2_0">КриптоПро ЭЦП Browser plug-in<\/a>.<\/div>'},t.pluginNotExisist(e),this):(r.getCertificates(function(n){for(var i,r,e=$("<tbody><\/tbody>"),f=0;f<n.length;f++){i=n[f];r=$('<tr class="cert-table-row odd"><td><div style="margin-top: 10px; margin-left: 10px;"><b> Кому выдан: <\/b><div class="clearfix"><\/div><p style="margin-left: 10px">'+i.SubjectName+'<\/p><div class="clearfix"><\/div><b> Кем выдан: <\/b><div class="clearfix"><\/div><p style="margin-left: 10px">'+i.IssuerName+'<\/p><div class="clearfix"><\/div><b> Действителен : <\/b><div class="clearfix"><\/div><p style="margin-left: 10px; margin-bottom: 5px;"> c '+u.DateToString(i.ValidFromDate)+" по "+u.DateToString(i.ValidToDate)+"<\/p><\/div><\/td><\/tr>");r.data("cert",i);r.on("click",function(n){$(".cert-table-row.selected").removeClass("selected");$(n.currentTarget).addClass("selected");var i=$(n.currentTarget).data("cert");t.rowClick!=null&&t.rowClick({rowData:i})});e.append(r)}$(o).append($('<div class="table-responsive"><\/div>').append($('<table Id="cert-table" class="table display table-bordered table-striped"><thead><tr><th>Сертификаты<\/th><\/tr><\/thead><\/table>').append(e)));$(o).data("cert-table-inited",!0)}),this)}