- fixed problem encoding OID with arc values 0

pull/228/head
Michael Zillgith 5 years ago
parent d798814fb4
commit 97e65d5743

@ -436,27 +436,33 @@ BerEncoder_encodeOIDToBuffer(const char* oidString, uint8_t* buffer, int maxBufL
int requiredBytes = 0;
int val2 = val;
while (val2 > 0) {
requiredBytes++;
val2 = val2 >> 7;
if (val == 0) {
buffer[encodedBytes++] = 0;
}
else {
int val2 = val;
while (val2 > 0) {
requiredBytes++;
val2 = val2 >> 7;
}
while (requiredBytes > 0) {
val2 = val >> (7 * (requiredBytes - 1));
while (requiredBytes > 0) {
val2 = val >> (7 * (requiredBytes - 1));
val2 = val2 & 0x7f;
val2 = val2 & 0x7f;
if (requiredBytes > 1)
val2 += 128;
if (requiredBytes > 1)
val2 += 128;
if (encodedBytes == maxBufLen)
return 0;
if (encodedBytes == maxBufLen)
return 0;
buffer[encodedBytes++] = (uint8_t) val2;
buffer[encodedBytes++] = (uint8_t) val2;
requiredBytes--;
requiredBytes--;
}
}
}
return encodedBytes;

Loading…
Cancel
Save