From 16cdb592875fb36c7d3b67606e449fd2da00a98e Mon Sep 17 00:00:00 2001 From: "roman.strobl@wultra.com" Date: Tue, 11 Jul 2023 16:49:42 +0200 Subject: [PATCH] Add envelope key initialization --- .../crypto/lib/encryptor/ecies/EciesEncryptor.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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. *