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

/*!
 * \file $RCSfile$
 * \version $Revision: 127051 $
 * \date $Date:: 2015-09-09 15:08:20 +0300#$
 * \author $Author: pav $
 * \brief Функция получения уникального номера карты.
 */

#include "ric_prj.h"

/*!
 * \brief Функция получения уникального номера карты.
 * \param reader [in] контекст считывателя
 * \param card [in] контекст карты
 * \param unique_num [out] уникальный номер карты
 * \return код возврата
 * \retval ERROR_SUCCESS приложение выбрано
 * \retval (DWORD)SCARD_W_UNSUPPORTED_CARD карта вернула неожиданные данные
 * \retval "ошибки считывателя" \ref scard_error
 */
DWORD ric_unique_num( 
    TRICContext *ctx, 
    unsigned char unique_num[UNI_LEN] )
{
    BYTE apdu[] = { 0, 0xCA, 01, 00 };
    DWORD code;
    size_t out_len = UNI_LEN;

    code = send_apdu( ctx, apdu, NULL, 0, unique_num, &out_len );
    if( code )
	return code;
    if( out_len != 4 )
	return (DWORD)SCARD_W_UNSUPPORTED_CARD;
    return ERROR_SUCCESS;
}
/* end of file: $Id: ricuni.c 127051 2015-09-09 12:08:20Z pav $ */
