| /* |
| * Copyright (C) 2007 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package tests.security.interfaces; |
| |
| import junit.framework.TestCase; |
| |
| import java.math.BigInteger; |
| import java.security.interfaces.RSAMultiPrimePrivateCrtKey; |
| import java.security.spec.RSAOtherPrimeInfo; |
| |
| import org.apache.harmony.security.tests.support.interfaces.RSAMultiPrimePrivateCrtKeyImpl; |
| |
| public class RSAMultiPrimePrivateCrtKeyTest extends TestCase { |
| |
| /** |
| * Reference array of RSAOtherPrimeInfo. DO NOT MODIFY |
| */ |
| private static final RSAOtherPrimeInfo[] opi = new RSAOtherPrimeInfo[] { |
| new RSAOtherPrimeInfo(BigInteger.ONE, BigInteger.ONE, BigInteger.ONE), |
| new RSAOtherPrimeInfo(BigInteger.ONE, BigInteger.ONE, BigInteger.ONE), |
| new RSAOtherPrimeInfo(BigInteger.ONE, BigInteger.ONE, BigInteger.ONE) |
| }; |
| |
| private final BigInteger publicExponent = BigInteger.ONE; |
| private final BigInteger primeExponentP = BigInteger.ONE; |
| private final BigInteger primeExponentQ = BigInteger.ONE; |
| private final BigInteger primeP = BigInteger.ONE; |
| private final BigInteger primeQ = BigInteger.ONE; |
| private final BigInteger crtCoefficient = BigInteger.ONE; |
| |
| class RSAMulti extends RSAMultiPrimePrivateCrtKeyImpl { |
| public RSAMulti(BigInteger publicExp, |
| BigInteger primeExpP, |
| BigInteger primeExpQ, |
| BigInteger prP, |
| BigInteger prQ, |
| BigInteger crtCft, |
| RSAOtherPrimeInfo[] otherPrmInfo) { |
| super(publicExp, primeExpP, primeExpQ, prP, prQ, crtCft, otherPrmInfo); |
| } |
| } |
| |
| /** |
| * java.security.interfaces.RSAMultiPrimePrivateCrtKey#getCrtCoefficient() |
| * java.security.interfaces.RSAMultiPrimePrivateCrtKey#getPrimeExponentP() |
| * java.security.interfaces.RSAMultiPrimePrivateCrtKey#getPrimeExponentQ() |
| * java.security.interfaces.RSAMultiPrimePrivateCrtKey#getPrimeP() |
| * java.security.interfaces.RSAMultiPrimePrivateCrtKey#getPrimeQ() |
| * java.security.interfaces.RSAMultiPrimePrivateCrtKey#getPublicExponent() |
| */ |
| public void test_RSAMultiPrimePrivateCrtKey() { |
| RSAMulti rsam = new RSAMulti(publicExponent, primeExponentP, primeExponentQ, |
| primeP, primeQ, crtCoefficient, opi); |
| try { |
| assertEquals(rsam.getCrtCoefficient(), crtCoefficient); |
| assertEquals(rsam.getPrimeExponentP(), primeExponentP); |
| assertEquals(rsam.getPrimeExponentQ(), primeExponentQ); |
| assertEquals(rsam.getPrimeP(), primeP); |
| assertEquals(rsam.getPrimeQ(), primeQ); |
| assertEquals(rsam.getPublicExponent(), publicExponent); |
| } catch (Exception e) { |
| fail("Unexpected exception: " + e); |
| } |
| } |
| |
| /** |
| * java.security.interfaces.RSAMultiPrimePrivateCrtKey#getOtherPrimeInfo() |
| */ |
| public void test_getOtherPrimeInfo() { |
| RSAMulti rsam = new RSAMulti(publicExponent, primeExponentP, primeExponentQ, |
| primeP, primeQ, crtCoefficient, null); |
| try { |
| assertNull("Object RSAOtherPrimeInfo is not NULL", rsam.getOtherPrimeInfo()); |
| } catch (Exception e) { |
| fail("Unexpected exception: " + e); |
| } |
| rsam = new RSAMulti(publicExponent, primeExponentP, primeExponentQ, |
| primeP, primeQ, crtCoefficient, opi); |
| |
| try { |
| assertEquals(rsam.getOtherPrimeInfo(), opi); |
| } catch (Exception e) { |
| fail("Unexpected exception: " + e); |
| } |
| } |
| } |