| /* GENERATED SOURCE. DO NOT MODIFY. */ |
| package com.android.internal.org.bouncycastle.cms; |
| |
| import java.io.IOException; |
| import java.io.OutputStream; |
| import java.util.Iterator; |
| |
| import com.android.internal.org.bouncycastle.asn1.ASN1Encodable; |
| import com.android.internal.org.bouncycastle.asn1.ASN1Encoding; |
| import com.android.internal.org.bouncycastle.asn1.ASN1ObjectIdentifier; |
| import com.android.internal.org.bouncycastle.asn1.ASN1Sequence; |
| |
| /** |
| * @hide This class is not part of the Android public SDK API |
| */ |
| public class PKCS7ProcessableObject |
| implements CMSTypedData |
| { |
| private final ASN1ObjectIdentifier type; |
| private final ASN1Encodable structure; |
| |
| public PKCS7ProcessableObject( |
| ASN1ObjectIdentifier type, |
| ASN1Encodable structure) |
| { |
| this.type = type; |
| this.structure = structure; |
| } |
| |
| public ASN1ObjectIdentifier getContentType() |
| { |
| return type; |
| } |
| |
| public void write(OutputStream cOut) |
| throws IOException, CMSException |
| { |
| if (structure instanceof ASN1Sequence) |
| { |
| ASN1Sequence s = ASN1Sequence.getInstance(structure); |
| |
| for (Iterator it = s.iterator(); it.hasNext();) |
| { |
| ASN1Encodable enc = (ASN1Encodable)it.next(); |
| |
| cOut.write(enc.toASN1Primitive().getEncoded(ASN1Encoding.DER)); |
| } |
| } |
| else |
| { |
| byte[] encoded = structure.toASN1Primitive().getEncoded(ASN1Encoding.DER); |
| int index = 1; |
| |
| while ((encoded[index] & 0xff) > 127) |
| { |
| index++; |
| } |
| |
| index++; |
| |
| cOut.write(encoded, index, encoded.length - index); |
| } |
| } |
| |
| public Object getContent() |
| { |
| return structure; |
| } |
| } |