public class org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator implements org.bouncycastle.cms.CMSAttributeTableGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator
  super_class: java.lang.Object
{
  private final java.util.Hashtable table;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator this
         0: .line 27
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 29
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator.table:Ljava/util/Hashtable;
         2: .line 30
            return
        end local 0 // org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/cms/DefaultAuthenticatedAttributeTableGenerator;

  public void <init>(org.bouncycastle.asn1.cms.AttributeTable);
    descriptor: (Lorg/bouncycastle/asn1/cms/AttributeTable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator this
        start local 1 // org.bouncycastle.asn1.cms.AttributeTable attributeTable
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 40
            aload 1 /* attributeTable */
            ifnull 4
         2: .line 42
            aload 0 /* this */
            aload 1 /* attributeTable */
            invokevirtual org.bouncycastle.asn1.cms.AttributeTable.toHashtable:()Ljava/util/Hashtable;
            putfield org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator.table:Ljava/util/Hashtable;
         3: .line 43
            goto 5
         4: .line 46
      StackMap locals: org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator org.bouncycastle.asn1.cms.AttributeTable
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator.table:Ljava/util/Hashtable;
         5: .line 48
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bouncycastle.asn1.cms.AttributeTable attributeTable
        end local 0 // org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/bouncycastle/cms/DefaultAuthenticatedAttributeTableGenerator;
            0    6     1  attributeTable  Lorg/bouncycastle/asn1/cms/AttributeTable;
    MethodParameters:
                Name  Flags
      attributeTable  

  protected java.util.Hashtable createStandardAttributeTable(java.util.Map);
    descriptor: (Ljava/util/Map;)Ljava/util/Hashtable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=5, args_size=2
        start local 0 // org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator this
        start local 1 // java.util.Map parameters
         0: .line 63
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 2 /* std */
        start local 2 // java.util.Hashtable std
         1: .line 65
            aload 0 /* this */
            getfield org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator.table:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            astore 3 /* en */
        start local 3 // java.util.Enumeration en
         2: goto 5
         3: .line 67
      StackMap locals: java.util.Hashtable java.util.Enumeration
      StackMap stack:
            aload 3 /* en */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            astore 4 /* key */
        start local 4 // java.lang.Object key
         4: .line 69
            aload 2 /* std */
            aload 4 /* key */
            aload 0 /* this */
            getfield org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator.table:Ljava/util/Hashtable;
            aload 4 /* key */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.Object key
         5: .line 65
      StackMap locals:
      StackMap stack:
            aload 3 /* en */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
        end local 3 // java.util.Enumeration en
         6: .line 72
            aload 2 /* std */
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
            ifne 13
         7: .line 75
            aload 1 /* parameters */
            ldc "contentType"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
         8: .line 74
            invokestatic org.bouncycastle.asn1.ASN1ObjectIdentifier.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            astore 3 /* contentType */
        start local 3 // org.bouncycastle.asn1.ASN1ObjectIdentifier contentType
         9: .line 76
            new org.bouncycastle.asn1.cms.Attribute
            dup
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.contentType:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        10: .line 77
            new org.bouncycastle.asn1.DERSet
            dup
            aload 3 /* contentType */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        11: .line 76
            invokespecial org.bouncycastle.asn1.cms.Attribute.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Set;)V
            astore 4 /* attr */
        start local 4 // org.bouncycastle.asn1.cms.Attribute attr
        12: .line 78
            aload 2 /* std */
            aload 4 /* attr */
            invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 4 /* attr */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // org.bouncycastle.asn1.cms.Attribute attr
        end local 3 // org.bouncycastle.asn1.ASN1ObjectIdentifier contentType
        13: .line 81
      StackMap locals:
      StackMap stack:
            aload 2 /* std */
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.messageDigest:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
            ifne 21
        14: .line 83
            aload 1 /* parameters */
        15: .line 84
            ldc "digest"
        16: .line 83
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* messageDigest */
        start local 3 // byte[] messageDigest
        17: .line 85
            new org.bouncycastle.asn1.cms.Attribute
            dup
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.messageDigest:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        18: .line 86
            new org.bouncycastle.asn1.DERSet
            dup
            new org.bouncycastle.asn1.DEROctetString
            dup
            aload 3 /* messageDigest */
            invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        19: .line 85
            invokespecial org.bouncycastle.asn1.cms.Attribute.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Set;)V
            astore 4 /* attr */
        start local 4 // org.bouncycastle.asn1.cms.Attribute attr
        20: .line 87
            aload 2 /* std */
            aload 4 /* attr */
            invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 4 /* attr */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // org.bouncycastle.asn1.cms.Attribute attr
        end local 3 // byte[] messageDigest
        21: .line 90
      StackMap locals:
      StackMap stack:
            aload 2 /* std */
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.cmsAlgorithmProtect:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual java.util.Hashtable.contains:(Ljava/lang/Object;)Z
            ifne 27
        22: .line 92
            new org.bouncycastle.asn1.cms.Attribute
            dup
            getstatic org.bouncycastle.asn1.cms.CMSAttributes.cmsAlgorithmProtect:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.asn1.DERSet
            dup
            new org.bouncycastle.asn1.cms.CMSAlgorithmProtection
            dup
        23: .line 93
            aload 1 /* parameters */
            ldc "digestAlgID"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.x509.AlgorithmIdentifier
        24: .line 94
            iconst_2
            aload 1 /* parameters */
            ldc "macAlgID"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.x509.AlgorithmIdentifier
            invokespecial org.bouncycastle.asn1.cms.CMSAlgorithmProtection.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;ILorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        25: .line 92
            invokespecial org.bouncycastle.asn1.cms.Attribute.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Set;)V
            astore 3 /* attr */
        start local 3 // org.bouncycastle.asn1.cms.Attribute attr
        26: .line 95
            aload 2 /* std */
            aload 3 /* attr */
            invokevirtual org.bouncycastle.asn1.cms.Attribute.getAttrType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 3 /* attr */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // org.bouncycastle.asn1.cms.Attribute attr
        27: .line 98
      StackMap locals:
      StackMap stack:
            aload 2 /* std */
            areturn
        end local 2 // java.util.Hashtable std
        end local 1 // java.util.Map parameters
        end local 0 // org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   28     0           this  Lorg/bouncycastle/cms/DefaultAuthenticatedAttributeTableGenerator;
            0   28     1     parameters  Ljava/util/Map;
            1   28     2            std  Ljava/util/Hashtable;
            2    6     3             en  Ljava/util/Enumeration;
            4    5     4            key  Ljava/lang/Object;
            9   13     3    contentType  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
           12   13     4           attr  Lorg/bouncycastle/asn1/cms/Attribute;
           17   21     3  messageDigest  [B
           20   21     4           attr  Lorg/bouncycastle/asn1/cms/Attribute;
           26   27     3           attr  Lorg/bouncycastle/asn1/cms/Attribute;
    MethodParameters:
            Name  Flags
      parameters  

  public org.bouncycastle.asn1.cms.AttributeTable getAttributes(java.util.Map);
    descriptor: (Ljava/util/Map;)Lorg/bouncycastle/asn1/cms/AttributeTable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator this
        start local 1 // java.util.Map parameters
         0: .line 107
            new org.bouncycastle.asn1.cms.AttributeTable
            dup
            aload 0 /* this */
            aload 1 /* parameters */
            invokevirtual org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator.createStandardAttributeTable:(Ljava/util/Map;)Ljava/util/Hashtable;
            invokespecial org.bouncycastle.asn1.cms.AttributeTable.<init>:(Ljava/util/Hashtable;)V
            areturn
        end local 1 // java.util.Map parameters
        end local 0 // org.bouncycastle.cms.DefaultAuthenticatedAttributeTableGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/bouncycastle/cms/DefaultAuthenticatedAttributeTableGenerator;
            0    1     1  parameters  Ljava/util/Map;
    MethodParameters:
            Name  Flags
      parameters  
}
SourceFile: "DefaultAuthenticatedAttributeTableGenerator.java"