有谁知道是否有用于 React Native 的椭圆曲线 Diffie Hellman 密码学(ECDH)的实现?
我为此找到了一些库。他们每个人都有一些问题:
- react-native-ecc:它只生成密钥对,不实现从私钥和公钥生成共享密钥(秘密密钥)进行加密
- react-native-crypto:它使用了一些技巧并递归地更改 node_modules,我认为它不稳定。
- elliptic:它在一个普通的 javascript 实现中,它在 react native 中不起作用
有谁知道是否有用于 React Native 的椭圆曲线 Diffie Hellman 密码学(ECDH)的实现?
我为此找到了一些库。他们每个人都有一些问题:
据我所知,没有(2020 年 2 月)。
在我正在进行的一个项目中,我们评估了已知的库,但找不到任何适用于 iOS 的库。我们需要的操作包括 ECDH(使用 P-256 曲线)。
它仍在进行中,但我们的想法是在 Swift 中本地构建加密操作,并通过桥梁将它们公开以填补crypto.subtle
API 的缺失部分。
更新:代码是开源的(iOS 的 Cliqz 浏览器的一部分):
JavaScript (ReactNative):
Swift(基于CryptoKit库的原生代码):
这是提供window.crypto.subtle
功能的代码,正如您在 Firefox 或 Chrome 等桌面浏览器上所期望的那样。要了解它是如何使用的,您可以查看实际用法,或者——也许更容易——查看注释掉的示例。
我将在此处添加链接,希望它为面临相同问题的人提供入口点。请注意 Cliqz 项目已经停止,所以如果你复制粘贴解决方案要小心,因为它不会收到安全补丁。