/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (https://www.swig.org).
 * Version 4.3.0
 *
 * Do not make changes to this file unless you know what you are doing - modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package com.chilkatsoft;

public class CkEdDSA {
  private transient long swigCPtr;
  protected transient boolean swigCMemOwn;

  protected CkEdDSA(long cPtr, boolean cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = cPtr;
  }

  protected static long getCPtr(CkEdDSA obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  protected static long swigRelease(CkEdDSA obj) {
    long ptr = 0;
    if (obj != null) {
      if (!obj.swigCMemOwn)
        throw new RuntimeException("Cannot release ownership as memory is not owned");
      ptr = obj.swigCPtr;
      obj.swigCMemOwn = false;
      obj.delete();
    }
    return ptr;
  }

  @SuppressWarnings({"deprecation", "removal"})
  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        chilkatJNI.delete_CkEdDSA(swigCPtr);
      }
      swigCPtr = 0;
    }
  }

  public CkEdDSA() {
    this(chilkatJNI.new_CkEdDSA(), true);
  }

  public void LastErrorXml(CkString str) {
    chilkatJNI.CkEdDSA_LastErrorXml(swigCPtr, this, CkString.getCPtr(str), str);
  }

  public void LastErrorHtml(CkString str) {
    chilkatJNI.CkEdDSA_LastErrorHtml(swigCPtr, this, CkString.getCPtr(str), str);
  }

  public void LastErrorText(CkString str) {
    chilkatJNI.CkEdDSA_LastErrorText(swigCPtr, this, CkString.getCPtr(str), str);
  }

  public void get_Algorithm(CkString str) {
    chilkatJNI.CkEdDSA_get_Algorithm(swigCPtr, this, CkString.getCPtr(str), str);
  }

  public String algorithm() {
    return chilkatJNI.CkEdDSA_algorithm(swigCPtr, this);
  }

  public void put_Algorithm(String newVal) {
    chilkatJNI.CkEdDSA_put_Algorithm(swigCPtr, this, newVal);
  }

  public void get_Context(CkString str) {
    chilkatJNI.CkEdDSA_get_Context(swigCPtr, this, CkString.getCPtr(str), str);
  }

  public String context() {
    return chilkatJNI.CkEdDSA_context(swigCPtr, this);
  }

  public void put_Context(String newVal) {
    chilkatJNI.CkEdDSA_put_Context(swigCPtr, this, newVal);
  }

  public void get_DebugLogFilePath(CkString str) {
    chilkatJNI.CkEdDSA_get_DebugLogFilePath(swigCPtr, this, CkString.getCPtr(str), str);
  }

  public String debugLogFilePath() {
    return chilkatJNI.CkEdDSA_debugLogFilePath(swigCPtr, this);
  }

  public void put_DebugLogFilePath(String newVal) {
    chilkatJNI.CkEdDSA_put_DebugLogFilePath(swigCPtr, this, newVal);
  }

  public void get_LastErrorHtml(CkString str) {
    chilkatJNI.CkEdDSA_get_LastErrorHtml(swigCPtr, this, CkString.getCPtr(str), str);
  }

  public String lastErrorHtml() {
    return chilkatJNI.CkEdDSA_lastErrorHtml(swigCPtr, this);
  }

  public void get_LastErrorText(CkString str) {
    chilkatJNI.CkEdDSA_get_LastErrorText(swigCPtr, this, CkString.getCPtr(str), str);
  }

  public String lastErrorText() {
    return chilkatJNI.CkEdDSA_lastErrorText(swigCPtr, this);
  }

  public void get_LastErrorXml(CkString str) {
    chilkatJNI.CkEdDSA_get_LastErrorXml(swigCPtr, this, CkString.getCPtr(str), str);
  }

  public String lastErrorXml() {
    return chilkatJNI.CkEdDSA_lastErrorXml(swigCPtr, this);
  }

  public boolean get_LastMethodSuccess() {
    return chilkatJNI.CkEdDSA_get_LastMethodSuccess(swigCPtr, this);
  }

  public void put_LastMethodSuccess(boolean newVal) {
    chilkatJNI.CkEdDSA_put_LastMethodSuccess(swigCPtr, this, newVal);
  }

  public boolean get_VerboseLogging() {
    return chilkatJNI.CkEdDSA_get_VerboseLogging(swigCPtr, this);
  }

  public void put_VerboseLogging(boolean newVal) {
    chilkatJNI.CkEdDSA_put_VerboseLogging(swigCPtr, this, newVal);
  }

  public void get_Version(CkString str) {
    chilkatJNI.CkEdDSA_get_Version(swigCPtr, this, CkString.getCPtr(str), str);
  }

  public String version() {
    return chilkatJNI.CkEdDSA_version(swigCPtr, this);
  }

  public boolean GenEd25519Key(CkPrng prng, CkPrivateKey privKey) {
    return chilkatJNI.CkEdDSA_GenEd25519Key(swigCPtr, this, CkPrng.getCPtr(prng), prng, CkPrivateKey.getCPtr(privKey), privKey);
  }

  public boolean SharedSecretENC(CkPrivateKey privkey, CkPublicKey pubkey, String encoding, CkString outStr) {
    return chilkatJNI.CkEdDSA_SharedSecretENC(swigCPtr, this, CkPrivateKey.getCPtr(privkey), privkey, CkPublicKey.getCPtr(pubkey), pubkey, encoding, CkString.getCPtr(outStr), outStr);
  }

  public String sharedSecretENC(CkPrivateKey privkey, CkPublicKey pubkey, String encoding) {
    return chilkatJNI.CkEdDSA_sharedSecretENC(swigCPtr, this, CkPrivateKey.getCPtr(privkey), privkey, CkPublicKey.getCPtr(pubkey), pubkey, encoding);
  }

  public boolean SignBdENC(CkBinData bd, String encoding, CkPrivateKey privkey, CkString outStr) {
    return chilkatJNI.CkEdDSA_SignBdENC(swigCPtr, this, CkBinData.getCPtr(bd), bd, encoding, CkPrivateKey.getCPtr(privkey), privkey, CkString.getCPtr(outStr), outStr);
  }

  public String signBdENC(CkBinData bd, String encoding, CkPrivateKey privkey) {
    return chilkatJNI.CkEdDSA_signBdENC(swigCPtr, this, CkBinData.getCPtr(bd), bd, encoding, CkPrivateKey.getCPtr(privkey), privkey);
  }

  public boolean VerifyBdENC(CkBinData bd, String encodedSig, String enocding, CkPublicKey pubkey) {
    return chilkatJNI.CkEdDSA_VerifyBdENC(swigCPtr, this, CkBinData.getCPtr(bd), bd, encodedSig, enocding, CkPublicKey.getCPtr(pubkey), pubkey);
  }

}
