我正在使用 CRSAKeypair 类,它返回长格式的公钥和私钥,我希望它转换为 TBuf 格式我应该如何继续。我已经尝试过创建指针但仍然没有运气..还有其他方法吗
3 回答
如果您使用 CRSAKeypair,您可能下载了 Symbian 密码库及其文档。
诚然,文档并不明确,但我敢冒昧地说,您可以将模数和指数组件发送到任何其他 RSA 引擎,以重构公钥。您正在寻找的方法可能是:
CRSAParameters::N();
CRSAPublicKey::E();
TInteger::BufferLC();
请记住,带有尾随“C”的方法会将它们返回的内容推送到清理堆栈中,因此您需要自己弹出它。
如果您需要更好地理解描述符以将 HBufC8* 转换为 TBuf,我建议您花一些时间在http://descriptors.blogspot.com
您也许可以使用TASN1DecRSAPublicKey和TASN1EncRSAPublicKey类来执行类似的操作,但除此之外,很抱歉我无能为力。
好吧,首先创建您的 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 位无符号整数转换为基于指定数字系统的字符表示,并将转换复制到此描述符中,替换任何现有数据