1e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrompackage org.bouncycastle.cms; 2e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 3e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport java.io.ByteArrayInputStream; 4e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport java.io.IOException; 5e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport java.io.InputStream; 6e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport java.io.OutputStream; 7e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 8e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.ASN1ObjectIdentifier; 9e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.cms.CMSObjectIdentifiers; 1070c8287138e69a98c2f950036f9f703ee37228c8Brian Carlstromimport org.bouncycastle.util.Arrays; 11e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 12e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom/** 13e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * a holding class for a byte array of data to be processed. 14e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom */ 15e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrompublic class CMSProcessableByteArray 16e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom implements CMSTypedData, CMSReadable 17e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom{ 18e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom private final ASN1ObjectIdentifier type; 19e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom private final byte[] bytes; 20e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 21e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public CMSProcessableByteArray( 22e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom byte[] bytes) 23e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 24e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this(new ASN1ObjectIdentifier(CMSObjectIdentifiers.data.getId()), bytes); 25e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 26e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 27e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public CMSProcessableByteArray( 28e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom ASN1ObjectIdentifier type, 29e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom byte[] bytes) 30e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 31e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.type = type; 32e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.bytes = bytes; 33e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 34e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 35e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public InputStream getInputStream() 36e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 37e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return new ByteArrayInputStream(bytes); 38e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 39e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 40e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public void write(OutputStream zOut) 41e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom throws IOException, CMSException 42e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 43e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom zOut.write(bytes); 44e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 45e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 46e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public Object getContent() 47e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 4870c8287138e69a98c2f950036f9f703ee37228c8Brian Carlstrom return Arrays.clone(bytes); 49e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 50e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 51e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public ASN1ObjectIdentifier getContentType() 52e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 53e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return type; 54e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 55e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom} 56