Cubelrti/sm-crypto-v2

NodeJS中sm2加密报错

kwonganding opened this issue · 1 comments

sm2加密在浏览器中运行正常,在NodeJS中运行报错:

throw new Error("random number pool is not ready or insufficient, prevent getting too long random values or too often.");

已复现:
1、发现是“async function initRNGPool() {” 初始化中用了异步,而我的方法调用时,一些初始化还没完成。
2、setTimeout延迟执行一下,就OK了

默认使用的 node webcrypto 需要在 node 18 以上,更低的版本需要改成 require('crypto')。可以考虑自行 replace 一下或者先异步处理。