• Post category:Шифрование
  • Запись изменена:08.11.2022

Чтобы проверить, поддерживает ли десктопные приложение шифрование, вызовите следующую команду:

typeof window.AscDesktopEditor.cloudCryptoCommand === "function"

Приведенные ниже шаги объясняют процесс шифрования документов в Р7.

  1. Войдите в облако и передайте идентификатор плагина шифрования:
    window.AscDesktopEditor.execCommand("portal:login", JSON.stringify({
        "encryptionKeys": {
            "cryptoEngineId": "{FFF0E1EB-13DB-4678-B67D-FF0A41DBBCEF}"
        },
        ...
    }));
    
  2. Чтобы проверить пароль со страницы входа в систему, отправьте редакторам рабочего стола команду portal:checkpwd через метод execCommand. Параметры задаются в формате строки с сериализованным json следующим образом:
    {
        "domain": "domain name",
        "emailInput": "user@email.addr",
        "pwdInput": "pwd"
    }
    
    Параметры
    НазваниеОписаниеТипПример
    Определяет имя облака и точку входа в облако.строковый«https://exampledomain.com»
    Определяет электронную почту пользователя, вводимую на странице входа в систему.строковый«john@example.com»
    Определяет пароль, вводимый на странице входа в систему.строковый«123456»
    Пример
    window.AscDesktopEditor.execCommand("portal:checkpwd", JSON.stringify({
        "domain": "https://exampledomain.com",
        "emailInput": "john@example.com",
        "pwdInput": "123456"
    }));
    

    Когда команда отправлена, провайдер DMS передает информацию о пароле со страницы входа в систему в десктопное приложение. Р7 Desktop Editors запоминает пароль и использует его для шифрования и дешифрования ключей.

  3. Передайте зашифрованные закрытый и открытый ключи с логином от провайдера DMS в десктопное приложение со следующими параметрами:
    "encryptionKeys": {
        "cryptoEngineId": "guid",
        "privateKeyEnc": "private key",
        "publicKey": "public key"
    }
    
    Параметры
    НазваниеОписаниеТипПример
    Определяет идентификатор плагина шифрования.строковый«{FFF0E1EB-13DB-4678-B67D-FF0A41DBBCEF}»
    Определяет зашифрованный закрытый ключ.строковый«xxx»
    Определяет публичный ключ.строковый«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"
            },
            ...
        },
        ...
    });
    
  4. Отправьте сгенерированные ключи в облако через метод cloudCryptoCommand с типом encryptionKeys:
    window.AscDesktopEditor.cloudCryptoCommand(
        "encryptionKeys",
        {
            "cryptoEngineId": "{FFF0E1EB-13DB-4678-B67D-FF0A41DBBCEF}",
            "privateKeyEnc": "xxx",
            "publicKey": "yyy"
        },
    callback)