获取智能卡时间戳时连接异常关闭

本文关键字:异常 连接 智能卡 时间戳 获取 | 更新日期: 2023-09-27 18:07:20

我有一个异常,当我试图从我的智能卡获取时间戳

byte[] ts = tsc.GetTimeStampToken(tsImprint);

调试问题:

底层连接已关闭:连接已关闭意外。

异常堆栈

at System.Net.HttpWebRequest.GetResponse()
   at iTextSharp.text.pdf.security.TSAClientBouncyCastle.GetTSAResponse(Byte[] requestBytes)
   at iTextSharp.text.pdf.security.TSAClientBouncyCastle.GetTimeStampToken(Byte[] imprint)
   at DemoSCFmwk.Program.GetTimestamp(Byte[] signature) in c:'Users'guilherme'Desktop'smartCard Project'smartcardapi_source'Smartcard_API'DemoSCFmwk'Program.cs:line 167
   at DemoSCFmwk.Program.SignMsg(Byte[] msg, X509Certificate2 signerCert, Boolean detached) in c:'Users'guilherme'Desktop'smartCard Project'smartcardapi_source'Smartcard_API'DemoSCFmwk'Program.cs:line 149
   at DemoSCFmwk.Program.SignHashed() in c:'Users'guilherme'Desktop'smartCard Project'smartcardapi_source'Smartcard_API'DemoSCFmwk'Program.cs:line 58
   at DemoSCFmwk.Program.Main() in c:'Users'guilherme'Desktop'smartCard Project'smartcardapi_source'Smartcard_API'DemoSCFmwk'Program.cs:line 202
   at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

完整代码在这里:

public static Asn1EncodableVector GetTimestamp(byte[] signature) {
            SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
            byte[] tsImprint = sha1.ComputeHash(signature);
            ITSAClient tsc = new TSAClientBouncyCastle("http://tsa.net", null, null);
            String ID_TIME_STAMP_TOKEN = "1.2.840.113549.1.9.16.2.14"; // RFC 3161 id-aa-timeStampToken
            byte[] ts = tsc.GetTimeStampToken(tsImprint);
            MemoryStream mem = new MemoryStream(ts);
            Asn1InputStream tempstream = new Asn1InputStream(mem);
            Asn1EncodableVector unauthAttributes = new Asn1EncodableVector();
            Asn1EncodableVector v = new Asn1EncodableVector();
            v.Add(new DerObjectIdentifier(ID_TIME_STAMP_TOKEN)); // id-aa-timeStampToken
            Asn1Sequence seq = (Asn1Sequence) tempstream.ReadObject();
            v.Add(new DerSet(seq));
            unauthAttributes.Add(new DerSequence(v));
            return unauthAttributes;
        }

获取智能卡时间戳时连接异常关闭

我访问了tsa.net,发现它与时间戳权威完全无关。它看起来像是一个专为Adsense设计的页面,上面的广告提到了航空行李法规和运输安全管理局(TSA)。所以回答你的问题:你没有连接到一个真正的时间戳权威。