2009-05-23 19 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位无符号整数为基于所述指定数目的系统和拷贝转化成该描述符上的字符表示形式转换,替换任何现有的数据