+
+uint8_t *
+SSLEncodeHandshakeHeader(SSLContext *ctx, SSLRecord *rec, SSLHandshakeType type, size_t msglen)
+{
+ uint8_t *charPtr;
+
+ charPtr = rec->contents.data;
+ *charPtr++ = type;
+ charPtr = SSLEncodeSize(charPtr, msglen, 3);
+
+ if(rec->protocolVersion == DTLS_Version_1_0) {
+ charPtr = SSLEncodeInt(charPtr, ctx->hdskMessageSeq, 2);
+ /* fragmentation -- we encode header as if unfragmented,
+ actual fragmentation happens at lower layer. */
+ charPtr = SSLEncodeInt(charPtr, 0, 3);
+ charPtr = SSLEncodeSize(charPtr, msglen, 3);
+ }
+
+ return charPtr;
+}
+