aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/pg/src/main/java/org/spongycastle/bcpg/sig/SignatureCreationTime.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/pg/src/main/java/org/spongycastle/bcpg/sig/SignatureCreationTime.java')
-rw-r--r--libraries/spongycastle/pg/src/main/java/org/spongycastle/bcpg/sig/SignatureCreationTime.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/libraries/spongycastle/pg/src/main/java/org/spongycastle/bcpg/sig/SignatureCreationTime.java b/libraries/spongycastle/pg/src/main/java/org/spongycastle/bcpg/sig/SignatureCreationTime.java
new file mode 100644
index 000000000..888cb9a9f
--- /dev/null
+++ b/libraries/spongycastle/pg/src/main/java/org/spongycastle/bcpg/sig/SignatureCreationTime.java
@@ -0,0 +1,48 @@
+package org.spongycastle.bcpg.sig;
+
+import java.util.Date;
+
+import org.spongycastle.bcpg.SignatureSubpacket;
+import org.spongycastle.bcpg.SignatureSubpacketTags;
+
+/**
+ * packet giving signature creation time.
+ */
+public class SignatureCreationTime
+ extends SignatureSubpacket
+{
+ protected static byte[] timeToBytes(
+ Date date)
+ {
+ byte[] data = new byte[4];
+ long t = date.getTime() / 1000;
+
+ data[0] = (byte)(t >> 24);
+ data[1] = (byte)(t >> 16);
+ data[2] = (byte)(t >> 8);
+ data[3] = (byte)t;
+
+ return data;
+ }
+
+ public SignatureCreationTime(
+ boolean critical,
+ byte[] data)
+ {
+ super(SignatureSubpacketTags.CREATION_TIME, critical, data);
+ }
+
+ public SignatureCreationTime(
+ boolean critical,
+ Date date)
+ {
+ super(SignatureSubpacketTags.CREATION_TIME, critical, timeToBytes(date));
+ }
+
+ public Date getTime()
+ {
+ long time = ((long)(data[0] & 0xff) << 24) | ((data[1] & 0xff) << 16) | ((data[2] & 0xff) << 8) | (data[3] & 0xff);
+
+ return new Date(time * 1000);
+ }
+}