長い形式の公開鍵と秘密鍵を返す 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 ビットの符号付き整数を 10 進文字表現に変換し、変換をこの記述子にコピーして、既存のデータを置き換えます。
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 ビット符号なし整数を、指定された記数法に基づいた文字表現に変換し、その変換をこの記述子にコピーして、既存のデータを置き換えます。