<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2>Hi,</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial size=2>I'm using a 
ReinerSct Card Reader to sign my files. This Card reader use PinCaching. 
</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial size=2>This means if I want 
to sign 3 files I only need to&nbsp;type in the PinCount and the PIN one time on 
the CardReader.</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial size=2>do 
</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2>{</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2>&nbsp;if(xmlSecDSigCtxInitialize(&amp;dsigCtx, gKeysMngr) &lt; 0) 
<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr, "Error: dsig 
context initialization 
failed\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;return(-1);<BR>&nbsp;&nbsp;&nbsp;}</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2>&nbsp;&nbsp;&nbsp;if(xmlSecAppPrepareDSigCtx(&amp;dsigCtx) &lt; 0) 
<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr, "Error: dsig 
context preparation failed\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;goto 
done;<BR>&nbsp;&nbsp;&nbsp;}</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* parse template and select start node 
*/<BR>&nbsp;&nbsp;&nbsp;data = xmlSecAppXmlDataCreate(filename, 
xmlSecNodeSignature, xmlSecDSigNs);<BR>&nbsp;&nbsp;&nbsp;if(data == NULL) 
<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr, "Error: 
failed to load template \"%s\"\n", filename);<BR>&nbsp;&nbsp;&nbsp;&nbsp;goto 
done;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* sign 
*/<BR>&nbsp;&nbsp;&nbsp;start_time = 
clock();<BR>&nbsp;&nbsp;&nbsp;if(xmlSecDSigCtxSign(&amp;dsigCtx, 
data-&gt;startNode) &lt; 0) 
<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr,"Error: 
signature failed \n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;goto 
done;<BR>&nbsp;&nbsp;&nbsp;}</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2>...</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2>...</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2>}</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial size=2>But every time when 
I call xmlSecDSigCtxSign I have to tell the Pin again to the card 
reader.</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial size=2>I think this is 
because xmlSecDSigCtxSign Opens the MsCrypto Sign the file and close MsCrypto 
again.</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial size=2>Does anyone have 
some ideas?</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=760142513-09102006><FONT face=Arial 
size=2>Thanks</FONT></SPAN></DIV>
<DIV><SPAN class=760142513-09102006></SPAN>&nbsp;</DIV></BODY></HTML>