summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2012-09-23 19:06:00 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2012-09-23 19:07:05 +0200
commit1d8e1b9683b92f9d107593d8aa83fb3f1a185c41 (patch)
tree7a8a67d6c685d36a7da744dd77d33ee5d33f4c76
parentefec91fb5a88680f6e21d06123c7ff6a25fa448c (diff)
downloadgnutls-1d8e1b9683b92f9d107593d8aa83fb3f1a185c41.tar.gz
Corrected bug in PGP subpacket encoding
-rw-r--r--lib/opencdk/new-packet.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/opencdk/new-packet.c b/lib/opencdk/new-packet.c
index 9453476be6..7a7179aff1 100644
--- a/lib/opencdk/new-packet.c
+++ b/lib/opencdk/new-packet.c
@@ -711,8 +711,9 @@ _cdk_subpkt_get_array (cdk_subpkt_t s, int count, size_t * r_nbytes)
buf[n++] = nbytes;
else if (nbytes < 8384)
{
+ nbytes -= 192;
buf[n++] = nbytes / 256 + 192;
- buf[n++] = nbytes % 256;
+ buf[n++] = nbytes & 0xff;
}
else
{
@@ -722,6 +723,7 @@ _cdk_subpkt_get_array (cdk_subpkt_t s, int count, size_t * r_nbytes)
buf[n++] = nbytes >> 8;
buf[n++] = nbytes;
}
+
buf[n++] = list->type;
memcpy (buf + n, list->d, list->size);
n += list->size;