Merge "Add three new IKE options in IkeSessionParamsUtils"

This commit is contained in:
Treehugger Robot
2022-08-19 02:49:04 +00:00
committed by Gerrit Code Review
2 changed files with 32 additions and 14 deletions

View File

@@ -72,6 +72,13 @@ public final class IkeSessionParamsUtils {
private static final String NATT_KEEPALIVE_DELAY_SEC_KEY = "NATT_KEEPALIVE_DELAY_SEC_KEY";
private static final String IKE_OPTIONS_KEY = "IKE_OPTIONS_KEY";
// TODO: Use the IKE API when they are exposed
@VisibleForTesting(visibility = Visibility.PRIVATE)
public static final int IKE_OPTION_AUTOMATIC_ADDRESS_FAMILY_SELECTION = 6;
@VisibleForTesting(visibility = Visibility.PRIVATE)
public static final int IKE_OPTION_AUTOMATIC_NATT_KEEPALIVES = 7;
private static final Set<Integer> IKE_OPTIONS = new ArraySet<>();
static {
@@ -80,6 +87,9 @@ public final class IkeSessionParamsUtils {
IKE_OPTIONS.add(IkeSessionParams.IKE_OPTION_MOBIKE);
IKE_OPTIONS.add(IkeSessionParams.IKE_OPTION_FORCE_PORT_4500);
IKE_OPTIONS.add(IkeSessionParams.IKE_OPTION_INITIAL_CONTACT);
IKE_OPTIONS.add(IkeSessionParams.IKE_OPTION_REKEY_MOBILITY);
IKE_OPTIONS.add(IKE_OPTION_AUTOMATIC_ADDRESS_FAMILY_SELECTION);
IKE_OPTIONS.add(IKE_OPTION_AUTOMATIC_NATT_KEEPALIVES);
}
/** Serializes an IkeSessionParams to a PersistableBundle. */

View File

@@ -134,13 +134,33 @@ public class IkeSessionParamsUtilsTest {
verifyPersistableBundleEncodeDecodeIsLossless(params);
}
private static IkeSessionParams.Builder createBuilderMinimumWithEap() throws Exception {
final X509Certificate serverCaCert = createCertFromPemFile("self-signed-ca.pem");
final byte[] eapId = "test@android.net".getBytes(StandardCharsets.US_ASCII);
final int subId = 1;
final EapSessionConfig eapConfig =
new EapSessionConfig.Builder()
.setEapIdentity(eapId)
.setEapSimConfig(subId, APPTYPE_USIM)
.setEapAkaConfig(subId, APPTYPE_USIM)
.build();
return createBuilderMinimum().setAuthEap(serverCaCert, eapConfig);
}
@Test
public void testEncodeDecodeParamsWithIkeOptions() throws Exception {
final IkeSessionParams params =
createBuilderMinimum()
createBuilderMinimumWithEap()
.addIkeOption(IkeSessionParams.IKE_OPTION_ACCEPT_ANY_REMOTE_ID)
.addIkeOption(IkeSessionParams.IKE_OPTION_EAP_ONLY_AUTH)
.addIkeOption(IkeSessionParams.IKE_OPTION_MOBIKE)
.addIkeOption(IkeSessionParams.IKE_OPTION_FORCE_PORT_4500)
.addIkeOption(IkeSessionParams.IKE_OPTION_INITIAL_CONTACT)
.addIkeOption(IkeSessionParams.IKE_OPTION_REKEY_MOBILITY)
.addIkeOption(
IkeSessionParamsUtils.IKE_OPTION_AUTOMATIC_ADDRESS_FAMILY_SELECTION)
.addIkeOption(IkeSessionParamsUtils.IKE_OPTION_AUTOMATIC_NATT_KEEPALIVES)
.build();
verifyPersistableBundleEncodeDecodeIsLossless(params);
}
@@ -176,19 +196,7 @@ public class IkeSessionParamsUtilsTest {
@Test
public void testEncodeRecodeParamsWithEapAuth() throws Exception {
final X509Certificate serverCaCert = createCertFromPemFile("self-signed-ca.pem");
final byte[] eapId = "test@android.net".getBytes(StandardCharsets.US_ASCII);
final int subId = 1;
final EapSessionConfig eapConfig =
new EapSessionConfig.Builder()
.setEapIdentity(eapId)
.setEapSimConfig(subId, APPTYPE_USIM)
.setEapAkaConfig(subId, APPTYPE_USIM)
.build();
final IkeSessionParams params =
createBuilderMinimum().setAuthEap(serverCaCert, eapConfig).build();
final IkeSessionParams params = createBuilderMinimumWithEap().build();
verifyPersistableBundleEncodeDecodeIsLossless(params);
}
}