将ref转换为TBuf

时间:2009-05-23 10:34:54

标签: c++ symbian

我正在使用CRSAKeypair类,它返回长格式的公钥和私钥,我希望它转换为TBuf格式我应该如何继续。  我已经尝试过创建指针但仍然没有运气..还有其他任何方式

3 个答案:

答案 0 :(得分:1)

如果您使用的是CRSAKeypair,则可能已下载了Symbian加密库及其文档。

顺便说一下,文档并不明确,但我冒昧地说,您可以将模数和指数组件发送到任何其他RSA引擎,以便重新构建公钥。您正在寻找的方法可能是:

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

请记住,带有尾随“C”的方法会推送它们在清理堆栈上返回的内容,因此您需要自己弹出它。

如果你需要更好地理解描述符以将HBufC8 *转换为TBuf,我建议花一些时间在http://descriptors.blogspot.com

答案 1 :(得分:0)

您可以使用TASN1DecRSAPublicKeyTASN1EncRSAPublicKey类来执行类似的操作,但除此之外,我很抱歉我无法帮助。

答案 2 :(得分:0)

首先使用以下行的数据长度创建TBuf8:

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

然后可能会寻找一些这些描述符函数来将数据复制到描述符中?

TDes::Num(TInt64)

将64位带符号整数转换为十进制字符表示形式,并将转换复制到此描述符中,替换任何现有数据

TDes::Num(TReal,const TRealFormat &)

将指定的浮点数转换为字符表示形式,并将转换复制到此描述符中,替换任何现有数据

TDes::Num(TUint64,TRadix)

将指定的64位无符号整数转换为基于指定数字系统的字符表示形式,并将转换复制到此描述符中,替换任何现有数据

TDes::NumFixedWidth(TUint,TRadix,TInt)

根据指定的数字系统将指定的无符号整数转换为固定宽度的字符表示,并将转换复制到此描述符中,替换任何现有数据

TDes::NumFixedWidthUC(TUint,TRadix,TInt)

根据指定的数字系统将指定的无符号整数转换为固定宽度的字符表示,并将转换复制到此描述符中,替换任何现有数据

TDes::NumUC(TUint64,TRadix)

将指定的64位无符号整数转换为基于指定数字系统的字符表示形式,并将转换复制到此描述符中,替换任何现有数据