class ECKey implements EncryptableItem {

    public static boolean encryptionIsReversible(ECKey originalKey, ECKey encryptedKey, KeyCrypter keyCrypter, KeyParameter aesKey) {
        try {
            ECKey rebornUnencryptedKey = encryptedKey.decrypt(keyCrypter, aesKey);
            byte[] originalPrivateKeyBytes = originalKey.getPrivKeyBytes();
            byte[] rebornKeyBytes = rebornUnencryptedKey.getPrivKeyBytes();
            if (!Arrays.equals(originalPrivateKeyBytes, rebornKeyBytes)) {
                log.error("The check that encryption could be reversed failed for {}", originalKey);
                return false;
            }
            return true;
        } catch (KeyCrypterException kce) {
            log.error(kce.getMessage());
            return false;
        }
    }

    public  ECKey();
    public  ECKey(SecureRandom secureRandom);
    protected  ECKey(@Nullable BigInteger priv, ECPoint pub);
    protected  ECKey(@Nullable BigInteger priv, LazyECPoint pub);
    @Deprecated public  ECKey(@Nullable byte[] privKeyBytes, @Nullable byte[] pubKey);
    @Deprecated public  ECKey(EncryptedData encryptedPrivateKey, byte[] pubKey, KeyCrypter keyCrypter);
    @Deprecated public  ECKey(@Nullable BigInteger privKey, @Nullable byte[] pubKey, boolean compressed);
    @Deprecated private  ECKey(@Nullable BigInteger privKey, @Nullable byte[] pubKey);

}