{
gnutls_datum_t pwd_psk = { NULL, 0 };
size_t dh_secret_size;
+ uint8_t * p;
int ret;
if (dh_secret == NULL)
* (uint16_t) psk_size
* the psk
*/
- _gnutls_write_uint16 (dh_secret_size, session->key->key.data);
+ p = session->key->key.data;
+ _gnutls_write_uint16 (dh_secret_size, p);
+ p+=2;
if (dh_secret == NULL)
- memset (&session->key->key.data[2], 0, dh_secret_size);
+ memset (p, 0, dh_secret_size);
else
- memcpy (&session->key->key.data[2], dh_secret->data, dh_secret->size);
- _gnutls_write_datum16 (&session->key->key.data[dh_secret_size + 2], *ppsk);
+ memcpy (p, dh_secret->data, dh_secret->size);
+
+ p += dh_secret_size;
+ _gnutls_write_uint16 (ppsk->size, p);
+ if (ppsk->data != NULL)
+ memcpy (p+2, ppsk->data, ppsk->size);
ret = 0;
#include <gnutls_datum.h>
#include <gnutls_errors.h>
-
-void
-_gnutls_write_datum16 (uint8_t * dest, gnutls_datum_t dat)
-{
- _gnutls_write_uint16 (dat.size, dest);
- if (dat.data != NULL)
- memcpy (&dest[2], dat.data, dat.size);
-}
-
-void
-_gnutls_write_datum24 (uint8_t * dest, gnutls_datum_t dat)
-{
- _gnutls_write_uint24 (dat.size, dest);
- if (dat.data != NULL)
- memcpy (&dest[3], dat.data, dat.size);
-}
-
-void
-_gnutls_write_datum32 (uint8_t * dest, gnutls_datum_t dat)
-{
- _gnutls_write_uint32 (dat.size, dest);
- if (dat.data != NULL)
- memcpy (&dest[4], dat.data, dat.size);
-}
-
-void
-_gnutls_write_datum8 (uint8_t * dest, gnutls_datum_t dat)
-{
- dest[0] = (uint8_t) dat.size;
- if (dat.data != NULL)
- memcpy (&dest[1], dat.data, dat.size);
-}
-
-
int
_gnutls_set_datum (gnutls_datum_t * dat, const void *data,
size_t data_size)
#ifndef GNUTLS_DATUM_H
#define GNUTLS_DATUM_H
-void _gnutls_write_datum16 (uint8_t * dest, gnutls_datum_t dat);
-void _gnutls_write_datum24 (uint8_t * dest, gnutls_datum_t dat);
-void _gnutls_write_datum32 (uint8_t * dest, gnutls_datum_t dat);
-void _gnutls_write_datum8 (uint8_t * dest, gnutls_datum_t dat);
-
int _gnutls_set_datum (gnutls_datum_t * dat, const void *data,
size_t data_size);
gnutls_datum_t tmp;
int ret;
size_t newsize;
- unsigned char *newdata;
+ unsigned char *newdata, *p;
unsigned i;
/* Add DN of the last added CAs to the RDN sequence
return GNUTLS_E_MEMORY_ERROR;
}
- _gnutls_write_datum16 (newdata + res->x509_rdn_sequence.size, tmp);
+ p = newdata + res->x509_rdn_sequence.size;
+ _gnutls_write_uint16 (tmp.size, p);
+ if (tmp.data != NULL)
+ memcpy (p+2, tmp.data, tmp.size);
+
_gnutls_free_datum (&tmp);
res->x509_rdn_sequence.size = newsize;