1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @author Boris V. Kuznetsov 208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage java.security; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.security.tests.support.MySignature1; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for <code>Signature</code> constructor and methods 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class SignatureTest extends TestCase { 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for Object clone() 358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testClone() { 378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.clone(); 408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected CloneNotSupportedException"); 418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (CloneNotSupportedException e) { 428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetProvider() { 468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.UNINITIALIZED, s.getState()); 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("provider", s.getProvider()); 508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetAlgorithm() { 538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.UNINITIALIZED, s.getState()); 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("algorithm", "ABC", s.getAlgorithm()); 578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for void initVerify(PublicKey) 618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testInitVerifyPublicKey() throws InvalidKeyException { 638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.initVerify(new MyPublicKey()); 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.VERIFY, s.getState()); 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("initVerify() failed", s.runEngineInitVerify); 688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for void initVerify(Certificate) 728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testInitVerifyCertificate() throws InvalidKeyException { 748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.initVerify(new MyCertificate()); 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.VERIFY, s.getState()); 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("initVerify() failed", s.runEngineInitVerify); 798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for void initSign(PrivateKey) 838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testInitSignPrivateKey() throws InvalidKeyException { 858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.initSign(new MyPrivateKey()); 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.SIGN, s.getState()); 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("initSign() failed", s.runEngineInitSign); 908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for void initSign(PrivateKey, SecureRandom) 948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testInitSignPrivateKeySecureRandom() throws InvalidKeyException { 968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.initSign(new MyPrivateKey(), new SecureRandom()); 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.SIGN, s.getState()); 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("initSign() failed", s.runEngineInitSign); 1018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for byte[] sign() 1058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testSign() throws Exception { 1078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 1088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.sign(); 1108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected SignatureException"); 1118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (SignatureException e) { 1128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.initVerify(new MyPublicKey()); 1158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.sign(); 1188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected SignatureException"); 1198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (SignatureException e) { 1208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.initSign(new MyPrivateKey()); 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.sign(); 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.SIGN, s.getState()); 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("sign() failed", s.runEngineSign); 1268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for boolean verify(byte[]) 1308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testVerifybyteArray() throws Exception { 1328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 1338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath byte[] b = { 1, 2, 3, 4 }; 1348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.verify(b); 1368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected SignatureException"); 1378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (SignatureException e) { 1388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.initSign(new MyPrivateKey()); 1418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.verify(b); 1438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected SignatureException"); 1448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (SignatureException e) { 1458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.initVerify(new MyPublicKey()); 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.verify(b); 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.VERIFY, s.getState()); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("verify() failed", s.runEngineVerify); 1518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for boolean verify(byte[], int, int) 1558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testVerifybyteArrayintint() throws Exception { 1578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 1588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath byte[] b = { 1, 2, 3, 4 }; 1598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.verify(b, 0, 3); 1618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected SignatureException"); 1628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (SignatureException e) { 1638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.initSign(new MyPrivateKey()); 1668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.verify(b, 0, 3); 1698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected SignatureException"); 1708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (SignatureException e) { 1718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.initVerify(new MyPublicKey()); 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.verify(b, 0, 5); 1778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected IllegalArgumentException"); 1788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (IllegalArgumentException e) { 1798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.verify(b, 0, 3); 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.VERIFY, s.getState()); 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("verify() failed", s.runEngineVerify); 1848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for void update(byte) 1888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testUpdatebyte() throws Exception { 1908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 1918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.update((byte) 1); 1938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected SignatureException"); 1948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (SignatureException e) { 1958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.initVerify(new MyPublicKey()); 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.update((byte) 1); 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.initSign(new MyPrivateKey()); 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.update((byte) 1); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.SIGN, s.getState()); 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("update() failed", s.runEngineUpdate1); 2048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 2078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for void update(byte[]) 2088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testUpdatebyteArray() throws Exception { 2108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 2118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath byte[] b = { 1, 2, 3, 4 }; 2128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 2138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.update(b); 2148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected SignatureException"); 2158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (SignatureException e) { 2168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.initVerify(new MyPublicKey()); 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.update(b); 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.initSign(new MyPrivateKey()); 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.update(b); 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.SIGN, s.getState()); 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("update() failed", s.runEngineUpdate2); 2258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 2288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for void update(byte[], int, int) 2298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testUpdatebyteArrayintint() throws Exception { 2318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 2328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath byte[] b = { 1, 2, 3, 4 }; 2338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 2348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.update(b, 0, 3); 2358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected SignatureException"); 2368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (SignatureException e) { 2378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.initVerify(new MyPublicKey()); 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.update(b, 0, 3); 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.initSign(new MyPrivateKey()); 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.update(b, 0, 3); 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("state", Signature.SIGN, s.getState()); 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("update() failed", s.runEngineUpdate2); 2468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 2498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for void setParameter(String, Object) 2508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testSetParameterStringObject() { 2528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 2538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.setParameter("aaa", new Object()); 2548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 2578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Class under test for void setParameter(AlgorithmParameterSpec) 2588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testSetParameterAlgorithmParameterSpec() throws InvalidAlgorithmParameterException { 2608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 2618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 2628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath s.setParameter((java.security.spec.AlgorithmParameterSpec) null); 2638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("No expected UnsupportedOperationException"); 2648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (UnsupportedOperationException e) { 2658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetParameter() { 2698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MySignature1 s = new MySignature1("ABC"); 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s.getParameter("aaa"); 2718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private class MyKey implements Key { 2748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public String getFormat() { 2758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return "123"; 2768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public byte[] getEncoded() { 2798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return null; 2808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public String getAlgorithm() { 2838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return "aaa"; 2848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private class MyPublicKey extends MyKey implements PublicKey { 2888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private class MyPrivateKey extends MyKey implements PrivateKey { 2918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private class MyCertificate extends java.security.cert.Certificate { 2948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public MyCertificate() { 2958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super("MyCertificateType"); 2968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public PublicKey getPublicKey() { 2998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return new MyPublicKey(); 3008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public byte[] getEncoded() { 3038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return null; 3048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void verify(PublicKey key) { 3078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void verify(PublicKey key, String sigProvider) { 3108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public String toString() { 3138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return "MyCertificate"; 3148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 317