ГОСТ Р ИСО/МЭК19784-1—2007
• | SubType
• | ExpirationDate Year
• | ExpirationDate Month
• | ExpirationDate Day
• j
SB Format Owner
• | SB Format Type
• | Index
•I
| (1 байт)
j (2
байга)
| (1 байт)
j (1
байт)
| (2 байта)
j (2 байта)
| (16 байтов, необязательно, контролируется
| признаком индекса в поле Туре)
|БлокРиоиопричрсиихданных
I L«iflth
| Data
I
|Елокбааотисности
(4 байта)
{переменная)
(4 байта)
{переменная)
I
I Length
| Data
I
V
uint8_t ’SerializeBirToBuffer(uint8_t "buffer. BioAPI_BIR *bir) {
uint32_t birSize = GetBirSerializedLength(bir);
uint32_t sloredBIRLength = birSize - sizeof(uint32_t);
Г
Длина поля не включает в себя определение V
/* сохраненной длины ЗБИ 7
/*
* Сериализация заголовка в буфер по принципу поле за один раз. Преобразует 16- и 32-битовые
*целочисленные значения в сетевой порядок байтов.
7
buffer = SerializelntToBuffer(buffer. sloredBIRLength);
buffer = SerializeByteToBuffer(buffer. bir->Header.HeaderVersion);
buffer = Seria!izeByteToBuffer{buffer. bir->Header.Type);
buffer = SerializeWordToBuffer{buffer, bir->Header.Format.FormatOwner);
buffer = SerializeWordToBuffer{buffer. bir->Header. Format.FormatType);
buffer = SerializeByteToBufferfbuffer. bir->Header.Ouality);
buffer = SerializeByteTo8uffer(buffer. bir->Header.Purpose);
buffer = SerializelntToBuffer(buffer. bir->Header.FactorsMask):
buffer = SeriaUzeWordToBuffer(buffer. bir->Header.ProductlD.ProductOwner);
buffer = Seh3lizeWordToBuffer{buffer, bir->Header.ProductlD.ProductType);
buffer = SerializeWordToBuffer{buffer. bir->Header.CreationDTG.Date.Year);
buffer = SerializeByleToBuffer{buffer. bir->Header.Creatk>nDTG.Date.Month):
buffer = SeriatizeByteToBuffer{buffer. bir->Header.CreabonDTG.Date.Day):
buffer = SerializeByteToBufferfbuffer. bir->Header.CreationDTG.Time.Hour);
buffer = SenalizeByteToBuffer(buffer. bir->Header.Creat»onDTG.Time.Mmute);
buffer = SerializeByteToBuffer(buffer. bir->Header.CreationDTG.Time.Second);
buffer = SerializeByteToBuffer(buffer. bir->Header.Subtype);
buffer = SerializeWordToBuffer{buffer. bir->Header.ExpirationDate.Ye3r).
buffer = SerializeByteToBuffer(buffer. bir->Header.ExpirationDate.Month);
buffer = SerializeByteToBuffer(buffer. bir->Header.ExpirationDate.Day);
buffer = SerializeWordToBuffer(buffer. bir->Header.SBFormat.SecurityFormatOwner);
buffer = SerializeWordToBuffer(buffer, bir->Header.SBFormat.SecuntyFormatType);
Г
Дополнительно включает индекс V
if (bir->Header.Type & BioAPI_BIR_INDEX_PRESENT) {
buffer = SenalizeByfeArrayToBuffer(buffer.
bir->Header.lndex. sizeof(bir->Header.lndex));
)
/" Сериализует ББД в буфер V
buffer = SerializelntTo8uffer(buffer. bir->8iometncData.Length);
гб-
113