/*******************************************************************************
版权所有：	
文件名称：	sc1161y.h
文件版本：	01.01
创建作者:	sunxi
创建日期：	2016-10-23
功能说明：	sc1161y加密芯片驱动程序。
其它说明：
注意事项:
修改记录:
*/


#ifndef __SC1161Y_H__
#define __SC1161Y_H__

extern u16 g_esam_errno;

int esam_get_version(u8* out, u16 out_len);
int esam_get_sn(u8* out, u16 out_len);
int esam_get_random(u8* out, u16 out_len);

int esam_sign_random(u8 *in,u16 in_len, u8* out, u16 out_len);
int esam_sign_verify_zz(u8 key,u8 *in,u16 in_len);
int esam_sign_verify_yk(u8 key,u8 *in,u16 in_len);

int esam_encrypt(u8 *in,u16 in_len,u8 *out,u16 out_len);
int esam_decrypt(u8 *in,u16 in_len,u8 *out,u16 out_len);

int esam_key_update(u8 key,u8 *in,u16 in_len);

int esam_cer_zz_update( u8 cer,u8 *in,u16 in_len);
int esam_cer_zd_update(u8 *in,u16 in_len);
int esam_cer_zd_get(u8 *out,u16 out_len);
int esam_cer_zd_test_get_len(u8 *out,u16 out_len);
int esam_cer_zd_test_get(u16 cer_len,u8 *out,u16 out_len);

int esam_yw_cer_verify(u8 *in,u16 in_len);
int esam_yw_sign(u8 *in,u16 in_len,u8 *out,u16 out_len);
int esam_yw_sign_verify(u8 *in,u16 in_len);
int esam_yw_get_pubkey(u8 *out,u16 out_len);
int esam_yw_encrypt(u8 *in,u16 in_len,u8 *out,u16 out_len);
int esam_yw_decrypt(u8 *in,u16 in_len,u8 *out,u16 out_len);
int esam_yw_key_restore(u8 *in,u16 in_len);

int esam_init(void);
int esam_exit(void);

int esam_info_printf(void);


#endif

