goto err;
}
- if (payload->pk_type == 0) {
+ if (ske->start_payload &&
+ (payload->pk_type < SILC_SKE_PK_TYPE_SILC ||
+ payload->pk_type > SILC_SKE_PK_TYPE_SPKI)) {
status = SILC_SKE_STATUS_BAD_PAYLOAD;
goto err;
}
}
if (tot_len != len2) {
- status = SILC_SKE_STATUS_BAD_PAYLOAD;
+ status = SILC_SKE_STATUS_BAD_PAYLOAD_LENGTH;
goto err;
}