- goose-sec: update length field before CRC calculation in publisher

v1.6_develop_329_GOOSE_signatures
Michael Zillgith 1 year ago
parent 0a4abf1c6d
commit 5096aaaebc

@ -497,6 +497,9 @@ GoosePublisher_publish(GoosePublisher self, LinkedList dataSet)
int secExtLength = 0; int secExtLength = 0;
self->buffer[lengthIndex] = gooseLength / 256;
self->buffer[lengthIndex + 1] = gooseLength & 0xff;
if (self->l2Security) { if (self->l2Security) {
/* calculate crc */ /* calculate crc */
uint16_t crc = L2Security_calculateCRC16(self->buffer + self->gooseStart, 8); uint16_t crc = L2Security_calculateCRC16(self->buffer + self->gooseStart, 8);
@ -516,9 +519,6 @@ GoosePublisher_publish(GoosePublisher self, LinkedList dataSet)
printf("reserved1: %02x %02x\n", self->buffer[self->gooseStart + 6], self->buffer[self->gooseStart + 7]); printf("reserved1: %02x %02x\n", self->buffer[self->gooseStart + 6], self->buffer[self->gooseStart + 7]);
} }
self->buffer[lengthIndex] = gooseLength / 256;
self->buffer[lengthIndex + 1] = gooseLength & 0xff;
gooseLength += secExtLength; gooseLength += secExtLength;
Ethernet_sendPacket(self->ethernetSocket, self->buffer, self->payloadStart + self->payloadLength + secExtLength); Ethernet_sendPacket(self->ethernetSocket, self->buffer, self->payloadStart + self->payloadLength + secExtLength);

Loading…
Cancel
Save