2009-05-23 8 views
2

J'utilise la classe CRSAKeypair qui retourne la clé publique et la clé privée qui est en format long, je veux convertir au format TBuf comment dois-je procéder. J'ai essayé la création de pointeurs, mais toujours pas de chance .. est-il une autre façonConversion de ref en TBuf

Répondre

1

Si vous utilisez CRSAKeypair, vous avez probablement téléchargé la bibliothèque de chiffrement Symbian et sa documentation. Admissible, la documentation n'est pas explicite mais j'oserais que vous pouvez juste envoyer les composants de module et d'exposant à n'importe quel autre moteur de RSA afin de reconstituer la clé publique. Les méthodes que vous recherchez sont probablement:

CRSAParameters :: N();
CRSAPublicKey :: E();
TInteger :: BufferLC(); Rappelez-vous simplement que les méthodes avec un «C» final poussent ce qu'elles retournent sur la pile de nettoyage, vous devez donc les faire vous-même.

Si vous avez besoin de comprendre les descripteurs mieux pour convertir HBufC8 * à TBUF, je vous propose de passer un peu de temps sur http://descriptors.blogspot.com

+0

« quitter ce qu'ils reviennent sur la pile de nettoyage » Un phrasé pauvre peut entraîner de la confusion. – Dynite

+0

édité pour le rendre plus clair –

0

bien créer tout d'abord votre TBuf8 avec la longueur des données le long des lignes de:

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

Puis peut-être à la recherche de certaines de ces fonctions de descripteur pour copier les données dans le descripteur?

TDes::Num(TInt64) 

convertit un entier signé de 64 bits en une représentation de caractère décimal et copie la conversion dans ce descripteur, en remplaçant les données existantes

TDes::Num(TReal,const TRealFormat &) 

convertit le nombre à virgule flottante spécifiée en une représentation de caractères et des copies la conversion en ce descripteur, en remplaçant toutes les données existantes

TDes::Num(TUint64,TRadix) 

Convertit le 64 bits spécifié non signé Teger en une représentation de caractères sur la base du système de numération spécifiée et copie la conversion dans ce descripteur, le remplacement des données existantes

TDes::NumFixedWidth(TUint,TRadix,TInt) 

convertit un entier non signé spécifié en une représentation de caractères de largeur fixe sur la base du système numérique spécifié et copie les la conversion en ce descripteur, en remplaçant les données existantes

TDes::NumFixedWidthUC(TUint,TRadix,TInt) 

convertit un entier non signé spécifié en une représentation de caractères de largeur fixe sur la base du système de numération spécifiée et copies de la conversion en ce descripteur, en remplaçant les données existantes

TDes::NumUC(TUint64,TRadix) 

convertit un entier non signé spécifié de 64 bits en une représentation de caractères sur la base du système de numération spécifiée et copie la conversion dans ce descripteur, en remplaçant les données existantes