我正在尝试在 Rust 项目中使用 ElligatorSwift 编码椭圆曲线点的 x 坐标。为什么没有
SharedSecret
的方法 secret_bytes 的类似方法
对于结构 ElligatorSwiftSharedSecret ?
我需要以某种方式访问由 [u8; 32]
包裹的 ElligatorSwiftSharedSecret
秘密字节。似乎不可能,我想知道是否有原因。
基本上,我需要此代码的
ElligatorSwiftSharedSecret
的变体,其中变量 secret
的类型为 secp256k1::ecdh::SharedSecret
。
use secp256k1::ecdh::SharedSecret;
[...]
let shared_secret_serialized: [u8; 32] = SharedSecret::secret_bytes(&secret);
要访问 ElligatorSwiftSharedSecret 包装的 32 字节共享密钥,可以使用 as_ref 方法获取对内部字节的引用,然后将其转换为 [u8; 32]数组。这是如何实现此目标的示例
let shared_secret: ElligatorSwiftSharedSecret = /* obtain the shared secret */;
let secret_bytes: [u8; 32] = *shared_secret.as_ref();