002
22.01.2009, 14:57 Uhr
~Dirk_Gast
Gast
|
Hallo,
danke. Die gmplib werde ich auch noch probieren.
Habe mich vorerst mal für openssl entschieden, da dort auch alle Krypto-Algorithmen gleichzeitig mit drin sind und ich somit alles aus einem Guss habe.
Leider verstehe ich die big number Struktur nicht so wirklich.
Nehmen wir an, dass ich eine große Zahl hexadezimal vorliegen habe:
0X40DBDE8944559DB16DD17A3F06B5F237317B097E
Wie kann ich diese Zahl in die folgende Struktur, die mir openssl anbietet, stecken? Muss man dabei irgendwie noch big und little endian beachten?
Code: |
#define BN_ULONG unsigned long #define BN_BITS2 64
struct bignum_st { BN_ULONG *d; /* Pointer to an array of 'BN_BITS2' bit chunks. */ int top; /* Index of last used d + 1. */ /* The next are internal book keeping for bn_expand. */ int dmax; /* Size of the d array. */ int neg; /* one if the number is negative */ int flags; };
|
Ich schreibe hier mal meine Vermutungen: d ist ein Array, welches aus unsigned long value besteht. Dort stecke ich Stück für Stück die große Zahl rein. Mir ist nur nicht klar, wie ich diese aufteilen muss.
Top ist das letzte verwendete Element im Array. dmax die Größe des Arrays. neg kann wahrscheinlich alle Werte annehmen. Wenn es 1 ist, dann handelt es sich um eine negative Riesenzahl.
Was flags bedeuten könnte weiß ich leider überhaupt nicht.
Vielen Dank schon einmal für eure Hilfe. Dirk |