Задача заключается в создании аутенфикации пользователя с использованием сессионного ключа. Действия следующие: на сервере есть открытый ключ пользователя, генерируется сессионный ключ, кодируется открытым ключом пользователя, отправляется на клиент, клиент декодирует приватным ключом сессионный и уже им кодирует свой, например, логин, отправляет на сервер, где логин сравнивается с имеющимся в бд, соответственно, если получается расшифровать данные, значит приватный был правильным, значит пользователь авторизовался.
На данный момент начал использовать на клиенте openCrypto, так как есть интересные функции (getSharedKey, encrypt, decrypt), необходимые для данного вопроса. Но для сервера он не предназначен. Можно использовать встроенную библиотеку 'crypto', но я не могу понять каким образом они создают этот самы sharedKey и как им кодируют/декодируют.
Вопроса два: Подскажите с модулем, который может удовлетворить решению задачи, или может вообще другой подход использовать?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости