diff options
Diffstat (limited to 'pg/src/main/java/org/spongycastle/bcpg/UserAttributePacket.java')
-rw-r--r-- | pg/src/main/java/org/spongycastle/bcpg/UserAttributePacket.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/pg/src/main/java/org/spongycastle/bcpg/UserAttributePacket.java b/pg/src/main/java/org/spongycastle/bcpg/UserAttributePacket.java new file mode 100644 index 00000000..64d3ca08 --- /dev/null +++ b/pg/src/main/java/org/spongycastle/bcpg/UserAttributePacket.java @@ -0,0 +1,60 @@ +package org.spongycastle.bcpg; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.Vector; + +/** + * Basic type for a user attribute packet. + */ +public class UserAttributePacket + extends ContainedPacket +{ + private UserAttributeSubpacket[] subpackets; + + public UserAttributePacket( + BCPGInputStream in) + throws IOException + { + UserAttributeSubpacketInputStream sIn = new UserAttributeSubpacketInputStream(in); + UserAttributeSubpacket sub; + + Vector v= new Vector(); + while ((sub = sIn.readPacket()) != null) + { + v.addElement(sub); + } + + subpackets = new UserAttributeSubpacket[v.size()]; + + for (int i = 0; i != subpackets.length; i++) + { + subpackets[i] = (UserAttributeSubpacket)v.elementAt(i); + } + } + + public UserAttributePacket( + UserAttributeSubpacket[] subpackets) + { + this.subpackets = subpackets; + } + + public UserAttributeSubpacket[] getSubpackets() + { + return subpackets; + } + + public void encode( + BCPGOutputStream out) + throws IOException + { + ByteArrayOutputStream bOut = new ByteArrayOutputStream(); + + for (int i = 0; i != subpackets.length; i++) + { + subpackets[i].encode(bOut); + } + + out.writePacket(USER_ATTRIBUTE, bOut.toByteArray(), false); + } +} |