Java 利用org.bouncycastle.tsp 模組,進行Time Stamp 時戳註記

給一個 byte[] byteReq 想要加入時戳註記的資料後,回傳一個時戳

String urlstring = “http://127.0.0.1/TSS/HttpTspServer";
byte[] replyBytes = null;
Security.addProvider (new org.bouncycastle.jce.provider.BouncyCastleProvider());
TimeStampRequestGenerator timeStampRequestGenerator = new TimeStampRequestGenerator();
timeStampRequestGenerator.setCertReq(true);

MessageDigest dig = MessageDigest.getInstance(TSPAlgorithms.SHA1, “BC");
dig.update(byteReq);
byte[] digest = dig.digest();
TimeStampRequest timeStampRequest = timeStampRequestGenerator.generate(TSPAlgorithms.SHA1, digest);
byte[] requestBytes = timeStampRequest.getEncoded();

URL url = new URL (urlstring);
URLConnection urlConn = url.openConnection();

urlConn.setDoInput (true);
urlConn.setDoOutput (true);
urlConn.setUseCaches (false);
urlConn.setRequestProperty(“Content-Type", “application/timestamp-query");
urlConn.setRequestProperty(“Content-Length",String.valueOf(requestBytes.length) );
// Send POST output.
DataOutputStream printout = new DataOutputStream (urlConn.getOutputStream ());
printout.write(requestBytes);
// printout.flush ();
printout.close ();
// Get response data.
DataInputStream input = new DataInputStream (urlConn.getInputStream ());
while(input.available() == 0){
Thread.sleep(100);
}
byte[] ba = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
do{
if(ba != null){
baos.write(ba);
}
ba = new byte[input.available()];

}while(input.read(ba) != -1);

replyBytes = baos.toByteArray();
baos.close();

return replyBytes;

廣告

About fenjj

Perfect !!??...
本篇發表於 Uncategorized。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s