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/** 188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @author Boris V. Kuznetsov 198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.crypto.tests.support; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.AlgorithmParameters; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.InvalidAlgorithmParameterException; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.InvalidKeyException; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Key; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.NoSuchAlgorithmException; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.SecureRandom; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.spec.AlgorithmParameterSpec; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.crypto.BadPaddingException; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.crypto.CipherSpi; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.crypto.IllegalBlockSizeException; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.crypto.NoSuchPaddingException; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport javax.crypto.ShortBufferException; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Cipher implementation for testing 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class MyCipher extends CipherSpi { 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public MyCipher() { 438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super(); 448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineSetMode(String mode) throws NoSuchAlgorithmException { 488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineSetPadding(String padding) 528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath throws NoSuchPaddingException { 538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath if (!"PKCS5Padding".equals(padding)) { 548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath throw new NoSuchPaddingException(padding); 558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected int engineGetBlockSize() { 608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return 111; 618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected int engineGetOutputSize(int inputLen) { 658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return inputLen + 10; 668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected byte[] engineGetIV() { 708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath byte[] b = { 1, 2, 3 }; 718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return b; 728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected AlgorithmParameters engineGetParameters() { 768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return null; 778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(int opmode, Key key, SecureRandom random) 818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath throws InvalidKeyException { 828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(int opmode, Key key, 868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath AlgorithmParameterSpec params, SecureRandom random) 878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath throws InvalidKeyException, InvalidAlgorithmParameterException { 888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void engineInit(int opmode, Key key, AlgorithmParameters params, 928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath SecureRandom random) throws InvalidKeyException, 938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath InvalidAlgorithmParameterException { 948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected byte[] engineUpdate(byte[] input, int inputOffset, int inputLen) { 988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return null; 998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected int engineUpdate(byte[] input, int inputOffset, int inputLen, 1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath byte[] output, int outputOffset) throws ShortBufferException { 1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return 0; 1058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected byte[] engineDoFinal(byte[] input, int inputOffset, int inputLen) 1098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath throws IllegalBlockSizeException, BadPaddingException { 1108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return null; 1118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected int engineDoFinal(byte[] input, int inputOffset, int inputLen, 1158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath byte[] output, int outputOffset) throws ShortBufferException, 1168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IllegalBlockSizeException, BadPaddingException { 1178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return 0; 1188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 121