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 org.apache.harmony.security.tests.java.security; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.math.BigInteger; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.AlgorithmParameters; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.AlgorithmParametersSpi; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Provider; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Security; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.spec.AlgorithmParameterSpec; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.spec.DSAParameterSpec; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.spec.InvalidParameterSpecException; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for <code>AlgorithmParameters</code> class constructors and 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * methods. 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class AlgorithmParametersTest extends TestCase { 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Provider 458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Provider p; 478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @see TestCase#setUp() 508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath protected void setUp() throws Exception { 528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super.setUp(); 538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath p = new MyProvider(); 548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Security.insertProviderAt(p, 1); 558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @see TestCase#tearDown() 598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath protected void tearDown() throws Exception { 618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super.tearDown(); 628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Security.removeProvider(p.getName()); 638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#getAlgorithm() 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getAlgorithm() throws Exception { 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: null value 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters ap = new DummyAlgorithmParameters(null, p, null); 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(ap.getAlgorithm()); 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: not null value 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ap = new DummyAlgorithmParameters(null, p, "AAA"); 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("AAA", ap.getAlgorithm()); 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#getEncoded() 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getEncoded() throws Exception { 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final byte[] enc = new byte[] { 0x02, 0x01, 0x03 }; 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyAlgorithmParameters paramSpi = new MyAlgorithmParameters() { 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected byte[] engineGetEncoded() throws IOException { 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return enc; 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters params = new DummyAlgorithmParameters(paramSpi, p, 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "algorithm"); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: IOException if not initialized 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.getEncoded(); 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should not get encoded from un-initialized instance"); 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: corresponding spi method is invoked 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new MyAlgorithmParameterSpec()); 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(enc, params.getEncoded()); 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#getEncoded(String) 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getEncodedLjava_lang_String() throws Exception { 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final byte[] enc = new byte[] { 0x02, 0x01, 0x03 }; 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final String strFormatParam = "format"; 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyAlgorithmParameters paramSpi = new MyAlgorithmParameters() { 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected byte[] engineGetEncoded(String format) throws IOException { 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(strFormatParam, format); 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return enc; 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters params = new DummyAlgorithmParameters(paramSpi, p, 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "algorithm"); 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: IOException if not initialized 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.getEncoded(strFormatParam); 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should not get encoded from un-initialized instance"); 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: corresponding spi method is invoked 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new MyAlgorithmParameterSpec()); 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(enc, params.getEncoded(strFormatParam)); 1468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: if format param is null 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for HARMONY-2680 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes paramSpi = new MyAlgorithmParameters() { 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected byte[] engineGetEncoded(String format) throws IOException { 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(format); // null is passed to spi-provider 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return enc; 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new MyAlgorithmParameterSpec()); 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(enc, params.getEncoded(null)); 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#getInstance(String) 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getInstanceLjava_lang_String() throws Exception { 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters ap = AlgorithmParameters.getInstance("ABC"); 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkUnititialized(ap); 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ap.init(new MyAlgorithmParameterSpec()); 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkAP(ap, p); 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#getInstance(String, String) 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getInstanceLjava_lang_StringLjava_lang_String() 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws Exception { 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters ap = AlgorithmParameters.getInstance("ABC", 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "MyProvider"); 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkUnititialized(ap); 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ap.init(new byte[6]); 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkAP(ap, p); 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#getParameterSpec(Class) 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getParameterSpecLjava_lang_Class() throws Exception { 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final MyAlgorithmParameterSpec myParamSpec = new MyAlgorithmParameterSpec(); 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyAlgorithmParameters paramSpi = new MyAlgorithmParameters() { 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected AlgorithmParameterSpec engineGetParameterSpec( 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Class paramSpec) { 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return myParamSpec; 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters params = new DummyAlgorithmParameters(paramSpi, p, 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "algorithm"); 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: InvalidParameterSpecException if not initialized 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.getParameterSpec(null); 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected InvalidParameterSpecException"); 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidParameterSpecException e) { 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.getParameterSpec(MyAlgorithmParameterSpec.class); 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected InvalidParameterSpecException"); 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidParameterSpecException e) { 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: corresponding spi method is invoked 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new MyAlgorithmParameterSpec()); 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(myParamSpec, params 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getParameterSpec(MyAlgorithmParameterSpec.class)); 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: if paramSpec is null 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for HARMONY-2733 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes paramSpi = new MyAlgorithmParameters() { 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected AlgorithmParameterSpec engineGetParameterSpec( 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Class paramSpec) { 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(paramSpec); // null is passed to spi-provider 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new MyAlgorithmParameterSpec()); 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(params.getParameterSpec(null)); 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#getInstance(String, Provider) 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getInstanceLjava_lang_StringLjava_security_Provider() 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws Exception { 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters ap = AlgorithmParameters.getInstance("ABC", p); 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkUnititialized(ap); 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ap.init(new byte[6], "aaa"); 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkAP(ap, p); 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#getProvider() 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getProvider() throws Exception { 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: null value 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters ap = new DummyAlgorithmParameters(null, null, "AAA"); 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(ap.getProvider()); 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: not null value 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ap = new DummyAlgorithmParameters(null, p, "AAA"); 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(p, ap.getProvider()); 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#init(java.security.spec.AlgorithmParameterSpec) 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_initLjava_security_spec_AlgorithmParameterSpec() 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws Exception { 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: corresponding spi method is invoked 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final MyAlgorithmParameterSpec spec = new MyAlgorithmParameterSpec(); 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyAlgorithmParameters paramSpi = new MyAlgorithmParameters() { 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(AlgorithmParameterSpec paramSpec) 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidParameterSpecException { 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(spec, paramSpec); 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes runEngineInit_AlgParamSpec = true; 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters params = new DummyAlgorithmParameters(paramSpi, p, 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "algorithm"); 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(spec); 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(paramSpi.runEngineInit_AlgParamSpec); 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: InvalidParameterSpecException if already initialized 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(spec); 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected InvalidParameterSpecException"); 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidParameterSpecException e) { 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new byte[0]); 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(spec); 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected InvalidParameterSpecException"); 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidParameterSpecException e) { 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new byte[0], "format"); 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(spec); 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected InvalidParameterSpecException"); 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidParameterSpecException e) { 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: if paramSpec is null 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes paramSpi = new MyAlgorithmParameters() { 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(AlgorithmParameterSpec paramSpec) 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidParameterSpecException { 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(paramSpec);// null is passed to spi-provider 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes runEngineInit_AlgParamSpec = true; 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init((AlgorithmParameterSpec) null); 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(paramSpi.runEngineInit_AlgParamSpec); 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#init(byte[]) 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_init$B() throws Exception { 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: corresponding spi method is invoked 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final byte[] enc = new byte[] { 0x02, 0x01, 0x03 }; 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyAlgorithmParameters paramSpi = new MyAlgorithmParameters() { 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(byte[] params) throws IOException { 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes runEngineInitB$ = true; 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(enc, params); 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters params = new DummyAlgorithmParameters(paramSpi, p, 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "algorithm"); 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc); 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(paramSpi.runEngineInitB$); 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: IOException if already initialized 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc); 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected IOException"); 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new MyAlgorithmParameterSpec()); 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc); 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected IOException"); 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc, "format"); 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc); 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected IOException"); 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: if params is null 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes paramSpi = new MyAlgorithmParameters() { 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(byte[] params) throws IOException { 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes runEngineInitB$ = true; 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(params); // null is passed to spi-provider 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init((byte[]) null); 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(paramSpi.runEngineInitB$); 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 4178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.AlgorithmParameters#init(byte[], String) 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_init$BLjava_lang_String() throws Exception { 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: corresponding spi method is invoked 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final byte[] enc = new byte[] { 0x02, 0x01, 0x03 }; 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final String strFormatParam = "format"; 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyAlgorithmParameters paramSpi = new MyAlgorithmParameters() { 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(byte[] params, String format) 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws IOException { 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes runEngineInitB$String = true; 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(enc, params); 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(strFormatParam, format); 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters params = new DummyAlgorithmParameters(paramSpi, p, 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "algorithm"); 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc, strFormatParam); 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(paramSpi.runEngineInitB$String); 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: IOException if already initialized 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc, strFormatParam); 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected IOException"); 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new MyAlgorithmParameterSpec()); 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc, strFormatParam); 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected IOException"); 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc); 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc, strFormatParam); 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No expected IOException"); 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test: if params and format are null 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for HARMONY-2724 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes paramSpi = new MyAlgorithmParameters() { 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(byte[] params, String format) 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws IOException { 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes runEngineInitB$String = true; 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // null is passed to spi-provider 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(params); 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(format); 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = new DummyAlgorithmParameters(paramSpi, p, "algorithm"); 489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(null, null); 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(paramSpi.runEngineInitB$String); 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.security.AlgorithmParameters#toString() 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_toString() throws Exception { 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final String str = "AlgorithmParameters"; 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyAlgorithmParameters paramSpi = new MyAlgorithmParameters() { 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected String engineToString() { 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return str; 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters params = new DummyAlgorithmParameters(paramSpi, p, 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "algorithm"); 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("unititialized", params.toString()); 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new byte[0]); 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(str, params.toString()); 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests DSA AlgorithmParameters provider 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testDSAProvider() throws Exception { 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters params = AlgorithmParameters.getInstance("DSA"); 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Algorithm", "DSA", params.getAlgorithm()); 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // init(AlgorithmParameterSpec) 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger p = BigInteger.ONE; 526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger q = BigInteger.TEN; 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger g = BigInteger.ZERO; 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(new DSAParameterSpec(p, q, g)); 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // getEncoded() and getEncoded(String) (TODO verify returned encoding) 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] enc = params.getEncoded(); 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(enc); 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotNull(params.getEncoded("ASN.1")); 534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // TODO assertNotNull(params.getEncoded(null)); // HARMONY-2680 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // getParameterSpec(Class) 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DSAParameterSpec spec = params.getParameterSpec(DSAParameterSpec.class); 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("p is wrong ", p, spec.getP()); 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("q is wrong ", q, spec.getQ()); 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("g is wrong ", g, spec.getG()); 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // init(byte[]) 543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = AlgorithmParameters.getInstance("DSA"); 544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc); 545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("param encoded is different", Arrays.equals(enc, params 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getEncoded())); 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // init(byte[], String) 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = AlgorithmParameters.getInstance("DSA"); 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc, "ASN.1"); 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("param encoded is different", Arrays.equals(enc, params 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getEncoded())); 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params = AlgorithmParameters.getInstance("DSA"); 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes params.init(enc, "DOUGLASMAWSON"); 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("unsupported format should have raised IOException"); 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests OAEP AlgorithmParameters provider 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testOAEPProvider() throws Exception { 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes AlgorithmParameters params = AlgorithmParameters.getInstance("OAEP"); 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Algorithm", "OAEP", params.getAlgorithm()); 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 5718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 5728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private void checkUnititialized(AlgorithmParameters ap) { 573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull("Uninitialized: toString() failed", ap.toString()); 5748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 5758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 5768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private void checkAP(AlgorithmParameters ap, Provider p) throws Exception { 577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("getProvider() failed", p, ap.getProvider()); 579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("getAlgorithm() failed", "ABC", ap.getAlgorithm()); 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("AlgorithmParameters", ap.toString()); 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("toString() failed", MyAlgorithmParameters.runEngineToString); 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @SuppressWarnings("serial") 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private class MyProvider extends Provider { 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyProvider() { 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super("MyProvider", 1.0, "Provider for testing"); 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes put("AlgorithmParameters.ABC", MyAlgorithmParameters.class 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getName()); 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyProvider(String name, double version, String info) { 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(name, version, info); 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 5978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 5988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private class MyAlgorithmParameterSpec implements java.security.spec.AlgorithmParameterSpec { 5998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 6008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 6018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private class DummyAlgorithmParameters extends AlgorithmParameters { 6028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public DummyAlgorithmParameters(AlgorithmParametersSpi paramSpi, 6038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Provider provider, String algorithm) { 6048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super(paramSpi, provider, algorithm); 6058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 6068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 6078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static class MyAlgorithmParameters extends AlgorithmParametersSpi { 609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean runEngineInit_AlgParamSpec = false; 611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean runEngineInitB$ = false; 613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean runEngineInitB$String = false; 615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public static boolean runEngineToString = false; 617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(AlgorithmParameterSpec paramSpec) 619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidParameterSpecException { 620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(byte[] params) throws IOException { 623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(byte[] params, String format) 626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws IOException { 627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec) 630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws InvalidParameterSpecException { 631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected byte[] engineGetEncoded() throws IOException { 635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected byte[] engineGetEncoded(String format) throws IOException { 639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected String engineToString() { 643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes runEngineToString = true; 644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return "AlgorithmParameters"; 645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 648