Flutter密钥派生插件catalyst_key_derivation的使用

内容 #

特性 #

此包为Flutter提供了BIP32-Ed25519 Cardano HD密钥派生(SLIP-0023)。

底层实现是用Rust编写的,并通过 flutter_rust_bridge 转换到Flutter。

参考资料 #

需求 #

  • Dart: 3.5.0+
  • Flutter: 3.27.3+

安装 #

dependencies:
    catalyst_key_derivation: any # 或者在Pub上的最新版本

Web设置 #

flutter_rust_bridge 需要自定义跨源头,以便能够在不同的源之间共享缓冲区。

示例 #

import 'package:catalyst_key_derivation/catalyst_key_derivation.dart';

Future<void> main() async { // 在应用程序生命周期内调用一次init,以便在使用该包之前进行初始化 await CatalystKeyDerivation.init();

const keyDerivation = CatalystKeyDerivation();

final xprv = await keyDerivation.deriveMasterKey( mnemonic: ‘prevent company field green slot measure chief hero apple task eagle sunset endorse dress seed’, ); print(‘主xprv ${xprv.toHex()}’);

final xpub = await xprv.derivePublicKey(); print(‘主xpub ${xpub.toHex()}’);

final data = [1, 2, 3, 4]; final sig = await xprv.sign(data);

final checkXprvSig = await xprv.verify(data, signature: sig); print(‘使用xprv验证签名: $checkXprvSig’);

final checkXpubSig = await xpub.verify(data, signature: sig); print(‘使用xpub验证签名: $checkXpubSig’);

const path = “m/1852’/1815’/0’/2/0”; final childXprv = await xprv.derivePrivateKey(path: path); print(‘派生xprv路径 $path: ${childXprv.toHex()}’);

final childXprvHex = childXprv.toHex(); print(‘子xprv十六进制表示 $childXprvHex’);

xprv.drop(); print(‘主xprv已删除 ${xprv.toHex()}’); }

如何贡献更改 #

flutter_rust_bridge 用于作为Rust和Flutter之间的桥梁。 要添加或更新此包提供的现有功能,请遵循以下步骤:

  1. 设置flutter_rust_bridge
  2. 在/rust/src/*中修改Rust代码
  3. 通过 earthly 生成Flutter绑定: earthly +code-generator --local true
  4. 更新引用了Rust暴露API的Flutter代码
  5. 提交您的更改并提出PR

支持 #

在GitHub 问题跟踪器 上发布问题和功能请求。 请阅读我们的 CONTRIBUTING 以了解如何贡献的指南。

许可证 #

根据 Apache License, Version 2.0MIT license 选择任一许可证。

除非您明确声明,否则任何有意提交给本仓库包含在内的贡献,如Apache-2.0许可证所定义的,应被双重许可为上述许可证,没有任何额外条款或条件。


更多关于Flutter密钥派生插件catalyst_key_derivation的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter密钥派生插件catalyst_key_derivation的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


catalyst_key_derivation 是一个用于 Flutter 的插件,主要用于密钥派生操作。它通常用于从主密钥生成子密钥,这在加密、解密以及其他安全相关的应用中非常有用。以下是如何在 Flutter 项目中使用 catalyst_key_derivation 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 catalyst_key_derivation 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  catalyst_key_derivation: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入包

在你的 Dart 文件中导入 catalyst_key_derivation 包。

import 'package:catalyst_key_derivation/catalyst_key_derivation.dart';

3. 使用插件进行密钥派生

catalyst_key_derivation 插件通常提供了一些方法来执行密钥派生操作。以下是一个简单的示例,展示如何使用该插件进行密钥派生。

void main() async {
  // 主密钥
  final masterKey = 'your-master-key';

  // 派生密钥的参数
  final index = 0; // 子密钥的索引
  final length = 32; // 派生密钥的长度(以字节为单位)

  // 派生密钥
  try {
    final derivedKey = await CatalystKeyDerivation.deriveKey(
      masterKey: masterKey,
      index: index,
      length: length,
    );

    print('Derived Key: $derivedKey');
  } catch (e) {
    print('Error deriving key: $e');
  }
}

4. 处理错误

在实际应用中,密钥派生可能会失败,因此你需要处理可能的异常。catalyst_key_derivation 插件可能会抛出不同类型的异常,例如无效的输入或派生过程中的错误。

5. 进一步使用

根据你的具体需求,你可能需要将派生出的密钥用于加密、解密或其他安全操作。你可以将派生出的密钥传递给其他加密库,如 flutter_secure_storagepointycastle,以完成更复杂的加密任务。

6. 注意事项

  • 安全性:密钥派生是一个关键的安全操作,确保你的主密钥是安全的,并且不要在不安全的环境中存储或传输派生出的密钥。
  • 性能:密钥派生操作可能会消耗一定的计算资源,尤其是在处理大量数据时。确保你的应用在性能和安全之间取得平衡。

7. 参考文档

如果你需要更详细的信息或遇到问题,可以查看 catalyst_key_derivation 插件的官方文档或 GitHub 仓库。

示例项目

你可以创建一个简单的 Flutter 项目来测试这个插件,确保它能够在你的环境中正常工作。

flutter create key_derivation_example
cd key_derivation_example
回到顶部