public class sun.security.ec.ed.EdDSASignature extends java.security.SignatureSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.ec.ed.EdDSASignature
  super_class: java.security.SignatureSpi
{
  private byte[] privateKey;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ec.point.AffinePoint publicKeyPoint;
    descriptor: Lsun/security/ec/point/AffinePoint;
    flags: (0x0002) ACC_PRIVATE

  private byte[] publicKeyBytes;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ec.ed.EdDSAOperations ops;
    descriptor: Lsun/security/ec/ed/EdDSAOperations;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ec.ed.EdDSAParameters lockedParams;
    descriptor: Lsun/security/ec/ed/EdDSAParameters;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.ec.ed.EdDSASignature$MessageAccumulator message;
    descriptor: Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
    flags: (0x0002) ACC_PRIVATE

  private java.security.spec.EdDSAParameterSpec sigParams;
    descriptor: Ljava/security/spec/EdDSAParameterSpec;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ec.ed.EdDSASignature this
         0: .line 103
            aload 0 /* this */
            invokespecial java.security.SignatureSpi.<init>:()V
         1: .line 99
            aload 0 /* this */
            aconst_null
            putfield sun.security.ec.ed.EdDSASignature.lockedParams:Lsun/security/ec/ed/EdDSAParameters;
         2: .line 100
            aload 0 /* this */
            aconst_null
            putfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
         3: .line 101
            aload 0 /* this */
            new java.security.spec.EdDSAParameterSpec
            dup
            iconst_0
            invokespecial java.security.spec.EdDSAParameterSpec.<init>:(Z)V
            putfield sun.security.ec.ed.EdDSASignature.sigParams:Ljava/security/spec/EdDSAParameterSpec;
         4: .line 105
            return
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ec/ed/EdDSASignature;

  void <init>(java.security.spec.NamedParameterSpec);
    descriptor: (Ljava/security/spec/NamedParameterSpec;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // java.security.spec.NamedParameterSpec paramSpec
         0: .line 107
            aload 0 /* this */
            invokespecial java.security.SignatureSpi.<init>:()V
         1: .line 99
            aload 0 /* this */
            aconst_null
            putfield sun.security.ec.ed.EdDSASignature.lockedParams:Lsun/security/ec/ed/EdDSAParameters;
         2: .line 100
            aload 0 /* this */
            aconst_null
            putfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
         3: .line 101
            aload 0 /* this */
            new java.security.spec.EdDSAParameterSpec
            dup
            iconst_0
            invokespecial java.security.spec.EdDSAParameterSpec.<init>:(Z)V
            putfield sun.security.ec.ed.EdDSASignature.sigParams:Ljava/security/spec/EdDSAParameterSpec;
         4: .line 108
            aload 0 /* this */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/security/ProviderException.<init>(Ljava/lang/String;)V (8)
                  (Ljava/lang/String;)Ljava/security/ProviderException;
            aload 1 /* paramSpec */
            invokestatic sun.security.ec.ed.EdDSAParameters.get:(Ljava/util/function/Function;Ljava/security/spec/AlgorithmParameterSpec;)Lsun/security/ec/ed/EdDSAParameters;
            putfield sun.security.ec.ed.EdDSASignature.lockedParams:Lsun/security/ec/ed/EdDSAParameters;
         5: .line 109
            return
        end local 1 // java.security.spec.NamedParameterSpec paramSpec
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lsun/security/ec/ed/EdDSASignature;
            0    6     1  paramSpec  Ljava/security/spec/NamedParameterSpec;
    MethodParameters:
           Name  Flags
      paramSpec  

  protected void engineInitVerify(java.security.PublicKey);
    descriptor: (Ljava/security/PublicKey;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // java.security.PublicKey publicKey
         0: .line 115
            aload 1 /* publicKey */
            instanceof java.security.interfaces.EdECPublicKey
            ifne 2
         1: .line 116
            new java.security.InvalidKeyException
            dup
            ldc "Unsupported key type"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 118
      StackMap locals:
      StackMap stack:
            aload 1 /* publicKey */
            checkcast java.security.interfaces.EdECPublicKey
            astore 2 /* edKey */
        start local 2 // java.security.interfaces.EdECPublicKey edKey
         3: .line 120
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/security/InvalidKeyException.<init>(Ljava/lang/String;)V (8)
                  (Ljava/lang/String;)Ljava/security/InvalidKeyException;
            aload 2 /* edKey */
            invokeinterface java.security.interfaces.EdECPublicKey.getParams:()Ljava/security/spec/NamedParameterSpec;
         4: .line 119
            invokestatic sun.security.ec.ed.EdDSAParameters.get:(Ljava/util/function/Function;Ljava/security/spec/AlgorithmParameterSpec;)Lsun/security/ec/ed/EdDSAParameters;
            astore 3 /* params */
        start local 3 // sun.security.ec.ed.EdDSAParameters params
         5: .line 122
            aload 0 /* this */
            aload 3 /* params */
            invokevirtual sun.security.ec.ed.EdDSASignature.initImpl:(Lsun/security/ec/ed/EdDSAParameters;)V
         6: .line 123
            aload 0 /* this */
            aconst_null
            putfield sun.security.ec.ed.EdDSASignature.privateKey:[B
         7: .line 124
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.ops:Lsun/security/ec/ed/EdDSAOperations;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/security/InvalidKeyException.<init>(Ljava/lang/String;)V (8)
                  (Ljava/lang/String;)Ljava/security/InvalidKeyException;
         8: .line 125
            aload 2 /* edKey */
            invokeinterface java.security.interfaces.EdECPublicKey.getPoint:()Ljava/security/spec/EdECPoint;
         9: .line 124
            invokevirtual sun.security.ec.ed.EdDSAOperations.decodeAffinePoint:(Ljava/util/function/Function;Ljava/security/spec/EdECPoint;)Lsun/security/ec/point/AffinePoint;
            putfield sun.security.ec.ed.EdDSASignature.publicKeyPoint:Lsun/security/ec/point/AffinePoint;
        10: .line 126
            new sun.security.ec.ed.EdDSAPublicKeyImpl
            dup
            aload 3 /* params */
        11: .line 127
            aload 2 /* edKey */
            invokeinterface java.security.interfaces.EdECPublicKey.getPoint:()Ljava/security/spec/EdECPoint;
        12: .line 126
            invokespecial sun.security.ec.ed.EdDSAPublicKeyImpl.<init>:(Lsun/security/ec/ed/EdDSAParameters;Ljava/security/spec/EdECPoint;)V
            astore 4 /* pubKeyImpl */
        start local 4 // sun.security.ec.ed.EdDSAPublicKeyImpl pubKeyImpl
        13: .line 128
            aload 0 /* this */
            aload 4 /* pubKeyImpl */
            invokevirtual sun.security.ec.ed.EdDSAPublicKeyImpl.getEncodedPoint:()[B
            putfield sun.security.ec.ed.EdDSASignature.publicKeyBytes:[B
        14: .line 129
            return
        end local 4 // sun.security.ec.ed.EdDSAPublicKeyImpl pubKeyImpl
        end local 3 // sun.security.ec.ed.EdDSAParameters params
        end local 2 // java.security.interfaces.EdECPublicKey edKey
        end local 1 // java.security.PublicKey publicKey
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lsun/security/ec/ed/EdDSASignature;
            0   15     1   publicKey  Ljava/security/PublicKey;
            3   15     2       edKey  Ljava/security/interfaces/EdECPublicKey;
            5   15     3      params  Lsun/security/ec/ed/EdDSAParameters;
           13   15     4  pubKeyImpl  Lsun/security/ec/ed/EdDSAPublicKeyImpl;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
           Name  Flags
      publicKey  

  protected void engineInitSign(java.security.PrivateKey);
    descriptor: (Ljava/security/PrivateKey;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // java.security.PrivateKey privateKey
         0: .line 134
            aload 0 /* this */
            aload 1 /* privateKey */
            aconst_null
            invokevirtual sun.security.ec.ed.EdDSASignature.engineInitSign:(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
         1: .line 135
            return
        end local 1 // java.security.PrivateKey privateKey
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lsun/security/ec/ed/EdDSASignature;
            0    2     1  privateKey  Ljava/security/PrivateKey;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
            Name  Flags
      privateKey  

  protected void engineInitSign(java.security.PrivateKey, java.security.SecureRandom);
    descriptor: (Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // java.security.PrivateKey privateKey
        start local 2 // java.security.SecureRandom random
         0: .line 141
            aload 1 /* privateKey */
            instanceof java.security.interfaces.EdECPrivateKey
            ifne 2
         1: .line 142
            new java.security.InvalidKeyException
            dup
            ldc "Unsupported key type"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* privateKey */
            checkcast java.security.interfaces.EdECPrivateKey
            astore 3 /* edKey */
        start local 3 // java.security.interfaces.EdECPrivateKey edKey
         3: .line 146
            aload 0 /* this */
            aload 3 /* edKey */
            invokeinterface java.security.interfaces.EdECPrivateKey.getParams:()Ljava/security/spec/NamedParameterSpec;
            invokevirtual sun.security.ec.ed.EdDSASignature.initImpl:(Ljava/security/spec/NamedParameterSpec;)V
         4: .line 147
            aload 0 /* this */
            aload 3 /* edKey */
            invokeinterface java.security.interfaces.EdECPrivateKey.getBytes:()Ljava/util/Optional;
         5: .line 148
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  sun/security/ec/ed/EdDSASignature.lambda$3()Ljava/security/InvalidKeyException; (6)
                  ()Ljava/security/InvalidKeyException;
         6: .line 147
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast byte[]
            putfield sun.security.ec.ed.EdDSASignature.privateKey:[B
         7: .line 149
            aload 0 /* this */
            aconst_null
            putfield sun.security.ec.ed.EdDSASignature.publicKeyPoint:Lsun/security/ec/point/AffinePoint;
         8: .line 150
            aload 0 /* this */
            aconst_null
            putfield sun.security.ec.ed.EdDSASignature.publicKeyBytes:[B
         9: .line 151
            return
        end local 3 // java.security.interfaces.EdECPrivateKey edKey
        end local 2 // java.security.SecureRandom random
        end local 1 // java.security.PrivateKey privateKey
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lsun/security/ec/ed/EdDSASignature;
            0   10     1  privateKey  Ljava/security/PrivateKey;
            0   10     2      random  Ljava/security/SecureRandom;
            3   10     3       edKey  Ljava/security/interfaces/EdECPrivateKey;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
            Name  Flags
      privateKey  
      random      

  private <T extends java.lang.Throwable> void checkLockedParams(java.util.function.Function<java.lang.String, T>, sun.security.ec.ed.EdDSAParameters) throws T;
    descriptor: (Ljava/util/function/Function;Lsun/security/ec/ed/EdDSAParameters;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // java.util.function.Function exception
        start local 2 // sun.security.ec.ed.EdDSAParameters params
         0: .line 157
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.lockedParams:Lsun/security/ec/ed/EdDSAParameters;
            ifnull 4
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.lockedParams:Lsun/security/ec/ed/EdDSAParameters;
            aload 2 /* params */
            if_acmpeq 4
         1: .line 158
            aload 1 /* exception */
            new java.lang.StringBuilder
            dup
            ldc "Parameters must be "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 159
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.lockedParams:Lsun/security/ec/ed/EdDSAParameters;
            invokevirtual sun.security.ec.ed.EdDSAParameters.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 158
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Throwable
            athrow
         4: .line 161
      StackMap locals:
      StackMap stack:
            return
        end local 2 // sun.security.ec.ed.EdDSAParameters params
        end local 1 // java.util.function.Function exception
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lsun/security/ec/ed/EdDSASignature;
            0    5     1  exception  Ljava/util/function/Function<Ljava/lang/String;TT;>;
            0    5     2     params  Lsun/security/ec/ed/EdDSAParameters;
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Throwable;>(Ljava/util/function/Function<Ljava/lang/String;TT;>;Lsun/security/ec/ed/EdDSAParameters;)V^TT;
    MethodParameters:
           Name  Flags
      exception  
      params     

  private void ensureMessageInit();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ec.ed.EdDSASignature this
         0: .line 164
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
            ifnonnull 2
         1: .line 165
            aload 0 /* this */
            invokevirtual sun.security.ec.ed.EdDSASignature.initMessage:()V
         2: .line 167
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ec/ed/EdDSASignature;
    Exceptions:
      throws java.security.SignatureException

  private void initMessage();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.security.ec.ed.EdDSASignature this
         0: .line 170
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.ops:Lsun/security/ec/ed/EdDSAOperations;
            ifnonnull 2
         1: .line 171
            new java.security.SignatureException
            dup
            ldc "not initialized"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.ops:Lsun/security/ec/ed/EdDSAOperations;
            invokevirtual sun.security.ec.ed.EdDSAOperations.getParameters:()Lsun/security/ec/ed/EdDSAParameters;
            astore 1 /* params */
        start local 1 // sun.security.ec.ed.EdDSAParameters params
         3: .line 175
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.sigParams:Ljava/security/spec/EdDSAParameterSpec;
            invokevirtual java.security.spec.EdDSAParameterSpec.isPrehash:()Z
            ifeq 6
         4: .line 176
            aload 0 /* this */
            new sun.security.ec.ed.EdDSASignature$DigestAccumulator
            dup
            aload 1 /* params */
            bipush 64
            invokevirtual sun.security.ec.ed.EdDSAParameters.createDigester:(I)Lsun/security/ec/ed/EdDSAParameters$Digester;
            invokespecial sun.security.ec.ed.EdDSASignature$DigestAccumulator.<init>:(Lsun/security/ec/ed/EdDSAParameters$Digester;)V
            putfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
         5: .line 177
            goto 7
         6: .line 178
      StackMap locals: sun.security.ec.ed.EdDSAParameters
      StackMap stack:
            aload 0 /* this */
            new sun.security.ec.ed.EdDSASignature$MemoryAccumulator
            dup
            invokespecial sun.security.ec.ed.EdDSASignature$MemoryAccumulator.<init>:()V
            putfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
         7: .line 180
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.security.ec.ed.EdDSAParameters params
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/security/ec/ed/EdDSASignature;
            3    8     1  params  Lsun/security/ec/ed/EdDSAParameters;
    Exceptions:
      throws java.security.SignatureException

  protected void engineUpdate(byte);
    descriptor: (B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // byte b
         0: .line 184
            aload 0 /* this */
            invokevirtual sun.security.ec.ed.EdDSASignature.ensureMessageInit:()V
         1: .line 185
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
            iload 1 /* b */
            invokeinterface sun.security.ec.ed.EdDSASignature$MessageAccumulator.add:(B)V
         2: .line 186
            return
        end local 1 // byte b
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ec/ed/EdDSASignature;
            0    3     1     b  B
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
      Name  Flags
      b     

  protected void engineUpdate(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 192
            aload 0 /* this */
            invokevirtual sun.security.ec.ed.EdDSASignature.ensureMessageInit:()V
         1: .line 193
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokeinterface sun.security.ec.ed.EdDSASignature$MessageAccumulator.add:([BII)V
         2: .line 194
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ec/ed/EdDSASignature;
            0    3     1     b  [B
            0    3     2   off  I
            0    3     3   len  I
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  protected byte[] engineSign();
    descriptor: ()[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ec.ed.EdDSASignature this
         0: .line 198
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.privateKey:[B
            ifnonnull 2
         1: .line 199
            new java.security.SignatureException
            dup
            ldc "Missing private key"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ec.ed.EdDSASignature.ensureMessageInit:()V
         3: .line 202
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.ops:Lsun/security/ec/ed/EdDSAOperations;
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.sigParams:Ljava/security/spec/EdDSAParameterSpec;
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.privateKey:[B
         4: .line 203
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
            invokeinterface sun.security.ec.ed.EdDSASignature$MessageAccumulator.getMessage:()[B
         5: .line 202
            invokevirtual sun.security.ec.ed.EdDSAOperations.sign:(Ljava/security/spec/EdDSAParameterSpec;[B[B)[B
            astore 1 /* result */
        start local 1 // byte[] result
         6: .line 204
            aload 0 /* this */
            aconst_null
            putfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
         7: .line 205
            aload 1 /* result */
            areturn
        end local 1 // byte[] result
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/security/ec/ed/EdDSASignature;
            6    8     1  result  [B
    Exceptions:
      throws java.security.SignatureException

  protected boolean engineVerify(byte[]);
    descriptor: ([B)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // byte[] sigBytes
         0: .line 210
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.publicKeyBytes:[B
            ifnonnull 2
         1: .line 211
            new java.security.SignatureException
            dup
            ldc "Missing publicKey"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
            ifnonnull 4
         3: .line 214
            iconst_0
            ireturn
         4: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.ops:Lsun/security/ec/ed/EdDSAOperations;
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.sigParams:Ljava/security/spec/EdDSAParameterSpec;
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.publicKeyPoint:Lsun/security/ec/point/AffinePoint;
         5: .line 217
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.publicKeyBytes:[B
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
            invokeinterface sun.security.ec.ed.EdDSASignature$MessageAccumulator.getMessage:()[B
            aload 1 /* sigBytes */
         6: .line 216
            invokevirtual sun.security.ec.ed.EdDSAOperations.verify:(Ljava/security/spec/EdDSAParameterSpec;Lsun/security/ec/point/AffinePoint;[B[B[B)Z
            istore 2 /* result */
        start local 2 // boolean result
         7: .line 218
            aload 0 /* this */
            aconst_null
            putfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
         8: .line 219
            iload 2 /* result */
            ireturn
        end local 2 // boolean result
        end local 1 // byte[] sigBytes
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lsun/security/ec/ed/EdDSASignature;
            0    9     1  sigBytes  [B
            7    9     2    result  Z
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
          Name  Flags
      sigBytes  

  private void initImpl(sun.security.ec.ed.EdDSAParameters);
    descriptor: (Lsun/security/ec/ed/EdDSAParameters;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // sun.security.ec.ed.EdDSAParameters params
         0: .line 223
            aload 0 /* this */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/security/InvalidKeyException.<init>(Ljava/lang/String;)V (8)
                  (Ljava/lang/String;)Ljava/security/InvalidKeyException;
            aload 1 /* params */
            invokevirtual sun.security.ec.ed.EdDSASignature.checkLockedParams:(Ljava/util/function/Function;Lsun/security/ec/ed/EdDSAParameters;)V
         1: .line 226
            aload 0 /* this */
            new sun.security.ec.ed.EdDSAOperations
            dup
            aload 1 /* params */
            invokespecial sun.security.ec.ed.EdDSAOperations.<init>:(Lsun/security/ec/ed/EdDSAParameters;)V
            putfield sun.security.ec.ed.EdDSASignature.ops:Lsun/security/ec/ed/EdDSAOperations;
         2: .line 227
            goto 5
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
         3: astore 2 /* ex */
        start local 2 // java.security.NoSuchAlgorithmException ex
         4: .line 228
            new java.security.ProviderException
            dup
            aload 2 /* ex */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.NoSuchAlgorithmException ex
         5: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
         6: .line 233
            return
        end local 1 // sun.security.ec.ed.EdDSAParameters params
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/security/ec/ed/EdDSASignature;
            0    7     1  params  Lsun/security/ec/ed/EdDSAParameters;
            4    5     2      ex  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
        Name  Flags
      params  

  private void initImpl(java.security.spec.NamedParameterSpec);
    descriptor: (Ljava/security/spec/NamedParameterSpec;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // java.security.spec.NamedParameterSpec paramSpec
         0: .line 239
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/security/InvalidKeyException.<init>(Ljava/lang/String;)V (8)
                  (Ljava/lang/String;)Ljava/security/InvalidKeyException;
            aload 1 /* paramSpec */
         1: .line 238
            invokestatic sun.security.ec.ed.EdDSAParameters.get:(Ljava/util/function/Function;Ljava/security/spec/AlgorithmParameterSpec;)Lsun/security/ec/ed/EdDSAParameters;
            astore 2 /* params */
        start local 2 // sun.security.ec.ed.EdDSAParameters params
         2: .line 240
            aload 0 /* this */
            aload 2 /* params */
            invokevirtual sun.security.ec.ed.EdDSASignature.initImpl:(Lsun/security/ec/ed/EdDSAParameters;)V
         3: .line 241
            return
        end local 2 // sun.security.ec.ed.EdDSAParameters params
        end local 1 // java.security.spec.NamedParameterSpec paramSpec
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lsun/security/ec/ed/EdDSASignature;
            0    4     1  paramSpec  Ljava/security/spec/NamedParameterSpec;
            2    4     2     params  Lsun/security/ec/ed/EdDSAParameters;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
           Name  Flags
      paramSpec  

  protected java.lang.Object engineGetParameter(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // java.lang.String param
         0: .line 247
            new java.lang.UnsupportedOperationException
            dup
            ldc "getParameter() not supported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String param
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/security/ec/ed/EdDSASignature;
            0    1     1  param  Ljava/lang/String;
    Exceptions:
      throws java.security.InvalidParameterException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      param  

  protected void engineSetParameter(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // java.lang.String param
        start local 2 // java.lang.Object value
         0: .line 255
            new java.lang.UnsupportedOperationException
            dup
            ldc "setParameter() not supported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String param
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/security/ec/ed/EdDSASignature;
            0    1     1  param  Ljava/lang/String;
            0    1     2  value  Ljava/lang/Object;
    Exceptions:
      throws java.security.InvalidParameterException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      param  
      value  

  protected void engineSetParameter(java.security.spec.AlgorithmParameterSpec);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ec.ed.EdDSASignature this
        start local 1 // java.security.spec.AlgorithmParameterSpec params
         0: .line 263
            aload 1 /* params */
            ifnonnull 2
         1: .line 264
            return
         2: .line 267
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            instanceof java.security.spec.EdDSAParameterSpec
            ifeq 9
         3: .line 268
            aload 0 /* this */
            getfield sun.security.ec.ed.EdDSASignature.message:Lsun/security/ec/ed/EdDSASignature$MessageAccumulator;
            ifnull 5
         4: .line 270
            new java.security.InvalidParameterException
            dup
            ldc "Cannot change signature parameters during operation"
            invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 273
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            checkcast java.security.spec.EdDSAParameterSpec
            astore 2 /* edDsaParams */
        start local 2 // java.security.spec.EdDSAParameterSpec edDsaParams
         6: .line 274
            aload 2 /* edDsaParams */
            invokestatic sun.security.ec.ed.EdDSASignature.checkContextLength:(Ljava/security/spec/EdDSAParameterSpec;)V
         7: .line 276
            aload 0 /* this */
            aload 2 /* edDsaParams */
            putfield sun.security.ec.ed.EdDSASignature.sigParams:Ljava/security/spec/EdDSAParameterSpec;
        end local 2 // java.security.spec.EdDSAParameterSpec edDsaParams
         8: .line 277
            goto 12
         9: .line 278
      StackMap locals:
      StackMap stack:
            new java.security.InvalidAlgorithmParameterException
            dup
        10: .line 279
            ldc "Only EdDSAParameterSpec supported"
        11: .line 278
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 281
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.security.spec.AlgorithmParameterSpec params
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lsun/security/ec/ed/EdDSASignature;
            0   13     1       params  Ljava/security/spec/AlgorithmParameterSpec;
            6    8     2  edDsaParams  Ljava/security/spec/EdDSAParameterSpec;
    Exceptions:
      throws java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      params  

  private static void checkContextLength(java.security.spec.EdDSAParameterSpec);
    descriptor: (Ljava/security/spec/EdDSAParameterSpec;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.security.spec.EdDSAParameterSpec edDsaParams
         0: .line 286
            aload 0 /* edDsaParams */
            invokevirtual java.security.spec.EdDSAParameterSpec.getContext:()Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 6
         1: .line 287
            aload 0 /* edDsaParams */
            invokevirtual java.security.spec.EdDSAParameterSpec.getContext:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast byte[]
            astore 1 /* context */
        start local 1 // byte[] context
         2: .line 288
            aload 1 /* context */
            arraylength
            sipush 255
            if_icmple 6
         3: .line 289
            new java.security.InvalidAlgorithmParameterException
            dup
         4: .line 290
            ldc "Context is longer than 255 bytes"
         5: .line 289
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // byte[] context
         6: .line 293
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.security.spec.EdDSAParameterSpec edDsaParams
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0  edDsaParams  Ljava/security/spec/EdDSAParameterSpec;
            2    6     1      context  [B
    Exceptions:
      throws java.security.InvalidAlgorithmParameterException
    MethodParameters:
             Name  Flags
      edDsaParams  

  protected java.security.AlgorithmParameters engineGetParameters();
    descriptor: ()Ljava/security/AlgorithmParameters;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ec.ed.EdDSASignature this
         0: .line 298
            aconst_null
            areturn
        end local 0 // sun.security.ec.ed.EdDSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/ed/EdDSASignature;

  private static java.security.InvalidKeyException lambda$3();
    descriptor: ()Ljava/security/InvalidKeyException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 148
            new java.security.InvalidKeyException
            dup
            ldc "No private key value"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "EdDSASignature.java"
NestMembers:
  sun.security.ec.ed.EdDSASignature$DigestAccumulator  sun.security.ec.ed.EdDSASignature$Ed25519  sun.security.ec.ed.EdDSASignature$Ed448  sun.security.ec.ed.EdDSASignature$MemoryAccumulator  sun.security.ec.ed.EdDSASignature$MessageAccumulator
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Digester = sun.security.ec.ed.EdDSAParameters$Digester of sun.security.ec.ed.EdDSAParameters
  private DigestAccumulator = sun.security.ec.ed.EdDSASignature$DigestAccumulator of sun.security.ec.ed.EdDSASignature
  public Ed25519 = sun.security.ec.ed.EdDSASignature$Ed25519 of sun.security.ec.ed.EdDSASignature
  public Ed448 = sun.security.ec.ed.EdDSASignature$Ed448 of sun.security.ec.ed.EdDSASignature
  private MemoryAccumulator = sun.security.ec.ed.EdDSASignature$MemoryAccumulator of sun.security.ec.ed.EdDSASignature
  private abstract MessageAccumulator = sun.security.ec.ed.EdDSASignature$MessageAccumulator of sun.security.ec.ed.EdDSASignature