]>
Commit | Line | Data |
---|---|---|
d5ef2ba9 MT |
1 | diff -up ldns-1.6.17/keys.c.dsa ldns-1.6.17/keys.c |
2 | --- ldns-1.6.17/keys.c.dsa 2014-01-10 22:04:41.000000000 +0100 | |
3 | +++ ldns-1.6.17/keys.c 2014-03-18 17:54:34.751742493 +0100 | |
4 | @@ -1324,7 +1324,6 @@ ldns_key_dsa2bin(unsigned char *data, DS | |
5 | /* See RFC2536 */ | |
6 | *size = (uint16_t)BN_num_bytes(k->p); | |
7 | T = (*size - 64) / 8; | |
8 | - memcpy(data, &T, 1); | |
9 | ||
10 | if (T > 8) { | |
11 | #ifdef STDERR_MSGS | |
12 | @@ -1335,12 +1334,13 @@ ldns_key_dsa2bin(unsigned char *data, DS | |
13 | } | |
14 | ||
15 | /* size = 64 + (T * 8); */ | |
16 | + memset(data, 0, 21 + *size * 3); | |
17 | data[0] = (unsigned char)T; | |
18 | BN_bn2bin(k->q, data + 1 ); /* 20 octects */ | |
19 | BN_bn2bin(k->p, data + 21 ); /* offset octects */ | |
20 | - BN_bn2bin(k->g, data + 21 + *size); /* offset octets */ | |
21 | - BN_bn2bin(k->pub_key, data + 21 + *size + *size); /* offset octets */ | |
22 | - *size = 21 + (*size * 3); | |
23 | + BN_bn2bin(k->g, data + 21 + *size * 2 - BN_num_bytes(k->g)); | |
24 | + BN_bn2bin(k->pub_key,data + 21 + *size * 3 - BN_num_bytes(k->pub_key)); | |
25 | + *size = 21 + *size * 3; | |
26 | return true; | |
27 | } | |
28 |