Support for NULL certificates added

This commit is contained in:
Simon Rozman 2016-06-16 00:24:52 +02:00
parent ec0b283540
commit 6e15d3535d

View File

@ -353,20 +353,28 @@ namespace eapserial
inline void pack(_Inout_ unsigned char *&cursor, _In_ const winstd::cert_context &val) inline void pack(_Inout_ unsigned char *&cursor, _In_ const winstd::cert_context &val)
{ {
*(DWORD*&)cursor = val->dwCertEncodingType; if (val) {
cursor += sizeof(DWORD); *(DWORD*&)cursor = val->dwCertEncodingType;
cursor += sizeof(DWORD);
*(DWORD*&)cursor = val->cbCertEncoded; *(DWORD*&)cursor = val->cbCertEncoded;
cursor += sizeof(DWORD); cursor += sizeof(DWORD);
memcpy(cursor, val->pbCertEncoded, val->cbCertEncoded); memcpy(cursor, val->pbCertEncoded, val->cbCertEncoded);
cursor += val->cbCertEncoded; cursor += val->cbCertEncoded;
} else {
*(DWORD*&)cursor = 0;
cursor += sizeof(DWORD);
*(DWORD*&)cursor = 0;
cursor += sizeof(DWORD);
}
} }
inline size_t get_pk_size(const winstd::cert_context &val) inline size_t get_pk_size(const winstd::cert_context &val)
{ {
return sizeof(DWORD) + sizeof(DWORD) + val->cbCertEncoded; return sizeof(DWORD) + sizeof(DWORD) + (val ? val->cbCertEncoded : 0);
} }
@ -378,7 +386,10 @@ namespace eapserial
DWORD dwCertEncodedSize = *(DWORD*&)cursor; DWORD dwCertEncodedSize = *(DWORD*&)cursor;
cursor += sizeof(DWORD); cursor += sizeof(DWORD);
val.create(dwCertEncodingType, (BYTE*)cursor, dwCertEncodedSize); if (dwCertEncodedSize) {
cursor += dwCertEncodedSize; val.create(dwCertEncodingType, (BYTE*)cursor, dwCertEncodedSize);
cursor += dwCertEncodedSize;
} else
val.free();
} }
} }