public final class sun.security.provider.ParameterCache
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.provider.ParameterCache
  super_class: java.lang.Object
{
  private static final java.util.Map<java.lang.Integer, java.security.spec.DSAParameterSpec> dsaCache;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/security/spec/DSAParameterSpec;>;

  private static final java.util.Map<java.lang.Integer, javax.crypto.spec.DHParameterSpec> dhCache;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Integer;Ljavax/crypto/spec/DHParameterSpec;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=27, args_size=0
         0: .line 165
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
         1: .line 166
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic sun.security.provider.ParameterCache.dsaCache:Ljava/util/Map;
         2: .line 186
            new java.math.BigInteger
            dup
            ldc "fca682ce8e12caba26efccf7110e526db078b05edecbcd1eb4a208f3ae1617ae01f35b91a47e6df63413c5e12ed0899bcd132acd50d99151bdc43ee737592e17"
         3: .line 188
            bipush 16
         4: .line 186
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
         5: .line 185
            astore 0 /* p512 */
        start local 0 // java.math.BigInteger p512
         6: .line 191
            new java.math.BigInteger
            dup
            ldc "962eddcc369cba8ebb260ee6b6a126d9346e38c5"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
         7: .line 190
            astore 1 /* q512 */
        start local 1 // java.math.BigInteger q512
         8: .line 194
            new java.math.BigInteger
            dup
            ldc "678471b27a9cf44ee91a49c5147db1a9aaf244f05a434d6486931d2d14271b9e35030b71fd73da179069b32e2935630e1c2062354d0da20a6c416e50be794ca4"
         9: .line 196
            bipush 16
        10: .line 194
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        11: .line 193
            astore 2 /* g512 */
        start local 2 // java.math.BigInteger g512
        12: .line 204
            new java.math.BigInteger
            dup
            ldc "e9e642599d355f37c97ffd3567120b8e25c9cd43e927b3a9670fbec5d890141922d2c3b3ad2480093799869d1e846aab49fab0ad26d2ce6a22219d470bce7d777d4a21fbe9c270b57f607002f3cef8393694cf45ee3688c11a8c56ab127a3daf"
        13: .line 208
            bipush 16
        14: .line 204
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        15: .line 203
            astore 3 /* p768 */
        start local 3 // java.math.BigInteger p768
        16: .line 211
            new java.math.BigInteger
            dup
            ldc "9cdbd84c9f1ac2f38d0f80f42ab952e7338bf511"
        17: .line 212
            bipush 16
        18: .line 211
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        19: .line 210
            astore 4 /* q768 */
        start local 4 // java.math.BigInteger q768
        20: .line 215
            new java.math.BigInteger
            dup
            ldc "30470ad5a005fb14ce2d9dcd87e38bc7d1b1c5facbaecbe95f190aa7a31d23c4dbbcbe06174544401a5b2c020965d8c2bd2171d3668445771f74ba084d2029d83c1c158547f3a9f1a2715be23d51ae4d3e5a1f6a7064f316933a346d3f529252"
        21: .line 219
            bipush 16
        22: .line 215
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        23: .line 214
            astore 5 /* g768 */
        start local 5 // java.math.BigInteger g768
        24: .line 228
            new java.math.BigInteger
            dup
            ldc "fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c7"
        25: .line 234
            bipush 16
        26: .line 228
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        27: .line 227
            astore 6 /* p1024 */
        start local 6 // java.math.BigInteger p1024
        28: .line 237
            new java.math.BigInteger
            dup
            ldc "9760508f15230bccb292b982a2eb840bf0581cf5"
        29: .line 238
            bipush 16
        30: .line 237
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        31: .line 236
            astore 7 /* q1024 */
        start local 7 // java.math.BigInteger q1024
        32: .line 241
            new java.math.BigInteger
            dup
            ldc "f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a"
        33: .line 247
            bipush 16
        34: .line 241
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        35: .line 240
            astore 8 /* g1024 */
        start local 8 // java.math.BigInteger g1024
        36: .line 249
            getstatic sun.security.provider.ParameterCache.dsaCache:Ljava/util/Map;
            sipush 672
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        37: .line 250
            new java.security.spec.DSAParameterSpec
            dup
            aload 0 /* p512 */
            aload 1 /* q512 */
            aload 2 /* g512 */
            invokespecial java.security.spec.DSAParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
        38: .line 249
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        39: .line 251
            getstatic sun.security.provider.ParameterCache.dsaCache:Ljava/util/Map;
            sipush 928
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        40: .line 252
            new java.security.spec.DSAParameterSpec
            dup
            aload 3 /* p768 */
            aload 4 /* q768 */
            aload 5 /* g768 */
            invokespecial java.security.spec.DSAParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
        41: .line 251
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 253
            getstatic sun.security.provider.ParameterCache.dsaCache:Ljava/util/Map;
            sipush 1184
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        43: .line 254
            new java.security.spec.DSAParameterSpec
            dup
            aload 6 /* p1024 */
            aload 7 /* q1024 */
            aload 8 /* g1024 */
            invokespecial java.security.spec.DSAParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
        44: .line 253
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        45: .line 261
            new java.math.BigInteger
            dup
            ldc "8f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667"
        46: .line 273
            bipush 16
        47: .line 261
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        48: .line 260
            astore 9 /* p2048_224 */
        start local 9 // java.math.BigInteger p2048_224
        49: .line 276
            new java.math.BigInteger
            dup
            ldc "baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d"
        50: .line 277
            bipush 16
        51: .line 276
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        52: .line 275
            astore 10 /* q2048_224 */
        start local 10 // java.math.BigInteger q2048_224
        53: .line 280
            new java.math.BigInteger
            dup
            ldc "16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde"
        54: .line 292
            bipush 16
        55: .line 280
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        56: .line 279
            astore 11 /* g2048_224 */
        start local 11 // java.math.BigInteger g2048_224
        57: .line 294
            getstatic sun.security.provider.ParameterCache.dsaCache:Ljava/util/Map;
            sipush 2272
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        58: .line 295
            new java.security.spec.DSAParameterSpec
            dup
            aload 9 /* p2048_224 */
            aload 10 /* q2048_224 */
            aload 11 /* g2048_224 */
            invokespecial java.security.spec.DSAParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
        59: .line 294
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        60: .line 304
            new java.math.BigInteger
            dup
            ldc "95475cf5d93e596c3fcd1d902add02f427f5f3c7210313bb45fb4d5bb2e5fe1cbd678cd4bbdd84c9836be1f31c0777725aeb6c2fc38b85f48076fa76bcd8146cc89a6fb2f706dd719898c2083dc8d896f84062e2c9c94d137b054a8d8096adb8d51952398eeca852a0af12df83e475aa65d4ec0c38a9560d5661186ff98b9fc9eb60eee8b030376b236bc73be3acdbd74fd61c1d2475fa3077b8f080467881ff7e1ca56fee066d79506ade51edbb5443a563927dbc4ba520086746175c8885925ebc64c6147906773496990cb714ec667304e261faee33b3cbdf008e0c3fa90650d97d3909c9275bf4ac86ffcb3d03e6dfc8ada5934242dd6d3bcca2a406cb0b"
        61: .line 316
            bipush 16
        62: .line 304
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        63: .line 303
            astore 12 /* p2048_256 */
        start local 12 // java.math.BigInteger p2048_256
        64: .line 319
            new java.math.BigInteger
            dup
            ldc "f8183668ba5fc5bb06b5981e6d8b795d30b8978d43ca0ec572e37e09939a9773"
        65: .line 320
            bipush 16
        66: .line 319
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        67: .line 318
            astore 13 /* q2048_256 */
        start local 13 // java.math.BigInteger q2048_256
        68: .line 323
            new java.math.BigInteger
            dup
            ldc "42debb9da5b3d88cc956e08787ec3f3a09bba5f48b889a74aaf53174aa0fbe7e3c5b8fcd7a53bef563b0e98560328960a9517f4014d3325fc7962bf1e049370d76d1314a76137e792f3f0db859d095e4a5b932024f079ecf2ef09c797452b0770e1350782ed57ddf794979dcef23cb96f183061965c4ebc93c9c71c56b925955a75f94cccf1449ac43d586d0beee43251b0b2287349d68de0d144403f13e802f4146d882e057af19b6f6275c6676c8fa0e3ca2713a3257fd1b27d0639f695e347d8d1cf9ac819a26ca9b04cb0eb9b7b035988d15bbac65212a55239cfc7e58fae38d7250ab9991ffbc97134025fe8ce04c4399ad96569be91a546f4978693c7a"
        69: .line 335
            bipush 16
        70: .line 323
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        71: .line 322
            astore 14 /* g2048_256 */
        start local 14 // java.math.BigInteger g2048_256
        72: .line 337
            getstatic sun.security.provider.ParameterCache.dsaCache:Ljava/util/Map;
            sipush 2304
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        73: .line 338
            new java.security.spec.DSAParameterSpec
            dup
            aload 12 /* p2048_256 */
            aload 13 /* q2048_256 */
            aload 14 /* g2048_256 */
            invokespecial java.security.spec.DSAParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
        74: .line 337
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        75: .line 347
            new java.math.BigInteger
            dup
        76: .line 348
            ldc "ea9cda9f5fbda66dd830494609405687ab7cf38538e058d1e2f68dea95364866e1c05beacded24227edee28cad80bcecad39913be3b713267b3b96c8d9f0f6a03b5dfc9222d5cfe4afcc9982f33784f760c3b759aebe3bbe9098a6b84c96f1fde44ce11c084c2a082c7a76a0ef142928b4f328406ab9beb24f84577dd0f46ce86fd8f08488269998bf4742d6425f7a0ec75d8660c5dd6f4e3b3d3bee81b2c21afe8c9e8b84b87192e2cc20f961d2bcd8133afcf3675ab80681cb374c78f33e29d1011083d89f9c5728b94676fccb1b57bc60288c15d85ae838ae1941c5a20ae2b2049b3583fe30da455ddb3e6ad9b9955cd9bb5681431622beb0f92da533fcab496cebc447aa1bb5a8039522f2da98ff416289323a64df626ab6881870927dcee387f13b5c9d24d6cba1d82ed375a082506ee87bc7ae30067f4a94e2ee363d992c40f2725b5db4b3525ebde22bbbfd0fa124a588b0f5a4acb3a86951aff09f8c8198fb5b53da0c931cedc598b4f835b779d04d99026c7ba08c4b27f118ac1e3d"
        77: .line 363
            bipush 16
        78: .line 347
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 15 /* p3072_256 */
        start local 15 // java.math.BigInteger p3072_256
        79: .line 365
            new java.math.BigInteger
            dup
        80: .line 366
            ldc "c4eeac2bbab79bd831946d717a56a6e687547aa8e9c5494a5a4b2f4ca13d6c11"
        81: .line 367
            bipush 16
        82: .line 365
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 16 /* q3072_256 */
        start local 16 // java.math.BigInteger q3072_256
        83: .line 369
            new java.math.BigInteger
            dup
        84: .line 370
            ldc "42e5fa7844f8fa9d8998d830d004e7b15b1d276bcbe5f12c35ec90c1a25f5832018a6724bd9cdbe803b675509bed167f3d7cf8599fc865c6d5a0f79158c1bc918f00a944d0ad0f38f520fb91d85d82674d0d5f874faa5fcdfe56cd178c1afdc7ce8795727b7dee966ed0b3c5cedcef8aca628befebf2d105c7aff8eb0da9c9610737dd64dce1237b82c1b2bc8608d55ffda98d7189444e65883315669c05716bde36c78b130aa3df2e4d609914c7c8dc470f4e300187c775f81e7b1a9c0dce405d6eab2cbb9d9c4ef44412ba573dd403c4ed7bc2364772f56a30c48de78f5003f9371c55262d2c8ac2246ade3b02fdcfcf5cbfde74fbcbfe6e0e0fdf3160764f84d311c179a40af679a8f47ab13c8f706893245eb11edcce451fa2ab980019987f125d8dc96622d419ba0d71f16c6024dce9d364c3b26d8ec1a3c828f6c9d14b1d0333b95db77bfdbe3c6bce5337a1a5a7ace10111219448447197e2a344cc423be768bb89e27be6cbd22085614a5a3360be23b1bfbb6e6e6471363d32c85d31"
        85: .line 385
            bipush 16
        86: .line 369
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 17 /* g3072_256 */
        start local 17 // java.math.BigInteger g3072_256
        87: .line 387
            getstatic sun.security.provider.ParameterCache.dsaCache:Ljava/util/Map;
            sipush 3328
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        88: .line 388
            new java.security.spec.DSAParameterSpec
            dup
            aload 15 /* p3072_256 */
            aload 16 /* q3072_256 */
            aload 17 /* g3072_256 */
            invokespecial java.security.spec.DSAParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
        89: .line 387
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        90: .line 395
            getstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
            astore 18 /* dhG */
        start local 18 // java.math.BigInteger dhG
        91: .line 401
            new java.math.BigInteger
            dup
        92: .line 402
            ldc "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF"
        93: .line 405
            bipush 16
        94: .line 401
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 19 /* dhP768 */
        start local 19 // java.math.BigInteger dhP768
        95: .line 408
            new java.math.BigInteger
            dup
        96: .line 409
            ldc "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF"
        97: .line 414
            bipush 16
        98: .line 408
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 20 /* dhP1024 */
        start local 20 // java.math.BigInteger dhP1024
        99: .line 420
            new java.math.BigInteger
            dup
       100: .line 421
            ldc "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF"
       101: .line 428
            bipush 16
       102: .line 420
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 21 /* dhP1536 */
        start local 21 // java.math.BigInteger dhP1536
       103: .line 431
            new java.math.BigInteger
            dup
       104: .line 432
            ldc "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF"
       105: .line 442
            bipush 16
       106: .line 431
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 22 /* dhP2048 */
        start local 22 // java.math.BigInteger dhP2048
       107: .line 445
            new java.math.BigInteger
            dup
       108: .line 446
            ldc "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF"
       109: .line 461
            bipush 16
       110: .line 445
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 23 /* dhP3072 */
        start local 23 // java.math.BigInteger dhP3072
       111: .line 464
            new java.math.BigInteger
            dup
       112: .line 465
            ldc "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF"
       113: .line 486
            bipush 16
       114: .line 464
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 24 /* dhP4096 */
        start local 24 // java.math.BigInteger dhP4096
       115: .line 489
            new java.math.BigInteger
            dup
       116: .line 490
            ldc "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF"
       117: .line 517
            bipush 16
       118: .line 489
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 25 /* dhP6144 */
        start local 25 // java.math.BigInteger dhP6144
       119: .line 520
            new java.math.BigInteger
            dup
       120: .line 521
            ldc "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF"
       121: .line 563
            bipush 16
       122: .line 520
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            astore 26 /* dhP8192 */
        start local 26 // java.math.BigInteger dhP8192
       123: .line 566
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            sipush 512
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new javax.crypto.spec.DHParameterSpec
            dup
            aload 0 /* p512 */
            aload 2 /* g512 */
            invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       124: .line 568
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            sipush 768
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new javax.crypto.spec.DHParameterSpec
            dup
            aload 19 /* dhP768 */
            aload 18 /* dhG */
            invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       125: .line 569
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            sipush 1024
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new javax.crypto.spec.DHParameterSpec
            dup
            aload 20 /* dhP1024 */
            aload 18 /* dhG */
            invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       126: .line 570
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            sipush 1536
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new javax.crypto.spec.DHParameterSpec
            dup
            aload 21 /* dhP1536 */
            aload 18 /* dhG */
            invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       127: .line 571
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            sipush 2048
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new javax.crypto.spec.DHParameterSpec
            dup
            aload 22 /* dhP2048 */
            aload 18 /* dhG */
            invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       128: .line 572
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            sipush 3072
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new javax.crypto.spec.DHParameterSpec
            dup
            aload 23 /* dhP3072 */
            aload 18 /* dhG */
            invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       129: .line 573
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            sipush 4096
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new javax.crypto.spec.DHParameterSpec
            dup
            aload 24 /* dhP4096 */
            aload 18 /* dhG */
            invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       130: .line 574
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            sipush 6144
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new javax.crypto.spec.DHParameterSpec
            dup
            aload 25 /* dhP6144 */
            aload 18 /* dhG */
            invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       131: .line 575
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            sipush 8192
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new javax.crypto.spec.DHParameterSpec
            dup
            aload 26 /* dhP8192 */
            aload 18 /* dhG */
            invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 26 // java.math.BigInteger dhP8192
        end local 25 // java.math.BigInteger dhP6144
        end local 24 // java.math.BigInteger dhP4096
        end local 23 // java.math.BigInteger dhP3072
        end local 22 // java.math.BigInteger dhP2048
        end local 21 // java.math.BigInteger dhP1536
        end local 20 // java.math.BigInteger dhP1024
        end local 19 // java.math.BigInteger dhP768
        end local 18 // java.math.BigInteger dhG
        end local 17 // java.math.BigInteger g3072_256
        end local 16 // java.math.BigInteger q3072_256
        end local 15 // java.math.BigInteger p3072_256
        end local 14 // java.math.BigInteger g2048_256
        end local 13 // java.math.BigInteger q2048_256
        end local 12 // java.math.BigInteger p2048_256
        end local 11 // java.math.BigInteger g2048_224
        end local 10 // java.math.BigInteger q2048_224
        end local 9 // java.math.BigInteger p2048_224
        end local 8 // java.math.BigInteger g1024
        end local 7 // java.math.BigInteger q1024
        end local 6 // java.math.BigInteger p1024
        end local 5 // java.math.BigInteger g768
        end local 4 // java.math.BigInteger q768
        end local 3 // java.math.BigInteger p768
        end local 2 // java.math.BigInteger g512
        end local 1 // java.math.BigInteger q512
        end local 0 // java.math.BigInteger p512
       132: .line 576
            return
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            6  132     0       p512  Ljava/math/BigInteger;
            8  132     1       q512  Ljava/math/BigInteger;
           12  132     2       g512  Ljava/math/BigInteger;
           16  132     3       p768  Ljava/math/BigInteger;
           20  132     4       q768  Ljava/math/BigInteger;
           24  132     5       g768  Ljava/math/BigInteger;
           28  132     6      p1024  Ljava/math/BigInteger;
           32  132     7      q1024  Ljava/math/BigInteger;
           36  132     8      g1024  Ljava/math/BigInteger;
           49  132     9  p2048_224  Ljava/math/BigInteger;
           53  132    10  q2048_224  Ljava/math/BigInteger;
           57  132    11  g2048_224  Ljava/math/BigInteger;
           64  132    12  p2048_256  Ljava/math/BigInteger;
           68  132    13  q2048_256  Ljava/math/BigInteger;
           72  132    14  g2048_256  Ljava/math/BigInteger;
           79  132    15  p3072_256  Ljava/math/BigInteger;
           83  132    16  q3072_256  Ljava/math/BigInteger;
           87  132    17  g3072_256  Ljava/math/BigInteger;
           91  132    18        dhG  Ljava/math/BigInteger;
           95  132    19     dhP768  Ljava/math/BigInteger;
           99  132    20    dhP1024  Ljava/math/BigInteger;
          103  132    21    dhP1536  Ljava/math/BigInteger;
          107  132    22    dhP2048  Ljava/math/BigInteger;
          111  132    23    dhP3072  Ljava/math/BigInteger;
          115  132    24    dhP4096  Ljava/math/BigInteger;
          119  132    25    dhP6144  Ljava/math/BigInteger;
          123  132    26    dhP8192  Ljava/math/BigInteger;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.provider.ParameterCache this
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            return
        end local 0 // sun.security.provider.ParameterCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/provider/ParameterCache;

  public static java.security.spec.DSAParameterSpec getCachedDSAParameterSpec(int, int);
    descriptor: (II)Ljava/security/spec/DSAParameterSpec;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int primeLen
        start local 1 // int subprimeLen
         0: .line 69
            getstatic sun.security.provider.ParameterCache.dsaCache:Ljava/util/Map;
            iload 0 /* primeLen */
            iload 1 /* subprimeLen */
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.spec.DSAParameterSpec
            areturn
        end local 1 // int subprimeLen
        end local 0 // int primeLen
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0     primeLen  I
            0    1     1  subprimeLen  I
    MethodParameters:
             Name  Flags
      primeLen     
      subprimeLen  

  public static javax.crypto.spec.DHParameterSpec getCachedDHParameterSpec(int);
    descriptor: (I)Ljavax/crypto/spec/DHParameterSpec;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int keyLength
         0: .line 77
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            iload 0 /* keyLength */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.crypto.spec.DHParameterSpec
            areturn
        end local 0 // int keyLength
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  keyLength  I
    MethodParameters:
           Name  Flags
      keyLength  

  public static java.security.spec.DSAParameterSpec getDSAParameterSpec(int, java.security.SecureRandom);
    descriptor: (ILjava/security/SecureRandom;)Ljava/security/spec/DSAParameterSpec;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int primeLen
        start local 1 // java.security.SecureRandom random
         0: .line 89
            iload 0 /* primeLen */
            sipush 1024
            if_icmpgt 2
         1: .line 90
            iload 0 /* primeLen */
            sipush 160
            aload 1 /* random */
            invokestatic sun.security.provider.ParameterCache.getDSAParameterSpec:(IILjava/security/SecureRandom;)Ljava/security/spec/DSAParameterSpec;
            areturn
         2: .line 91
      StackMap locals:
      StackMap stack:
            iload 0 /* primeLen */
            sipush 2048
            if_icmpne 4
         3: .line 92
            iload 0 /* primeLen */
            sipush 224
            aload 1 /* random */
            invokestatic sun.security.provider.ParameterCache.getDSAParameterSpec:(IILjava/security/SecureRandom;)Ljava/security/spec/DSAParameterSpec;
            areturn
         4: .line 93
      StackMap locals:
      StackMap stack:
            iload 0 /* primeLen */
            sipush 3072
            if_icmpne 6
         5: .line 94
            iload 0 /* primeLen */
            sipush 256
            aload 1 /* random */
            invokestatic sun.security.provider.ParameterCache.getDSAParameterSpec:(IILjava/security/SecureRandom;)Ljava/security/spec/DSAParameterSpec;
            areturn
         6: .line 96
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.security.SecureRandom random
        end local 0 // int primeLen
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  primeLen  I
            0    7     1    random  Ljava/security/SecureRandom;
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidParameterSpecException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
          Name  Flags
      primeLen  
      random    

  public static java.security.spec.DSAParameterSpec getDSAParameterSpec(int, int, java.security.SecureRandom);
    descriptor: (IILjava/security/SecureRandom;)Ljava/security/spec/DSAParameterSpec;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // int primeLen
        start local 1 // int subprimeLen
        start local 2 // java.security.SecureRandom random
         0: .line 110
            iload 0 /* primeLen */
            iload 1 /* subprimeLen */
            invokestatic sun.security.provider.ParameterCache.getCachedDSAParameterSpec:(II)Ljava/security/spec/DSAParameterSpec;
         1: .line 109
            astore 3 /* spec */
        start local 3 // java.security.spec.DSAParameterSpec spec
         2: .line 111
            aload 3 /* spec */
            ifnull 4
         3: .line 112
            aload 3 /* spec */
            areturn
         4: .line 114
      StackMap locals: java.security.spec.DSAParameterSpec
      StackMap stack:
            iload 0 /* primeLen */
            iload 1 /* subprimeLen */
            aload 2 /* random */
            invokestatic sun.security.provider.ParameterCache.getNewDSAParameterSpec:(IILjava/security/SecureRandom;)Ljava/security/spec/DSAParameterSpec;
            astore 3 /* spec */
         5: .line 115
            getstatic sun.security.provider.ParameterCache.dsaCache:Ljava/util/Map;
            iload 0 /* primeLen */
            iload 1 /* subprimeLen */
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 3 /* spec */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 116
            aload 3 /* spec */
            areturn
        end local 3 // java.security.spec.DSAParameterSpec spec
        end local 2 // java.security.SecureRandom random
        end local 1 // int subprimeLen
        end local 0 // int primeLen
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0     primeLen  I
            0    7     1  subprimeLen  I
            0    7     2       random  Ljava/security/SecureRandom;
            2    7     3         spec  Ljava/security/spec/DSAParameterSpec;
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidParameterSpecException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
             Name  Flags
      primeLen     
      subprimeLen  
      random       

  public static javax.crypto.spec.DHParameterSpec getDHParameterSpec(int, java.security.SecureRandom);
    descriptor: (ILjava/security/SecureRandom;)Ljavax/crypto/spec/DHParameterSpec;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // int keyLength
        start local 1 // java.security.SecureRandom random
         0: .line 126
            iload 0 /* keyLength */
            invokestatic sun.security.provider.ParameterCache.getCachedDHParameterSpec:(I)Ljavax/crypto/spec/DHParameterSpec;
            astore 2 /* spec */
        start local 2 // javax.crypto.spec.DHParameterSpec spec
         1: .line 127
            aload 2 /* spec */
            ifnull 3
         2: .line 128
            aload 2 /* spec */
            areturn
         3: .line 131
      StackMap locals: javax.crypto.spec.DHParameterSpec
      StackMap stack:
            ldc "DH"
            invokestatic java.security.AlgorithmParameterGenerator.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameterGenerator;
         4: .line 130
            astore 3 /* gen */
        start local 3 // java.security.AlgorithmParameterGenerator gen
         5: .line 132
            aload 3 /* gen */
            iload 0 /* keyLength */
            aload 1 /* random */
            invokevirtual java.security.AlgorithmParameterGenerator.init:(ILjava/security/SecureRandom;)V
         6: .line 133
            aload 3 /* gen */
            invokevirtual java.security.AlgorithmParameterGenerator.generateParameters:()Ljava/security/AlgorithmParameters;
            astore 4 /* params */
        start local 4 // java.security.AlgorithmParameters params
         7: .line 134
            aload 4 /* params */
            ldc Ljavax/crypto/spec/DHParameterSpec;
            invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
            checkcast javax.crypto.spec.DHParameterSpec
            astore 2 /* spec */
         8: .line 135
            getstatic sun.security.provider.ParameterCache.dhCache:Ljava/util/Map;
            iload 0 /* keyLength */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 2 /* spec */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 136
            aload 2 /* spec */
            areturn
        end local 4 // java.security.AlgorithmParameters params
        end local 3 // java.security.AlgorithmParameterGenerator gen
        end local 2 // javax.crypto.spec.DHParameterSpec spec
        end local 1 // java.security.SecureRandom random
        end local 0 // int keyLength
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0  keyLength  I
            0   10     1     random  Ljava/security/SecureRandom;
            1   10     2       spec  Ljavax/crypto/spec/DHParameterSpec;
            5   10     3        gen  Ljava/security/AlgorithmParameterGenerator;
            7   10     4     params  Ljava/security/AlgorithmParameters;
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidParameterSpecException
    MethodParameters:
           Name  Flags
      keyLength  
      random     

  public static java.security.spec.DSAParameterSpec getNewDSAParameterSpec(int, int, java.security.SecureRandom);
    descriptor: (IILjava/security/SecureRandom;)Ljava/security/spec/DSAParameterSpec;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // int primeLen
        start local 1 // int subprimeLen
        start local 2 // java.security.SecureRandom random
         0: .line 150
            ldc "DSA"
            invokestatic java.security.AlgorithmParameterGenerator.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameterGenerator;
         1: .line 149
            astore 3 /* gen */
        start local 3 // java.security.AlgorithmParameterGenerator gen
         2: .line 152
            iload 0 /* primeLen */
            sipush 1024
            if_icmpge 5
         3: .line 153
            aload 3 /* gen */
            iload 0 /* primeLen */
            aload 2 /* random */
            invokevirtual java.security.AlgorithmParameterGenerator.init:(ILjava/security/SecureRandom;)V
         4: .line 154
            goto 8
         5: .line 156
      StackMap locals: java.security.AlgorithmParameterGenerator
      StackMap stack:
            new java.security.spec.DSAGenParameterSpec
            dup
            iload 0 /* primeLen */
            iload 1 /* subprimeLen */
            invokespecial java.security.spec.DSAGenParameterSpec.<init>:(II)V
         6: .line 155
            astore 4 /* genParams */
        start local 4 // java.security.spec.DSAGenParameterSpec genParams
         7: .line 157
            aload 3 /* gen */
            aload 4 /* genParams */
            aload 2 /* random */
            invokevirtual java.security.AlgorithmParameterGenerator.init:(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
        end local 4 // java.security.spec.DSAGenParameterSpec genParams
         8: .line 159
      StackMap locals:
      StackMap stack:
            aload 3 /* gen */
            invokevirtual java.security.AlgorithmParameterGenerator.generateParameters:()Ljava/security/AlgorithmParameters;
            astore 4 /* params */
        start local 4 // java.security.AlgorithmParameters params
         9: .line 160
            aload 4 /* params */
            ldc Ljava/security/spec/DSAParameterSpec;
            invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
            checkcast java.security.spec.DSAParameterSpec
            astore 5 /* spec */
        start local 5 // java.security.spec.DSAParameterSpec spec
        10: .line 161
            aload 5 /* spec */
            areturn
        end local 5 // java.security.spec.DSAParameterSpec spec
        end local 4 // java.security.AlgorithmParameters params
        end local 3 // java.security.AlgorithmParameterGenerator gen
        end local 2 // java.security.SecureRandom random
        end local 1 // int subprimeLen
        end local 0 // int primeLen
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0     primeLen  I
            0   11     1  subprimeLen  I
            0   11     2       random  Ljava/security/SecureRandom;
            2   11     3          gen  Ljava/security/AlgorithmParameterGenerator;
            7    8     4    genParams  Ljava/security/spec/DSAGenParameterSpec;
            9   11     4       params  Ljava/security/AlgorithmParameters;
           10   11     5         spec  Ljava/security/spec/DSAParameterSpec;
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidParameterSpecException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
             Name  Flags
      primeLen     
      subprimeLen  
      random       
}
SourceFile: "ParameterCache.java"