• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.android.hotspot2.asn1;
2 
3 import java.nio.ByteBuffer;
4 import java.util.Collection;
5 
6 public class Asn1Octets extends Asn1Object {
7     private final byte[] mOctets;
8     private final int mBitResidual;
9 
Asn1Octets(int tag, Asn1Class asn1Class, int length, ByteBuffer data)10     public Asn1Octets(int tag, Asn1Class asn1Class, int length, ByteBuffer data) {
11         super(tag, asn1Class, false, length);
12         mOctets = new byte[length];
13         data.get(mOctets);
14         mBitResidual = -1;
15     }
16 
Asn1Octets(int tag, Asn1Class asn1Class, int length, ByteBuffer data, int bitResidual)17     public Asn1Octets(int tag, Asn1Class asn1Class, int length, ByteBuffer data, int bitResidual) {
18         super(tag, asn1Class, false, length);
19         mOctets = new byte[length - 1];
20         data.get(mOctets);
21         mBitResidual = bitResidual;
22     }
23 
getOctets()24     public byte[] getOctets() {
25         return mOctets;
26     }
27 
28     @Override
getChildren()29     public Collection<Asn1Object> getChildren() {
30         throw new UnsupportedOperationException();
31     }
32 
33     @Override
toString()34     public String toString() {
35         StringBuilder sb = new StringBuilder();
36         for (byte b : mOctets) {
37             sb.append(String.format(" %02x", b & Asn1Decoder.ByteMask));
38         }
39         if (mBitResidual >= 0) {
40             return super.toString() + '=' + sb + '/' + mBitResidual;
41         } else if (getTag() == Asn1Decoder.TAG_NULL && getLength() == 0) {
42             return super.toString();
43         } else {
44             return super.toString() + '=' + sb;
45         }
46     }
47 }
48