diff options
Diffstat (limited to 'tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipherTest.java')
-rw-r--r-- | tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipherTest.java | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipherTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipherTest.java deleted file mode 100644 index 3f3a0e10..00000000 --- a/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipherTest.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 2019 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 com.android.internal.net.ipsec.ike.crypto; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import android.net.IpSecAlgorithm; -import android.net.ipsec.ike.SaProposal; - -import com.android.internal.net.TestUtils; -import com.android.internal.net.ipsec.ike.message.IkeMessage; -import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; - -import java.util.Arrays; - -import javax.crypto.IllegalBlockSizeException; - -@RunWith(JUnit4.class) -public final class IkeNormalModeCipherTest { - private static final String IKE_AUTH_INIT_REQUEST_IV = "b9132b7bb9f658dfdc648e5017a6322a"; - private static final String IKE_AUTH_INIT_REQUEST_ENCRYPT_PADDED_DATA = - "030c316ce55f365760d46426ce5cfc78bd1ed9abff63eb9594c1bd58" - + "46de333ecd3ea2b705d18293b130395300ba92a351041345" - + "0a10525cea51b2753b4e92b081fd78d995659a98f742278f" - + "f9b8fd3e21554865c15c79a5134d66b2744966089e416c60" - + "a274e44a9a3f084eb02f3bdce1e7de9de8d9a62773ab563b" - + "9a69ba1db03c752acb6136452b8a86c41addb4210d68c423" - + "efed80e26edca5fa3fe5d0a5ca9375ce332c474b93fb1fa3" - + "59eb4e81"; - private static final String IKE_AUTH_INIT_REQUEST_UNENCRYPTED_PADDED_DATA = - "2400000c010000000a50500d2700000c010000000a505050" - + "2100001c02000000df7c038aefaaa32d3f44b228b52a3327" - + "44dfb2c12c00002c00000028010304032ad4c0a20300000c" - + "0100000c800e008003000008030000020000000805000000" - + "2d00001801000000070000100000ffff00000000ffffffff" - + "2900001801000000070000100000ffff00000000ffffffff" - + "29000008000040000000000c000040010000000100000000" - + "000000000000000b"; - - private static final String ENCR_KEY_FROM_INIT_TO_RESP = "5cbfd33f75796c0188c4a3a546aec4a1"; - - private static final int AES_BLOCK_SIZE = 16; - - private IkeNormalModeCipher mAesCbcCipher; - private byte[] mAesCbcKey; - - private byte[] mIv; - private byte[] mEncryptedPaddedData; - private byte[] mUnencryptedPaddedData; - - @Before - public void setUp() throws Exception { - mAesCbcCipher = - (IkeNormalModeCipher) - IkeCipher.create( - new EncryptionTransform( - SaProposal.ENCRYPTION_ALGORITHM_AES_CBC, - SaProposal.KEY_LEN_AES_128), - IkeMessage.getSecurityProvider()); - mAesCbcKey = TestUtils.hexStringToByteArray(ENCR_KEY_FROM_INIT_TO_RESP); - - mIv = TestUtils.hexStringToByteArray(IKE_AUTH_INIT_REQUEST_IV); - mEncryptedPaddedData = - TestUtils.hexStringToByteArray(IKE_AUTH_INIT_REQUEST_ENCRYPT_PADDED_DATA); - mUnencryptedPaddedData = - TestUtils.hexStringToByteArray(IKE_AUTH_INIT_REQUEST_UNENCRYPTED_PADDED_DATA); - } - - @Test - public void testBuild() throws Exception { - assertFalse(mAesCbcCipher.isAead()); - assertEquals(AES_BLOCK_SIZE, mAesCbcCipher.getBlockSize()); - assertEquals(AES_BLOCK_SIZE, mAesCbcCipher.generateIv().length); - } - - @Test - public void testGenerateRandomIv() throws Exception { - assertFalse(Arrays.equals(mAesCbcCipher.generateIv(), mAesCbcCipher.generateIv())); - } - - @Test - public void testEncryptWithNormalCipher() throws Exception { - byte[] calculatedData = mAesCbcCipher.encrypt(mUnencryptedPaddedData, mAesCbcKey, mIv); - - assertArrayEquals(mEncryptedPaddedData, calculatedData); - } - - @Test - public void testDecryptWithNormalCipher() throws Exception { - byte[] calculatedData = mAesCbcCipher.decrypt(mEncryptedPaddedData, mAesCbcKey, mIv); - assertArrayEquals(mUnencryptedPaddedData, calculatedData); - } - - @Test - public void testEncryptWithWrongKey() throws Exception { - byte[] encryptionKey = TestUtils.hexStringToByteArray(ENCR_KEY_FROM_INIT_TO_RESP + "00"); - - try { - mAesCbcCipher.encrypt(mEncryptedPaddedData, encryptionKey, mIv); - fail("Expected to fail due to encryption key with wrong length."); - } catch (IllegalArgumentException expected) { - - } - } - - @Test - public void testDecryptWithNormalCipherWithBadPad() throws Exception { - byte[] dataToDecrypt = - TestUtils.hexStringToByteArray( - IKE_AUTH_INIT_REQUEST_UNENCRYPTED_PADDED_DATA + "00"); - try { - mAesCbcCipher.decrypt(dataToDecrypt, mAesCbcKey, mIv); - fail("Expected to fail when try to decrypt data with bad padding"); - } catch (IllegalBlockSizeException expected) { - - } - } - - @Test - public void testBuildIpSecAlgorithm() throws Exception { - IpSecAlgorithm ipsecAlgorithm = mAesCbcCipher.buildIpSecAlgorithmWithKey(mAesCbcKey); - - IpSecAlgorithm expectedIpSecAlgorithm = - new IpSecAlgorithm(IpSecAlgorithm.CRYPT_AES_CBC, mAesCbcKey); - - assertTrue(IpSecAlgorithm.equals(expectedIpSecAlgorithm, ipsecAlgorithm)); - } - - @Test - public void buildIpSecAlgorithmWithInvalidKey() throws Exception { - byte[] encryptionKey = TestUtils.hexStringToByteArray(ENCR_KEY_FROM_INIT_TO_RESP + "00"); - - try { - mAesCbcCipher.buildIpSecAlgorithmWithKey(encryptionKey); - - fail("Expected to fail due to encryption key with wrong length."); - } catch (IllegalArgumentException expected) { - - } - } -} |