-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add hash and encrypt/decrypt methods #30
base: master
Are you sure you want to change the base?
Conversation
…scriptions; FIX encryptEnvelopedData method to accept certificate list instead of a single certificate, as the quantity of recipients might be well above 1
@norguhtar, добрый вечер. PR довольно объемный. Гляну как будет возможность. На данный момент падает билд, проверьте пожалуйста. |
Да вижу что падает, это сегодня добавляли еще отображение сертификатов без ключей, для возможности шифровать по открытому ключу. Без параметра, отдавались только сертификаты с ключами. |
Тесты поправили. Билд проходит. Добавили еще умолчания в getHashedData |
Тут вылезли конфликты. Мне вносить изменения которые будут включать и ваши и наши методы? Или подождать вашей реализации по нашим предложениям? |
@norguhtar по поводу конфликтов в dist/* и lib/* не заморачивайтесь и принимайте из мастера. Перед публикацией я их все равно сгенерирую еще раз. Главное решить все, что в src/*. |
хорошо. Там есть пересечения нашего функционала и нового функционала в 2.10 тут как? |
@norguhtar попробовал подлить в вашу ветку мастер, у меня получилось порешать конфликты без проблем. Если вы о дублировании функционала, надо подумать о предназначении каждого из методов, тк в новой версии могло появиться то, что вам нужно. Наблюдаю в вашей реализации вещи, которые не будут работать во всех заявленных браузерах:
Чтобы влить ваши изменения необходимо обновить примеры (хотя-бы для UMD) и протестировать их работу во всех браузерах, включая IE9. Только на примерах люди смогут понять как с чем едят новое API. Если это слишком затратно, можете подождать до следующей версии, в которой добавлю поддержку написания своих реализаций в кросс-браузерном API. Тк бывают ситуации (как ваша), в которой хочется реализовать свою логику используя низкоуровневое API cades плагина напрямую, при этом сохранив поддержку браузеров с синхронной и асинхронной версией плагина не писав реализацию дважды. |
Сейчас есть пересечения по getHashedData с нашей стороны и createHash с вашей, они прочти для одного и того же в дальнейшем используются. С примерами немного сложнее мы не на ангуляре пишем. Но примеры без ангуляра могу дать, только в каком виде? Могу к привести примеры зачем были добавлены выше приведенные методы и как используются у нас. |
Ну а насчет исправлений да можем подождать следующую версию. В текущей нами сделанной ветке необходимый нам функционал работает, когда аналогичный функционал появится в релизе просто переключимся. |
@norguhtar в репозитории лежат примеры как для ангуляра и реакта, так и для использования через тэг script (без библиотек и фреймворков). Можете добавить в пример с тэгом script сценарии, демонстрирующие работу добавленных методов. Не забудьте протестировать работу во всех заявленных в README браузерах. Вместо getHashedData используйте пожалуйста createHash, тк он умеет принимать потоки бинарных данных (что полезно при подписании файлов) и возвращает уже созданный хеш, а не внутренний объект cades плагина. |
Эмм тут есть проблема. Нам требуется не только первичное подписание, но и повторное подписание. И как раз в CoSignature вылазит. Там на вход подается хеш объект. |
Получилось? |
Пока в процессе. Отслеживать можно тут: |
Понадобилось тоже самое, есть варианты получить идентификатор сессии из бейс64 которы сбис отправляет ? // создание объекта, который умеет кодировать и декодировать
// @ts-ignore
const oEnvelopedData2 = await window.cadesplugin.CreateObjectAsync(
"CAdESCOM.CPEnvelopedData"
);
// указываем что должны декодировать
await oEnvelopedData2.Decrypt(sessionInfo);
// ОБЯЗАТЕЛЬНО перед получением контента необходимо указать что сообщение было зашифровано в формате base64
// @ts-ignore
await oEnvelopedData2.propset_ContentEncoding(
// @ts-ignore
window.cadesplugin.CADESCOM_BASE64_TO_BINARY
);
try {
// отображение контента
const content = await oEnvelopedData2.Content;
console.info('content', content);
} catch (e) {
console.warn(e);
} что то такое на ваниле получается |
Добрый день. В рамках наших хотелок несколько расширили API. Добавили следующие методы