Repository: mina-sshd
Updated Branches:
  refs/heads/master 8f2fb4453 -> e94b082b3


[SSHD-710] Added partial buffer signature vector tests for Ed25519 keys


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/e94b082b
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/e94b082b
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/e94b082b

Branch: refs/heads/master
Commit: e94b082b38dac01b7ee0e4e5376e78fda67d12f2
Parents: 8f2fb44
Author: Lyor Goldstein <lyor.goldst...@gmail.com>
Authored: Mon Nov 14 20:54:40 2016 +0200
Committer: Lyor Goldstein <lyor.goldst...@gmail.com>
Committed: Mon Nov 14 20:54:40 2016 +0200

----------------------------------------------------------------------
 .../util/security/eddsa/Ed25519VectorsTest.java | 27 ++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/e94b082b/sshd-core/src/test/java/org/apache/sshd/common/util/security/eddsa/Ed25519VectorsTest.java
----------------------------------------------------------------------
diff --git 
a/sshd-core/src/test/java/org/apache/sshd/common/util/security/eddsa/Ed25519VectorsTest.java
 
b/sshd-core/src/test/java/org/apache/sshd/common/util/security/eddsa/Ed25519VectorsTest.java
index 637032d..fab3294 100644
--- 
a/sshd-core/src/test/java/org/apache/sshd/common/util/security/eddsa/Ed25519VectorsTest.java
+++ 
b/sshd-core/src/test/java/org/apache/sshd/common/util/security/eddsa/Ed25519VectorsTest.java
@@ -19,6 +19,7 @@
 
 package org.apache.sshd.common.util.security.eddsa;
 
+import java.nio.charset.StandardCharsets;
 import java.security.GeneralSecurityException;
 import java.security.PrivateKey;
 import java.security.PublicKey;
@@ -201,14 +202,36 @@ public class Ed25519VectorsTest extends BaseTestSupport {
     public void testSignature() throws Exception {
         Signature signer = EdDSASecurityProvider.getEDDSASignature();
         signer.initSigner(privateKey);
-        signer.update(msgBytes);
+        signer.update(msgBytes.clone());
 
         byte[] actSignature = signer.sign();
         assertArrayEquals("Mismatched signature", expSignature, actSignature);
 
         Signature verifier = EdDSASecurityProvider.getEDDSASignature();
         verifier.initVerifier(publicKey);
-        verifier.update(msgBytes);
+        verifier.update(msgBytes.clone());
+        assertTrue("Verification failed", verifier.verify(expSignature));
+    }
+
+    @Test
+    public void testPartialBufferSignature() throws Exception {
+        byte[] extraData = 
getCurrentTestName().getBytes(StandardCharsets.UTF_8);
+        byte[] dataBuf = new byte[msgBytes.length + extraData.length];
+        int offset = extraData.length / 2;
+        System.arraycopy(extraData, 0, dataBuf, 0, offset);
+        System.arraycopy(msgBytes, 0, dataBuf, offset, msgBytes.length);
+        System.arraycopy(extraData, offset, dataBuf, offset + msgBytes.length, 
extraData.length - offset);
+
+        Signature signer = EdDSASecurityProvider.getEDDSASignature();
+        signer.initSigner(privateKey);
+        signer.update(dataBuf.clone(), offset, msgBytes.length);
+
+        byte[] actSignature = signer.sign();
+        assertArrayEquals("Mismatched signature", expSignature, actSignature);
+
+        Signature verifier = EdDSASecurityProvider.getEDDSASignature();
+        verifier.initVerifier(publicKey);
+        verifier.update(dataBuf.clone(), offset, msgBytes.length);
         assertTrue("Verification failed", verifier.verify(expSignature));
     }
 }

Reply via email to