Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Build error on Windows with Node 11.9.0 #138

Closed
davedoesdev opened this issue Feb 6, 2019 · 11 comments
Closed

Build error on Windows with Node 11.9.0 #138

davedoesdev opened this issue Feb 6, 2019 · 11 comments
Assignees

Comments

@davedoesdev
Copy link
Contributor

Seeing this on AppVeyor and locally:

     Creating library C:\Users\Lucie\centro\node_modules\node-webcrypto-ossl\build\Release\nodessl.lib and object C:\Users\Lucie\centro\node_modules\node-webcrypto-ossl\build\Release\nodessl.exp
ec_jwk.obj : error LNK2001: unresolved external symbol _EC_POINT_get_affine_coordinates_GFp [C:\Users\Lucie\centro\node_modules\node-webcrypto-ossl\build\nodessl.vcxproj]
C:\Users\Lucie\centro\node_modules\node-webcrypto-ossl\build\Release\nodessl.node : fatal error LNK1120: 1 unresolved externals [C:\Users\Lucie\centro\node_modules\node-webcrypto-ossl\build\nodessl.vcxproj]

Compiles fine on Linux. This is strange, almost as if the function is missing in the OpenSSL linked with Node 11.9.0 on Windows.

@rmhrisk
Copy link
Contributor

rmhrisk commented Feb 7, 2019

Looks like your building against an older OpenSSL

@davedoesdev
Copy link
Contributor Author

The only OpenSSL includes I have on the system are in .node-gyp/... and I have no OpenSSL libraries so it should be linking against the version in Node itself.

If I use Node 10.15.1 then I don't get the error so I think something's wrong with the OpenSSL in 11.9.0 on Windows.

@davedoesdev
Copy link
Contributor Author

C:\Users\David>dumpbin /exports .node-gyp\10.15.1\ia32\node.lib | find "_EC_POINT_get_affine_coordinates_GFp"
                  _EC_POINT_get_affine_coordinates_GFp

C:\Users\David>dumpbin /exports .node-gyp\11.9.0\ia32\node.lib | find "_EC_POINT_get_affine_coordinates_GFp"

@davedoesdev
Copy link
Contributor Author

Looks like EC_POINT_get_affine_coordinates_GFp has been removed.

@microshine
Copy link
Contributor

microshine commented Feb 7, 2019

Try this new module @peculiar/webcrypto
It's based on NodeJS Crypto API and doesn't use C++ plugin

@davedoesdev
Copy link
Contributor Author

@davedoesdev
Copy link
Contributor Author

davedoesdev commented Feb 7, 2019

The docs for EC_POINT_get_affine_coordinates_GFp here say it's a "synonym of
EC_POINT_set_affine_coordinates" so we should just be able to use that function instead?

@davedoesdev
Copy link
Contributor Author

davedoesdev commented Feb 7, 2019

@microshine @peculiar/webcrypto seems to work well enough for my use case (fido2-lib)
Thanks!

@davedoesdev
Copy link
Contributor Author

Fixed in Node 11.10.0 (but this will occur again once the symbols are removed rather than deprecated).

@lindner
Copy link

lindner commented Jun 12, 2019

Looks like this happened again with Appveyer's 10.16.0 node version..

@microshine
Copy link
Contributor

New version + [email protected] is avalable

notsolucky pushed a commit to tentwentyfour/fido2-lib that referenced this issue Dec 16, 2019
Due to PeculiarVentures/node-webcrypto-ossl#138

@peculiar/webcrypto is the replacement which doesn't need C code
(uses Node crypto from JS only).
notsolucky pushed a commit to tentwentyfour/fido2-lib that referenced this issue Dec 16, 2019
Due to PeculiarVentures/node-webcrypto-ossl#138

@peculiar/webcrypto is the replacement which doesn't need C code
(uses Node crypto from JS only).
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants