<%@ Page Language="VB" EnableSessionState=true %>

<%
'here we  generate a random number
	Dim RndData
	Dim I, Upper, Lower

	'Create some random data for HASH compute.
	Randomize
	RndData = ""
	Upper = Asc("z")
	Lower = Asc("a")
	For I = 0 to 19
		RndData = RndData + Chr(Int((Upper - Lower)*Rnd + Lower))
	NEXT

	Session("Message") = RndData
%>

<HTML>
<HEAD>
<TITLE>Logon - ePass 1000 SDK Test [ASP.NET]</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<STYLE TYPE="text/css">
<!--
@import "test.css";
-->
</STYLE>
<script language=VBScript>
Dim FirstDigest
Dim Digest 
Digest= "01234567890123456"

dim bErr

sub ShowErr(Msg)
	bErr = true
	MsgBox Msg
'	Document.Writeln "<FONT COLOR='#FF0000'>"
'	Document.Writeln "<P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P ALIGN='CENTER'><B>ERROR:</B>"
'	Document.Writeln "<P>&nbsp;</P><P ALIGN='CENTER'>"
'	Document.Writeln Msg
'	Document.Writeln " failed, and returns 0x" & hex(Err.number) & ".<br>"
'	Document.Writeln "<P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P>"
'	Document.Writeln "</FONT>"
End Sub

function Validate()
	Digest = "01234567890123456"
	On Error Resume Next
	Dim TheForm
	Set TheForm = Document.forms("ValidForm")
	If Len(TheForm.UserPIN.Value) < 4  Then
		MsgBox "PIN empty or user pin length less than 4 or so pin length less than 6!!"	 
		Validate = FALSE
		Exit Function
	End If

	bErr = false

	'Let detecte whether the ePass 1000 Safe Active Control loaded.
	'If we call any method and the Err.number be set to &H1B6, it 
	'means the ePass 1000 Safe Active Control had not be loaded.
	ePass.GetLibVersion


	If Err.number = &H1B6 Then

		ShowErr "Load ePass 1000 Safe Active Control"
		Validate = false
		Exit function
	Else
	

		ePass.OpenDevice 1, ""
		
		If Err then
			ShowErr "Open first ePass failed."
			Validate = false
			ePass.CloseDevice
			Exit function
		End if
	
		'ePass.ResetSecurityState 0
		dim results
		results = "01234567890123456"
		results = ePass.GetStrProperty(7, 0, 0)
		'MsgBox results

		'ePass.VerifyUserPIN TheForm.Identity.Value, TheForm.UserPIN.Value
		ePass.VerifyPIN 0, TheForm.UserPIN.Value

		If Err Then
			ShowErr "Verify User PIN Failure!!!"
			Validate = false
			ePass.CloseDevice
			Exit function
		End If
		

		If Not bErr Then
			ePass.ChangeDir &H300, 0, "ASP_DEMO"
			If Err then 
				ShowErr "Change to demo directory"
				Validate = false
				ePass.CloseDevice
				Exit function
			End If
		End If


		'Open the first key file.
		If Not bErr Then
			ePass.OpenFile 0, 1
			If Err Then
				ShowErr "Open first KEY-file"
				Validate = false
				ePass.CloseDevice
				Exit function
			End If
		
		End If

		'Do HASH-MD5-HMAC compute.
		If Not bErr Then
			Digest = ePass.HashToken (1, 2,"<%=Session("Message")%>")
			If Err Then 
				ShowErr "HashToken compute"
				Validate = false
				ePass.CloseDevice
				Exit function
			End If
			DigestID.innerHTML = "<input type='hidden' name='Digest' Value='" & Digest & "'>"
			snID.innerHTML = "<input type='hidden' name='SN_SERAL' Value='" & results & "'>"
		End If
	
	
	End If

	ePass.CloseDevice
	
End function
</script>

</HEAD>
<BODY>
                     
<OBJECT classid=clsid:E740C5DF-3454-46A7-80EC-364D1ADB6CF0 id=ePass name = ePass STYLE="LEFT: 0px; TOP: 0px" width=0 height=0></OBJECT>

<H1 ALIGN="center">ePass 1000 Active Control<BR>Demo Program for ASP.NET</H1>
<TABLE WIDTH="600" BORDER="0" ALIGN="center">
  <TR>
    <TD>
      <P ALIGN="CENTER">Welcome to ePass 1000 Active Control demonstration program for ASP.NET.</P>


<SCRIPT id=clientEventHandlersVBS language=vbscript>
<!--
		'Now you had get the result of HASH compute and the random data
		' use to HASH compute. You should post these data to server and
		' do verify operation.
		Document.Writeln "<P>&nbsp;</P><P ALIGN='CENTER'>To logon, you must input your PIN.</P>"
		Document.Writeln "<P>&nbsp;</P><P>&nbsp;</P></TD></TR><TR><TD>"
		Document.Writeln "<FORM id=ValidForm METHOD='post' ACTION='verify.aspx' onsubmit='return Validate();' language='jscript'>"

		'Post the result of HASH compute by ePass can use by server.

		Document.Writeln "<span id=DigestID></span>"
		Document.Writeln "<span id=snID></span>"

		'Create a table and let user input the user name and password.
		Document.Writeln "<TABLE WIDTH='250' BORDER='1' ALIGN='center' CELLSPACING='0' BORDERCOLORDARK='#E7EBFF' BORDERCOLORLIGHT='#000000'>"
		'Document.Writeln "<TR><TD ALIGN='right'>Identity:</TD><TD>"
		'Document.Writeln "<select name='Identity'>"
		'Document.Writeln "<option  value='0'>User PIN</option>"
		'Document.Writeln "<option value='1'>So PIN</option>"
		'Document.Writeln "</select>"
		Document.Writeln "</TD></TR>"
		
		Document.Writeln "<TR><TD ALIGN='right'>User PIN:</TD><TD><INPUT TYPE='password' NAME='UserPIN' CLASS='inputtext'></TD></TR>"


		Document.Writeln "</TABLE><P>&nbsp;</P><P ALIGN='center'>"
		Document.Writeln "<INPUT TYPE='submit' NAME='Submit' VALUE='Let me in' CLASS='inputbtn'>"
		Document.Writeln "<INPUT TYPE='reset' NAME='Reset' VALUE='Re-input' CLASS='inputbtn'></P></FORM>"
-->
</SCRIPT>

	</TD>
  </TR>
</TABLE>
<H2>&nbsp;</H2>
<P>&nbsp;</P>
<P ALIGN="center">Create by Zhu Yangsheng , 05-27-2003</P>
<P ALIGN="center">Copyright&copy; 2000-2001,Feitian Tech. Co. Ltd.</P>
</BODY>
</HTML>











