Использование библиотеки C ++ в функции Javascript в браузере пользователя

Я хочу веб-приложение, которое касается гомоморфного шифрования. Я использую Microsoft SEAL. Я хотел знать, есть ли способ использовать эту библиотеку в функции javascript, чтобы при каждом нажатии кнопки функция javascript выполнялась в браузере пользователя, а шифрование выполнялось с использованием Microsoft SEAL. Я пробовал emscripten, но код C ++, импортирующий библиотеку SEAL, не генерирует файл wasm. Я потратил много времени, пытаясь найти решение, но безуспешно. Все доступные решения приводят к выполнению кода на сервере. Если кто-нибудь знает, как я могу этого добиться, пожалуйста, помогите мне. Помощь была бы очень признательна. Спасибо


person Fatima Chauhdry    schedule 07.01.2020    source источник
comment
Я бы тихо закрыл все свои браузеры навсегда, если бы в браузерах было возможно выполнение произвольного кода C ++, загруженного с произвольной веб-страницы.   -  person Teemu    schedule 07.01.2020
comment
Если вы хотите скомпилировать код C ++ для запуска в браузере, Emscripten - правильный инструмент. Предлагаю вам задать вопрос о компиляции этой библиотеки SEAL в WASM и ее использовании.   -  person Botje    schedule 07.01.2020


Ответы (1)


Да!

Существует библиотека с открытым исходным кодом, node-seal, которая является почти полным портом Microsoft SEAL для WebAssembly (WASM) и должен быть в состоянии удовлетворить большинство вариантов использования. Он работает с NodeJS и в современных браузерах.

Существует также веб-сайт morfix.io, где вы можете протестировать и поэкспериментировать с ним в своем браузере. Вы даже можете сгенерировать рабочий код, используя node-seal.

Полное раскрытие, я автор node-seal и веб-демонстрации.

person s0l0ist    schedule 07.01.2020
comment
Большое спасибо за то, что поделились этим. У вас есть руководство по использованию этой реализации? Если да, не могли бы вы поделиться им? Это было бы огромным подспорьем. Спасибо - person Fatima Chauhdry; 08.01.2020
comment
Учебник может быть немного длинным для этого форума. Я написал здесь небольшой раздел о основы, но в конечном итоге вам нужно будет учиться методом проб и ошибок. Лучшую документацию можно найти в примерах Microsoft SEAL C ++. Выяснить, с чего начать, может быть непросто. Есть видео YouTube, в котором можно найти более подробные объяснения. Если бы я ответил на ваш первоначальный вопрос, буду благодарен за положительное голосование. - person s0l0ist; 08.01.2020
comment
Извините, я не могу проголосовать за ваш ответ, но да, это именно то, о чем я просил. Спасибо за ответ. - person Fatima Chauhdry; 09.01.2020
comment
Я имел в виду, пометив как принятый ответ. Спасибо! - person s0l0ist; 09.01.2020