From 0a574afd91951334c7e26b43c5739d72ebe4cbf3 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 9 Aug 2021 12:16:12 +0200 Subject: [PATCH] Improve encryption concurrency Do not perform base64-encoding under lock, allowing cipher to be used while we process its result. Change-Id: I804a26eab36b7a78ad3532857cf5edb949bfd81e Signed-off-by: Robert Varga --- .../aaa/encrypt/impl/AAAEncryptionServiceImpl.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/aaa-encrypt-service/impl/src/main/java/org/opendaylight/aaa/encrypt/impl/AAAEncryptionServiceImpl.java b/aaa-encrypt-service/impl/src/main/java/org/opendaylight/aaa/encrypt/impl/AAAEncryptionServiceImpl.java index 6cbbf8bad..f7fbf81b4 100644 --- a/aaa-encrypt-service/impl/src/main/java/org/opendaylight/aaa/encrypt/impl/AAAEncryptionServiceImpl.java +++ b/aaa-encrypt-service/impl/src/main/java/org/opendaylight/aaa/encrypt/impl/AAAEncryptionServiceImpl.java @@ -126,16 +126,17 @@ public class AAAEncryptionServiceImpl implements AAAEncryptionService { LOG.warn("Encryption Key is NULL, will not encrypt data."); return data; } + + final byte[] cryptobytes; try { synchronized (encryptCipher) { - byte[] cryptobytes = encryptCipher.doFinal(data.getBytes(Charset.defaultCharset())); - String cryptostring = DatatypeConverter.printBase64Binary(cryptobytes); - return cryptostring; + cryptobytes = encryptCipher.doFinal(data.getBytes(Charset.defaultCharset())); } } catch (IllegalBlockSizeException | BadPaddingException e) { LOG.error("Failed to encrypt data.", e); + return data; } - return data; + return DatatypeConverter.printBase64Binary(cryptobytes); } @Override @@ -152,8 +153,8 @@ public class AAAEncryptionServiceImpl implements AAAEncryptionService { } } catch (IllegalBlockSizeException | BadPaddingException e) { LOG.error("Failed to encrypt data.", e); + return data; } - return data; } @Override -- 2.36.6