2012-12-06 36 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被用作模量爲公鑰和私鑰兩者。它的長度通常用比特表示,是關鍵長度。 [...]