ГОСТ Р ИСО/МЭК19784-1—2007
Г
Дополнительно извлекает индекс.
7
if (resultBir->Header.Type & BioAPI_BIR_INDEX_PRESENT) {
buffer = ExtractByteArrayFromBuffer(buffer.
resultBir->Header.tndex, sizeof(resultBir->Header.Index));
)
else {
nTemset(resultBir->Header.lndex. 0, sizeof(resultBir->Header.lndex>);
)
Г
Извлекает длину ББД 7
buffer = ExtractlntFromBuffer(buffer, &resuItBir->BiometricData.Length),
Г
Распределяет данные ББД 7
resultBir->Bk>metricData.Data = m alloc{resultBir-> BiometricOata.Length),
if (NULL == resultBir->BiometncData.Data) {
free(resultBir);
*bir = NULL;
return onginalBuffer;
)
/’ Извлекает данные ББД 7
buffer = ExtractByteArrayFromBuffer(buffer.
(uint8_t *)resuttBir->BiometricData.Data.
resultBir->Biom etricData.Length);
/’ Извлекает длину SB 7
buffer = ExtractlntFromBuffer(buffer, &resultBir->SecurityBlock.Length);
if (resultBir->SecuntyB»ock.Length > 0) {
Г
Распределяет данные SB 7
resultBir->SecurityBlock.Data =
nralloc(resultBir->Securityeiock.Length):
if (NULL == resultBir->SecurityBlock.Data) {
free(resultBir->Biom etricData.Data);
free(resultBir);
•bir = NULL;
return originalBuffer.
}
Г
Извлекает данные SB 7
buffer = ExtractByteArrayFromBuffer(buffer.
(uint8_t *) resultBir->SecurityBtock.Data.
resultBir->SecurityBtock.Length);
)
else {
Г
Пустой блок безопасности 7
resultBir->SecurityBlock.Data = NULL;
}
1‘
Возвращает извлеченную ЗБИ 7
’b ir = resultBir;
return buffer;
>
/*•
* Имя; FreeExtractedBir
* Назначение: освобождает память, выделенную функцией E xtra d B irfromBuffer
* Параметры; BIR [входной] — указатель на данные ЗБИ. которые должны быть освобождены.
* Возвращаемое значение; нет.
7
v o k
J
FreeExtractedBir(B*oAPI_BIR *bir)
{
if (NULL != bir) {
if (NULL != bir->SecurityBtock.Data) {
free(bir->SecurityBlock .Data);
b«r->SecurityBlock.Data = NULL;
)
if (NULL != bir->BiometricData.Data) {
free(bir->BiometricData.Data);
b*r->BiometricData.Data = NULL;
)
115