Trying to request a timestamp (RFC 3161) using a BouncyCastle and connecting to http://timestamping.edelweb.fr/service/tsp . I get a TimestampResponse back from the server, but it seems to have no actual date.
This is the code:
public static void main(String[] args) {
String ocspUrl = "http://timestamping.edelweb.fr/service/tsp";
byte[] digest = "hello".getBytes();
OutputStream out = null;
try {
TimeStampRequestGenerator reqgen = new TimeStampRequestGenerator();
TimeStampRequest req = reqgen.generate(TSPAlgorithms.SHA1, digest);
byte request[] = req.getEncoded();
URL url = new URL(ocspUrl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Content-type", "application/timestamp-query");
con.setRequestProperty("Content-length", String.valueOf(request.length));
out = con.getOutputStream();
out.write(request);
out.flush();
if (con.getResponseCode() != HttpURLConnection.HTTP_OK) {
throw new IOException("Received HTTP error: " + con.getResponseCode() + " - " + con.getResponseMessage());
}
InputStream in = con.getInputStream();
TimeStampResp resp = TimeStampResp.getInstance(new ASN1InputStream(in).readObject());
TimeStampResponse response = new TimeStampResponse(resp);
response.validate(req);
System.out.println(response.getTimeStampToken().getTimeStampInfo().getGenTime());
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
Here is the question (s): Has anyone used the Bouncycastle library for timestamps and found out about different status codes and what they mean? Or just in general, why this usually doesn't work.
This line, where I expect to see the date, just throws NullPointer:
System.out.println(response.getTimeStampToken().getTimeStampInfo().getGenTime());
Does anyone know of any other RFC 3161 compatible timestamp servers that are free?
, bouncycastle, . : , , tsp.