All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.whispersystems.curve25519.Curve25519Provider Maven / Gradle / Ivy

There is a newer version: 0.5.0
Show newest version
/**
 * Copyright (C) 2014-2016 Open Whisper Systems
 *
 * Licensed according to the LICENSE file in this repository.
 */

package org.whispersystems.curve25519;

interface Curve25519Provider {

  static final int PRIVATE_KEY_LEN = 32;

  boolean isNative();
  byte[] calculateAgreement(byte[] ourPrivate, byte[] theirPublic);
  byte[] generatePublicKey(byte[] privateKey);
  byte[] generatePrivateKey();
  byte[] generatePrivateKey(byte[] random);

  byte[] calculateSignature(byte[] random, byte[] privateKey, byte[] message);
  boolean verifySignature(byte[] publicKey, byte[] message, byte[] signature);
  byte[] calculateVrfSignature(byte[] random, byte[] privateKey, byte[] message);
  byte[] verifyVrfSignature(byte[] publicKey, byte[] message, byte[] signature)
      throws VrfSignatureVerificationFailedException;

  byte[] getRandom(int length);

  void setRandomProvider(SecureRandomProvider provider);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy