tniessen / node-pqclean

PQClean for Node.js, Deno, and browsers 🔏🔑 Node.js native addon and WebAssembly implementation
MIT License
70 stars 21 forks source link

Build for the web gives "spawn emcc ENOENT" #1

Closed Catalan-1ap closed 1 year ago

Catalan-1ap commented 1 year ago

Following the instructions in the Readme, the following error appears. Trying on Windows, Ubuntu, lts and latest nodejs versions

Compiling 5 common source files, 274 KEM source files, 477 sign source files
node:internal/errors:490
    ErrorCaptureStackTrace(err);
    ^

Error: spawn emcc ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:285:19)
    at onErrorNT (node:internal/child_process:483:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'spawn emcc',
  path: 'emcc',
  spawnargs: [
    '-std=c11',
    '-Ideps/PQClean/common',
    '-s',
    'ERROR_ON_UNDEFINED_SYMBOLS=0',
    '-s',
    'EXPORTED_FUNCTIONS=["_malloc","_free","_PQCLEAN_HQCRMRS128_CLEAN_crypto_kem_keypair","_PQCLEAN_HQCRMRS128_CLEAN_crypto_kem_enc","_PQCLEAN_HQCRMRS128_CLEAN_crypto_kem_dec","_PQCLEAN_HQCRMRS192_CLEAN_crypto_kem_keypair","_PQCLEAN_HQCRMRS192_CLEAN_crypto_kem_enc","_PQCLEAN_HQCRMRS192_CLEAN_crypto_kem_dec","_PQCLEAN_HQCRMRS256_CLEAN_crypto_kem_keypair","_PQCLEAN_HQCRMRS256_CLEAN_crypto_kem_enc","_PQCLEAN_HQCRMRS256_CLEAN_crypto_kem_dec","_PQCLEAN_KYBER1024_CLEAN_crypto_kem_keypair","_PQCLEAN_KYBER1024_CLEAN_crypto_kem_enc","_PQCLEAN_KYBER1024_CLEAN_crypto_kem_dec","_PQCLEAN_KYBER102490S_CLEAN_crypto_kem_keypair","_PQCLEAN_KYBER102490S_CLEAN_crypto_kem_enc","_PQCLEAN_KYBER102490S_CLEAN_crypto_kem_dec","_PQCLEAN_KYBER512_CLEAN_crypto_kem_keypair","_PQCLEAN_KYBER512_CLEAN_crypto_kem_enc","_PQCLEAN_KYBER512_CLEAN_crypto_kem_dec","_PQCLEAN_KYBER51290S_CLEAN_crypto_kem_keypair","_PQCLEAN_KYBER51290S_CLEAN_crypto_kem_enc","_PQCLEAN_KYBER51290S_CLEAN_crypto_kem_dec","_PQCLEAN_KYBER768_CLEAN_crypto_kem_keypair","_PQCLEAN_KYBER768_CLEAN_crypto_kem_enc","_PQCLEAN_KYBER768_CLEAN_crypto_kem_dec","_PQCLEAN_KYBER76890S_CLEAN_crypto_kem_keypair","_PQCLEAN_KYBER76890S_CLEAN_crypto_kem_enc","_PQCLEAN_KYBER76890S_CLEAN_crypto_kem_dec","_PQCLEAN_MCELIECE348864_CLEAN_crypto_kem_keypair","_PQCLEAN_MCELIECE348864_CLEAN_crypto_kem_enc","_PQCLEAN_MCELIECE348864_CLEAN_crypto_kem_dec","_PQCLEAN_MCELIECE348864F_CLEAN_crypto_kem_keypair","_PQCLEAN_MCELIECE348864F_CLEAN_crypto_kem_enc","_PQCLEAN_MCELIECE348864F_CLEAN_crypto_kem_dec","_PQCLEAN_MCELIECE460896_CLEAN_crypto_kem_keypair","_PQCLEAN_MCELIECE460896_CLEAN_crypto_kem_enc","_PQCLEAN_MCELIECE460896_CLEAN_crypto_kem_dec","_PQCLEAN_MCELIECE460896F_CLEAN_crypto_kem_keypair","_PQCLEAN_MCELIECE460896F_CLEAN_crypto_kem_enc","_PQCLEAN_MCELIECE460896F_CLEAN_crypto_kem_dec","_PQCLEAN_MCELIECE6688128_CLEAN_crypto_kem_keypair","_PQCLEAN_MCELIECE6688128_CLEAN_crypto_kem_enc","_PQCLEAN_MCELIECE6688128_CLEAN_crypto_kem_dec","_PQCLEAN_MCELIECE6688128F_CLEAN_crypto_kem_keypair","_PQCLEAN_MCELIECE6688128F_CLEAN_crypto_kem_enc","_PQCLEAN_MCELIECE6688128F_CLEAN_crypto_kem_dec","_PQCLEAN_MCELIECE6960119_CLEAN_crypto_kem_keypair","_PQCLEAN_MCELIECE6960119_CLEAN_crypto_kem_enc","_PQCLEAN_MCELIECE6960119_CLEAN_crypto_kem_dec","_PQCLEAN_MCELIECE6960119F_CLEAN_crypto_kem_keypair","_PQCLEAN_MCELIECE6960119F_CLEAN_crypto_kem_enc","_PQCLEAN_MCELIECE6960119F_CLEAN_crypto_kem_dec","_PQCLEAN_MCELIECE8192128_CLEAN_crypto_kem_keypair","_PQCLEAN_MCELIECE8192128_CLEAN_crypto_kem_enc","_PQCLEAN_MCELIECE8192128_CLEAN_crypto_kem_dec","_PQCLEAN_MCELIECE8192128F_CLEAN_crypto_kem_keypair","_PQCLEAN_MCELIECE8192128F_CLEAN_crypto_kem_enc","_PQCLEAN_MCELIECE8192128F_CLEAN_crypto_kem_dec","_PQCLEAN_DILITHIUM2_CLEAN_crypto_sign_keypair","_PQCLEAN_DILITHIUM2_CLEAN_crypto_sign_signature","_PQCLEAN_DILITHIUM2_CLEAN_crypto_sign_verify","_PQCLEAN_DILITHIUM2AES_CLEAN_crypto_sign_keypair","_PQCLEAN_DILITHIUM2AES_CLEAN_crypto_sign_signature","_PQCLEAN_DILITHIUM2AES_CLEAN_crypto_sign_verify","_PQCLEAN_DILITHIUM3_CLEAN_crypto_sign_keypair","_PQCLEAN_DILITHIUM3_CLEAN_crypto_sign_signature","_PQCLEAN_DILITHIUM3_CLEAN_crypto_sign_verify","_PQCLEAN_DILITHIUM3AES_CLEAN_crypto_sign_keypair","_PQCLEAN_DILITHIUM3AES_CLEAN_crypto_sign_signature","_PQCLEAN_DILITHIUM3AES_CLEAN_crypto_sign_verify","_PQCLEAN_DILITHIUM5_CLEAN_crypto_sign_keypair","_PQCLEAN_DILITHIUM5_CLEAN_crypto_sign_signature","_PQCLEAN_DILITHIUM5_CLEAN_crypto_sign_verify","_PQCLEAN_DILITHIUM5AES_CLEAN_crypto_sign_keypair","_PQCLEAN_DILITHIUM5AES_CLEAN_crypto_sign_signature","_PQCLEAN_DILITHIUM5AES_CLEAN_crypto_sign_verify","_PQCLEAN_FALCON1024_CLEAN_crypto_sign_keypair","_PQCLEAN_FALCON1024_CLEAN_crypto_sign_signature","_PQCLEAN_FALCON1024_CLEAN_crypto_sign_verify","_PQCLEAN_FALCON512_CLEAN_crypto_sign_keypair","_PQCLEAN_FALCON512_CLEAN_crypto_sign_signature","_PQCLEAN_FALCON512_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA128FROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA128FROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA128FROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA128FSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA128FSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA128FSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA128SROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA128SROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA128SROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA128SSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA128SSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA128SSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA192FROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA192FROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA192FROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA192FSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA192FSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA192FSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA192SROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA192SROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA192SROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA192SSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA192SSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA192SSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA256FROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA256FROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA256FROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA256FSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA256FSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA256FSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA256SROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA256SROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA256SROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSHARAKA256SSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSHARAKA256SSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSHARAKA256SSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2128FROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2128FROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2128FROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2128FSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2128FSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2128FSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2128SROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2128SROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2128SROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2128SSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2128SSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2128SSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2192FROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2192FROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2192FROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2192FSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2192FSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2192FSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2192SROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2192SROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2192SROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2192SSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2192SSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2192SSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2256FROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2256FROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2256FROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2256FSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2256FSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2256FSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2256SROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2256SROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2256SROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHA2256SSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHA2256SSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHA2256SSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHAKE128FROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHAKE128FROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHAKE128FROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHAKE128FSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHAKE128FSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHAKE128FSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHAKE128SROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHAKE128SROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHAKE128SROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHAKE128SSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHAKE128SSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHAKE128SSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHAKE192FROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHAKE192FROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHAKE192FROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHAKE192FSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHAKE192FSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHAKE192FSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHAKE192SROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHAKE192SROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHAKE192SROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHAKE192SSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHAKE192SSIMPLE_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHAKE192SSIMPLE_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHAKE256FROBUST_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHAKE256FROBUST_CLEAN_crypto_sign_signature","_PQCLEAN_SPHINCSSHAKE256FROBUST_CLEAN_crypto_sign_verify","_PQCLEAN_SPHINCSSHAKE256FSIMPLE_CLEAN_crypto_sign_keypair","_PQCLEAN_SPHINCSSHAKE256FSIMPLE_CLEAN_crypto_sign_signature","_PQCL'... 415 more characters,
    '-s',
    'WASM=1',
    '-Wl,--no-entry',
    '-flto',
    '-Os',
    '-Wall',
    '-Wextra',
    '-Wno-unused-function',
    '-fvisibility=default',
    '-o',
    'wasm/gen/pqclean.wasm',
    'deps/PQClean/common/aes.c',
    'deps/PQClean/common/fips202.c',
    'deps/PQClean/common/nistseedexpander.c',
    'deps/PQClean/common/sha2.c',
    'deps/PQClean/common/sp800-185.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-128/clean/code.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-128/clean/fft.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-128/clean/gf.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-128/clean/gf2x.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-128/clean/hqc.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-128/clean/kem.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-128/clean/parsing.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-128/clean/reed_muller.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-128/clean/reed_solomon.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-128/clean/vector.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-192/clean/code.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-192/clean/fft.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-192/clean/gf.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-192/clean/gf2x.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-192/clean/hqc.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-192/clean/kem.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-192/clean/parsing.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-192/clean/reed_muller.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-192/clean/reed_solomon.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-192/clean/vector.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-256/clean/code.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-256/clean/fft.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-256/clean/gf.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-256/clean/gf2x.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-256/clean/hqc.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-256/clean/kem.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-256/clean/parsing.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-256/clean/reed_muller.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-256/clean/reed_solomon.c',
    'deps/PQClean/crypto_kem/hqc-rmrs-256/clean/vector.c',
    'deps/PQClean/crypto_kem/kyber1024/clean/cbd.c',
    'deps/PQClean/crypto_kem/kyber1024/clean/indcpa.c',
    'deps/PQClean/crypto_kem/kyber1024/clean/kem.c',
    'deps/PQClean/crypto_kem/kyber1024/clean/ntt.c',
    'deps/PQClean/crypto_kem/kyber1024/clean/poly.c',
    'deps/PQClean/crypto_kem/kyber1024/clean/polyvec.c',
    'deps/PQClean/crypto_kem/kyber1024/clean/reduce.c',
    'deps/PQClean/crypto_kem/kyber1024/clean/symmetric-shake.c',
    'deps/PQClean/crypto_kem/kyber1024/clean/verify.c',
    'deps/PQClean/crypto_kem/kyber1024-90s/clean/cbd.c',
    'deps/PQClean/crypto_kem/kyber1024-90s/clean/indcpa.c',
    'deps/PQClean/crypto_kem/kyber1024-90s/clean/kem.c',
    'deps/PQClean/crypto_kem/kyber1024-90s/clean/ntt.c',
    'deps/PQClean/crypto_kem/kyber1024-90s/clean/poly.c',
    'deps/PQClean/crypto_kem/kyber1024-90s/clean/polyvec.c',
    'deps/PQClean/crypto_kem/kyber1024-90s/clean/reduce.c',
    'deps/PQClean/crypto_kem/kyber1024-90s/clean/symmetric-aes.c',
    'deps/PQClean/crypto_kem/kyber1024-90s/clean/verify.c',
    'deps/PQClean/crypto_kem/kyber512/clean/cbd.c',
    'deps/PQClean/crypto_kem/kyber512/clean/indcpa.c',
    'deps/PQClean/crypto_kem/kyber512/clean/kem.c',
    'deps/PQClean/crypto_kem/kyber512/clean/ntt.c',
    'deps/PQClean/crypto_kem/kyber512/clean/poly.c',
    'deps/PQClean/crypto_kem/kyber512/clean/polyvec.c',
    'deps/PQClean/crypto_kem/kyber512/clean/reduce.c',
    'deps/PQClean/crypto_kem/kyber512/clean/symmetric-shake.c',
    'deps/PQClean/crypto_kem/kyber512/clean/verify.c',
    'deps/PQClean/crypto_kem/kyber512-90s/clean/cbd.c',
    'deps/PQClean/crypto_kem/kyber512-90s/clean/indcpa.c',
    'deps/PQClean/crypto_kem/kyber512-90s/clean/kem.c',
    'deps/PQClean/crypto_kem/kyber512-90s/clean/ntt.c',
    'deps/PQClean/crypto_kem/kyber512-90s/clean/poly.c',
    'deps/PQClean/crypto_kem/kyber512-90s/clean/polyvec.c',
    'deps/PQClean/crypto_kem/kyber512-90s/clean/reduce.c',
    'deps/PQClean/crypto_kem/kyber512-90s/clean/symmetric-aes.c',
    'deps/PQClean/crypto_kem/kyber512-90s/clean/verify.c',
    'deps/PQClean/crypto_kem/kyber768/clean/cbd.c',
    'deps/PQClean/crypto_kem/kyber768/clean/indcpa.c',
    'deps/PQClean/crypto_kem/kyber768/clean/kem.c',
    'deps/PQClean/crypto_kem/kyber768/clean/ntt.c',
    'deps/PQClean/crypto_kem/kyber768/clean/poly.c',
    'deps/PQClean/crypto_kem/kyber768/clean/polyvec.c',
    'deps/PQClean/crypto_kem/kyber768/clean/reduce.c',
    'deps/PQClean/crypto_kem/kyber768/clean/symmetric-shake.c',
    'deps/PQClean/crypto_kem/kyber768/clean/verify.c',
    'deps/PQClean/crypto_kem/kyber768-90s/clean/cbd.c',
    'deps/PQClean/crypto_kem/kyber768-90s/clean/indcpa.c',
    'deps/PQClean/crypto_kem/kyber768-90s/clean/kem.c',
    ... 673 more items
  ]
}
tniessen commented 1 year ago

Thank you for pointing this out @Catalan-1ap. The build-wasm script requires the Emscripten Compiler Frontend (emcc) to produce the WebAssembly output. For CI and for releases, we currently use a slightly older version of the Emscripten SDK:

https://github.com/tniessen/node-pqclean/blob/b494842a617e8fe094010c2194c25fe61bf052c9/.github/workflows/ci.yml#L28-L32

If you want to build the WebAssembly file locally, I would recommend to use the same version of Emscripten (3.1.21).

Unfortunately, the Emscripten SDK will also populate your PATH with an old version of Node.js, which might cause other problems. As a temporary workaround, until we figure out a better solution, you can skip the build-wasm step and use pre-built binaries instead:

$ git clone --branch v0.3.1 https://github.com/tniessen/node-pqclean.git
$ mkdir -p wasm/gen
$ curl -o wasm/gen/algorithms.json "https://unpkg.com/pqclean@0.3.1/wasm/gen/algorithms.json"
$ curl -o wasm/gen/pqclean.wasm "https://unpkg.com/pqclean@0.3.1/wasm/gen/pqclean.wasm"
$ npm run build-web
$ npm run test-web chrome

The last step is optional and only necessary for testing.

We will try to find a better solution to this issue. I have previously considered publishing the web distribution to npm directly to make this easier.

Catalan-1ap commented 1 year ago

@tniessen Thank you for your attention, pre-build binaries works Should i close the issue?

tniessen commented 1 year ago

Please keep it open as a reminder for me to either update the documentation or to find a better solution :)