Changeset 7ccca9e


Ignore:
Timestamp:
Feb 28, 2016 4:18:04 AM (5 years ago)
Author:
str4d <str4d@…>
Branches:
master
Children:
49104134
Parents:
6e7f015
Message:

EdDSAEngine: one-shot mode tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • core/java/test/junit/net/i2p/crypto/eddsa/EdDSAEngineTest.java

    r6e7f015 r7ccca9e  
    109109    @Test
    110110    public void testVerifyResetsForReuse() throws Exception {
    111         //Signature sgr = Signature.getInstance("EdDSA", "I2P");
    112111        Signature sgr = new EdDSAEngine(MessageDigest.getInstance("SHA-512"));
    113112
     
    125124        assertThat("Second verify failed", sgr.verify(TEST_MSG_SIG), is(true));
    126125    }
     126
     127    @Test
     128    public void testSignOneShotMode() throws Exception {
     129        Signature sgr = new EdDSAEngine(MessageDigest.getInstance("SHA-512"));
     130        EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("ed25519-sha-512");
     131
     132        EdDSAPrivateKeySpec privKey = new EdDSAPrivateKeySpec(TEST_SEED, spec);
     133        PrivateKey sKey = new EdDSAPrivateKey(privKey);
     134        sgr.initSign(sKey);
     135        sgr.setParameter(EdDSAEngine.ONE_SHOT_MODE);
     136
     137        sgr.update(TEST_MSG);
     138
     139        assertThat("One-shot mode sign failed", sgr.sign(), is(equalTo(TEST_MSG_SIG)));
     140    }
     141
     142    @Test
     143    public void testVerifyOneShotMode() throws Exception {
     144        Signature sgr = new EdDSAEngine(MessageDigest.getInstance("SHA-512"));
     145
     146        EdDSAPublicKeySpec pubKey = new EdDSAPublicKeySpec(TEST_PK,
     147                EdDSANamedCurveTable.getByName("ed25519-sha-512"));
     148        PublicKey vKey = new EdDSAPublicKey(pubKey);
     149        sgr.initVerify(vKey);
     150        sgr.setParameter(EdDSAEngine.ONE_SHOT_MODE);
     151
     152        sgr.update(TEST_MSG);
     153
     154        assertThat("One-shot mode verify failed", sgr.verify(TEST_MSG_SIG), is(true));
     155    }
     156
     157    @Test
     158    public void testSignOneShotModeMultipleUpdates() throws Exception {
     159        Signature sgr = new EdDSAEngine(MessageDigest.getInstance("SHA-512"));
     160        EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("ed25519-sha-512");
     161
     162        EdDSAPrivateKeySpec privKey = new EdDSAPrivateKeySpec(TEST_SEED, spec);
     163        PrivateKey sKey = new EdDSAPrivateKey(privKey);
     164        sgr.initSign(sKey);
     165        sgr.setParameter(EdDSAEngine.ONE_SHOT_MODE);
     166
     167        sgr.update(TEST_MSG);
     168
     169        exception.expect(SignatureException.class);
     170        exception.expectMessage("update() already called");
     171        sgr.update(TEST_MSG);
     172    }
     173
     174    @Test
     175    public void testVerifyOneShotModeMultipleUpdates() throws Exception {
     176        Signature sgr = new EdDSAEngine(MessageDigest.getInstance("SHA-512"));
     177
     178        EdDSAPublicKeySpec pubKey = new EdDSAPublicKeySpec(TEST_PK,
     179                EdDSANamedCurveTable.getByName("ed25519-sha-512"));
     180        PublicKey vKey = new EdDSAPublicKey(pubKey);
     181        sgr.initVerify(vKey);
     182        sgr.setParameter(EdDSAEngine.ONE_SHOT_MODE);
     183
     184        sgr.update(TEST_MSG);
     185
     186        exception.expect(SignatureException.class);
     187        exception.expectMessage("update() already called");
     188        sgr.update(TEST_MSG);
     189    }
     190
     191    @Test
     192    public void testSignOneShot() throws Exception {
     193        EdDSAEngine sgr = new EdDSAEngine(MessageDigest.getInstance("SHA-512"));
     194        EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName("ed25519-sha-512");
     195
     196        EdDSAPrivateKeySpec privKey = new EdDSAPrivateKeySpec(TEST_SEED, spec);
     197        PrivateKey sKey = new EdDSAPrivateKey(privKey);
     198        sgr.initSign(sKey);
     199
     200        assertThat("signOneShot() failed", sgr.signOneShot(TEST_MSG), is(equalTo(TEST_MSG_SIG)));
     201    }
     202
     203    @Test
     204    public void testVerifyOneShot() throws Exception {
     205        EdDSAEngine sgr = new EdDSAEngine(MessageDigest.getInstance("SHA-512"));
     206
     207        EdDSAPublicKeySpec pubKey = new EdDSAPublicKeySpec(TEST_PK,
     208                EdDSANamedCurveTable.getByName("ed25519-sha-512"));
     209        PublicKey vKey = new EdDSAPublicKey(pubKey);
     210        sgr.initVerify(vKey);
     211
     212        assertThat("verifyOneShot() failed", sgr.verifyOneShot(TEST_MSG, TEST_MSG_SIG), is(true));
     213    }
    127214}
Note: See TracChangeset for help on using the changeset viewer.