test_class.declarator: log = LoggerFactory.getLogger(ECKeyTest.class)
test_class.modifier: private static final
test_class.original_string: private static final Logger log = LoggerFactory.getLogger(ECKeyTest.class);
test_class.type: Logger
test_class.var_name: log
test_class.declarator: secureRandom
test_class.modifier: private
test_class.original_string: private SecureRandom secureRandom;
test_class.type: SecureRandom
test_class.var_name: secureRandom
test_class.declarator: keyCrypter
test_class.modifier: private
test_class.original_string: private KeyCrypter keyCrypter;
test_class.type: KeyCrypter
test_class.var_name: keyCrypter
test_class.declarator: PASSWORD1 = "my hovercraft has eels"
test_class.modifier: private static
test_class.original_string: private static CharSequence PASSWORD1 = "my hovercraft has eels";
test_class.type: CharSequence
test_class.var_name: PASSWORD1
test_class.declarator: WRONG_PASSWORD = "it is a snowy day today"
test_class.modifier: private static
test_class.original_string: private static CharSequence WRONG_PASSWORD = "it is a snowy day today";
test_class.type: CharSequence
test_class.var_name: WRONG_PASSWORD
test_class.file: core/src/test/java/com/google/bitcoin/core/ECKeyTest.java
test_class.identifier: ECKeyTest
test_case.body: @Test
      public void sValue() throws Exception {
          // Check that we never generate an S value that is larger than half the curve order. This avoids a malleability
          // issue that can allow someone to change a transaction [hash] without invalidating the signature.
          final int ITERATIONS = 10;
          ListeningExecutorService executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(ITERATIONS));
          List<ListenableFuture<ECKey.ECDSASignature>> sigFutures = Lists.newArrayList();
          final ECKey key = new ECKey();
          for (byte i = 0; i < ITERATIONS; i++) {
              final Sha256Hash hash = Sha256Hash.create(new byte[]{i});
              sigFutures.add(executor.submit(new Callable<ECKey.ECDSASignature>() {
                  @Override
                  public ECKey.ECDSASignature call() throws Exception {
                      return key.sign(hash);
                  }
              }));
          }
          List<ECKey.ECDSASignature> sigs = Futures.allAsList(sigFutures).get();
          for (ECKey.ECDSASignature signature : sigs) {
              assertTrue(signature.s.compareTo(ECKey.HALF_CURVE_ORDER) <= 0);
          }
      }
test_case.class_method_signature: ECKeyTest.sValue()
test_case.full_signature: @Test public void sValue()
test_case.identifier: sValue
test_case.invocations: listeningDecorator newFixedThreadPool newArrayList create add submit sign get allAsList assertTrue compareTo
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void sValue()
focal_class.declarator: log = LoggerFactory.getLogger(ECKey.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = LoggerFactory.getLogger(ECKey.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: CURVE
focal_class.modifier: public static final
focal_class.original_string: public static final ECDomainParameters CURVE;
focal_class.type: ECDomainParameters
focal_class.var_name: CURVE
focal_class.declarator: HALF_CURVE_ORDER
focal_class.modifier: public static final
focal_class.original_string: public static final BigInteger HALF_CURVE_ORDER;
focal_class.type: BigInteger
focal_class.var_name: HALF_CURVE_ORDER
focal_class.declarator: secureRandom
focal_class.modifier: private static final
focal_class.original_string: private static final SecureRandom secureRandom;
focal_class.type: SecureRandom
focal_class.var_name: secureRandom
focal_class.declarator: serialVersionUID = -728224901792295832L
focal_class.modifier: private static final
focal_class.original_string: private static final long serialVersionUID = -728224901792295832L;
focal_class.type: long
focal_class.var_name: serialVersionUID
focal_class.declarator: priv
focal_class.modifier: private
focal_class.original_string: private BigInteger priv;
focal_class.type: BigInteger
focal_class.var_name: priv
focal_class.declarator: pub
focal_class.modifier: private
focal_class.original_string: private byte[] pub;
focal_class.type: byte[]
focal_class.var_name: pub
focal_class.declarator: creationTimeSeconds
focal_class.modifier: private
focal_class.original_string: private long creationTimeSeconds;
focal_class.type: long
focal_class.var_name: creationTimeSeconds
focal_class.declarator: keyCrypter
focal_class.modifier: transient private
focal_class.original_string: transient private KeyCrypter keyCrypter;
focal_class.type: KeyCrypter
focal_class.var_name: keyCrypter
focal_class.declarator: encryptedPrivateKey
focal_class.modifier: private
focal_class.original_string: private EncryptedPrivateKey encryptedPrivateKey;
focal_class.type: EncryptedPrivateKey
focal_class.var_name: encryptedPrivateKey
focal_class.declarator: pubKeyHash
focal_class.modifier: transient private
focal_class.original_string: transient private byte[] pubKeyHash;
focal_class.type: byte[]
focal_class.var_name: pubKeyHash
focal_class.declarator: FAKE_SIGNATURES = false
focal_class.modifier: @VisibleForTesting
      public static
focal_class.original_string: @VisibleForTesting
      public static boolean FAKE_SIGNATURES = false;
focal_class.type: boolean
focal_class.var_name: FAKE_SIGNATURES
focal_class.file: core/src/main/java/com/google/bitcoin/core/ECKey.java
focal_class.identifier: ECKey
focal_class.interfaces: implements Serializable
focal_class.class_method_signature: ECKey.ECKey()
focal_class.full_signature: public  ECKey()
focal_class.identifier: ECKey
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ECKey()
focal_class.class_method_signature: ECKey.compressPoint(ECPoint uncompressed)
focal_class.full_signature: private static ECPoint compressPoint(ECPoint uncompressed)
focal_class.identifier: compressPoint
focal_class.modifiers: private static
focal_class.parameters: (ECPoint uncompressed)
focal_class.return: ECPoint
focal_class.signature: ECPoint compressPoint(ECPoint uncompressed)
focal_class.class_method_signature: ECKey.fromASN1(byte[] asn1privkey)
focal_class.full_signature: public static ECKey fromASN1(byte[] asn1privkey)
focal_class.identifier: fromASN1
focal_class.modifiers: public static
focal_class.parameters: (byte[] asn1privkey)
focal_class.return: ECKey
focal_class.signature: ECKey fromASN1(byte[] asn1privkey)
focal_class.class_method_signature: ECKey.ECKey(BigInteger privKey)
focal_class.full_signature: public  ECKey(BigInteger privKey)
focal_class.identifier: ECKey
focal_class.modifiers: public
focal_class.parameters: (BigInteger privKey)
focal_class.signature:  ECKey(BigInteger privKey)
focal_class.class_method_signature: ECKey.ECKey(BigInteger privKey, BigInteger pubKey)
focal_class.full_signature: public  ECKey(BigInteger privKey, BigInteger pubKey)
focal_class.identifier: ECKey
focal_class.modifiers: public
focal_class.parameters: (BigInteger privKey, BigInteger pubKey)
focal_class.signature:  ECKey(BigInteger privKey, BigInteger pubKey)
focal_class.class_method_signature: ECKey.ECKey(@Nullable byte[] privKeyBytes, @Nullable byte[] pubKey)
focal_class.full_signature: public  ECKey(@Nullable byte[] privKeyBytes, @Nullable byte[] pubKey)
focal_class.identifier: ECKey
focal_class.modifiers: public
focal_class.parameters: (@Nullable byte[] privKeyBytes, @Nullable byte[] pubKey)
focal_class.signature:  ECKey(@Nullable byte[] privKeyBytes, @Nullable byte[] pubKey)
focal_class.class_method_signature: ECKey.ECKey(@Nullable EncryptedPrivateKey encryptedPrivateKey, @Nullable byte[] pubKey, KeyCrypter keyCrypter)
focal_class.full_signature: public  ECKey(@Nullable EncryptedPrivateKey encryptedPrivateKey, @Nullable byte[] pubKey, KeyCrypter keyCrypter)
focal_class.identifier: ECKey
focal_class.modifiers: public
focal_class.parameters: (@Nullable EncryptedPrivateKey encryptedPrivateKey, @Nullable byte[] pubKey, KeyCrypter keyCrypter)
focal_class.signature:  ECKey(@Nullable EncryptedPrivateKey encryptedPrivateKey, @Nullable byte[] pubKey, KeyCrypter keyCrypter)
focal_class.class_method_signature: ECKey.ECKey(@Nullable BigInteger privKey, @Nullable byte[] pubKey, boolean compressed)
focal_class.full_signature: public  ECKey(@Nullable BigInteger privKey, @Nullable byte[] pubKey, boolean compressed)
focal_class.identifier: ECKey
focal_class.modifiers: public
focal_class.parameters: (@Nullable BigInteger privKey, @Nullable byte[] pubKey, boolean compressed)
focal_class.signature:  ECKey(@Nullable BigInteger privKey, @Nullable byte[] pubKey, boolean compressed)
focal_class.class_method_signature: ECKey.ECKey(@Nullable BigInteger privKey, @Nullable byte[] pubKey)
focal_class.full_signature: private  ECKey(@Nullable BigInteger privKey, @Nullable byte[] pubKey)
focal_class.identifier: ECKey
focal_class.modifiers: private
focal_class.parameters: (@Nullable BigInteger privKey, @Nullable byte[] pubKey)
focal_class.signature:  ECKey(@Nullable BigInteger privKey, @Nullable byte[] pubKey)
focal_class.class_method_signature: ECKey.isPubKeyOnly()
focal_class.full_signature: public boolean isPubKeyOnly()
focal_class.identifier: isPubKeyOnly
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isPubKeyOnly()
focal_class.class_method_signature: ECKey.hasPrivKey()
focal_class.full_signature: public boolean hasPrivKey()
focal_class.identifier: hasPrivKey
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasPrivKey()
focal_class.class_method_signature: ECKey.toASN1()
focal_class.full_signature: public byte[] toASN1()
focal_class.identifier: toASN1
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] toASN1()
focal_class.class_method_signature: ECKey.publicKeyFromPrivate(BigInteger privKey, boolean compressed)
focal_class.full_signature: public static byte[] publicKeyFromPrivate(BigInteger privKey, boolean compressed)
focal_class.identifier: publicKeyFromPrivate
focal_class.modifiers: public static
focal_class.parameters: (BigInteger privKey, boolean compressed)
focal_class.return: byte[]
focal_class.signature: byte[] publicKeyFromPrivate(BigInteger privKey, boolean compressed)
focal_class.class_method_signature: ECKey.getPubKeyHash()
focal_class.full_signature: public byte[] getPubKeyHash()
focal_class.identifier: getPubKeyHash
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getPubKeyHash()
focal_class.class_method_signature: ECKey.getPubKey()
focal_class.full_signature: public byte[] getPubKey()
focal_class.identifier: getPubKey
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getPubKey()
focal_class.class_method_signature: ECKey.isCompressed()
focal_class.full_signature: public boolean isCompressed()
focal_class.identifier: isCompressed
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isCompressed()
focal_class.class_method_signature: ECKey.toString()
focal_class.full_signature: public String toString()
focal_class.identifier: toString
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.class_method_signature: ECKey.toStringWithPrivate()
focal_class.full_signature: public String toStringWithPrivate()
focal_class.identifier: toStringWithPrivate
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toStringWithPrivate()
focal_class.class_method_signature: ECKey.toAddress(NetworkParameters params)
focal_class.full_signature: public Address toAddress(NetworkParameters params)
focal_class.identifier: toAddress
focal_class.modifiers: public
focal_class.parameters: (NetworkParameters params)
focal_class.return: Address
focal_class.signature: Address toAddress(NetworkParameters params)
focal_class.class_method_signature: ECKey.clearPrivateKey()
focal_class.full_signature: public void clearPrivateKey()
focal_class.identifier: clearPrivateKey
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void clearPrivateKey()
focal_class.class_method_signature: ECKey.sign(Sha256Hash input)
focal_class.full_signature: public ECDSASignature sign(Sha256Hash input)
focal_class.identifier: sign
focal_class.modifiers: public
focal_class.parameters: (Sha256Hash input)
focal_class.return: ECDSASignature
focal_class.signature: ECDSASignature sign(Sha256Hash input)
focal_class.class_method_signature: ECKey.sign(Sha256Hash input, @Nullable KeyParameter aesKey)
focal_class.full_signature: public ECDSASignature sign(Sha256Hash input, @Nullable KeyParameter aesKey)
focal_class.identifier: sign
focal_class.modifiers: public
focal_class.parameters: (Sha256Hash input, @Nullable KeyParameter aesKey)
focal_class.return: ECDSASignature
focal_class.signature: ECDSASignature sign(Sha256Hash input, @Nullable KeyParameter aesKey)
focal_class.class_method_signature: ECKey.verify(byte[] data, ECDSASignature signature, byte[] pub)
focal_class.full_signature: public static boolean verify(byte[] data, ECDSASignature signature, byte[] pub)
focal_class.identifier: verify
focal_class.modifiers: public static
focal_class.parameters: (byte[] data, ECDSASignature signature, byte[] pub)
focal_class.return: boolean
focal_class.signature: boolean verify(byte[] data, ECDSASignature signature, byte[] pub)
focal_class.class_method_signature: ECKey.verify(byte[] data, byte[] signature, byte[] pub)
focal_class.full_signature: public static boolean verify(byte[] data, byte[] signature, byte[] pub)
focal_class.identifier: verify
focal_class.modifiers: public static
focal_class.parameters: (byte[] data, byte[] signature, byte[] pub)
focal_class.return: boolean
focal_class.signature: boolean verify(byte[] data, byte[] signature, byte[] pub)
focal_class.class_method_signature: ECKey.verify(byte[] data, byte[] signature)
focal_class.full_signature: public boolean verify(byte[] data, byte[] signature)
focal_class.identifier: verify
focal_class.modifiers: public
focal_class.parameters: (byte[] data, byte[] signature)
focal_class.return: boolean
focal_class.signature: boolean verify(byte[] data, byte[] signature)
focal_class.class_method_signature: ECKey.verify(Sha256Hash sigHash, ECDSASignature signature)
focal_class.full_signature: public boolean verify(Sha256Hash sigHash, ECDSASignature signature)
focal_class.identifier: verify
focal_class.modifiers: public
focal_class.parameters: (Sha256Hash sigHash, ECDSASignature signature)
focal_class.return: boolean
focal_class.signature: boolean verify(Sha256Hash sigHash, ECDSASignature signature)
focal_class.class_method_signature: ECKey.isPubKeyCanonical()
focal_class.full_signature: public boolean isPubKeyCanonical()
focal_class.identifier: isPubKeyCanonical
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isPubKeyCanonical()
focal_class.class_method_signature: ECKey.isPubKeyCanonical(byte[] pubkey)
focal_class.full_signature: public static boolean isPubKeyCanonical(byte[] pubkey)
focal_class.identifier: isPubKeyCanonical
focal_class.modifiers: public static
focal_class.parameters: (byte[] pubkey)
focal_class.return: boolean
focal_class.signature: boolean isPubKeyCanonical(byte[] pubkey)
focal_class.class_method_signature: ECKey.extractKeyFromASN1(byte[] asn1privkey)
focal_class.full_signature: private static ECKey extractKeyFromASN1(byte[] asn1privkey)
focal_class.identifier: extractKeyFromASN1
focal_class.modifiers: private static
focal_class.parameters: (byte[] asn1privkey)
focal_class.return: ECKey
focal_class.signature: ECKey extractKeyFromASN1(byte[] asn1privkey)
focal_class.class_method_signature: ECKey.signMessage(String message)
focal_class.full_signature: public String signMessage(String message)
focal_class.identifier: signMessage
focal_class.modifiers: public
focal_class.parameters: (String message)
focal_class.return: String
focal_class.signature: String signMessage(String message)
focal_class.class_method_signature: ECKey.signMessage(String message, @Nullable KeyParameter aesKey)
focal_class.full_signature: public String signMessage(String message, @Nullable KeyParameter aesKey)
focal_class.identifier: signMessage
focal_class.modifiers: public
focal_class.parameters: (String message, @Nullable KeyParameter aesKey)
focal_class.return: String
focal_class.signature: String signMessage(String message, @Nullable KeyParameter aesKey)
focal_class.class_method_signature: ECKey.signedMessageToKey(String message, String signatureBase64)
focal_class.full_signature: public static ECKey signedMessageToKey(String message, String signatureBase64)
focal_class.identifier: signedMessageToKey
focal_class.modifiers: public static
focal_class.parameters: (String message, String signatureBase64)
focal_class.return: ECKey
focal_class.signature: ECKey signedMessageToKey(String message, String signatureBase64)
focal_class.class_method_signature: ECKey.verifyMessage(String message, String signatureBase64)
focal_class.full_signature: public void verifyMessage(String message, String signatureBase64)
focal_class.identifier: verifyMessage
focal_class.modifiers: public
focal_class.parameters: (String message, String signatureBase64)
focal_class.return: void
focal_class.signature: void verifyMessage(String message, String signatureBase64)
focal_class.class_method_signature: ECKey.recoverFromSignature(int recId, ECDSASignature sig, Sha256Hash message, boolean compressed)
focal_class.full_signature: @Nullable public static ECKey recoverFromSignature(int recId, ECDSASignature sig, Sha256Hash message, boolean compressed)
focal_class.identifier: recoverFromSignature
focal_class.modifiers: @Nullable public static
focal_class.parameters: (int recId, ECDSASignature sig, Sha256Hash message, boolean compressed)
focal_class.return: ECKey
focal_class.signature: ECKey recoverFromSignature(int recId, ECDSASignature sig, Sha256Hash message, boolean compressed)
focal_class.class_method_signature: ECKey.decompressKey(BigInteger xBN, boolean yBit)
focal_class.full_signature: private static ECPoint decompressKey(BigInteger xBN, boolean yBit)
focal_class.identifier: decompressKey
focal_class.modifiers: private static
focal_class.parameters: (BigInteger xBN, boolean yBit)
focal_class.return: ECPoint
focal_class.signature: ECPoint decompressKey(BigInteger xBN, boolean yBit)
focal_class.class_method_signature: ECKey.getPrivKeyBytes()
focal_class.full_signature: @Nullable public byte[] getPrivKeyBytes()
focal_class.identifier: getPrivKeyBytes
focal_class.modifiers: @Nullable public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] getPrivKeyBytes()
focal_class.class_method_signature: ECKey.getPrivateKeyEncoded(NetworkParameters params)
focal_class.full_signature: public DumpedPrivateKey getPrivateKeyEncoded(NetworkParameters params)
focal_class.identifier: getPrivateKeyEncoded
focal_class.modifiers: public
focal_class.parameters: (NetworkParameters params)
focal_class.return: DumpedPrivateKey
focal_class.signature: DumpedPrivateKey getPrivateKeyEncoded(NetworkParameters params)
focal_class.class_method_signature: ECKey.getCreationTimeSeconds()
focal_class.full_signature: public long getCreationTimeSeconds()
focal_class.identifier: getCreationTimeSeconds
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: long
focal_class.signature: long getCreationTimeSeconds()
focal_class.class_method_signature: ECKey.setCreationTimeSeconds(long newCreationTimeSeconds)
focal_class.full_signature: public void setCreationTimeSeconds(long newCreationTimeSeconds)
focal_class.identifier: setCreationTimeSeconds
focal_class.modifiers: public
focal_class.parameters: (long newCreationTimeSeconds)
focal_class.return: void
focal_class.signature: void setCreationTimeSeconds(long newCreationTimeSeconds)
focal_class.class_method_signature: ECKey.equals(Object o)
focal_class.full_signature: @Override public boolean equals(Object o)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (Object o)
focal_class.return: boolean
focal_class.signature: boolean equals(Object o)
focal_class.class_method_signature: ECKey.hashCode()
focal_class.full_signature: @Override public int hashCode()
focal_class.identifier: hashCode
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int hashCode()
focal_class.class_method_signature: ECKey.encrypt(KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.full_signature: public ECKey encrypt(KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.identifier: encrypt
focal_class.modifiers: public
focal_class.parameters: (KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.return: ECKey
focal_class.signature: ECKey encrypt(KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.class_method_signature: ECKey.decrypt(KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.full_signature: public ECKey decrypt(KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.identifier: decrypt
focal_class.modifiers: public
focal_class.parameters: (KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.return: ECKey
focal_class.signature: ECKey decrypt(KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.class_method_signature: ECKey.encryptionIsReversible(ECKey originalKey, ECKey encryptedKey, KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.full_signature: public static boolean encryptionIsReversible(ECKey originalKey, ECKey encryptedKey, KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.identifier: encryptionIsReversible
focal_class.modifiers: public static
focal_class.parameters: (ECKey originalKey, ECKey encryptedKey, KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.return: boolean
focal_class.signature: boolean encryptionIsReversible(ECKey originalKey, ECKey encryptedKey, KeyCrypter keyCrypter, KeyParameter aesKey)
focal_class.class_method_signature: ECKey.isEncrypted()
focal_class.full_signature: public boolean isEncrypted()
focal_class.identifier: isEncrypted
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isEncrypted()
focal_class.class_method_signature: ECKey.getEncryptedPrivateKey()
focal_class.full_signature: @Nullable public EncryptedPrivateKey getEncryptedPrivateKey()
focal_class.identifier: getEncryptedPrivateKey
focal_class.modifiers: @Nullable public
focal_class.parameters: ()
focal_class.return: EncryptedPrivateKey
focal_class.signature: EncryptedPrivateKey getEncryptedPrivateKey()
focal_class.class_method_signature: ECKey.getKeyCrypter()
focal_class.full_signature: public KeyCrypter getKeyCrypter()
focal_class.identifier: getKeyCrypter
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: KeyCrypter
focal_class.signature: KeyCrypter getKeyCrypter()
focal_method.body: public ECDSASignature sign(Sha256Hash input) throws KeyCrypterException {
          return sign(input, null);
      }
focal_method.class_method_signature: ECKey.sign(Sha256Hash input)
focal_method.full_signature: public ECDSASignature sign(Sha256Hash input)
focal_method.identifier: sign
focal_method.invocations: sign
focal_method.modifiers: public
focal_method.parameters: (Sha256Hash input)
focal_method.return: ECDSASignature
focal_method.signature: ECDSASignature sign(Sha256Hash input)