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

#include "ric_prj.h"

DWORD oscar_register( 
    TSupSysContext *context, 
    TSupSysInfo *info )
{
    TRICContext *ctx;
    TSupSysInfoRegister *inf = (TSupSysInfoRegister*)info;
    SUPSYS_PRE_INFO( info, TSupSysInfoRegister );

    support_set_library(inf->support_module);

    UNUSED( context );
    ctx = calloc(1, sizeof( TRICContext ) );
    if( ctx == NULL )
	return (DWORD)NTE_NO_MEMORY;
    ctx->unique_length = OSCAR_UNIQUE_LENGTH;
    ctx->unique_form = oscar_unique_form;
    ctx->change_pin = oscar_change_pin;
    ctx->block_len_read = OSCAR_BLOCK_READ;
    ctx->block_len_write = OSCAR_BLOCK_WRITE;
    ctx->class_tag = 0xf;
    ctx->application = 0;
    ctx->card_type = CardType_OSCAR;
    inf->context = ctx;
    return ERROR_SUCCESS;
}

DWORD oscar2_register(
    TSupSysContext *context,
    TSupSysInfo *info) {
    TRICContext *ctx;
    TSupSysInfoRegister *inf = (TSupSysInfoRegister*)info;
    SUPSYS_PRE_INFO(info, TSupSysInfoRegister);

    UNUSED(context);
    ctx = calloc(1, sizeof(TRICContext));
    if (ctx == NULL)
	return (DWORD)NTE_NO_MEMORY;
    ctx->unique_length = OSCAR_UNIQUE_LENGTH;
    ctx->unique_form = oscar_unique_form;
    ctx->change_pin = oscar_change_pin;
    ctx->block_len_read = OSCAR_BLOCK_READ;
    ctx->block_len_write = OSCAR_BLOCK_WRITE;
    ctx->class_tag = 0xf;
    ctx->application = 0;
    ctx->card_type = CardType_OSCAR2;

    inf->context = ctx;
    return ERROR_SUCCESS;
}
/* end of file: $Id: osc_reg.c 206532 2020-02-12 11:10:57Z sagafyin $ */
