簡體   English   中英

在iOS中創建RSA私鑰

[英]Creating an RSA private key in iOS

我正在嘗試在iPhone的ObjC中重寫一些Java(Android)代碼。 該代碼將進行基本的Web服務調用,並且需要設置一些帶有身份驗證信息的標頭。

該信息的一部分是我正在發送的數據的加密哈希。

Java版本使用手機上生成的RSA私鑰來計算SHA256簽名。 私鑰是使用我可用的種子生成的。

(簡化的)Java代碼如下:

KeyFactory keyFactory = KeyFactory.getInstance("RSA");
Signature sig = Signature.getInstance("SHA256WithRSAEncryption");

// I get the private key bytes from an outside source
EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
sig.initSign(keyFactory.generatePrivate(privateKeySpec));

sig.update(/* insert my data here */);
return sig.sign();

現在,我試圖在iOS和ObjC中重新創建它。 進行SHA256簽名計算很容易,但是我看不出如何輕松創建私有RSA密鑰。 如果有可用的API,我寧願使用內置的API,但是如果我必須使用第三方庫(例如OpenSSL),那么我也可以使用它。

大多數人(需要引用)選擇使用第三方OpenSSL庫,這不僅是因為難以編寫自己的加密貨幣,而且還因為他們有很大的機會(如果您還沒有使用過加密貨幣的話)會創建不良的加密貨幣。

就是說,沒有什么可以阻止您根據自己的喜好用C或C ++直接編寫SHA256哈希的,盡管我認為您會發現PRN​​G選項缺乏,並且發現自己在熵池等上花費了太多時間。

如果您確實遇到了一個不錯的SHA256原語而又沒有OpenSSL的額外負擔,我也很想了解它! 但是到目前為止,我還沒有看到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM