2012-12-06 40 views
0

我试图弄清楚我收到的公钥的大小。如何确定从关键的大小?我无法在documentation中找到简单的方法。从公钥确定密钥大小(PEM格式)

我有什么是公共密钥本身,这是我收到这样的:

cert = OpenSSL::X509::Certificate.new(sock.peer_cert) 
pkey = cert.public_key 

公钥是PEM格式。所以你有开始和结束的路线,中间是实际的钥匙。现在密钥本身是base64编码的。如果我解码该字符串并计算字节数,我会得到一个大小。这个大小包括一些额外的指数和模数(还有更多?)。我需要知道的确定公钥的位数是多少个字节的模数和指数(如果还有更多,那么也是)占用。

回答

2
key_length_in_bits = pkey.n.num_bytes * 8 

引用Wikipedia

[...] n被用作模量为公钥和私钥两者。它的长度通常用比特表示,是关键长度。 [...]