Dart-基于椭圆曲线25519的秘密密钥生成

时间:2018-07-12 12:26:50

标签: dart flutter diffie-hellman ed25519

我正在寻找一个dart软件包,以便在Flutter应用程序中实现密钥交换协议(椭圆曲线Diffie–Hellman)。因此流程如下:

  • app在登录期间生成密钥对,并将公共密钥发送到 服务器(因此每次登录都会生成一个新的密钥对)
  • 服务器发回刚生成的公钥
  • 应用根据其私钥和服务器的公钥生成私钥 键
  • 应用程序包含发送到服务器的所有后续消息的hmac

我尝试使用ed25519_dart package进行密钥生成,但是它不起作用。我的应用程序甚至由于integer literal can't be represented in 64 bits错误而无法启动,飞镖分析仪也指出了此错误。

我也看过pointycastle,但它似乎不支持Diffie-Hellman。

Diffie–Hellman package对我也不起作用。提供的示例在第一行中引发此异常:

FormatException: Invalid radix-16 number
FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B1...

有什么想法可以在Flutter应用程序中实现我想做的事吗?

1 个答案:

答案 0 :(得分:0)

我假设的错误与BigNum和Dart 2有关。Pointy Castle在GitHub上有一个分支,在那里他们正在切换到Dart 2.0。

以下是获得密钥对的一些方法:

  • 使用本机SDK(Java,Kotlin或C ++)并使用平台渠道
  • 使用尖锐的城堡Dart 2.0分支
  • 尝试使用flutter_sodium软件包。它可以在Dart 2中使用,但仍在开发中。

希望这会有所帮助。我也在尝试找出最好的方法!