Я написал базовую функцию для проверки скорости AES-256-CBC режима встроенных криптографических функций Node.js. Эти функции используют OpenSSL, поэтому они должны поддерживать AES-NI, но когда я правильно включаю AES-NI и выполняю тест командной строки OpenSSL, скорость шифрования составляет ~ 350 МБ/с на OpenSSL и только ~ 100 Мбайт/с на Node.js Crypto.Как включить AES-NI (аппаратное ускорение) для Node.js crypto в Linux?
Я использовал this answer, чтобы включить OpenSSL AES-NI в командной строке и побежал его следующим образом:
openssl speed -evp aes-256-cbc
Мой вопрос, как я могу сделать скорость функций криптографических Node.js для AES соответствует командной строке OpenSSL в командной строке? Я подозреваю, что причина не в использовании AES-NI
ли вы компилировать узел или с помощью двоичного – user568109
Составитель его v 0.10.20 – Philberg
Если вы используете последнюю версию OpenSSL, вам не нужно ничего делать. Эта оптимизация выполняется при компиляции openssl с флагом -mtune/-maes. См. Http://security.stackexchange.com/questions/11815/where-can-i-find-information-about-how-to-implement-intel-embedded-aes256-encryp. Прямо сейчас я не знаю, используются ли эти параметры или нет. Все, что я знаю, это то, что он скомпилирован с node-gyp для этого, см. Https://github.com/joyent/node/blob/master/deps/openssl/openssl.gyp. – user568109