Преобразование ссылки в TBuf - PullRequest
2 голосов
/ 23 мая 2009

Я использую класс CRSAKeypair, который возвращает открытый ключ и закрытый ключ в длинном формате, я хочу преобразовать его в формат TBuf, как мне поступить. Я попытался создать указатели, но все еще не повезло .. есть ли другой способ

Ответы [ 3 ]

1 голос
/ 27 мая 2009

Если вы используете CRSAKeypair, вы, вероятно, скачали библиотеку криптографии Symbian и ее документацию.

Надо признать, что документация не является явной, но я рискну, что вы можете просто отправить компоненты модуля и экспоненты на любой другой механизм RSA, чтобы восстановить открытый ключ. Вероятно, вы ищете следующие методы:

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

Просто помните, что методы с завершающим символом "C" выдвигают то, что возвращают в стек очистки, поэтому вам нужно выгрузить его самостоятельно.

Если вам нужно лучше понять дескрипторы для преобразования HBufC8 * в TBuf, я предлагаю потратить некоторое время на http://descriptors.blogspot.com

0 голосов
/ 22 декабря 2009

Ну, во-первых, создайте свой 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-разрядное целое число без знака в символьное представление на основе указанной системы счисления и копирует преобразование в этот дескриптор, заменяя любые существующие данные

0 голосов
/ 23 мая 2009

Возможно, вы могли бы использовать классы TASN1DecRSAPublicKey и TASN1EncRSAPublicKey для выполнения чего-то подобного, но, кроме того, извините, я не могу помочь.

...