При разработке клиентского сетевого приложения на node-webkit столкнулся с необходимостью ассиметричного шифрования. Стандартный crypto по какой то причине не может ни генерировать ключи, ни шифровать/дешифровать данные. Гугл из поддерживаемых библиотек отправляет в основном на ursa, которая зависит от node-gyp и для windows требует установки python и vistual studio, что очевидно, совершенно неприемлемо для клиентского приложения.
Может, я чего то упускаю, и существует для node.js быстрая, поддерживаемая в настоящее время разработчиками, нативно-JSовая библиотека, реализующая RSA алгоритмы в полном объёме?
В итоге всё таки собрал свою имплементацию на основе кода от Tom Wu https://github.com/rzcoder/node-rsa кому интересно. Однако, совершенно не ручаюсь за корректность работы, лол.
Конечно. К сожалению все полноценные библиотеки используют либо, как ursa, openssl и требуют node-gyp, либо основаны на www-cs-students.stanford.edu/~tjw/jsbn и сами давно не поддерживаются.
Смотрите node-gyp используется только для компиляции - для откомпилированного модуля он уже не нужен, из vs возможно будут нужны только файлы msvcrt{X}.dll которые можно кинуть в папку с готовым модулем, тогда можно просто убрать node-gyp из зависимостей и билдить две версии кода для windows 32 и 64 бит.
Что должно решить вашу проблему.
Скорее всего Вы правы, но проблема в том, что ursa при установке из npm компилируется под текущую систему. К примеру, собраное на mac64 node-webkit'ом под mac32 приложение получит x64 версию ursa и не будет работать.
@icelaba насколько я посмотрел, в node-gyp всё очень печально с кросс-компиляцией, по крайней мере о ней даже не заявляется.
Склоняюсь к мысли адаптировать для ноды одну из библиотек использующих www-cs-students.stanford.edu/~tjw/jsbn