Пример использования свойства CachePin объекта PrivateKey, предназначенного для сохранения пароля от контейнера закрытого ключа.
HTML
<script language="javascript" src="cadesplugin_api.js"></script>
Приведенный пример использует синхронную версию плагина. Также см. пример работы с асинхронными обьектами.
JavaScript
var CADESCOM_CADES_BES = 1; var CAPICOM_MY_STORE = "My"; var CAPICOM_CURRENT_USER_STORE = 2; var CADESCOM_STRING_TO_UCS2LE = 0x00; var CADESCOM_BASE64_TO_BINARY = 0x01; var CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2; var CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1; var dataToSign = "Some data here."; var dataToSignBase64 = "U29tZSBkYXRhIGhlcmUu"; var oStore = cadesplugin.CreateObject("CAdESCOM.Store"); oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); var oCertificates = oStore.Certificates.Find( CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName); if (oCertificates.Count == 0) { alert("Certificate not found: " + certSubjectName); return; } var oCertificate = oCertificates.Item(1); var oSigner = cadesplugin.CreateObject("CAdESCOM.CPSigner"); oSigner.Certificate = oCertificate; oSigner.CheckCertificate = true; // Запоминаем пароль от контейнера закрытого ключа, чтобы не вводить повторно var oCertificatePrivateKey = oCertificate.PrivateKey; oCertificatePrivateKey.CachePin = true; var oSignedData1 = cadesplugin.CreateObject("CAdESCOM.CadesSignedData"); oSignedData1.ContentEncoding = CADESCOM_STRING_TO_UCS2LE; oSignedData1.Content = dataToSign; try { var sSignedMessage = oSignedData1.SignCades(oSigner, CADESCOM_CADES_BES, true); } catch (err) { alert("Failed to create signature. Error: " + cadesplugin.getLastError(err)); return; } var oSignedData2 = cadesplugin.CreateObject("CAdESCOM.CadesSignedData"); oSignedData2.ContentEncoding = CADESCOM_BASE64_TO_BINARY; oSignedData2.Content = dataToSignBase64; try { var sSignedMessage = oSignedData2.SignCades(oSigner, CADESCOM_CADES_BES, true); } catch (err) { alert("Failed to create signature. Error: " + cadesplugin.getLastError(err)); return; } var oSignedData3 = cadesplugin.CreateObject("CAdESCOM.CadesSignedData"); oSignedData3.ContentEncoding = CADESCOM_STRING_TO_UCS2LE; oSignedData3.Content = dataToSign; try { var sSignedMessage = oSignedData3.SignCades(oSigner, CADESCOM_CADES_BES, true); } catch (err) { alert("Failed to create signature. Error: " + cadesplugin.getLastError(err)); return; } oStore.Close();