diff options
Diffstat (limited to 'pg/src/main/java/org/spongycastle/bcpg/UserIDPacket.java')
-rw-r--r-- | pg/src/main/java/org/spongycastle/bcpg/UserIDPacket.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/pg/src/main/java/org/spongycastle/bcpg/UserIDPacket.java b/pg/src/main/java/org/spongycastle/bcpg/UserIDPacket.java new file mode 100644 index 00000000..5ddc3e8c --- /dev/null +++ b/pg/src/main/java/org/spongycastle/bcpg/UserIDPacket.java @@ -0,0 +1,65 @@ +package org.spongycastle.bcpg; + +import java.io.IOException; + +import org.spongycastle.util.Arrays; +import org.spongycastle.util.Strings; + +/** + * Basic type for a user ID packet. + */ +public class UserIDPacket + extends ContainedPacket +{ + private byte[] idData; + + public UserIDPacket( + BCPGInputStream in) + throws IOException + { + this.idData = in.readAll(); + } + + public UserIDPacket( + String id) + { + this.idData = Strings.toUTF8ByteArray(id); + } + + public UserIDPacket(byte[] rawID) + { + this.idData = Arrays.clone(rawID); + } + + public String getID() + { + return Strings.fromUTF8ByteArray(idData); + } + + public byte[] getRawID() + { + return Arrays.clone(idData); + } + + public boolean equals(Object o) + { + if (o instanceof UserIDPacket) + { + return Arrays.areEqual(this.idData, ((UserIDPacket)o).idData); + } + + return false; + } + + public int hashCode() + { + return Arrays.hashCode(this.idData); + } + + public void encode( + BCPGOutputStream out) + throws IOException + { + out.writePacket(USER_ID, idData, true); + } +} |