Es geht um diesen define hier:
Code:
#define c2l(c,l) (l =((DES_LONG)(*((c)++))) , \
l |=((DES_LONG)(*((c)++)))<< 8L, \
l |=((DES_LONG)(*((c)++)))<<16L, \
l |=((DES_LONG)(*((c)++)))<<24L)
Dabei soll eine unsingend char[] zu einer unsigned long gewandelt werden.
Der Code dazu ist folgender:
Code:
DES_LONG tout0; // Hier handelt es sich um einen __u32
unsigned char *iv;
c2l(iv,tout0);
Das ganze ist nicht auf meinem Mist gewachsen, sondern kommt in Krypto-Progs (hier DES, aus OpenSSL genommen) vor.
Compilerlauf = ok!
Programmlauf = ok!
Aber bei dieser c2l(); hört er einfach auf und macht scheinbar unbeirrt weiter ?!?
[snip]
Verstehe ich wenigstens das hier richtig?
Code:
l|=((DES_LONG)(*((c)++)))<< 8L, \
l = l Oderverknüpft mit dem was beim Cast von dem unsingned char rauskommt und um 8bit geshifted?
Aber was ist das "L"?
Lesezeichen