/*
 * Copyright(C) 2000 Проект ИОК
 *
 * Этот файл содержит информацию, являющуюся
 * собственностью компании Крипто Про.
 *
 * Любая часть этого файла не может быть скопирована,
 * исправлена, переведена на другие языки,
 * локализована или модифицирована любым способом,
 * откомпилирована, передана по сети с или на
 * любую компьютерную систему без предварительного
 * заключения соглашения с компанией Крипто Про.
 */

#include "ric_prj.h"

/* Функция получения уникального номера. */
    // TODO: отличается от ric_unique_get только одной строкой
DWORD trust_unique_get(
    TSupSysContext *context, 
    TSupSysInfo *info )
{
    TSupSysInfoText *inf = (TSupSysInfoText*)info;
    TRICContext *ctx = (TRICContext*)context;
    TCHAR *buffer;
    TCHAR full[MAX_UNIQUE_LENGTH + 1];
    DWORD code;
    unsigned char unique_num[4];

    SUPSYS_PRE_CONTEXT( context, TRICContext );
    SUPSYS_PRE_INFO( info, TSupSysInfoText );

    if( inf->text == NULL || inf->length == 0 )
    {
	inf->length = ctx->unique_length;
	return ERROR_SUCCESS;
    }
    buffer = inf->text;
    code = trust_unique_num( ctx, unique_num );
    if( code )
	return code;
    ctx->unique_form( unique_num, full );
    _tcsncpy( buffer, full, inf->length );
    buffer[inf->length] = 0;
    inf->length = ctx->unique_length;
    return ERROR_SUCCESS;
}
/* end of file: $Id: mag_unig.c 125218 2015-08-05 09:34:11Z dim $ */
