从RSA密钥对中获取参数
我想要生成RSA密钥对并记录pubkey参数(模数和指数,n和e),从现有的一组密钥(der格式)中获取参数或生成一个来自我自己的参数的pubkey对。从RSA密钥对中获取参数
我是trying to do the first with Crypto++,但它吐出来的ders被openssl报告为无效。今天晚上,Crypto ++ wiki和doc页面也没有帮助!
然后我试着研究如何使用一些随机密钥参数Crypto ++生成openssl中的密钥对,但几个小时后我仍然试图破译所有命令行参数。
这不是一个安全密钥,只是一个项目中的某些单元测试的工作之一我从JWK获取pubkeys作为(n,e)对并需要验证它是否能够正确验证签名。但要做到这一点,我需要private der和public(n,e),并且必须比尝试使用openssl包装库中的一个来简单记录关键参数,因为它会生成密钥对。
我试图做的第一与加密+,但OpenSSL的为无效它吐出来的是分布式能源报告...
(从链接的GitHub):
RSA::PublicKey publicKey(params); FileSink pubsink("pubkey.der"); publicKey.DEREncode(pubsink);
当您想要保存subjectPublicKeyInfo
时,请使用publicKey.Save
。 subjectPublicKeyInfo
是您正在考虑的RSA密钥以及OID和版本号等外部X.509包装。
我又试图研究如何通过使用一些所作的随机密钥加密参数的++生成OpenSSL中的密钥对,但几个小时后,我仍然停留试图破译所有的命令行参数。
您可能会发现来自Crypto ++ wiki的Keys and Formats有帮助。它还提供OpenSSL和GnuTLS命令。
我想要么生成RSA密钥对,并记录PUBKEY参数(模量和指数,n和e),得到的参数了现有的一组键(DER格式)的或产生pubkey对从我自己的参数。
循环返回围绕这个......有很多关于维基例子在RSA CryptographyRSA Encryption Schemes和RSA Signature Schemes。
一般来说,Crypto ++编码ASN.1/DER中的所有密钥。 Load
和Save
提供了“主题信息”部分,并且DEREncode
和BERDecode
仅提供了“原始密钥”部分。再次看看Keys and Formats。
如果要处理PEM编码密钥,则需要PEM Pack。它是一个附加组件,您必须下载它,然后构建包含PEM软件包的库。
如果您提供具体数据,例如您正在尝试处理的十六进制编码密钥,那么我们可以更多地说明您应该执行的操作。
如果您使用的是JWK密钥,那么您可能会发现['Base64URLEncoder'](https://www.cryptopp.com/wiki/Base64URLEncoder)和['Base64URLDecoder'](https://www.cryptopp.com/wiki/Base64URLDecoder)很有帮助。他们使用网络安全字母进行编码和解码。 – jww
*“没有帮助Crypto ++ wiki和doc页面在今晚停止!” - 是的,现在是固定的。我不知道到底发生了什么,但文件所有者从'root:apache'改为'root:root'; wiki temp目录从'images/temp'改为'images/tmp'。我与其他管理员交谈,没有人对网站进行更改。我们不知道发生了什么。 – jww