<?php
/******************************************************
*	about this script.
*	in this php script form of interfaces for SECUOTP 
*	One Time Password authentication system are given.
*	the APIs are inclused in the dynamic library named
*	php_secuotp_srv_phpapi.dll for windows or 
*	php_secuotp_srv_phpapi.so for *nix like system.
*
*	
******************************************************/
/*

 //function: secuotp_initenv		
 //params:	$Confpath	
 //return : 0 -- succeed others -- failed

	function secuotp_initenv($Confpath);


// function: secuotp_cleanup		
// return : 0 -- succeed others -- failed

	function secuotp_cleanup();//clean up




// function: secuotp_getlasterror
// return  : error detail code for latest error

	function secuotp_getlasterror();



// function: secuotp_auth  
//params:	 $Username
//		 $Pwd		
// return :	SECUOTP_ERROR_SUCCESS -- succeed SECUOTP_ERROR_CHALLENGE -- challenge others -- failed

function secuotp_auth($Username, $Pwd, &$Challenge);


// function: secuotp_synchronize  //令牌同步
// params:	 $Username	-- 用户名
//		 			$Otp1		-- 第一个动态口令
//		 				$Otp2		-- 第二个动态口令
// return : 	0 -- succeed others -- failed

 function secuotp_synchronize($Username, $Otp1, $Otp2);




// function: secuotp_setuserpin  	//设置用户PIN码
// params:	 $Username	-- 用户名
//		 $Pin			-- 用户PIN
// return :  	0 -- succeed others -- failed
	function secuotp_setuserpin($Username, $Pin);




// function: secuotp_resetpin		//更新PIN
// params:	 $Username	-- 配置文件路径
//		 $Oldpin		-- 旧PIN
//		 $Newpin		-- 新PIN
// return :  	0 -- succeed others -- failed

	function secuotp_resetpin($Username, $Oldpin, $Newpin);


// function: secuotp_setauthtype		//设置用户认证方式
// params:	 $Username	-- 配置文件路径
//		 				$nAuthtype		-- 设置认证方式 1(OTP only)
//											2(OTP + PIN)
// return : 0 -- succeed others -- failed

	function secuotp_setauthtype($Username, $nAuthtype);


// function: secuotp_adduser  	//添加用户
// params:	 $Username	-- 用户名(max length:20)
// 		 				$Userid		-- 用户id(max length:20)
//		 					$Contacttel   -- 联系电话(max length:20)
//		 				$Serialnum	-- 用户令牌的序列号(max length:20)
//				 $Remark		-- 备注 (max length:260)
//					$Email		-- 用户Email(max length:20)
//		 			$Domain		-- /reserved, always set it NULL/用户域
//		 			$Pin			-- 用户PIN(max length:20)
//					$Preusedate
//		 				$nAuthtype		-- 认证类型(1--otp only 2--otp+pin)
// return :   	0 -- succeed others -- failed

	function secuotp_adduser($Username, $Userid,
 $Contacttel, $Serialnum,
 $Remark, $Email,
 $Domain, $Pin,
 $Preusedate,
 $nAuthtype
);



// function: secuotp_deleteuser  	//删除用户
// params:	 $Username	-- 用户名
// return :  0 -- succeed others -- failed
		function secuotp_deleteuser($Username);



// function: secuotp_setuserinvalid  	//用户挂失
// params:	 $Username	-- 用户名
// 		 		$nValid			-- 挂失标记	 0 - 不可以  1 - 可用 
// return :  0 -- succeed others -- failed

		function secuotp_setuserinvalid($Username, $nValid);


// function: secuotp_setuserlock  	//用户锁定(达到最大尝试次数时锁定)
// params:	 $Username	-- 用户名
// 		 				$nLock			-- 挂失标记	 0 - 不锁定  1 - 锁定 
* return :  0 -- succeed others -- failed

function secuotp_setuserlock($Username, $nLock);



// function: secuotp_tokenimport  	//令牌导入
// params:	 $Tokenfile	-- 令牌文件路径
// 		 			$Secret		-- 解密密钥
// return :  0 -- succeed others -- failed
function secuotp_tokenimport($Tokenfile, $Secret, $invalid_items);



// function: secuotp_userimport  	//用户导入
// params:	 $Userfile 	-- 待导入用户文件
// 		 				$Secret		-- 解密密钥
// return :  0 -- succeed others -- failed
function secuotp_userimport($Userfile, $Secret, $invalid_items);


// function: secuotp_setuserpin  	//令牌移除
// params:	 $Tokenserialnum	-- 待移除令牌序列号
// return :  0 -- succeed others -- failed

function secuotp_tokendelete($Tokenserialnum);



function secuotp_makelog($nLoglev, $pszOperator,  $nOptype,  $pszContent, $pszSrvip);
// params:	 $nLoglev			-- 日志级别
// 		 			$Operator		-- 操作员
//		 				$nOptype			-- 操作类型
//		 			$Content		-- 日志内容
//					$Srvip
// return :  0 -- succeed others -- failed
//Operation type

//function:rebind
//rebind a user and a new token
function secuotp_rebind($Username, $Newtokenserial);

define("AUTH", 1);//user authentication
define("ADD_USER", 11);//add userd
define("DELETE_USER", 12);//delete user
define("TOKEN_SYNCHRONIZE", 13);//token synchronize
define("SET_USER_PIN", 15);	//set user pin
define("SET_USER_AUTHTYPE", 16);//set authentication type
define("SET_USER_INVALID", 17);//set user valid status
define("SET_USER_LOCK", 18);	// set user lock status
define("USER_IMPORT", 23);		//import user
define("TOKEN_IMPORT", 25);		//import token
define("TOKEN_DELETE", 26);		//delete token
/*
function secuotp_makelog($nLoglev, $Operator, $nOptype, $Content, $Srvip);

*/
?>