Чтобы проверить, поддерживает ли десктопные приложение шифрование, вызовите следующую команду:
typeof window.AscDesktopEditor.cloudCryptoCommand === "function"
Приведенные ниже шаги объясняют процесс шифрования документов в Р7.
- Войдите в облако и передайте идентификатор плагина шифрования:
window.AscDesktopEditor.execCommand("portal:login", JSON.stringify({ "encryptionKeys": { "cryptoEngineId": "{FFF0E1EB-13DB-4678-B67D-FF0A41DBBCEF}" }, ... }));
- Чтобы проверить пароль со страницы входа в систему, отправьте редакторам рабочего стола команду portal:checkpwd через метод execCommand. Параметры задаются в формате строки с сериализованным json следующим образом:
{ "domain": "domain name", "emailInput": "user@email.addr", "pwdInput": "pwd" }
ПараметрыНазвание Описание Тип Пример domain Определяет имя облака и точку входа в облако. строковый «https://exampledomain.com» emailInput Определяет электронную почту пользователя, вводимую на странице входа в систему. строковый «john@example.com» pwdInput Определяет пароль, вводимый на странице входа в систему. строковый «123456» Примерwindow.AscDesktopEditor.execCommand("portal:checkpwd", JSON.stringify({ "domain": "https://exampledomain.com", "emailInput": "john@example.com", "pwdInput": "123456" }));
Когда команда отправлена, провайдер DMS передает информацию о пароле со страницы входа в систему в десктопное приложение. Р7 Desktop Editors запоминает пароль и использует его для шифрования и дешифрования ключей.
- Передайте зашифрованные закрытый и открытый ключи с логином от провайдера DMS в десктопное приложение со следующими параметрами:
"encryptionKeys": { "cryptoEngineId": "guid", "privateKeyEnc": "private key", "publicKey": "public key" }
ПараметрыНазвание Описание Тип Пример cryptoEngineId Определяет идентификатор плагина шифрования. строковый «{FFF0E1EB-13DB-4678-B67D-FF0A41DBBCEF}» privateKeyEnc Определяет зашифрованный закрытый ключ. строковый «xxx» publicKey Определяет публичный ключ. строковый «yyy» Примерwindow.AscDesktopEditor.execCommand("portal:login", JSON.stringify({ "encryptionKeys": { "cryptoEngineId": "{FFF0E1EB-13DB-4678-B67D-FF0A41DBBCEF}", "privateKeyEnc": "xxx", "publicKey": "yyy" }, ... }));
Вы также можете сделать это в конфигурации инициализации редактора:
new DocsAPI.DocEditor("placeholder", { "editorConfig": { "encryptionKeys": { "cryptoEngineId": "{FFF0E1EB-13DB-4678-B67D-FF0A41DBBCEF}", "privateKeyEnc": "xxx", "publicKey": "yyy" }, ... }, ... });
- Отправьте сгенерированные ключи в облако через метод cloudCryptoCommand с типом encryptionKeys:
window.AscDesktopEditor.cloudCryptoCommand( "encryptionKeys", { "cryptoEngineId": "{FFF0E1EB-13DB-4678-B67D-FF0A41DBBCEF}", "privateKeyEnc": "xxx", "publicKey": "yyy" }, callback)