Skip to content

Commit 0b39aae

Browse files
committed
One-shot mode tests
1 parent 566c055 commit 0b39aae

File tree

1 file changed

+88
-1
lines changed

1 file changed

+88
-1
lines changed

test/net/i2p/crypto/eddsa/EdDSAEngineTest.java

Lines changed: 88 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ public void testSignResetsForReuse() throws Exception {
108108

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

114113
EdDSAPublicKeySpec pubKey = new EdDSAPublicKeySpec(TEST_PK,
@@ -124,4 +123,92 @@ public void testVerifyResetsForReuse() throws Exception {
124123
sgr.update(TEST_MSG);
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
}

0 commit comments

Comments
 (0)