diff --git a/powerauth-java-crypto/src/main/java/io/getlime/security/powerauth/crypto/lib/encryptor/ecies/EciesEncryptor.java b/powerauth-java-crypto/src/main/java/io/getlime/security/powerauth/crypto/lib/encryptor/ecies/EciesEncryptor.java index 0ca34036a..e08fb5e80 100644 --- a/powerauth-java-crypto/src/main/java/io/getlime/security/powerauth/crypto/lib/encryptor/ecies/EciesEncryptor.java +++ b/powerauth-java-crypto/src/main/java/io/getlime/security/powerauth/crypto/lib/encryptor/ecies/EciesEncryptor.java @@ -95,6 +95,20 @@ public EciesEncryptor(final EciesEnvelopeKey envelopeKey, final byte[] sharedInf this.canEncryptData = true; } + /** + * Initialize envelope key for encryptor using provided ephemeral public key. This method is used when the encryptor + * parameters are transported over network and the encryptor is reconstructed on another server using envelope key + * and sharedInfo2 parameter. + * + * @param ephemeralPublicKeyBytes Ephemeral public key for ECIES. + * @throws EciesException In case envelope key initialization fails. + */ + public void initEnvelopeKey(byte[] ephemeralPublicKeyBytes) throws EciesException { + envelopeKey = EciesEnvelopeKey.fromPublicKey(publicKey, sharedInfo1); + // Invalidate this encryptor for encryption + canEncryptData = false; + } + /** * Encrypt data. *