ГОСТ Р ИСО/МЭК19784-1—2007
*/
uint32_t GetBirDataSerializedLength(BioAPI_DATA_PTR data) {
if (NULL == data)
{
return s«zeof(uint32_t): /* Данные->Длина V
)
else {
return sizeof(data->Length) + data->Length;
}
}
I "
• Имя: GetBirSerializedLength
’ Назначение: возвращает число байтов, требуемых для всей информации, хранимой в ЗБИ, в виде
•последовательности байтов.
• Параметры: bir [входной] — указатель на ЗБИ БиоАПИ.
• Возвращаемое значение: число байтов, требуемых для сохранения всей информации, хранимой 8
•ЗБИ. в виде последовательности байгов.
V
uint32_t GetBirSerializedLength(BioAPI_BIR ’bir) {
uint32_t headerSize = GelBirHeaderSerializedLength{&bir->Header);
uint32_t bdbSize = GetBirDataSeriaIizedLength(&bir->BiometricOata);
uint32_t sbSize = GetBirOataSerializedLenglh(&bir->SecurityBlock):
return headerSize + bdbSize + sbSize:
>
I **
• Имя: SerializelntToBuffer
• Назначение: записывает 32-битовое значение в формате сетевого порядка байтов (Big Endian) в
заданный буфер
’ Параметры: buffer [входной] — байтовый буфер, получающий значение
data [входной] — 32-битовое значение, которое должно быть записано в буфер.
• Возвращаемое значение: местоположение буфера непосредственно за записанным значением.
• Комментарии: данная функция автоматически конвертирует формат предоставляемого значения
в сетевой порядок байтов. Значение не должно быть преобразовано в сетевой поря
док байгов перед вызовом данной функции.
7
uint8_t ’SerializelntToBuffer(uint8_t ’ buffer. uint32_t data) {
*buffer++ = (data »
*boffer++ = (data »
*buffer++ = (data »
24) & Qxff:
16) & Oxff:
8) & Oxff;
’ buffer++ = (data ) & Oxff;
return buffer;
)
/ "
’ Имя. ExtractlntFromBuffer
’ Назначение: читает 32-битовое значение в формате сетевого порядка байтов (Big Endian) из
заданного буфера.
’ Параметры: buffer [входной] — байтовый буфер, содержащий значения;
data [выходной] — 32-битовое значение, которое должно быть извлечено из буфера.
’ Возвращаемое значение: местоположение буфера непосредственно за прочитанным значением.
’ Комментарии: данная функция автоматически конвертирует формат предоставляемого значения
в основной порядок байтов из сетевого.
7
u<nt8_t ’ ExtracllntFromBuffer(uint8_t ‘ buffer. u;nt32_t ‘data) {
/ ’ преобразование данных в системный порядок байтов V
’data = (buffer[0] « 24) | (buffer[1] « 16) | (buffer[2] « 8) | buffer[3];
Г
перемещение буфера за прочитанную информацию ’ /
buffer += sizeof(networkData);
return buffer;
110