当前位置: 首页 > 知识库问答 >
问题:

未知的116字节ECDSA私钥格式

年健
2023-03-14

iOS 13的CryptoKit框架为ECDSA公钥和私钥提供了.raw表示值。我一直在尝试对 rawRepresentation 数据类型进行反向工程,以便在它和 JWK 之间进行转换。从公钥表示的 64 字节长度来看,它似乎是一个简单的 x || y 串联。我猜想私钥将是x||y||d,但事实似乎并非如此,因为这样做应该产生一个96字节的字符串,而实际的rawRepresentation是144字节。它似乎也不是有效的 DER/ASN.1 字符串。我还没有设法找到一个与我得到的实际值一致的规范。

正如你所猜测的,苹果的文档非常具有描述性。

< code>rawRepresentation:以字节集合的形式表示私钥。

提供了十六进制中的示例密钥对。

Private: 988f8187ff7f00007466815b0d6b02ae1a063198fd1e4923fb1e413195126cc00d30483284186b435726c0c69cc774274ea32eb6a17cbaf2ea88dd7f3a5a2a3ce637bc4b96523c2795035bd2fbeb093b010000000000000000000000000000000000000000000000000000000000000012b2b61abe8beae5aeb6d0bda739235364de96c7f498813cfb0336198dcf9063
Public:  2774c79cc6c02657436b18843248300dc06c129531411efb23491efd9831061a3b09ebfbd25b0395273c52964bbc37e63c2a5a3a7fdd88eaf2ba7ca1b62ea34e

这可以是什么格式?

共有1个答案

魏学智
2023-03-14

我无法找出< code>rawRepresentation,所以我最终使用了< code>x963Representation,即< code>0x04 x y d表示私钥(97字节),而< code>04 x y表示公钥(65字节)。

 类似资料:
  • 是否可以使用KeypairGenerator在java中生成ecdsa 32字节私钥?我的意思是keys.getpublic.getEncoded.length将返回32我尝试生成私钥,但大小是144字节

  • 我是Openssl的新手,我已经生成了私钥myprivatekey。pem和公钥mypublickey。pem与: 和我的公钥: 接下来我想做的是用通行短语私钥加密我的ecdsa,并对我的公钥进行认证请求,感谢大家的帮助。

  • 问题内容: 我试图从私钥生成公共ECDSA密钥,但是在Internet上如何进行此操作方面,我还没有找到太多帮助。几乎所有内容都是根据公共密钥规范生成公共密钥的,我不知道该如何获得。到目前为止,这是我汇总的内容: 但是,在运行时,出现以下错误: 我究竟做错了什么?有没有更好/更简便的方法可以做到这一点? 编辑:我设法获得一些代码进行编译,但不能正常工作: 当我运行它时,它会生成一个publicKe

  • 我试图从私钥中生成一个公共ECDSA密钥,但我还没有在互联网上找到多少关于如何实现这一点的帮助。几乎所有的事情都是为了从公钥规范生成公钥,我不知道如何得到它。到目前为止,我总结了以下内容: 但是,在运行时,我会出现以下错误: 我做错了什么?有更好/更简单的方法吗? 编辑:我已经设法编译了一些代码,但它不能正常工作: 当我运行它时,它会生成一个公钥,但它不是私钥对应的公钥。

  • 我正在尝试用c#签署比特币交易。我有两段代码要完成。我可以使用Bouncy castle创建一组私钥和公钥。我可以将其转换为钱包导入格式ok。 我还可以从ECDSA公钥生成比特币地址。 然而,我想签署一项交易,我所拥有的只是我的私钥。我不想把东西放进钱包里签名。那么,在只提供私钥的情况下,如何生成公钥呢? 我发现了一个javascript方法可以做到这一点: 我在充气城堡看到的唯一方法是生成随机一

  • 如何使用作为字符串提供的公共和私有RSA密钥进行加密和解密。因为我正在使用RSACryptoServiceProvider,它需要XML格式,所以是否有可能使用提供的字符串。谢谢。