java.lang.Object
io.getlime.security.powerauth.crypto.lib.encryptor.ecies.EciesDecryptor

public class EciesDecryptor extends Object
Class implementing an ECIES decryptor.
Author:
Petr Dvorak, petr@wultra.com, Roman Strobl, roman.strobl@wultra.com
  • Constructor Details

    • EciesDecryptor

      public EciesDecryptor(ECPrivateKey encryptionPrivateKey)
      Construct a new decryptor with the base private key and null sharedInfo1 and sharedInfo2 parameters.
      Parameters:
      encryptionPrivateKey - Private key to be used for decryption.
    • EciesDecryptor

      public EciesDecryptor(ECPrivateKey encryptionPrivateKey, byte[] sharedInfo1, byte[] sharedInfo2)
      Construct a new decryptor with the base private key and provided sharedInfo1 and sharedInfo2 parameters.
      Parameters:
      encryptionPrivateKey - Private key to be used for decryption.
      sharedInfo1 - Additional shared information used during key derivation.
      sharedInfo2 - Additional shared information used during decryption.
    • EciesDecryptor

      public EciesDecryptor(EciesEnvelopeKey envelopeKey, byte[] sharedInfo2)
      Construct a decryptor from existing ECIES envelope key and sharedInfo2 parameter. The derivation of envelope key is skipped. The privateKey and sharedInfo1 values are unknown.
      Parameters:
      envelopeKey - ECIES envelope key.
      sharedInfo2 - Parameter sharedInfo2 for ECIES.
  • Method Details

    • initEnvelopeKey

      public void initEnvelopeKey(byte[] ephemeralPublicKeyBytes) throws EciesException
      Initialize envelope key for decryptor using provided ephemeral public key. This method is used either when there is no incoming encrypted request to decrypt which would initialize the envelope key or the decryptor parameters are transported over network and the decryptor is reconstructed on another server using envelope key and sharedInfo2 parameter.
      Parameters:
      ephemeralPublicKeyBytes - Ephemeral public key for ECIES.
      Throws:
      EciesException - In case envelope key initialization fails.
    • decrypt

      public byte[] decrypt(EciesPayload payload) throws EciesException
      Decrypt data from ECIES payload.
      Parameters:
      payload - ECIES payload.
      Returns:
      Decrypted data.
      Throws:
      EciesException - In case decryption fails.
    • getSharedInfo2

      public byte[] getSharedInfo2()
      Get parameter sharedInfo2 for ECIES.
      Returns:
      Parameter sharedInfo2 for ECIES.
    • getEnvelopeKey

      public EciesEnvelopeKey getEnvelopeKey()
      Get ECIES envelope key.
      Returns:
      ECIES envelope key.