From 30580f71eca0e67255693b5c9e545639acc67c44 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Fri, 18 Nov 2011 11:05:07 +0000 Subject: [PATCH] Made erasable keys thread-safe. --- components/net/sf/briar/crypto/ErasableKeyImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/components/net/sf/briar/crypto/ErasableKeyImpl.java b/components/net/sf/briar/crypto/ErasableKeyImpl.java index b50c424797..b1b43ea0e2 100644 --- a/components/net/sf/briar/crypto/ErasableKeyImpl.java +++ b/components/net/sf/briar/crypto/ErasableKeyImpl.java @@ -13,8 +13,8 @@ class ErasableKeyImpl implements ErasableKey { private final byte[] key; private final String algorithm; - private Collection<byte[]> copies = null; - private boolean erased = false; + private Collection<byte[]> copies = null; // Locking: this + private boolean erased = false; // Locking: this ErasableKeyImpl(byte[] key, String algorithm) { this.key = key; @@ -25,7 +25,7 @@ class ErasableKeyImpl implements ErasableKey { return algorithm; } - public byte[] getEncoded() { + public synchronized byte[] getEncoded() { if(erased) throw new IllegalStateException(); byte[] b = new byte[key.length]; System.arraycopy(key, 0, b, 0, key.length); @@ -42,7 +42,7 @@ class ErasableKeyImpl implements ErasableKey { return new ErasableKeyImpl(getEncoded(), algorithm); } - public void erase() { + public synchronized void erase() { if(erased) throw new IllegalStateException(); ByteUtils.erase(key); if(copies != null) for(byte[] b : copies) ByteUtils.erase(b); -- GitLab