2015-10-13 46 views
0

RSA結構是否有一個公共API,通過指定pqË的值以創建RSA結構?的OpenSSL:如何創建帶有P,Q和E

我發現Crypt-OpenSSL-RSA/RSA.xs正在做我想做的事情。

new_key_from_parameters

鑑於隱窩:: OpenSSL的:: Bignum的對象爲N,E,和任選的d,p和q,其中p和q是n的素因數,e是公共指數和d是私有的指數,使用這些值創建一個新的Crypt :: OpenSSL :: RSA對象。

但在另一方面, rsa section in the OpenSSL manual 說:

應用程序通常應避免直接使用RSA的結構元素,而使用API​​函數來查詢或修改密鑰

回答

1

聲明關於「使用API​​」在這個時候是值得期待的。 RSA模塊是OpenSSL 中最早的一個,它的日期是SSLeay和Eric關於其他信息而不是信息隱藏的時間。較新的模塊 與ECC SHA AES EVP類似,甚至像BN BIO SSL這樣稍微重做的模塊,其API幾乎總是保持不透明,但RSA不支持。既然這個項目實際上有開發者複數,那麼這些舊的東西可能會被清理乾淨。

語義上你的組合不一致。用作公鑰的RSA結構必須具有n和e,並且不應該具有p q或任何其他私人信息; 用作私鑰的一個必須有n d p q dp dq qinv並且可能e。 (e不用於私鑰操作, ,但它需要檢查一個密鑰對或寫出來或讀回它。)如果你真的有pqe,你必須計算n, ,如果你想要一個私鑰還必須計算d(then)dp dq qinv。請參閱PKCS#1(又名http://tools.ietf.org/html/rfc3447),一旦您擁有正確的BN值,現在只需填入rsa->whatever

相關問題