提问者:小点点

React Native中的椭圆曲线密码学


有人知道React Native是否有椭圆曲线Diffie Hellman加密(ECDH)的实现吗?

我找到了一些库。他们每个人都有一些问题:

  1. react-native-ecc:它只生成密钥对,不实现从私钥和公钥生成共享密钥(密钥)进行加密
  2. react-native-crypto:它使用递归node_modules一些黑客和更改,我认为它不稳定。
  3. 椭圆:它在一个简单的javascript实现中,它在react native中不起作用

共1个答案

匿名用户

据我所知,没有(2020年2月)。

在我正在进行的一个项目中,我们评估了已知的库,但找不到iOS的库。我们需要的操作包括ECDH(使用P-256曲线)。

它仍然是半成品,但我们的想法是在Swift中原生构建加密操作,用桥梁公开它们以填补cryptoAPI的缺失部分。

更新:代码是开源的(iOS的Cliqz浏览器的一部分):

JavaScript(ReactNative):

  • https://github.com/cliqz/user-agent-ios/blob/develop/ReactNative/js/globals/window/crypto.ts

Swift(基于CryptoKit库构建的本机代码):

  • https://github.com/cliqz/user-agent-ios/blob/develop/ReactNative/WindowAPI/WindowCrypto.m
  • https://github.com/cliqz/user-agent-ios/blob/develop/ReactNative/WindowAPI/WindowCryto.swift

这是提供window. cryp.微妙功能的代码,正如您在Firefox或Chrome等桌面浏览器上所期望的那样。要了解它是如何使用的,您可以查看实际使用情况,或者-也许更容易-查看注释掉的示例。

我将在此处添加链接,希望它为面临相同问题的人提供入口点。请注意,Cliqz项目已停止,因此复制粘贴解决方案时要小心,因为它不会收到安全补丁。