2009-05-23 17 views
2

我使用CRSAKeypair類,它返回長格式的公鑰和私鑰,我希望它轉換爲TBuf格式,我應該如何繼續。 我曾嘗試三分球的創作,但仍然沒有運氣..有任何其他方式轉換爲TBuf

回答

1

如果您使用的是CRSAKeypair,那麼您可能已經下載了Symbian加密庫及其文檔。

Admitedly,文檔不明確,但我敢說,你可以只發送係數和指數組成部分的任何其他RSA引擎,以便重建公共密鑰。你正在尋找的方法可能是:

CRSAParameters :: N();
CRSAPublicKey :: E();
TInteger :: BufferLC();

只要記住具有尾隨「C」的方法會推動它們在清理棧上返回的內容,所以您需要自己彈出它。

如果您需要了解的描述更好地HBufC8 *轉換成的TBuf,我建議花一些時間在http://descriptors.blogspot.com

+0

「離開它們返回清除棧上什麼」 糟糕的措辭可能會導致混淆。 – Dynite 2009-12-22 15:21:30

0

那麼首先與數據線沿線的長度創建TBuf8:

TUint length = sizeof(myLong); 
TBuf<length> myLongBuf; 

然後也許尋找一些描述符函數來將數據複製到描述符中?

TDes::Num(TInt64) 

的64位帶符號整數的轉換轉換爲十進制字符表示,並且複製到描述符,替換任何現有的數據

TDes::Num(TReal,const TRealFormat &) 

指定浮點數轉換爲字符表示和副本轉換成這個描述符,替換任何現有的數據

TDes::Num(TUint64,TRadix) 

轉換指定的64位unsigned in teger成基於所述指定數目的系統和拷貝轉化成該描述符上的字符表示,替換任何現有數據

TDes::NumFixedWidth(TUint,TRadix,TInt) 

指定的無符號整數轉換成基於所述指定數目的系統和拷貝上的固定寬度的字符表示轉化爲描述符,替換任何現有的數據

TDes::NumFixedWidthUC(TUint,TRadix,TInt) 

指定的無符號整數爲基於所述指定數目的系統和拷貝轉化成該描述符在一個固定寬度字表示形式轉換,替換任何現有的數據

TDes::NumUC(TUint64,TRadix) 

將指定的64位無符號整數爲基於所述指定數目的系統和拷貝轉化成該描述符上的字符表示形式轉換,替換任何現有的數據