This is an automated email from the ASF dual-hosted git repository.
toulmean pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-tuweni.git
The following commit(s) were added to refs/heads/master by this push:
new 1519c2b Expose the ability to destroy public keys directly
1519c2b is described below
commit 1519c2ba6094bf2aeb9f3b5a15544a7eed662db2
Author: Antoine Toulme <[email protected]>
AuthorDate: Mon Mar 2 11:18:32 2020 -0800
Expose the ability to destroy public keys directly
---
.../src/main/java/org/apache/tuweni/crypto/sodium/Box.java | 12 +++++++++++-
.../main/java/org/apache/tuweni/crypto/sodium/Signature.java | 12 +++++++++++-
.../test/java/org/apache/tuweni/crypto/sodium/BoxTest.java | 11 +++++++++++
.../java/org/apache/tuweni/crypto/sodium/SignatureTest.java | 10 ++++++++++
4 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/crypto/src/main/java/org/apache/tuweni/crypto/sodium/Box.java
b/crypto/src/main/java/org/apache/tuweni/crypto/sodium/Box.java
index 56a4125..e8fb0d9 100644
--- a/crypto/src/main/java/org/apache/tuweni/crypto/sodium/Box.java
+++ b/crypto/src/main/java/org/apache/tuweni/crypto/sodium/Box.java
@@ -74,7 +74,7 @@ public final class Box implements AutoCloseable {
/**
* A Box public key.
*/
- public static final class PublicKey {
+ public static final class PublicKey implements Destroyable {
final Allocated value;
private PublicKey(Pointer ptr, int length) {
@@ -181,6 +181,16 @@ public final class Box implements AutoCloseable {
public byte[] bytesArray() {
return value.bytesArray();
}
+
+ @Override
+ public void destroy() {
+ value.destroy();
+ }
+
+ @Override
+ public boolean isDestroyed() {
+ return value.isDestroyed();
+ }
}
/**
diff --git
a/crypto/src/main/java/org/apache/tuweni/crypto/sodium/Signature.java
b/crypto/src/main/java/org/apache/tuweni/crypto/sodium/Signature.java
index 52b456f..a94fb8b 100644
--- a/crypto/src/main/java/org/apache/tuweni/crypto/sodium/Signature.java
+++ b/crypto/src/main/java/org/apache/tuweni/crypto/sodium/Signature.java
@@ -56,7 +56,7 @@ public final class Signature {
/**
* A signing public key.
*/
- public static final class PublicKey {
+ public static final class PublicKey implements Destroyable {
final Allocated value;
private PublicKey(Pointer ptr, int length) {
@@ -156,6 +156,16 @@ public final class Signature {
public byte[] bytesArray() {
return value.bytesArray();
}
+
+ @Override
+ public void destroy() {
+ value.destroy();
+ }
+
+ @Override
+ public boolean isDestroyed() {
+ return value.isDestroyed();
+ }
}
/**
diff --git a/crypto/src/test/java/org/apache/tuweni/crypto/sodium/BoxTest.java
b/crypto/src/test/java/org/apache/tuweni/crypto/sodium/BoxTest.java
index 950e9ae..7dec77a 100644
--- a/crypto/src/test/java/org/apache/tuweni/crypto/sodium/BoxTest.java
+++ b/crypto/src/test/java/org/apache/tuweni/crypto/sodium/BoxTest.java
@@ -15,8 +15,10 @@ package org.apache.tuweni.crypto.sodium;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
import org.junit.jupiter.api.BeforeAll;
@@ -191,4 +193,13 @@ class BoxTest {
Box.KeyPair boxKeyPair = Box.KeyPair.forSignatureKeyPair(keyPair);
assertEquals(boxKeyPair, Box.KeyPair.forSecretKey(boxSecretKey));
}
+
+ @Test
+ void testDestroyPublicKey() {
+ Box.KeyPair keyPair = Box.KeyPair.random();
+ Box.PublicKey boxPubKey =
Box.PublicKey.fromBytes(keyPair.publicKey().bytes());
+ boxPubKey.destroy();
+ assertTrue(boxPubKey.isDestroyed());
+ assertFalse(keyPair.publicKey().isDestroyed());
+ }
}
diff --git
a/crypto/src/test/java/org/apache/tuweni/crypto/sodium/SignatureTest.java
b/crypto/src/test/java/org/apache/tuweni/crypto/sodium/SignatureTest.java
index 2245316..c50c601 100644
--- a/crypto/src/test/java/org/apache/tuweni/crypto/sodium/SignatureTest.java
+++ b/crypto/src/test/java/org/apache/tuweni/crypto/sodium/SignatureTest.java
@@ -13,6 +13,7 @@
package org.apache.tuweni.crypto.sodium;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
@@ -51,4 +52,13 @@ class SignatureTest {
assertEquals(Bytes.fromHexString("deadbeef"), messageBytes);
}
+ @Test
+ void testDestroyPublicKey() {
+ Signature.KeyPair keyPair = Signature.KeyPair.random();
+ Signature.PublicKey sigPubKey =
Signature.PublicKey.fromBytes(keyPair.publicKey().bytes());
+ sigPubKey.destroy();
+ assertTrue(sigPubKey.isDestroyed());
+ assertFalse(keyPair.publicKey().isDestroyed());
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]