aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-11-11 21:20:57 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-11-11 21:20:57 +0000
commitf4e6b1361762f94a263f97e8b502f672d1eca9e5 (patch)
treeb39c3e794945072d38b97c963c5a6f10753514e1
parent7ffef5cae6d3c93c93b4055fd22517d44f77acda (diff)
parenteb4c77d7228f956f928c7d3500a220339ee78388 (diff)
downloadike-android10-mainline-resolv-release.tar.gz
Snap for 6001391 from eb4c77d7228f956f928c7d3500a220339ee78388 to qt-aml-resolv-releaseandroid-mainline-10.0.0_r8android10-mainline-resolv-release
Change-Id: Ie08b73ff285c00863283458b4642e01f49829df7
-rw-r--r--src/java/android/net/eap/EapSessionConfig.java (renamed from src/java/com/android/ike/eap/EapSessionConfig.java)14
-rw-r--r--src/java/android/net/ipsec/ike/ChildSaProposal.java (renamed from src/java/com/android/ike/ikev2/ChildSaProposal.java)22
-rw-r--r--src/java/android/net/ipsec/ike/ChildSessionCallback.java (renamed from src/java/com/android/ike/ikev2/ChildSessionCallback.java)5
-rw-r--r--src/java/android/net/ipsec/ike/ChildSessionConfiguration.java (renamed from src/java/com/android/ike/ikev2/ChildSessionConfiguration.java)30
-rw-r--r--src/java/android/net/ipsec/ike/ChildSessionOptions.java (renamed from src/java/com/android/ike/ikev2/ChildSessionOptions.java)15
-rw-r--r--src/java/android/net/ipsec/ike/IkeFqdnIdentification.java (renamed from src/java/com/android/ike/ikev2/IkeFqdnIdentification.java)2
-rw-r--r--src/java/android/net/ipsec/ike/IkeIdentification.java (renamed from src/java/com/android/ike/ikev2/IkeIdentification.java)2
-rw-r--r--src/java/android/net/ipsec/ike/IkeIpv4AddrIdentification.java (renamed from src/java/com/android/ike/ikev2/IkeIpv4AddrIdentification.java)4
-rw-r--r--src/java/android/net/ipsec/ike/IkeIpv6AddrIdentification.java (renamed from src/java/com/android/ike/ikev2/IkeIpv6AddrIdentification.java)4
-rw-r--r--src/java/android/net/ipsec/ike/IkeKeyIdIdentification.java (renamed from src/java/com/android/ike/ikev2/IkeKeyIdIdentification.java)2
-rw-r--r--src/java/android/net/ipsec/ike/IkeManager.java (renamed from src/java/com/android/ike/ikev2/IkeManager.java)10
-rw-r--r--src/java/android/net/ipsec/ike/IkeRfc822AddrIdentification.java (renamed from src/java/com/android/ike/ikev2/IkeRfc822AddrIdentification.java)2
-rw-r--r--src/java/android/net/ipsec/ike/IkeSaProposal.java (renamed from src/java/com/android/ike/ikev2/IkeSaProposal.java)18
-rw-r--r--src/java/android/net/ipsec/ike/IkeSession.java (renamed from src/java/com/android/ike/ikev2/IkeSession.java)76
-rw-r--r--src/java/android/net/ipsec/ike/IkeSessionCallback.java (renamed from src/java/com/android/ike/ikev2/IkeSessionCallback.java)5
-rw-r--r--src/java/android/net/ipsec/ike/IkeSessionConfiguration.java (renamed from src/java/com/android/ike/ikev2/IkeSessionConfiguration.java)2
-rw-r--r--src/java/android/net/ipsec/ike/IkeSessionOptions.java (renamed from src/java/com/android/ike/ikev2/IkeSessionOptions.java)177
-rw-r--r--src/java/android/net/ipsec/ike/IkeTrafficSelector.java (renamed from src/java/com/android/ike/ikev2/IkeTrafficSelector.java)4
-rw-r--r--src/java/android/net/ipsec/ike/SaProposal.java (renamed from src/java/com/android/ike/ikev2/SaProposal.java)23
-rw-r--r--src/java/android/net/ipsec/ike/TransportModeChildSessionOptions.java (renamed from src/java/com/android/ike/ikev2/TransportModeChildSessionOptions.java)2
-rw-r--r--src/java/android/net/ipsec/ike/TunnelModeChildSessionOptions.java (renamed from src/java/com/android/ike/ikev2/TunnelModeChildSessionOptions.java)77
-rw-r--r--src/java/android/net/ipsec/ike/exceptions/IkeException.java (renamed from src/java/com/android/ike/ikev2/exceptions/IkeException.java)2
-rw-r--r--src/java/android/net/ipsec/ike/exceptions/IkeInternalException.java (renamed from src/java/com/android/ike/ikev2/exceptions/IkeInternalException.java)2
-rw-r--r--src/java/android/net/ipsec/ike/exceptions/IkeProtocolException.java (renamed from src/java/com/android/ike/ikev2/exceptions/IkeProtocolException.java)4
-rw-r--r--src/java/com/android/ike/eap/statemachine/EapAkaPrimeMethodStateMachine.java136
-rw-r--r--src/java/com/android/internal/net/crypto/KeyGenerationUtils.java81
-rw-r--r--src/java/com/android/internal/net/eap/EapAuthenticator.java (renamed from src/java/com/android/ike/eap/EapAuthenticator.java)13
-rw-r--r--src/java/com/android/internal/net/eap/EapResult.java (renamed from src/java/com/android/ike/eap/EapResult.java)6
-rw-r--r--src/java/com/android/internal/net/eap/IEapCallback.java (renamed from src/java/com/android/ike/eap/IEapCallback.java)2
-rw-r--r--src/java/com/android/internal/net/eap/crypto/Fips186_2Prf.java (renamed from src/java/com/android/ike/eap/crypto/Fips186_2Prf.java)6
-rw-r--r--src/java/com/android/internal/net/eap/crypto/HmacSha256ByteSigner.java56
-rw-r--r--src/java/com/android/internal/net/eap/crypto/ParityBitUtil.java (renamed from src/java/com/android/ike/eap/crypto/ParityBitUtil.java)2
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/EapInvalidPacketLengthException.java (renamed from src/java/com/android/ike/eap/exceptions/EapInvalidPacketLengthException.java)4
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/EapInvalidRequestException.java (renamed from src/java/com/android/ike/eap/exceptions/EapInvalidRequestException.java)4
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/EapSilentException.java (renamed from src/java/com/android/ike/eap/exceptions/EapSilentException.java)2
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/InvalidEapCodeException.java (renamed from src/java/com/android/ike/eap/exceptions/InvalidEapCodeException.java)4
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/InvalidEapResponseException.java (renamed from src/java/com/android/ike/eap/exceptions/InvalidEapResponseException.java)2
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/UnsupportedEapTypeException.java (renamed from src/java/com/android/ike/eap/exceptions/UnsupportedEapTypeException.java)6
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/mschapv2/EapMsChapV2ParsingException.java (renamed from src/java/com/android/ike/eap/exceptions/mschapv2/EapMsChapV2ParsingException.java)2
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/simaka/EapAkaInvalidAuthenticationResponse.java (renamed from src/java/com/android/ike/eap/exceptions/simaka/EapAkaInvalidAuthenticationResponse.java)2
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaAuthenticationFailureException.java (renamed from src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaAuthenticationFailureException.java)2
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaIdentityUnavailableException.java (renamed from src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaIdentityUnavailableException.java)2
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaInvalidAtPaddingException.java (renamed from src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaInvalidAtPaddingException.java)4
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaInvalidAttributeException.java (renamed from src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaInvalidAttributeException.java)4
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaInvalidLengthException.java (renamed from src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaInvalidLengthException.java)2
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaUnsupportedAttributeException.java (renamed from src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaUnsupportedAttributeException.java)6
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/simaka/EapSimInvalidAtRandException.java (renamed from src/java/com/android/ike/eap/exceptions/simaka/EapSimInvalidAtRandException.java)4
-rw-r--r--src/java/com/android/internal/net/eap/exceptions/simaka/EapSimInvalidTypeDataException.java (renamed from src/java/com/android/ike/eap/exceptions/simaka/EapSimInvalidTypeDataException.java)4
-rw-r--r--src/java/com/android/internal/net/eap/message/EapData.java (renamed from src/java/com/android/ike/eap/message/EapData.java)2
-rw-r--r--src/java/com/android/internal/net/eap/message/EapMessage.java (renamed from src/java/com/android/ike/eap/message/EapMessage.java)22
-rw-r--r--src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2TypeData.java (renamed from src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2TypeData.java)10
-rw-r--r--src/java/com/android/internal/net/eap/message/simaka/EapAkaAttributeFactory.java (renamed from src/java/com/android/ike/eap/message/simaka/EapAkaAttributeFactory.java)28
-rw-r--r--src/java/com/android/internal/net/eap/message/simaka/EapAkaPrimeAttributeFactory.java (renamed from src/java/com/android/ike/eap/message/simaka/EapAkaPrimeAttributeFactory.java)16
-rw-r--r--src/java/com/android/internal/net/eap/message/simaka/EapAkaPrimeTypeData.java (renamed from src/java/com/android/ike/eap/message/simaka/EapAkaPrimeTypeData.java)6
-rw-r--r--src/java/com/android/internal/net/eap/message/simaka/EapAkaTypeData.java (renamed from src/java/com/android/ike/eap/message/simaka/EapAkaTypeData.java)4
-rw-r--r--src/java/com/android/internal/net/eap/message/simaka/EapSimAkaAttribute.java (renamed from src/java/com/android/ike/eap/message/simaka/EapSimAkaAttribute.java)10
-rw-r--r--src/java/com/android/internal/net/eap/message/simaka/EapSimAkaAttributeFactory.java (renamed from src/java/com/android/ike/eap/message/simaka/EapSimAkaAttributeFactory.java)56
-rw-r--r--src/java/com/android/internal/net/eap/message/simaka/EapSimAkaTypeData.java (renamed from src/java/com/android/ike/eap/message/simaka/EapSimAkaTypeData.java)18
-rw-r--r--src/java/com/android/internal/net/eap/message/simaka/EapSimAttributeFactory.java (renamed from src/java/com/android/ike/eap/message/simaka/EapSimAttributeFactory.java)24
-rw-r--r--src/java/com/android/internal/net/eap/message/simaka/EapSimTypeData.java (renamed from src/java/com/android/ike/eap/message/simaka/EapSimTypeData.java)4
-rw-r--r--src/java/com/android/internal/net/eap/statemachine/EapAkaMethodStateMachine.java (renamed from src/java/com/android/ike/eap/statemachine/EapAkaMethodStateMachine.java)177
-rw-r--r--src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeMethodStateMachine.java336
-rw-r--r--src/java/com/android/internal/net/eap/statemachine/EapMethodStateMachine.java (renamed from src/java/com/android/ike/eap/statemachine/EapMethodStateMachine.java)24
-rw-r--r--src/java/com/android/internal/net/eap/statemachine/EapMsChapV2MethodStateMachine.java (renamed from src/java/com/android/ike/eap/statemachine/EapMsChapV2MethodStateMachine.java)75
-rw-r--r--src/java/com/android/internal/net/eap/statemachine/EapSimAkaMethodStateMachine.java (renamed from src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachine.java)89
-rw-r--r--src/java/com/android/internal/net/eap/statemachine/EapSimMethodStateMachine.java (renamed from src/java/com/android/ike/eap/statemachine/EapSimMethodStateMachine.java)86
-rw-r--r--src/java/com/android/internal/net/eap/statemachine/EapStateMachine.java (renamed from src/java/com/android/ike/eap/statemachine/EapStateMachine.java)75
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/AbstractSessionStateMachine.java (renamed from src/java/com/android/ike/ikev2/AbstractSessionStateMachine.java)4
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/ChildSessionStateMachine.java (renamed from src/java/com/android/ike/ikev2/ChildSessionStateMachine.java)106
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/ChildSessionStateMachineFactory.java (renamed from src/java/com/android/ike/ikev2/ChildSessionStateMachineFactory.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/IkeDhParams.java (renamed from src/java/com/android/ike/ikev2/IkeDhParams.java)2
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/IkeEapAuthenticatorFactory.java (renamed from src/java/com/android/ike/ikev2/IkeEapAuthenticatorFactory.java)8
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/IkeLocalRequestScheduler.java (renamed from src/java/com/android/ike/ikev2/IkeLocalRequestScheduler.java)5
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/IkeSessionStateMachine.java (renamed from src/java/com/android/ike/ikev2/IkeSessionStateMachine.java)164
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/IkeSocket.java (renamed from src/java/com/android/ike/ikev2/IkeSocket.java)11
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/SaRecord.java (renamed from src/java/com/android/ike/ikev2/SaRecord.java)26
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/crypto/IkeCipher.java (renamed from src/java/com/android/ike/ikev2/crypto/IkeCipher.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/crypto/IkeCombinedModeCipher.java (renamed from src/java/com/android/ike/ikev2/crypto/IkeCombinedModeCipher.java)5
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/crypto/IkeCrypto.java (renamed from src/java/com/android/ike/ikev2/crypto/IkeCrypto.java)2
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/crypto/IkeMac.java (renamed from src/java/com/android/ike/ikev2/crypto/IkeMac.java)7
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacIntegrity.java (renamed from src/java/com/android/ike/ikev2/crypto/IkeMacIntegrity.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacPrf.java (renamed from src/java/com/android/ike/ikev2/crypto/IkeMacPrf.java)29
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipher.java (renamed from src/java/com/android/ike/ikev2/crypto/IkeNormalModeCipher.java)5
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/exceptions/AuthenticationFailedException.java (renamed from src/java/com/android/ike/ikev2/exceptions/AuthenticationFailedException.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidKeException.java (renamed from src/java/com/android/ike/ikev2/exceptions/InvalidKeException.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidMajorVersionException.java (renamed from src/java/com/android/ike/ikev2/exceptions/InvalidMajorVersionException.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidMessageIdException.java (renamed from src/java/com/android/ike/ikev2/exceptions/InvalidMessageIdException.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidSyntaxException.java (renamed from src/java/com/android/ike/ikev2/exceptions/InvalidSyntaxException.java)4
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/exceptions/NoValidProposalChosenException.java (renamed from src/java/com/android/ike/ikev2/exceptions/NoValidProposalChosenException.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/exceptions/TemporaryFailureException.java (renamed from src/java/com/android/ike/ikev2/exceptions/TemporaryFailureException.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/exceptions/TsUnacceptableException.java (renamed from src/java/com/android/ike/ikev2/exceptions/TsUnacceptableException.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/exceptions/UnrecognizedIkeProtocolException.java (renamed from src/java/com/android/ike/ikev2/exceptions/UnrecognizedIkeProtocolException.java)4
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/exceptions/UnsupportedCriticalPayloadException.java (renamed from src/java/com/android/ike/ikev2/exceptions/UnsupportedCriticalPayloadException.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeAuthDigitalSignPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeAuthDigitalSignPayload.java)10
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeAuthPayload.java)8
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPskPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeAuthPskPayload.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeCertPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeCertPayload.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeCertX509CertPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeCertX509CertPayload.java)7
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeConfigPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeConfigPayload.java)6
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeDeletePayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeDeletePayload.java)7
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeEapPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeEapPayload.java)4
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeEncryptedPayloadBody.java (renamed from src/java/com/android/ike/ikev2/message/IkeEncryptedPayloadBody.java)13
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeHeader.java (renamed from src/java/com/android/ike/ikev2/message/IkeHeader.java)10
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeIdPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeIdPayload.java)23
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeInformationalPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeInformationalPayload.java)2
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeKePayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeKePayload.java)12
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeMessage.java (renamed from src/java/com/android/ike/ikev2/message/IkeMessage.java)25
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeNoncePayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeNoncePayload.java)7
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeNotifyPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeNotifyPayload.java)58
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkePayload.java (renamed from src/java/com/android/ike/ikev2/message/IkePayload.java)2
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkePayloadFactory.java (renamed from src/java/com/android/ike/ikev2/message/IkePayloadFactory.java)10
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeSaPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeSaPayload.java)26
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeSkPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeSkPayload.java)8
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeSkfPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeSkfPayload.java)10
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeTsPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeTsPayload.java)9
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeUnsupportedPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeUnsupportedPayload.java)2
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/message/IkeVendorPayload.java (renamed from src/java/com/android/ike/ikev2/message/IkeVendorPayload.java)2
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/utils/FdEventsReader.java (renamed from src/java/com/android/ike/ikev2/utils/FdEventsReader.java)2
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/utils/PacketReader.java (renamed from src/java/com/android/ike/ikev2/utils/PacketReader.java)2
-rw-r--r--src/java/com/android/internal/net/ipsec/ike/utils/Retransmitter.java (renamed from src/java/com/android/ike/ikev2/utils/Retransmitter.java)6
-rw-r--r--src/java/com/android/internal/net/utils/BigIntegerUtils.java (renamed from src/java/com/android/ike/utils/BigIntegerUtils.java)2
-rw-r--r--src/java/com/android/internal/net/utils/Log.java (renamed from src/java/com/android/ike/utils/Log.java)2
-rw-r--r--src/java/com/android/internal/net/utils/SimpleStateMachine.java (renamed from src/java/com/android/ike/utils/SimpleStateMachine.java)2
-rw-r--r--tests/iketests/src/java/android/net/eap/EapSessionConfigTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/EapSessionConfigTest.java)22
-rw-r--r--tests/iketests/src/java/android/net/ipsec/ike/ChildSessionConfigurationTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/ChildSessionConfigurationTest.java)12
-rw-r--r--tests/iketests/src/java/android/net/ipsec/ike/ChildSessionOptionsTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/ChildSessionOptionsTest.java)2
-rw-r--r--tests/iketests/src/java/android/net/ipsec/ike/IkeSessionOptionsTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/IkeSessionOptionsTest.java)85
-rw-r--r--tests/iketests/src/java/android/net/ipsec/ike/IkeSessionTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/IkeSessionTest.java)6
-rw-r--r--tests/iketests/src/java/android/net/ipsec/ike/IkeTrafficSelectorTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/IkeTrafficSelectorTest.java)6
-rw-r--r--tests/iketests/src/java/android/net/ipsec/ike/SaProposalTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/SaProposalTest.java)18
-rw-r--r--tests/iketests/src/java/android/net/ipsec/ike/TunnelModeChildSessionOptionsTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/TunnelModeChildSessionOptionsTest.java)96
-rw-r--r--tests/iketests/src/java/android/net/ipsec/ike/exceptions/IkeProtocolExceptionTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/exceptions/IkeProtocolExceptionTest.java)10
-rw-r--r--tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeChallengeStateTest.java111
-rw-r--r--tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeMethodStateMachineTest.java30
-rw-r--r--tests/iketests/src/java/com/android/internal/net/TestUtils.java (renamed from tests/iketests/src/java/com/android/ike/TestUtils.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapAkaPrimeTest.java382
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapAkaTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/EapAkaTest.java)9
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapAuthenticatorTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/EapAuthenticatorTest.java)26
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapErrorTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/EapErrorTest.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapMethodEndToEndTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/EapMethodEndToEndTest.java)11
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapMsChapV2Test.java (renamed from tests/iketests/src/java/com/android/ike/eap/EapMsChapV2Test.java)10
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapResponseTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/EapResponseTest.java)14
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapSimTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/EapSimTest.java)11
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapSuccessTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/EapSuccessTest.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapTestUtils.java (renamed from tests/iketests/src/java/com/android/ike/eap/EapTestUtils.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/crypto/Fips186_2PrfTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/crypto/Fips186_2PrfTest.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/crypto/HmacSha256ByteSignerTest.java93
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/crypto/ParityBitUtilTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/crypto/ParityBitUtilTest.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/EapDataTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/EapDataTest.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/EapMessageTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/EapMessageTest.java)50
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/EapTestMessageDefinitions.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/EapTestMessageDefinitions.java)22
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2ChallengeRequestTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2ChallengeRequestTest.java)32
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2ChallengeResponseTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2ChallengeResponseTest.java)22
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2FailureRequestTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2FailureRequestTest.java)44
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2FailureResponseTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2FailureResponseTest.java)8
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2PacketDefinitions.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2PacketDefinitions.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2SuccessRequestTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2SuccessRequestTest.java)42
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2SuccessResponseTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2SuccessResponseTest.java)8
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2TypeDataTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2TypeDataTest.java)34
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapAkaPrimeTypeDataTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/EapAkaPrimeTypeDataTest.java)42
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapAkaTypeDataTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/EapAkaTypeDataTest.java)48
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapSimAkaAttributeFactoryTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/EapSimAkaAttributeFactoryTest.java)14
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapSimTypeDataTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/EapSimTypeDataTest.java)26
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtAutnTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtAutnTest.java)18
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtAutsTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtAutsTest.java)18
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtBiddingTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtBiddingTest.java)18
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtClientErrorCodeTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtClientErrorCodeTest.java)18
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtCounterTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtCounterTest.java)26
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtIdReqTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtIdReqTest.java)34
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtIdentityTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtIdentityTest.java)16
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtKdfInputTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfInputTest.java)16
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtKdfTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfTest.java)18
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtMacTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtMacTest.java)20
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtNonceMtTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtNonceMtTest.java)18
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtNonceSTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtNonceSTest.java)20
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtNotificationTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtNotificationTest.java)24
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtPaddingTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtPaddingTest.java)16
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtRandAkaTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtRandAkaTest.java)18
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtRandSimTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtRandSimTest.java)26
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtResTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtResTest.java)22
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtSelectedVersionTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtSelectedVersionTest.java)16
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtVersionListTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtVersionListTest.java)20
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/EapSimAkaAttributeTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapSimAkaAttributeTest.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/EapTestAttributeDefinitions.java (renamed from tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapTestAttributeDefinitions.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/CreatedStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/CreatedStateTest.java)18
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaChallengeStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaChallengeStateTest.java)138
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaCreatedStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaCreatedStateTest.java)38
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaIdentityStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaIdentityStateTest.java)40
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaMethodStateMachineTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaMethodStateMachineTest.java)49
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeChallengeStateTest.java354
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeCreatedStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeCreatedStateTest.java)24
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeIdentityStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeIdentityStateTest.java)32
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeMethodStateMachineTest.java74
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeStateTest.java)42
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeTest.java)8
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaStateTest.java)47
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2AwaitingEapFailureStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2AwaitingEapFailureStateTest.java)2
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2AwaitingEapSuccessStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2AwaitingEapSuccessStateTest.java)18
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2ChallengeStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2ChallengeStateTest.java)40
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2CreatedStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2CreatedStateTest.java)28
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2MethodStateMachineTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2MethodStateMachineTest.java)43
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2StateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2StateTest.java)45
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2ValidateAuthenticatorStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2ValidateAuthenticatorStateTest.java)66
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimAkaMethodStateMachineTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachineTest.java)145
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimChallengeStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimChallengeStateTest.java)92
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimCreatedStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimCreatedStateTest.java)43
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimMethodStateMachineTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimMethodStateMachineTest.java)46
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimStartStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimStartStateTest.java)82
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimStateTest.java)44
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapStateMachineTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapStateMachineTest.java)20
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/EapStateTest.java)32
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/IdentityStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/IdentityStateTest.java)24
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/statemachine/MethodStateTest.java (renamed from tests/iketests/src/java/com/android/ike/eap/statemachine/MethodStateTest.java)57
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/ChildSessionStateMachineTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/ChildSessionStateMachineTest.java)120
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeLocalRequestSchedulerTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/IkeLocalRequestSchedulerTest.java)8
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSessionStateMachineTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/IkeSessionStateMachineTest.java)177
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSocketTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/IkeSocketTest.java)8
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/SaRecordTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/SaRecordTest.java)43
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeCombinedModeCipherTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeCombinedModeCipherTest.java)10
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacIntegrityTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeMacIntegrityTest.java)10
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacPrfTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeMacPrfTest.java)11
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipherTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeNormalModeCipherTest.java)10
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthDigitalSignPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeAuthDigitalSignPayloadTest.java)17
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeAuthPayloadTest.java)13
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPskPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeAuthPskPayloadTest.java)13
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeCertPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeCertPayloadTest.java)6
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeCertX509CertPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeCertX509CertPayloadTest.java)6
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeConfigPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeConfigPayloadTest.java)54
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeDeletePayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeDeletePayloadTest.java)14
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeEapPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeEapPayloadTest.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeEncryptedPayloadBodyTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeEncryptedPayloadBodyTest.java)19
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeHeaderTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeHeaderTest.java)8
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeIdPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeIdPayloadTest.java)19
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeKePayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeKePayloadTest.java)13
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeMessageTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeMessageTest.java)45
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeNoncePayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeNoncePayloadTest.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeNotifyPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeNotifyPayloadTest.java)23
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeSaPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeSaPayloadTest.java)48
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeSkPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeSkPayloadTest.java)15
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeSkfPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeSkfPayloadTest.java)19
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeTestUtils.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeTestUtils.java)12
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeTsPayloadTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/message/IkeTsPayloadTest.java)7
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/testutils/CertUtils.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/testutils/CertUtils.java)4
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/testutils/MockIpSecTestUtils.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/testutils/MockIpSecTestUtils.java)2
-rw-r--r--tests/iketests/src/java/com/android/internal/net/ipsec/ike/utils/RetransmitterTest.java (renamed from tests/iketests/src/java/com/android/ike/ikev2/utils/RetransmitterTest.java)6
-rw-r--r--tests/iketests/src/java/com/android/internal/net/utils/BigIntegerUtilsTest.java (renamed from tests/iketests/src/java/com/android/ike/utils/BigIntegerUtilsTest.java)2
-rw-r--r--tests/iketests/src/java/com/android/internal/net/utils/LogTest.java (renamed from tests/iketests/src/java/com/android/ike/utils/LogTest.java)2
-rw-r--r--tests/iketests/src/java/com/android/internal/net/utils/SimpleStateMachineTest.java (renamed from tests/iketests/src/java/com/android/ike/utils/SimpleStateMachineTest.java)4
248 files changed, 4236 insertions, 2658 deletions
diff --git a/src/java/com/android/ike/eap/EapSessionConfig.java b/src/java/android/net/eap/EapSessionConfig.java
index 285dc799..a31a0fdf 100644
--- a/src/java/com/android/ike/eap/EapSessionConfig.java
+++ b/src/java/android/net/eap/EapSessionConfig.java
@@ -14,17 +14,17 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package android.net.eap;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA_PRIME;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA_PRIME;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
import android.telephony.TelephonyManager.UiccAppType;
-import com.android.ike.eap.message.EapData.EapMethod;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.message.EapData.EapMethod;
import java.util.Collections;
import java.util.HashMap;
@@ -46,7 +46,7 @@ public final class EapSessionConfig {
public final byte[] eapIdentity;
@VisibleForTesting
- EapSessionConfig(Map<Integer, EapMethodConfig> eapConfigs, byte[] eapIdentity) {
+ public EapSessionConfig(Map<Integer, EapMethodConfig> eapConfigs, byte[] eapIdentity) {
this.eapConfigs = Collections.unmodifiableMap(eapConfigs);
this.eapIdentity = eapIdentity;
}
diff --git a/src/java/com/android/ike/ikev2/ChildSaProposal.java b/src/java/android/net/ipsec/ike/ChildSaProposal.java
index 92c717e5..c8851a71 100644
--- a/src/java/com/android/ike/ikev2/ChildSaProposal.java
+++ b/src/java/android/net/ipsec/ike/ChildSaProposal.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
-import com.android.ike.ikev2.message.IkePayload;
-import com.android.ike.ikev2.message.IkeSaPayload.DhGroupTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.EsnTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.Transform;
+import com.android.internal.net.ipsec.ike.message.IkePayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.DhGroupTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EsnTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.Transform;
import java.util.Arrays;
import java.util.List;
@@ -59,17 +59,17 @@ public final class ChildSaProposal extends SaProposal {
mEsns = esns;
}
- /** Package private method to get ESN policies. */
- EsnTransform[] getEsnTransforms() {
+ /** Gets all ESN policies. */
+ public EsnTransform[] getEsnTransforms() {
return mEsns;
}
/**
- * Package private method to get a copy of proposal without all proposed DH groups.
+ * Gets a copy of proposal without all proposed DH groups.
*
* <p>This is used to avoid negotiating DH Group for negotiating first Child SA.
*/
- ChildSaProposal getCopyWithoutDhTransform() {
+ public ChildSaProposal getCopyWithoutDhTransform() {
return new ChildSaProposal(
getEncryptionTransforms(),
getIntegrityTransforms(),
diff --git a/src/java/com/android/ike/ikev2/ChildSessionCallback.java b/src/java/android/net/ipsec/ike/ChildSessionCallback.java
index 071ad432..ec8722e6 100644
--- a/src/java/com/android/ike/ikev2/ChildSessionCallback.java
+++ b/src/java/android/net/ipsec/ike/ChildSessionCallback.java
@@ -14,12 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.net.IpSecManager.PolicyDirection;
import android.net.IpSecTransform;
-
-import com.android.ike.ikev2.exceptions.IkeException;
+import android.net.ipsec.ike.exceptions.IkeException;
/** Callback interface for receiving state changes of a Child Session. */
public interface ChildSessionCallback {
diff --git a/src/java/com/android/ike/ikev2/ChildSessionConfiguration.java b/src/java/android/net/ipsec/ike/ChildSessionConfiguration.java
index 555feb05..2ed9de2f 100644
--- a/src/java/com/android/ike/ikev2/ChildSessionConfiguration.java
+++ b/src/java/android/net/ipsec/ike/ChildSessionConfiguration.java
@@ -14,19 +14,19 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_ADDRESS;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_NETMASK;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_ADDRESS;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_ADDRESS;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_NETMASK;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_ADDRESS;
import android.net.LinkAddress;
-import com.android.ike.ikev2.message.IkeConfigPayload;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttribute;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Address;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Netmask;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv6Address;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttribute;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Address;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Netmask;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv6Address;
import java.util.Collections;
import java.util.LinkedList;
@@ -41,11 +41,12 @@ public final class ChildSessionConfiguration {
private final List<LinkAddress> mInternalAddressList;
/**
- * Package private constructor for building an ChildSessionConfiguration
+ * Construct an instance of {@link ChildSessionConfiguration}.
*
- * <p>It is only supported to build a ChildSessionConfiguration with a Configure(Reply) Payload.
+ * <p>It is only supported to build a {@link ChildSessionConfiguration} with a Configure(Reply)
+ * Payload.
*/
- ChildSessionConfiguration(
+ public ChildSessionConfiguration(
List<IkeTrafficSelector> inTs,
List<IkeTrafficSelector> outTs,
IkeConfigPayload configPayload) {
@@ -91,8 +92,9 @@ public final class ChildSessionConfiguration {
}
}
- /** Package private constructor for building an ChildSessionConfiguration */
- ChildSessionConfiguration(List<IkeTrafficSelector> inTs, List<IkeTrafficSelector> outTs) {
+ /** Construct an instance of {@link ChildSessionConfiguration}. */
+ public ChildSessionConfiguration(
+ List<IkeTrafficSelector> inTs, List<IkeTrafficSelector> outTs) {
mInboundTs = Collections.unmodifiableList(inTs);
mOutboundTs = Collections.unmodifiableList(outTs);
mInternalAddressList = new LinkedList<>();
diff --git a/src/java/com/android/ike/ikev2/ChildSessionOptions.java b/src/java/android/net/ipsec/ike/ChildSessionOptions.java
index 0519416d..90a30053 100644
--- a/src/java/com/android/ike/ikev2/ChildSessionOptions.java
+++ b/src/java/android/net/ipsec/ike/ChildSessionOptions.java
@@ -14,8 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
-
+package android.net.ipsec.ike;
import libcore.net.InetAddressUtils;
@@ -53,23 +52,19 @@ public abstract class ChildSessionOptions {
mIsTransport = isTransport;
}
- /** Package private */
- IkeTrafficSelector[] getLocalTrafficSelectors() {
+ public IkeTrafficSelector[] getLocalTrafficSelectors() {
return mLocalTrafficSelectors;
}
- /** Package private */
- IkeTrafficSelector[] getRemoteTrafficSelectors() {
+ public IkeTrafficSelector[] getRemoteTrafficSelectors() {
return mRemoteTrafficSelectors;
}
- /** Package private */
- ChildSaProposal[] getSaProposals() {
+ public ChildSaProposal[] getSaProposals() {
return mSaProposals;
}
- /** Package private */
- boolean isTransportMode() {
+ public boolean isTransportMode() {
return mIsTransport;
}
diff --git a/src/java/com/android/ike/ikev2/IkeFqdnIdentification.java b/src/java/android/net/ipsec/ike/IkeFqdnIdentification.java
index 4a17bb77..393a0723 100644
--- a/src/java/com/android/ike/ikev2/IkeFqdnIdentification.java
+++ b/src/java/android/net/ipsec/ike/IkeFqdnIdentification.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.NonNull;
diff --git a/src/java/com/android/ike/ikev2/IkeIdentification.java b/src/java/android/net/ipsec/ike/IkeIdentification.java
index b281b5c8..737df826 100644
--- a/src/java/com/android/ike/ikev2/IkeIdentification.java
+++ b/src/java/android/net/ipsec/ike/IkeIdentification.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.IntDef;
import android.util.ArraySet;
diff --git a/src/java/com/android/ike/ikev2/IkeIpv4AddrIdentification.java b/src/java/android/net/ipsec/ike/IkeIpv4AddrIdentification.java
index 87b5f00e..350187ed 100644
--- a/src/java/com/android/ike/ikev2/IkeIpv4AddrIdentification.java
+++ b/src/java/android/net/ipsec/ike/IkeIpv4AddrIdentification.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.NonNull;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
import java.net.Inet4Address;
import java.net.UnknownHostException;
diff --git a/src/java/com/android/ike/ikev2/IkeIpv6AddrIdentification.java b/src/java/android/net/ipsec/ike/IkeIpv6AddrIdentification.java
index e73ad821..dfc7d5e3 100644
--- a/src/java/com/android/ike/ikev2/IkeIpv6AddrIdentification.java
+++ b/src/java/android/net/ipsec/ike/IkeIpv6AddrIdentification.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.NonNull;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
import java.net.Inet6Address;
import java.net.UnknownHostException;
diff --git a/src/java/com/android/ike/ikev2/IkeKeyIdIdentification.java b/src/java/android/net/ipsec/ike/IkeKeyIdIdentification.java
index cba519c8..c229b9da 100644
--- a/src/java/com/android/ike/ikev2/IkeKeyIdIdentification.java
+++ b/src/java/android/net/ipsec/ike/IkeKeyIdIdentification.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.NonNull;
diff --git a/src/java/com/android/ike/ikev2/IkeManager.java b/src/java/android/net/ipsec/ike/IkeManager.java
index 38ab15ba..ef8b893b 100644
--- a/src/java/com/android/ike/ikev2/IkeManager.java
+++ b/src/java/android/net/ipsec/ike/IkeManager.java
@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.content.Context;
-import com.android.ike.utils.Log;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.utils.Log;
import java.util.concurrent.Executor;
@@ -80,13 +80,15 @@ public final class IkeManager {
return sIkeLog;
}
+ /** Injects IKE logger for testing. */
@VisibleForTesting
- static void setIkeLog(Log log) {
+ public static void setIkeLog(Log log) {
sIkeLog = log;
}
+ /** Resets IKE logger. */
@VisibleForTesting
- static void resetIkeLog() {
+ public static void resetIkeLog() {
sIkeLog = new Log(IKE_TAG, LOG_SENSITIVE);
}
}
diff --git a/src/java/com/android/ike/ikev2/IkeRfc822AddrIdentification.java b/src/java/android/net/ipsec/ike/IkeRfc822AddrIdentification.java
index 20608674..2a93bea1 100644
--- a/src/java/com/android/ike/ikev2/IkeRfc822AddrIdentification.java
+++ b/src/java/android/net/ipsec/ike/IkeRfc822AddrIdentification.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.NonNull;
diff --git a/src/java/com/android/ike/ikev2/IkeSaProposal.java b/src/java/android/net/ipsec/ike/IkeSaProposal.java
index 788c7f9e..1494f9d4 100644
--- a/src/java/com/android/ike/ikev2/IkeSaProposal.java
+++ b/src/java/android/net/ipsec/ike/IkeSaProposal.java
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.util.ArraySet;
-import com.android.ike.ikev2.message.IkePayload;
-import com.android.ike.ikev2.message.IkeSaPayload.DhGroupTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.Transform;
+import com.android.internal.net.ipsec.ike.message.IkePayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.DhGroupTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.Transform;
import java.util.Arrays;
import java.util.List;
@@ -62,8 +62,8 @@ public final class IkeSaProposal extends SaProposal {
mPseudorandomFunctions = prfs;
}
- /** Package private method to get all PRFs. */
- PrfTransform[] getPrfTransforms() {
+ /** Gets all PRFs. */
+ public PrfTransform[] getPrfTransforms() {
return mPseudorandomFunctions;
}
diff --git a/src/java/com/android/ike/ikev2/IkeSession.java b/src/java/android/net/ipsec/ike/IkeSession.java
index 19d9cb96..97fe061e 100644
--- a/src/java/com/android/ike/ikev2/IkeSession.java
+++ b/src/java/android/net/ipsec/ike/IkeSession.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.content.Context;
import android.net.IpSecManager;
@@ -21,12 +21,30 @@ import android.os.HandlerThread;
import android.os.Looper;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.IkeSessionStateMachine;
import dalvik.system.CloseGuard;
import java.util.concurrent.Executor;
-/** This class represents an IKE Session management object. */
+/**
+ * This class represents an IKE Session management object that allows for keying and management of
+ * {@link IpSecTransform}s.
+ *
+ * <p>An IKE/Child Session represents an IKE/Child SA as well as its rekeyed successors. A Child
+ * Session is bounded by the lifecycle of the IKE Session under which it is set up. Closing an IKE
+ * Session implicitly closes any remaining Child Sessions under it.
+ *
+ * <p>An IKE procedure is one or multiple IKE message exchanges that are used to create, delete or
+ * rekey an IKE Session or Child Session.
+ *
+ * <p>This class provides methods for user to initiate IKE procedures, such as the Creation and
+ * Deletion of a Child Session, or the Deletion of the IKE session. All procedures (except for IKE
+ * deletion) will be initiated sequentially after IKE Session is set up.
+ *
+ * @see <a href="https://tools.ietf.org/html/rfc7296">RFC 7296, Internet Key Exchange Protocol
+ * Version 2 (IKEv2)</a>
+ */
public final class IkeSession implements AutoCloseable {
private final CloseGuard mCloseGuard = CloseGuard.get();
@@ -97,11 +115,14 @@ public final class IkeSession implements AutoCloseable {
// TODO: b/133340675 Destroy the worker thread when there is no more alive {@link IkeSession}.
/**
- * Initiate Create Child exchange on the IKE worker thread.
+ * Asynchronously request a new Child Session.
*
* <p>Users MUST provide a unique {@link ChildSessionCallback} instance for each new Child
* Session.
*
+ * <p>Upon setup, the {@link ChildSessionCallback#onOpened(ChildSessionConfiguration)} will be
+ * fired.
+ *
* @param childSessionOptions the {@link ChildSessionOptions} that contains the Child Session
* configurations to negotiate.
* @param childSessionCallback the {@link ChildSessionCallback} interface to notify users the
@@ -114,10 +135,12 @@ public final class IkeSession implements AutoCloseable {
}
/**
- * Initiate Delete Child exchange on the IKE worker thread.
+ * Asynchronously delete a Child Session.
+ *
+ * <p>Upon closing, the {@link ChildSessionCallback#onClosed()} will be fired.
*
- * @param childSessionCallback the callback of the Child Session to delete as well as the
- * interface to notify users the deletion result.
+ * @param childSessionCallback The {@link ChildSessionCallback} instance that uniquely identify
+ * the Child Session.
* @throws IllegalArgumentException if no Child Session found bound with this callback.
*/
public void closeChildSession(ChildSessionCallback childSessionCallback) {
@@ -125,30 +148,43 @@ public final class IkeSession implements AutoCloseable {
}
/**
- * Initiate Delete IKE exchange on the IKE worker thread.
+ * Close the IKE session gracefully.
+ *
+ * <p>Implements {@link AutoCloseable#close()}
+ *
+ * <p>Upon closing, the {@link IkeSessionCallback#onClosed()} will be fired.
*
- * <p>Users must stop all outbound traffic that uses the Child Sessions that under this IKE
- * Session before calling this method.
+ * <p>Closing an IKE Session implicitly closes any remaining Child Sessions negotiated under it.
+ * Users SHOULD stop all outbound traffic that uses these Child Sessions({@link IpSecTransform}
+ * pairs) before calling this method. Otherwise IPsec packets will be dropped due to the lack of
+ * a valid {@link IpSecTransform}.
+ *
+ * <p>Closure of an IKE session will take priority over, and cancel other procedures waiting in
+ * the queue (but will wait for ongoing locally initiated procedures to complete). After sending
+ * the Delete request, the IKE library will wait until a Delete response is received or
+ * retransmission timeout occurs.
*/
- public void closeSafely() {
+ @Override
+ public void close() throws Exception {
mCloseGuard.close();
mIkeSessionStateMachine.closeSession();
}
/**
- * Notify the remote server and close the IKE Session.
+ * Terminate (forcibly close) the IKE session.
+ *
+ * <p>Upon closing, the {@link IkeSessionCallback#onClosed()} will be fired.
*
- * <p>Implement {@link AutoCloseable#close()}
+ * <p>Closing an IKE Session implicitly closes any remaining Child Sessions negotiated under it.
+ * Users SHOULD stop all outbound traffic that uses these Child Sessions({@link IpSecTransform}
+ * pairs) before calling this method. Otherwise IPsec packets will be dropped due to the lack of
+ * a valid {@link IpSecTransform}.
*
- * <p>Users must stop all outbound traffic that uses the Child Sessions that under this IKE
- * Session before calling this method.
+ * <p>Forcible closure of an IKE session will take priority over, and cancel other procedures
+ * waiting in the queue. It will also interrupt any ongoing locally initiated procedure.
*/
- @Override
- public void close() throws Exception {
+ public void kill() throws Exception {
mCloseGuard.close();
- mIkeSessionStateMachine.closeSession();
+ mIkeSessionStateMachine.killSession();
}
-
- // TODO: Add methods to retrieve negotiable and non-negotiable configurations of IKE Session and
- // its Child Sessions.
}
diff --git a/src/java/com/android/ike/ikev2/IkeSessionCallback.java b/src/java/android/net/ipsec/ike/IkeSessionCallback.java
index 66081206..c2121e2d 100644
--- a/src/java/com/android/ike/ikev2/IkeSessionCallback.java
+++ b/src/java/android/net/ipsec/ike/IkeSessionCallback.java
@@ -14,11 +14,10 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.NonNull;
-
-import com.android.ike.ikev2.exceptions.IkeException;
+import android.net.ipsec.ike.exceptions.IkeException;
/** Callback interface for receiving state changes of an IKE Session. */
public interface IkeSessionCallback {
diff --git a/src/java/com/android/ike/ikev2/IkeSessionConfiguration.java b/src/java/android/net/ipsec/ike/IkeSessionConfiguration.java
index 4252446c..6bbef7d0 100644
--- a/src/java/com/android/ike/ikev2/IkeSessionConfiguration.java
+++ b/src/java/android/net/ipsec/ike/IkeSessionConfiguration.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.IntDef;
import android.annotation.NonNull;
diff --git a/src/java/com/android/ike/ikev2/IkeSessionOptions.java b/src/java/android/net/ipsec/ike/IkeSessionOptions.java
index 173c3ea7..020a8888 100644
--- a/src/java/com/android/ike/ikev2/IkeSessionOptions.java
+++ b/src/java/android/net/ipsec/ike/IkeSessionOptions.java
@@ -14,20 +14,22 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.net.IpSecManager.UdpEncapsulationSocket;
+import android.net.eap.EapSessionConfig;
-import com.android.ike.eap.EapSessionConfig;
-import com.android.ike.ikev2.message.IkePayload;
+import com.android.internal.net.ipsec.ike.message.IkePayload;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.net.InetAddress;
+import java.security.PrivateKey;
import java.security.cert.TrustAnchor;
import java.security.cert.X509Certificate;
+import java.security.interfaces.RSAPrivateKey;
import java.util.LinkedList;
import java.util.List;
@@ -41,10 +43,10 @@ public final class IkeSessionOptions {
@IntDef({IKE_AUTH_METHOD_PSK, IKE_AUTH_METHOD_PUB_KEY_SIGNATURE, IKE_AUTH_METHOD_EAP})
public @interface IkeAuthMethod {}
- // Package private constants to describe user configured authentication methods.
- static final int IKE_AUTH_METHOD_PSK = 1;
- static final int IKE_AUTH_METHOD_PUB_KEY_SIGNATURE = 2;
- static final int IKE_AUTH_METHOD_EAP = 3;
+ // Constants to describe user configured authentication methods.
+ public static final int IKE_AUTH_METHOD_PSK = 1;
+ public static final int IKE_AUTH_METHOD_PUB_KEY_SIGNATURE = 2;
+ public static final int IKE_AUTH_METHOD_EAP = 3;
private final InetAddress mServerAddress;
private final UdpEncapsulationSocket mUdpEncapSocket;
@@ -80,44 +82,40 @@ public final class IkeSessionOptions {
mIsIkeFragmentationSupported = isIkeFragmentationSupported;
}
- /** Package private */
- InetAddress getServerAddress() {
+ public InetAddress getServerAddress() {
return mServerAddress;
}
- /** Package private */
- UdpEncapsulationSocket getUdpEncapsulationSocket() {
+
+ public UdpEncapsulationSocket getUdpEncapsulationSocket() {
return mUdpEncapSocket;
}
- /** Package private */
- IkeSaProposal[] getSaProposals() {
+
+ public IkeSaProposal[] getSaProposals() {
return mSaProposals;
}
- /** Package private */
- IkeIdentification getLocalIdentification() {
+
+ public IkeIdentification getLocalIdentification() {
return mLocalIdentification;
}
- /** Package private */
- IkeIdentification getRemoteIdentification() {
+
+ public IkeIdentification getRemoteIdentification() {
return mRemoteIdentification;
}
- /** Package private */
- IkeAuthConfig getLocalAuthConfig() {
+
+ public IkeAuthConfig getLocalAuthConfig() {
return mLocalAuthConfig;
}
- /** Package private */
- IkeAuthConfig getRemoteAuthConfig() {
+
+ public IkeAuthConfig getRemoteAuthConfig() {
return mRemoteAuthConfig;
}
- /** Package private */
- boolean isIkeFragmentationSupported() {
+
+ public boolean isIkeFragmentationSupported() {
return mIsIkeFragmentationSupported;
}
- /**
- * Package private class that contains common information of an IKEv2 authentication
- * configuration.
- */
- abstract static class IkeAuthConfig {
- @IkeAuthMethod final int mAuthMethod;
+ /** This class contains common information of an IKEv2 authentication configuration. */
+ public abstract static class IkeAuthConfig {
+ @IkeAuthMethod public final int mAuthMethod;
protected IkeAuthConfig(@IkeAuthMethod int authMethod) {
mAuthMethod = authMethod;
@@ -125,11 +123,11 @@ public final class IkeSessionOptions {
}
/**
- * Package private class that contains configuration to do IKEv2 pre-shared-key-based
- * authentication of local or remote side.
+ * This class represents the configuration to support IKEv2 pre-shared-key-based authentication
+ * of local or remote side.
*/
- static class IkeAuthPskConfig extends IkeAuthConfig {
- final byte[] mPsk;
+ public static class IkeAuthPskConfig extends IkeAuthConfig {
+ public final byte[] mPsk;
private IkeAuthPskConfig(byte[] psk) {
super(IKE_AUTH_METHOD_PSK);
@@ -138,11 +136,11 @@ public final class IkeSessionOptions {
}
/**
- * Package private class that contains configuration to do IKEv2 public-key-based authentication
- * of the remote side.
+ * This class represents the configuration to support IKEv2 public-key-signature-based
+ * authentication of the remote side.
*/
- static class IkeAuthDigitalSignRemoteConfig extends IkeAuthConfig {
- final TrustAnchor mTrustAnchor;
+ public static class IkeAuthDigitalSignRemoteConfig extends IkeAuthConfig {
+ public final TrustAnchor mTrustAnchor;
private IkeAuthDigitalSignRemoteConfig(TrustAnchor trustAnchor) {
super(IKE_AUTH_METHOD_PUB_KEY_SIGNATURE);
@@ -150,11 +148,28 @@ public final class IkeSessionOptions {
}
}
- // TODO: Create IkeAuthDigitalSignLocalConfig to store signature hash algorithm and
- // certificates to do authentication of local side to the remote.
+ /**
+ * This class represents the configuration to support IKEv2 public-key-signature-based
+ * authentication of the local side.
+ */
+ public static class IkeAuthDigitalSignLocalConfig extends IkeAuthConfig {
+ public final X509Certificate mEndCert;
+ public final List<X509Certificate> mIntermediateCerts;
+ public final PrivateKey mPrivateKey;
+
+ private IkeAuthDigitalSignLocalConfig(
+ X509Certificate clientEndCert,
+ List<X509Certificate> clientIntermediateCerts,
+ PrivateKey privateKey) {
+ super(IKE_AUTH_METHOD_PUB_KEY_SIGNATURE);
+ mEndCert = clientEndCert;
+ mIntermediateCerts = clientIntermediateCerts;
+ mPrivateKey = privateKey;
+ }
+ }
/**
- * Package private class that contains configuration to do EAP authentication of the local side.
+ * This class represents the configuration to support EAP authentication of the local side.
*
* <p>EAP MUST be used with IKEv2 public-key-based authentication of the responder to the
* initiator. Currently IKE library does not support the IKEv2 protocol extension(RFC 5998)
@@ -165,8 +180,8 @@ public final class IkeSessionOptions {
* @see <a href="https://tools.ietf.org/html/rfc5998">RFC 5998, An Extension for EAP-Only
* Authentication in IKEv2</a>
*/
- static class IkeAuthEapConfig extends IkeAuthConfig {
- final EapSessionConfig mEapConfig;
+ public static class IkeAuthEapConfig extends IkeAuthConfig {
+ public final EapSessionConfig mEapConfig;
private IkeAuthEapConfig(EapSessionConfig eapConfig) {
super(IKE_AUTH_METHOD_EAP);
@@ -280,17 +295,13 @@ public final class IkeSessionOptions {
* <p>Users MUST declare only one authentication method. Calling this function will override
* the previously set authentication configuration.
*
- * <p>TODO: Add input to take EAP configucations.
- *
- * <p>TODO: Investigate if we need to support the name constraints extension.
- *
* @see <a href="https://tools.ietf.org/html/rfc5280">RFC 5280, Internet X.509 Public Key
* Infrastructure Certificate and Certificate Revocation List (CRL) Profile</a>
- * @param caCert the CA certificate for validating the received server certificate(s).
+ * @param serverCaCert the CA certificate for validating the received server certificate(s).
* @return Builder this, to facilitate chaining.
*/
public Builder setAuthEap(
- @NonNull X509Certificate caCert, @NonNull EapSessionConfig eapConfig) {
+ @NonNull X509Certificate serverCaCert, @NonNull EapSessionConfig eapConfig) {
mLocalAuthConfig = new IkeAuthEapConfig(eapConfig);
// The name constraints extension, defined in RFC 5280, indicates a name space within
@@ -298,11 +309,77 @@ public final class IkeSessionOptions {
// located.
mRemoteAuthConfig =
new IkeAuthDigitalSignRemoteConfig(
- new TrustAnchor(caCert, null /*nameConstraints*/));
+ new TrustAnchor(serverCaCert, null /*nameConstraints*/));
+
+ // TODO: Investigate if we need to support the name constraints extension.
+
return this;
}
- // TODO: Add methods to set authentication method to public key signature and EAP.
+ /**
+ * Uses certificate and digital signature to do IKE authentication.
+ *
+ * <p>The public key included by the client end certificate and the signature private key
+ * MUST come from the same key pair.
+ *
+ * <p>The IKE library will use the strongest signature algorithm supported by both sides.
+ *
+ * <p>Currenly only RSA digital signature is supported.
+ *
+ * @param serverCaCert the CA certificate for validating the received server certificate(s).
+ * @param clientEndCert the end certificate for remote server to verify the locally
+ * generated signature.
+ * @param clientPrivateKey private key to generate outbound digital signature. Only {@link
+ * RSAPrivateKey} is supported.
+ * @return Builder this, to facilitate chaining.
+ */
+ public Builder setAuthDigitalSignature(
+ @NonNull X509Certificate serverCaCert,
+ @NonNull X509Certificate clientEndCert,
+ @NonNull PrivateKey clientPrivateKey) {
+ return setAuthDigitalSignature(
+ serverCaCert,
+ clientEndCert,
+ new LinkedList<X509Certificate>(),
+ clientPrivateKey);
+ }
+
+ /**
+ * Uses certificate and digital signature to do IKE authentication.
+ *
+ * <p>The public key included by the client end certificate and the signature private key
+ * MUST come from the same key pair.
+ *
+ * <p>The IKE library will use the strongest signature algorithm supported by both sides.
+ *
+ * <p>Currenly only RSA digital signature is supported.
+ *
+ * @param serverCaCert the CA certificate for validating the received server certificate(s).
+ * @param clientEndCert the end certificate for remote server to verify locally generated
+ * signature.
+ * @param clientIntermediateCerts intermediate certificates for the remote server to
+ * validate the end certificate.
+ * @param clientPrivateKey private key to generate outbound digital signature. Only {@link
+ * RSAPrivateKey} is supported.
+ * @return Builder this, to facilitate chaining.
+ */
+ public Builder setAuthDigitalSignature(
+ @NonNull X509Certificate serverCaCert,
+ @NonNull X509Certificate clientEndCert,
+ @NonNull List<X509Certificate> clientIntermediateCerts,
+ @NonNull PrivateKey clientPrivateKey) {
+ if (!(clientPrivateKey instanceof RSAPrivateKey)) {
+ throw new IllegalArgumentException("Unsupported private key type");
+ }
+
+ mLocalAuthConfig =
+ new IkeAuthDigitalSignLocalConfig(
+ clientEndCert, clientIntermediateCerts, clientPrivateKey);
+ mRemoteAuthConfig =
+ new IkeAuthDigitalSignRemoteConfig(
+ new TrustAnchor(serverCaCert, null /*nameConstraints*/));
+ return this;
+ }
/**
* Validates, builds and returns the IkeSessionOptions
diff --git a/src/java/com/android/ike/ikev2/IkeTrafficSelector.java b/src/java/android/net/ipsec/ike/IkeTrafficSelector.java
index 1263dc12..65154b9d 100644
--- a/src/java/com/android/ike/ikev2/IkeTrafficSelector.java
+++ b/src/java/android/net/ipsec/ike/IkeTrafficSelector.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.IntDef;
import android.util.ArraySet;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/java/com/android/ike/ikev2/SaProposal.java b/src/java/android/net/ipsec/ike/SaProposal.java
index b012ea06..1e0b032e 100644
--- a/src/java/com/android/ike/ikev2/SaProposal.java
+++ b/src/java/android/net/ipsec/ike/SaProposal.java
@@ -14,19 +14,19 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.util.ArraySet;
import android.util.SparseArray;
-import com.android.ike.ikev2.message.IkePayload;
-import com.android.ike.ikev2.message.IkeSaPayload.DhGroupTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.Transform;
+import com.android.internal.net.ipsec.ike.message.IkePayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.DhGroupTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.Transform;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -192,18 +192,15 @@ public abstract class SaProposal {
return mProtocolId;
}
- /*Package private*/
- EncryptionTransform[] getEncryptionTransforms() {
+ public EncryptionTransform[] getEncryptionTransforms() {
return mEncryptionAlgorithms;
}
- /*Package private*/
- IntegrityTransform[] getIntegrityTransforms() {
+ public IntegrityTransform[] getIntegrityTransforms() {
return mIntegrityAlgorithms;
}
- /*Package private*/
- DhGroupTransform[] getDhGroupTransforms() {
+ public DhGroupTransform[] getDhGroupTransforms() {
return mDhGroups;
}
diff --git a/src/java/com/android/ike/ikev2/TransportModeChildSessionOptions.java b/src/java/android/net/ipsec/ike/TransportModeChildSessionOptions.java
index 8fb4c017..12e0601a 100644
--- a/src/java/com/android/ike/ikev2/TransportModeChildSessionOptions.java
+++ b/src/java/android/net/ipsec/ike/TransportModeChildSessionOptions.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import android.annotation.NonNull;
diff --git a/src/java/com/android/ike/ikev2/TunnelModeChildSessionOptions.java b/src/java/android/net/ipsec/ike/TunnelModeChildSessionOptions.java
index f43a6eaf..cb8268cf 100644
--- a/src/java/com/android/ike/ikev2/TunnelModeChildSessionOptions.java
+++ b/src/java/android/net/ipsec/ike/TunnelModeChildSessionOptions.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import static android.system.OsConstants.AF_INET;
import static android.system.OsConstants.AF_INET6;
@@ -22,14 +22,15 @@ import static android.system.OsConstants.AF_INET6;
import android.annotation.NonNull;
import android.net.LinkAddress;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttribute;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Address;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Dns;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Netmask;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Subnet;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv6Address;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv6Dns;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv6Subnet;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttribute;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Address;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Dhcp;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Dns;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Netmask;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Subnet;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv6Address;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv6Dns;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv6Subnet;
import java.net.Inet4Address;
import java.net.Inet6Address;
@@ -53,8 +54,7 @@ public final class TunnelModeChildSessionOptions extends ChildSessionOptions {
mConfigRequests = configRequests;
}
- /** Package private */
- ConfigAttribute[] getConfigurationRequests() {
+ public ConfigAttribute[] getConfigurationRequests() {
return mConfigRequests;
}
@@ -85,10 +85,10 @@ public final class TunnelModeChildSessionOptions extends ChildSessionOptions {
}
/**
- * Adds internal address requests to TunnelModeChildSessionOptions being built.
+ * Adds internal IP address requests to TunnelModeChildSessionOptions being built.
*
- * @param addressFamily the address family. Only OsConstants.AF_INET and
- * OsConstants.AF_INET6 are allowed.
+ * @param addressFamily the address family. Only {@link OsConstants.AF_INET} and {@link
+ * OsConstants.AF_INET6} are allowed.
* @param numOfRequest the number of requests for this type of address.
* @return Builder this, to facilitate chaining.
*/
@@ -110,7 +110,7 @@ public final class TunnelModeChildSessionOptions extends ChildSessionOptions {
}
/**
- * Adds specific internal address request to TunnelModeChildSessionOptions being built.
+ * Adds specific internal IP address request to TunnelModeChildSessionOptions being built.
*
* @param address the requested address.
* @param prefixLen length of the InetAddress prefix. When requesting an IPv4 address,
@@ -137,8 +137,8 @@ public final class TunnelModeChildSessionOptions extends ChildSessionOptions {
/**
* Adds internal DNS server requests to TunnelModeChildSessionOptions being built.
*
- * @param addressFamily the address family. Only OsConstants.AF_INET and
- * OsConstants.AF_INET6 are allowed.
+ * @param addressFamily the address family. Only {@link OsConstants.AF_INET} and {@link
+ * OsConstants.AF_INET6} are allowed.
* @param numOfRequest the number of requests for this type of address.
* @return Builder this, to facilitate chaining.
*/
@@ -179,8 +179,8 @@ public final class TunnelModeChildSessionOptions extends ChildSessionOptions {
/**
* Adds internal subnet requests to TunnelModeChildSessionOptions being built.
*
- * @param addressFamily the address family. Only OsConstants.AF_INET and
- * OsConstants.AF_INET6 are allowed.
+ * @param addressFamily the address family. Only {@link OsConstants.AF_INET} and {@link
+ * OsConstants.AF_INET6} are allowed.
* @param numOfRequest the number of requests for this type of address.
* @return Builder this, to facilitate chaining.
*/
@@ -201,6 +201,43 @@ public final class TunnelModeChildSessionOptions extends ChildSessionOptions {
}
/**
+ * Adds internal DHCP server requests to TunnelModeChildSessionOptions being built.
+ *
+ * <p>Only DHCP4 server requests are supported.
+ *
+ * @param addressFamily the address family. Only {@link OsConstants.AF_INET} is allowed.
+ * @param numOfRequest the number of requests for this type of address.
+ * @return Builder this, to facilitate chaining.
+ */
+ public Builder addInternalDhcpServerRequest(int addressFamily, int numOfRequest) {
+ if (addressFamily == AF_INET) {
+ for (int i = 0; i < numOfRequest; i++) {
+ mConfigRequestList.add(new ConfigAttributeIpv4Dhcp());
+ }
+ return this;
+ } else {
+ throw new IllegalArgumentException("Invalid address family: " + addressFamily);
+ }
+ }
+
+ /**
+ * Adds internal DHCP server requests to TunnelModeChildSessionOptions being built.
+ *
+ * <p>Only DHCP4 server requests are supported.
+ *
+ * @param address the requested DHCP server address.
+ * @return Builder this, to facilitate chaining.
+ */
+ public Builder addInternalDhcpServerRequest(@NonNull InetAddress address) {
+ if (address instanceof Inet4Address) {
+ mConfigRequestList.add(new ConfigAttributeIpv4Dhcp((Inet4Address) address));
+ return this;
+ } else {
+ throw new IllegalArgumentException("Invalid address " + address);
+ }
+ }
+
+ /**
* Validates, builds and returns the TunnelModeChildSessionOptions.
*
* @return the validated TunnelModeChildSessionOptions.
@@ -220,6 +257,4 @@ public final class TunnelModeChildSessionOptions extends ChildSessionOptions {
mConfigRequestList.toArray(new ConfigAttribute[mConfigRequestList.size()]));
}
}
-
- // TODO: b/140644654 Add API for configuration requests.
}
diff --git a/src/java/com/android/ike/ikev2/exceptions/IkeException.java b/src/java/android/net/ipsec/ike/exceptions/IkeException.java
index 112c5b54..867dcf5e 100644
--- a/src/java/com/android/ike/ikev2/exceptions/IkeException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/IkeException.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package android.net.ipsec.ike.exceptions;
/**
* IkeException is a generic IKE library exception class that provides type safety for all the
diff --git a/src/java/com/android/ike/ikev2/exceptions/IkeInternalException.java b/src/java/android/net/ipsec/ike/exceptions/IkeInternalException.java
index d5a91e79..29a5af94 100644
--- a/src/java/com/android/ike/ikev2/exceptions/IkeInternalException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/IkeInternalException.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package android.net.ipsec.ike.exceptions;
/**
* IkeInternalException represents all IKE-library-related exceptions that are not IKE protocol
diff --git a/src/java/com/android/ike/ikev2/exceptions/IkeProtocolException.java b/src/java/android/net/ipsec/ike/exceptions/IkeProtocolException.java
index 0ff47d6d..f589a267 100644
--- a/src/java/com/android/ike/ikev2/exceptions/IkeProtocolException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/IkeProtocolException.java
@@ -13,11 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package android.net.ipsec.ike.exceptions;
import android.annotation.IntDef;
-import com.android.ike.ikev2.message.IkeNotifyPayload;
+import com.android.internal.net.ipsec.ike.message.IkeNotifyPayload;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/java/com/android/ike/eap/statemachine/EapAkaPrimeMethodStateMachine.java b/src/java/com/android/ike/eap/statemachine/EapAkaPrimeMethodStateMachine.java
deleted file mode 100644
index 38eafb38..00000000
--- a/src/java/com/android/ike/eap/statemachine/EapAkaPrimeMethodStateMachine.java
+++ /dev/null
@@ -1,136 +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.ike.eap.statemachine;
-
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA_PRIME;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CLIENT_ERROR;
-
-import android.content.Context;
-
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapSessionConfig.EapAkaPrimeConfig;
-import com.android.ike.eap.message.EapData.EapMethod;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaPrimeTypeData;
-import com.android.ike.eap.message.simaka.EapAkaPrimeTypeData.EapAkaPrimeTypeDataDecoder;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.internal.annotations.VisibleForTesting;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * EapAkaPrimeMethodStateMachine represents the valid paths possible for the EAP-AKA' protocol.
- *
- * <p>EAP-AKA' sessions will always follow the path:
- *
- * Created --+--> Identity --+--> Challenge --> Final
- * | |
- * +---------------+
- *
- * <p>Note: If the EAP-Request/AKA'-Challenge message contains an AUTN with an invalid sequence
- * number, the peer will indicate a synchronization failure to the server and a new challenge will
- * be attempted.
- *
- * <p>Note: EAP-Request/Notification messages can be received at any point in the above state
- * machine At most one EAP-AKA'/Notification message is allowed per EAP-AKA' session.
- *
- * @see <a href="https://tools.ietf.org/html/rfc4187">RFC 4187, Extensible Authentication Protocol
- * for Authentication and Key Agreement (EAP-AKA)</a>
- * @see <a href="https://tools.ietf.org/html/rfc5448">RFC 5448, Improved Extensible Authentication
- * Protocol Method for 3rd Generation Authentication and Key Agreement (EAP-AKA')</a>
- */
-public class EapAkaPrimeMethodStateMachine extends EapAkaMethodStateMachine {
- // EAP-AKA' identity prefix (RFC 5448#3)
- private static final String AKA_PRIME_IDENTITY_PREFIX = "6";
-
- private final EapAkaPrimeTypeDataDecoder mEapAkaPrimeTypeDataDecoder;
-
- EapAkaPrimeMethodStateMachine(
- Context context, byte[] eapIdentity, EapAkaPrimeConfig eapAkaPrimeConfig) {
- this(
- context,
- eapIdentity,
- eapAkaPrimeConfig,
- EapAkaPrimeTypeData.getEapAkaPrimeTypeDataDecoder());
- }
-
- @VisibleForTesting
- protected EapAkaPrimeMethodStateMachine(
- Context context,
- byte[] eapIdentity,
- EapAkaPrimeConfig eapAkaPrimeConfig,
- EapAkaPrimeTypeDataDecoder eapAkaPrimeTypeDataDecoder) {
- super(context, eapIdentity, eapAkaPrimeConfig);
- mEapAkaPrimeTypeDataDecoder = eapAkaPrimeTypeDataDecoder;
-
- transitionTo(new CreatedState());
- }
-
- @Override
- @EapMethod
- int getEapMethod() {
- return EAP_TYPE_AKA_PRIME;
- }
-
- @Override
- protected DecodeResult<EapAkaTypeData> decode(byte[] typeData) {
- return mEapAkaPrimeTypeDataDecoder.decode(typeData);
- }
-
- @Override
- protected String getIdentityPrefix() {
- return AKA_PRIME_IDENTITY_PREFIX;
- }
-
- @Override
- protected ChallengeState buildChallengeState() {
- return new ChallengeState();
- }
-
- @Override
- protected ChallengeState buildChallengeState(byte[] identity) {
- return new ChallengeState(identity);
- }
-
- protected class ChallengeState extends EapAkaMethodStateMachine.ChallengeState {
- ChallengeState() {
- super();
- }
-
- ChallengeState(byte[] identity) {
- super(identity);
- }
-
- @Override
- protected EapResult handleChallengeAuthentication(
- EapMessage message, EapAkaTypeData eapAkaTypeData) {
- return null;
- }
- }
-
- EapAkaPrimeTypeData getEapSimAkaTypeData(AtClientErrorCode clientErrorCode) {
- return new EapAkaPrimeTypeData(EAP_AKA_CLIENT_ERROR, Arrays.asList(clientErrorCode));
- }
-
- EapAkaPrimeTypeData getEapSimAkaTypeData(int eapSubtype, List<EapSimAkaAttribute> attributes) {
- return new EapAkaPrimeTypeData(eapSubtype, attributes);
- }
-}
diff --git a/src/java/com/android/internal/net/crypto/KeyGenerationUtils.java b/src/java/com/android/internal/net/crypto/KeyGenerationUtils.java
new file mode 100644
index 00000000..c9ade7d5
--- /dev/null
+++ b/src/java/com/android/internal/net/crypto/KeyGenerationUtils.java
@@ -0,0 +1,81 @@
+/*
+ * 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.crypto;
+
+import java.nio.ByteBuffer;
+
+/**
+ * KeyGenerationUtils is a util class that contains utils for key generation needed by IKEv2 and
+ * EAP.
+ */
+public class KeyGenerationUtils {
+ /**
+ * Returns the derived pseudorandom number with the specified length by iteratively applying a
+ * PRF.
+ *
+ * <p>prf+(K, S) outputs a pseudorandom stream by using the PRF iteratively. In this way it can
+ * generate long enough keying material containing all the keys.
+ *
+ * @see <a href="https://tools.ietf.org/html/rfc7296#section-2.13">RFC 7296 Internet Key
+ * Exchange Protocol Version 2 (IKEv2) 2.13. Generating Keying Material </a>
+ * @param byteSigner the PRF used to sign the given data using the given key.
+ * @param keyBytes the key to sign data.
+ * @param dataToSign the data to be signed.
+ * @param keyMaterialLen the length of keying materials to be generated.
+ * @return the byte array of keying materials
+ */
+ public static byte[] prfPlus(
+ ByteSigner byteSigner, byte[] keyBytes, byte[] dataToSign, int keyMaterialLen) {
+ ByteBuffer keyMatBuffer = ByteBuffer.allocate(keyMaterialLen);
+
+ byte[] previousMac = new byte[0];
+ final int padLen = 1;
+ byte padValue = 1;
+
+ while (keyMatBuffer.remaining() > 0) {
+ ByteBuffer dataToSignBuffer =
+ ByteBuffer.allocate(previousMac.length + dataToSign.length + padLen);
+ dataToSignBuffer.put(previousMac).put(dataToSign).put(padValue);
+
+ previousMac = byteSigner.signBytes(keyBytes, dataToSignBuffer.array());
+
+ keyMatBuffer.put(
+ previousMac, 0, Math.min(previousMac.length, keyMatBuffer.remaining()));
+
+ padValue++;
+ }
+
+ return keyMatBuffer.array();
+ }
+
+ /**
+ * ByteSigner is an interface to be used for implementing the byte-signing for generating keys
+ * using {@link KeyGenerationUtils#prfPlus(ByteSigner, byte[], byte[], int)}.
+ */
+ public interface ByteSigner {
+ /**
+ * Signs the given data using the key given.
+ *
+ * <p>Caller is responsible for providing a valid key according to their use cases.
+ *
+ * @param keyBytes the key to sign data.
+ * @param dataToSign the data to be signed.
+ * @return the signed value.
+ */
+ byte[] signBytes(byte[] keyBytes, byte[] dataToSign);
+ }
+}
diff --git a/src/java/com/android/ike/eap/EapAuthenticator.java b/src/java/com/android/internal/net/eap/EapAuthenticator.java
index 463096ce..a6869d7d 100644
--- a/src/java/com/android/ike/eap/EapAuthenticator.java
+++ b/src/java/com/android/internal/net/eap/EapAuthenticator.java
@@ -14,19 +14,20 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
import android.content.Context;
+import android.net.eap.EapSessionConfig;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapResult.EapSuccess;
-import com.android.ike.eap.statemachine.EapStateMachine;
-import com.android.ike.utils.Log;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.statemachine.EapStateMachine;
+import com.android.internal.net.utils.Log;
import java.security.SecureRandom;
import java.util.concurrent.Executor;
diff --git a/src/java/com/android/ike/eap/EapResult.java b/src/java/com/android/internal/net/eap/EapResult.java
index 0f97581f..894dd475 100644
--- a/src/java/com/android/ike/eap/EapResult.java
+++ b/src/java/com/android/internal/net/eap/EapResult.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
import android.annotation.NonNull;
-import com.android.ike.eap.exceptions.InvalidEapResponseException;
-import com.android.ike.eap.message.EapMessage;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.exceptions.InvalidEapResponseException;
+import com.android.internal.net.eap.message.EapMessage;
/**
* EapResult represents the return type R for a process operation within the EapStateMachine.
diff --git a/src/java/com/android/ike/eap/IEapCallback.java b/src/java/com/android/internal/net/eap/IEapCallback.java
index 7bd82016..fae3edf8 100644
--- a/src/java/com/android/ike/eap/IEapCallback.java
+++ b/src/java/com/android/internal/net/eap/IEapCallback.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
/**
* IEapCallback represents a Callback interface to be implemented by clients of the
diff --git a/src/java/com/android/ike/eap/crypto/Fips186_2Prf.java b/src/java/com/android/internal/net/eap/crypto/Fips186_2Prf.java
index c98a406b..fb1268c0 100644
--- a/src/java/com/android/ike/eap/crypto/Fips186_2Prf.java
+++ b/src/java/com/android/internal/net/eap/crypto/Fips186_2Prf.java
@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.eap.crypto;
+package com.android.internal.net.eap.crypto;
-import static com.android.ike.utils.BigIntegerUtils.bigIntegerToUnsignedByteArray;
-import static com.android.ike.utils.BigIntegerUtils.unsignedByteArrayToBigInteger;
+import static com.android.internal.net.utils.BigIntegerUtils.bigIntegerToUnsignedByteArray;
+import static com.android.internal.net.utils.BigIntegerUtils.unsignedByteArrayToBigInteger;
import com.android.org.bouncycastle.crypto.digests.SHA1Digest;
diff --git a/src/java/com/android/internal/net/eap/crypto/HmacSha256ByteSigner.java b/src/java/com/android/internal/net/eap/crypto/HmacSha256ByteSigner.java
new file mode 100644
index 00000000..db6e4b30
--- /dev/null
+++ b/src/java/com/android/internal/net/eap/crypto/HmacSha256ByteSigner.java
@@ -0,0 +1,56 @@
+/*
+ * 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.eap.crypto;
+
+import com.android.internal.net.crypto.KeyGenerationUtils;
+import com.android.internal.net.crypto.KeyGenerationUtils.ByteSigner;
+
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+
+/**
+ * HmacSha256ByteSigner is a {@link ByteSigner} to be used for computing HMAC-SHA-256 values for
+ * specific keys and data.
+ */
+public class HmacSha256ByteSigner implements KeyGenerationUtils.ByteSigner {
+ private static final String TAG = HmacSha256ByteSigner.class.getSimpleName();
+ private static final String MAC_ALGORITHM_STRING = "HmacSHA256";
+ private static final HmacSha256ByteSigner sInstance = new HmacSha256ByteSigner();
+
+ /**
+ * Gets instance of HmacSha256ByteSigner.
+ *
+ * @return HmacSha256ByteSigner instance.
+ */
+ public static HmacSha256ByteSigner getInstance() {
+ return sInstance;
+ }
+
+ @Override
+ public byte[] signBytes(byte[] keyBytes, byte[] dataToSign) {
+ try {
+ Mac mac = Mac.getInstance(MAC_ALGORITHM_STRING);
+ mac.init(new SecretKeySpec(keyBytes, MAC_ALGORITHM_STRING));
+ return mac.doFinal(dataToSign);
+ } catch (NoSuchAlgorithmException | InvalidKeyException ex) {
+ throw new IllegalArgumentException(ex);
+ }
+ }
+}
diff --git a/src/java/com/android/ike/eap/crypto/ParityBitUtil.java b/src/java/com/android/internal/net/eap/crypto/ParityBitUtil.java
index cf821e7c..6413aded 100644
--- a/src/java/com/android/ike/eap/crypto/ParityBitUtil.java
+++ b/src/java/com/android/internal/net/eap/crypto/ParityBitUtil.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap.crypto;
+package com.android.internal.net.eap.crypto;
import com.android.internal.annotations.VisibleForTesting;
diff --git a/src/java/com/android/ike/eap/exceptions/EapInvalidPacketLengthException.java b/src/java/com/android/internal/net/eap/exceptions/EapInvalidPacketLengthException.java
index 4f8dff51..ca6d4da4 100644
--- a/src/java/com/android/ike/eap/exceptions/EapInvalidPacketLengthException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/EapInvalidPacketLengthException.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions;
+package com.android.internal.net.eap.exceptions;
-import com.android.ike.eap.message.EapMessage;
+import com.android.internal.net.eap.message.EapMessage;
/**
* This exception is thrown when the Packet Length for an {@link EapMessage} is invalid.
diff --git a/src/java/com/android/ike/eap/exceptions/EapInvalidRequestException.java b/src/java/com/android/internal/net/eap/exceptions/EapInvalidRequestException.java
index 0e92587b..8dee31ae 100644
--- a/src/java/com/android/ike/eap/exceptions/EapInvalidRequestException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/EapInvalidRequestException.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions;
+package com.android.internal.net.eap.exceptions;
-import com.android.ike.eap.statemachine.EapStateMachine;
+import com.android.internal.net.eap.statemachine.EapStateMachine;
/**
* EapInvalidRequestException is thrown when invalid EapMessages are attempted to be processed by
diff --git a/src/java/com/android/ike/eap/exceptions/EapSilentException.java b/src/java/com/android/internal/net/eap/exceptions/EapSilentException.java
index 08abfd2e..3cb9211d 100644
--- a/src/java/com/android/ike/eap/exceptions/EapSilentException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/EapSilentException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions;
+package com.android.internal.net.eap.exceptions;
/**
* EapSilentException represents a category of EAP errors that should be silently discarded by
diff --git a/src/java/com/android/ike/eap/exceptions/InvalidEapCodeException.java b/src/java/com/android/internal/net/eap/exceptions/InvalidEapCodeException.java
index ee7c5286..17a0c4df 100644
--- a/src/java/com/android/ike/eap/exceptions/InvalidEapCodeException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/InvalidEapCodeException.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions;
+package com.android.internal.net.eap.exceptions;
-import com.android.ike.eap.message.EapMessage;
+import com.android.internal.net.eap.message.EapMessage;
/**
* This exception is thrown when the EAP Code for an {@link EapMessage} is invalid.
diff --git a/src/java/com/android/ike/eap/exceptions/InvalidEapResponseException.java b/src/java/com/android/internal/net/eap/exceptions/InvalidEapResponseException.java
index 68b5e57d..c0a12e2c 100644
--- a/src/java/com/android/ike/eap/exceptions/InvalidEapResponseException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/InvalidEapResponseException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions;
+package com.android.internal.net.eap.exceptions;
/**
* InvalidEapResponseException is thrown when an invalid EapResponse is attempted to be constructed.
diff --git a/src/java/com/android/ike/eap/exceptions/UnsupportedEapTypeException.java b/src/java/com/android/internal/net/eap/exceptions/UnsupportedEapTypeException.java
index 1f36d441..f128385b 100644
--- a/src/java/com/android/ike/eap/exceptions/UnsupportedEapTypeException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/UnsupportedEapTypeException.java
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions;
+package com.android.internal.net.eap.exceptions;
-import com.android.ike.eap.message.EapData.EapType;
-import com.android.ike.eap.message.EapMessage;
+import com.android.internal.net.eap.message.EapData.EapType;
+import com.android.internal.net.eap.message.EapMessage;
/**
* UnsupportedEapTypeException is thrown when an {@link EapMessage} is constructed with an
diff --git a/src/java/com/android/ike/eap/exceptions/mschapv2/EapMsChapV2ParsingException.java b/src/java/com/android/internal/net/eap/exceptions/mschapv2/EapMsChapV2ParsingException.java
index 0da00759..09f1faea 100644
--- a/src/java/com/android/ike/eap/exceptions/mschapv2/EapMsChapV2ParsingException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/mschapv2/EapMsChapV2ParsingException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions.mschapv2;
+package com.android.internal.net.eap.exceptions.mschapv2;
/**
* EapMsChapV2ParsingException is thrown when an invalid MS-CHAPv2 Type Data is attempted to be
diff --git a/src/java/com/android/ike/eap/exceptions/simaka/EapAkaInvalidAuthenticationResponse.java b/src/java/com/android/internal/net/eap/exceptions/simaka/EapAkaInvalidAuthenticationResponse.java
index 8f81ed48..7310d787 100644
--- a/src/java/com/android/ike/eap/exceptions/simaka/EapAkaInvalidAuthenticationResponse.java
+++ b/src/java/com/android/internal/net/eap/exceptions/simaka/EapAkaInvalidAuthenticationResponse.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions.simaka;
+package com.android.internal.net.eap.exceptions.simaka;
/**
* EapAkaInvalidAuthenticationResponse is thrown when a UICC Challenge is processed during an
diff --git a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaAuthenticationFailureException.java b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaAuthenticationFailureException.java
index 41950465..699f22e4 100644
--- a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaAuthenticationFailureException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaAuthenticationFailureException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions.simaka;
+package com.android.internal.net.eap.exceptions.simaka;
/**
* EapSimAkaAuthenticationFailureException is thrown when an invalid Uicc Challenge is processed
diff --git a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaIdentityUnavailableException.java b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaIdentityUnavailableException.java
index c6e4a01d..6a421719 100644
--- a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaIdentityUnavailableException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaIdentityUnavailableException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions.simaka;
+package com.android.internal.net.eap.exceptions.simaka;
import android.telephony.TelephonyManager;
diff --git a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaInvalidAtPaddingException.java b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaInvalidAtPaddingException.java
index e584444a..34a8f046 100644
--- a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaInvalidAtPaddingException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaInvalidAtPaddingException.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions.simaka;
+package com.android.internal.net.eap.exceptions.simaka;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtPadding;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtPadding;
/**
* EapSimAkaInvalidAtPaddingException is thrown when an {@link AtPadding} with invalid padding is
diff --git a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaInvalidAttributeException.java b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaInvalidAttributeException.java
index 106dfb87..eff0c0c2 100644
--- a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaInvalidAttributeException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaInvalidAttributeException.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions.simaka;
+package com.android.internal.net.eap.exceptions.simaka;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
/**
* EapSimAkaInvalidAttributeException is thrown when an invalid {@link EapSimAkaAttribute} is
diff --git a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaInvalidLengthException.java b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaInvalidLengthException.java
index d4007884..c484b112 100644
--- a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaInvalidLengthException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaInvalidLengthException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions.simaka;
+package com.android.internal.net.eap.exceptions.simaka;
import android.telephony.TelephonyManager;
diff --git a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaUnsupportedAttributeException.java b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaUnsupportedAttributeException.java
index 0731cff7..11289175 100644
--- a/src/java/com/android/ike/eap/exceptions/simaka/EapSimAkaUnsupportedAttributeException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimAkaUnsupportedAttributeException.java
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions.simaka;
+package com.android.internal.net.eap.exceptions.simaka;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
/**
* EapSimAkaUnsupportedAttributeException is thrown when an unsupported {@link EapSimAkaAttribute}
diff --git a/src/java/com/android/ike/eap/exceptions/simaka/EapSimInvalidAtRandException.java b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimInvalidAtRandException.java
index b01865a2..c1b92004 100644
--- a/src/java/com/android/ike/eap/exceptions/simaka/EapSimInvalidAtRandException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimInvalidAtRandException.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions.simaka;
+package com.android.internal.net.eap.exceptions.simaka;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
/**
* EapSimInvalidAtRandException is thrown when an {@link AtRandSim} with an invalid number of RAND
diff --git a/src/java/com/android/ike/eap/exceptions/simaka/EapSimInvalidTypeDataException.java b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimInvalidTypeDataException.java
index 00152947..a6a2d457 100644
--- a/src/java/com/android/ike/eap/exceptions/simaka/EapSimInvalidTypeDataException.java
+++ b/src/java/com/android/internal/net/eap/exceptions/simaka/EapSimInvalidTypeDataException.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.exceptions.simaka;
+package com.android.internal.net.eap.exceptions.simaka;
-import com.android.ike.eap.message.simaka.EapSimTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData;
/**
* EapSimInvalidTypeDataException is thrown when invalid {@link EapSimTypeData} are attempted to be
diff --git a/src/java/com/android/ike/eap/message/EapData.java b/src/java/com/android/internal/net/eap/message/EapData.java
index 5e317160..86dc43b2 100644
--- a/src/java/com/android/ike/eap/message/EapData.java
+++ b/src/java/com/android/internal/net/eap/message/EapData.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap.message;
+package com.android.internal.net.eap.message;
import android.annotation.IntDef;
import android.annotation.NonNull;
diff --git a/src/java/com/android/ike/eap/message/EapMessage.java b/src/java/com/android/internal/net/eap/message/EapMessage.java
index 1f6cdfc3..bb1c6329 100644
--- a/src/java/com/android/ike/eap/message/EapMessage.java
+++ b/src/java/com/android/internal/net/eap/message/EapMessage.java
@@ -14,23 +14,23 @@
* limitations under the License.
*/
-package com.android.ike.eap.message;
+package com.android.internal.net.eap.message;
-import static com.android.ike.eap.EapAuthenticator.LOG;
-import static com.android.ike.eap.message.EapData.EAP_NAK;
-import static com.android.ike.eap.message.EapData.NOTIFICATION_DATA;
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.message.EapData.EAP_NAK;
+import static com.android.internal.net.eap.message.EapData.NOTIFICATION_DATA;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.exceptions.EapInvalidPacketLengthException;
-import com.android.ike.eap.exceptions.EapSilentException;
-import com.android.ike.eap.exceptions.InvalidEapCodeException;
-import com.android.ike.eap.exceptions.UnsupportedEapTypeException;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.EapInvalidPacketLengthException;
+import com.android.internal.net.eap.exceptions.EapSilentException;
+import com.android.internal.net.eap.exceptions.InvalidEapCodeException;
+import com.android.internal.net.eap.exceptions.UnsupportedEapTypeException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2TypeData.java b/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2TypeData.java
index a31f4a0c..985e0dac 100644
--- a/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2TypeData.java
+++ b/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2TypeData.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.mschapv2;
+package com.android.internal.net.eap.message.mschapv2;
-import static com.android.ike.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
-import com.android.ike.eap.message.EapMessage;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
+import com.android.internal.net.eap.message.EapMessage;
import java.nio.BufferUnderflowException;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/eap/message/simaka/EapAkaAttributeFactory.java b/src/java/com/android/internal/net/eap/message/simaka/EapAkaAttributeFactory.java
index 2a0c738a..5b687818 100644
--- a/src/java/com/android/ike/eap/message/simaka/EapAkaAttributeFactory.java
+++ b/src/java/com/android/internal/net/eap/message/simaka/EapAkaAttributeFactory.java
@@ -14,22 +14,22 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTS;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_BIDDING;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RES;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.LENGTH_SCALING;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTS;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_BIDDING;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RES;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.LENGTH_SCALING;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAutn;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAuts;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtBidding;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRes;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAutn;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAuts;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtBidding;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRes;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/eap/message/simaka/EapAkaPrimeAttributeFactory.java b/src/java/com/android/internal/net/eap/message/simaka/EapAkaPrimeAttributeFactory.java
index ed7ddc5b..46f97e53 100644
--- a/src/java/com/android/ike/eap/message/simaka/EapAkaPrimeAttributeFactory.java
+++ b/src/java/com/android/internal/net/eap/message/simaka/EapAkaPrimeAttributeFactory.java
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF_INPUT;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.LENGTH_SCALING;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF_INPUT;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.LENGTH_SCALING;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtKdf;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtKdfInput;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtKdf;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtKdfInput;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/eap/message/simaka/EapAkaPrimeTypeData.java b/src/java/com/android/internal/net/eap/message/simaka/EapAkaPrimeTypeData.java
index 7f06d683..23dcd024 100644
--- a/src/java/com/android/ike/eap/message/simaka/EapAkaPrimeTypeData.java
+++ b/src/java/com/android/internal/net/eap/message/simaka/EapAkaPrimeTypeData.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
import android.annotation.NonNull;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
import java.util.LinkedHashMap;
import java.util.List;
diff --git a/src/java/com/android/ike/eap/message/simaka/EapAkaTypeData.java b/src/java/com/android/internal/net/eap/message/simaka/EapAkaTypeData.java
index ceee3e71..e3ce817e 100644
--- a/src/java/com/android/ike/eap/message/simaka/EapAkaTypeData.java
+++ b/src/java/com/android/internal/net/eap/message/simaka/EapAkaTypeData.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
import android.annotation.NonNull;
-import com.android.ike.eap.message.EapMessage;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.message.EapMessage;
import java.util.HashMap;
import java.util.HashSet;
diff --git a/src/java/com/android/ike/eap/message/simaka/EapSimAkaAttribute.java b/src/java/com/android/internal/net/eap/message/simaka/EapSimAkaAttribute.java
index dec511c7..73d6752d 100644
--- a/src/java/com/android/ike/eap/message/simaka/EapSimAkaAttribute.java
+++ b/src/java/com/android/internal/net/eap/message/simaka/EapSimAkaAttribute.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
-import static com.android.ike.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAtPaddingException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimInvalidAtRandException;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAtPaddingException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimInvalidAtRandException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
diff --git a/src/java/com/android/ike/eap/message/simaka/EapSimAkaAttributeFactory.java b/src/java/com/android/internal/net/eap/message/simaka/EapSimAkaAttributeFactory.java
index 9a1ae7a1..df79a25e 100644
--- a/src/java/com/android/ike/eap/message/simaka/EapSimAkaAttributeFactory.java
+++ b/src/java/com/android/internal/net/eap/message/simaka/EapSimAkaAttributeFactory.java
@@ -14,37 +14,37 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_CLIENT_ERROR_CODE;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_COUNTER;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_COUNTER_TOO_SMALL;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_FULLAUTH_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_IDENTITY;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NONCE_S;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NOTIFICATION;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PADDING;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.LENGTH_SCALING;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.SKIPPABLE_ATTRIBUTE_RANGE_START;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_CLIENT_ERROR_CODE;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_COUNTER;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_COUNTER_TOO_SMALL;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_FULLAUTH_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_IDENTITY;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NONCE_S;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NOTIFICATION;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PADDING;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.LENGTH_SCALING;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.SKIPPABLE_ATTRIBUTE_RANGE_START;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtCounter;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtCounterTooSmall;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtFullauthIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtMac;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNonceS;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtPadding;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.EapSimAkaUnsupportedAttribute;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtCounter;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtCounterTooSmall;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtFullauthIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNonceS;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtPadding;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EapSimAkaUnsupportedAttribute;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/eap/message/simaka/EapSimAkaTypeData.java b/src/java/com/android/internal/net/eap/message/simaka/EapSimAkaTypeData.java
index 78aede51..c84fdf4b 100644
--- a/src/java/com/android/ike/eap/message/simaka/EapSimAkaTypeData.java
+++ b/src/java/com/android/internal/net/eap/message/simaka/EapSimAkaTypeData.java
@@ -14,19 +14,19 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
-import static com.android.ike.eap.EapAuthenticator.LOG;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_ATTRIBUTE_STRING;
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_ATTRIBUTE_STRING;
import android.annotation.NonNull;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimInvalidAtRandException;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.EapSimAkaUnsupportedAttribute;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimInvalidAtRandException;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EapSimAkaUnsupportedAttribute;
import java.nio.BufferUnderflowException;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/eap/message/simaka/EapSimAttributeFactory.java b/src/java/com/android/internal/net/eap/message/simaka/EapSimAttributeFactory.java
index 1e03f352..8be348eb 100644
--- a/src/java/com/android/ike/eap/message/simaka/EapSimAttributeFactory.java
+++ b/src/java/com/android/internal/net/eap/message/simaka/EapSimAttributeFactory.java
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NONCE_MT;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_SELECTED_VERSION;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_VERSION_LIST;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.LENGTH_SCALING;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NONCE_MT;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_SELECTED_VERSION;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_VERSION_LIST;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.LENGTH_SCALING;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNonceMt;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtSelectedVersion;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNonceMt;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtSelectedVersion;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/eap/message/simaka/EapSimTypeData.java b/src/java/com/android/internal/net/eap/message/simaka/EapSimTypeData.java
index df699326..ff1be603 100644
--- a/src/java/com/android/ike/eap/message/simaka/EapSimTypeData.java
+++ b/src/java/com/android/internal/net/eap/message/simaka/EapSimTypeData.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
import android.annotation.NonNull;
-import com.android.ike.eap.message.EapMessage;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.message.EapMessage;
import java.util.HashMap;
import java.util.HashSet;
diff --git a/src/java/com/android/ike/eap/statemachine/EapAkaMethodStateMachine.java b/src/java/com/android/internal/net/eap/statemachine/EapAkaMethodStateMachine.java
index a0f1312a..b26c8e95 100644
--- a/src/java/com/android/ike/eap/statemachine/EapAkaMethodStateMachine.java
+++ b/src/java/com/android/internal/net/eap/statemachine/EapAkaMethodStateMachine.java
@@ -14,57 +14,60 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.eap.EapAuthenticator.LOG;
-import static com.android.ike.eap.message.EapData.EAP_NOTIFICATION;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_AUTHENTICATION_REJECT;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CLIENT_ERROR;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_NOTIFICATION;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_SYNCHRONIZATION_FAILURE;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ENCR_DATA;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_FULLAUTH_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_IV;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
-
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.message.EapData.EAP_NOTIFICATION;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_AUTHENTICATION_REJECT;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CLIENT_ERROR;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_NOTIFICATION;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_SYNCHRONIZATION_FAILURE;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_BIDDING;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ENCR_DATA;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_FULLAUTH_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_IV;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
+
+import android.annotation.Nullable;
import android.content.Context;
+import android.net.eap.EapSessionConfig.EapAkaConfig;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapSuccess;
-import com.android.ike.eap.EapSessionConfig.EapAkaConfig;
-import com.android.ike.eap.crypto.Fips186_2Prf;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.exceptions.EapSilentException;
-import com.android.ike.eap.exceptions.simaka.EapAkaInvalidAuthenticationResponse;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaAuthenticationFailureException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaIdentityUnavailableException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidLengthException;
-import com.android.ike.eap.message.EapData.EapMethod;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapAkaTypeData.EapAkaTypeDataDecoder;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAutn;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAuts;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRes;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.crypto.Fips186_2Prf;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.exceptions.EapSilentException;
+import com.android.internal.net.eap.exceptions.simaka.EapAkaInvalidAuthenticationResponse;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaAuthenticationFailureException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaIdentityUnavailableException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidLengthException;
+import com.android.internal.net.eap.message.EapData.EapMethod;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData.EapAkaTypeDataDecoder;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAutn;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAuts;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtBidding;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRes;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
import java.nio.BufferUnderflowException;
import java.nio.ByteBuffer;
@@ -103,13 +106,24 @@ class EapAkaMethodStateMachine extends EapSimAkaMethodStateMachine {
private static final String AKA_IDENTITY_PREFIX = "0";
private final EapAkaTypeDataDecoder mEapAkaTypeDataDecoder;
+ private final boolean mSupportsEapAkaPrime;
- EapAkaMethodStateMachine(Context context, byte[] eapIdentity, EapAkaConfig eapAkaConfig) {
+ protected EapAkaMethodStateMachine(
+ Context context, byte[] eapIdentity, EapAkaConfig eapAkaConfig) {
+ this(context, eapIdentity, eapAkaConfig, false);
+ }
+
+ EapAkaMethodStateMachine(
+ Context context,
+ byte[] eapIdentity,
+ EapAkaConfig eapAkaConfig,
+ boolean supportsEapAkaPrime) {
this(
(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE),
eapIdentity,
eapAkaConfig,
- EapAkaTypeData.getEapAkaTypeDataDecoder());
+ EapAkaTypeData.getEapAkaTypeDataDecoder(),
+ supportsEapAkaPrime);
}
@VisibleForTesting
@@ -117,12 +131,14 @@ class EapAkaMethodStateMachine extends EapSimAkaMethodStateMachine {
TelephonyManager telephonyManager,
byte[] eapIdentity,
EapAkaConfig eapAkaConfig,
- EapAkaTypeDataDecoder eapAkaTypeDataDecoder) {
+ EapAkaTypeDataDecoder eapAkaTypeDataDecoder,
+ boolean supportsEapAkaPrime) {
super(
telephonyManager.createForSubscriptionId(eapAkaConfig.subId),
eapIdentity,
eapAkaConfig);
mEapAkaTypeDataDecoder = eapAkaTypeDataDecoder;
+ mSupportsEapAkaPrime = supportsEapAkaPrime;
transitionTo(new CreatedState());
}
@@ -374,23 +390,17 @@ class EapAkaMethodStateMachine extends EapSimAkaMethodStateMachine {
} catch (EapSimAkaInvalidLengthException | BufferUnderflowException ex) {
LOG.e(mTAG, "Invalid response returned from SIM", ex);
return buildClientErrorResponse(
- message.eapIdentifier,
- EAP_TYPE_AKA,
- AtClientErrorCode.UNABLE_TO_PROCESS);
+ message.eapIdentifier, getEapMethod(), AtClientErrorCode.UNABLE_TO_PROCESS);
} catch (EapSimAkaAuthenticationFailureException ex) {
// Return EAP-Response/AKA-Authentication-Reject when the AUTN is rejected
// (RFC 4187#6.3.1)
- return buildResponseMessage(
- EAP_TYPE_AKA,
- EAP_AKA_AUTHENTICATION_REJECT,
- message.eapIdentifier,
- new ArrayList<>());
+ return buildAuthenticationRejectMessage(message.eapIdentifier);
}
if (!result.isSuccessfulResult()) {
try {
return buildResponseMessage(
- EAP_TYPE_AKA,
+ getEapMethod(),
EAP_AKA_SYNCHRONIZATION_FAILURE,
message.eapIdentifier,
Arrays.asList(new AtAuts(result.auts)));
@@ -400,21 +410,17 @@ class EapAkaMethodStateMachine extends EapSimAkaMethodStateMachine {
}
}
- try {
- MessageDigest sha1 = MessageDigest.getInstance(MASTER_KEY_GENERATION_ALG);
- byte[] mkInputData = getMkInputData(result);
- generateAndPersistKeys(mTAG, sha1, new Fips186_2Prf(), mkInputData);
- } catch (NoSuchAlgorithmException | BufferUnderflowException ex) {
- LOG.e(mTAG, "Error while creating keys", ex);
- return buildClientErrorResponse(
- message.eapIdentifier, EAP_TYPE_AKA, AtClientErrorCode.UNABLE_TO_PROCESS);
+ EapResult eapResult =
+ generateAndPersistEapAkaKeys(result, message.eapIdentifier, eapAkaTypeData);
+ if (eapResult != null) {
+ return eapResult;
}
try {
if (!isValidMac(mTAG, message, eapAkaTypeData, new byte[0])) {
return buildClientErrorResponse(
message.eapIdentifier,
- EAP_TYPE_AKA,
+ getEapMethod(),
AtClientErrorCode.UNABLE_TO_PROCESS);
}
} catch (GeneralSecurityException
@@ -425,6 +431,18 @@ class EapAkaMethodStateMachine extends EapSimAkaMethodStateMachine {
return new EapError(ex);
}
+ // before sending a response, check for bidding-down attacks (RFC 5448#4)
+ if (mSupportsEapAkaPrime) {
+ AtBidding atBidding = (AtBidding) eapAkaTypeData.attributeMap.get(EAP_AT_BIDDING);
+ if (atBidding != null && atBidding.doesServerSupportEapAkaPrime) {
+ LOG.w(
+ mTAG,
+ "Potential bidding down attack. AT_BIDDING attr included and EAP-AKA'"
+ + " is supported");
+ return buildAuthenticationRejectMessage(message.eapIdentifier);
+ }
+ }
+
// server has been authenticated, so we can send a response
try {
mHadSuccessfulChallenge = true;
@@ -551,6 +569,29 @@ class EapAkaMethodStateMachine extends EapSimAkaMethodStateMachine {
return new RandChallengeResult(res, ik, ck);
}
+ protected EapResult buildAuthenticationRejectMessage(int eapIdentifier) {
+ return buildResponseMessage(
+ getEapMethod(),
+ EAP_AKA_AUTHENTICATION_REJECT,
+ eapIdentifier,
+ new ArrayList<>());
+ }
+
+ @Nullable
+ protected EapResult generateAndPersistEapAkaKeys(
+ RandChallengeResult result, int eapIdentifier, EapAkaTypeData eapAkaTypeData) {
+ try {
+ MessageDigest sha1 = MessageDigest.getInstance(MASTER_KEY_GENERATION_ALG);
+ byte[] mkInputData = getMkInputData(result);
+ generateAndPersistKeys(mTAG, sha1, new Fips186_2Prf(), mkInputData);
+ return null;
+ } catch (NoSuchAlgorithmException | BufferUnderflowException ex) {
+ LOG.e(mTAG, "Error while creating keys", ex);
+ return buildClientErrorResponse(
+ eapIdentifier, EAP_TYPE_AKA, AtClientErrorCode.UNABLE_TO_PROCESS);
+ }
+ }
+
private byte[] getMkInputData(RandChallengeResult result) {
int numInputBytes = mIdentity.length + result.ik.length + result.ck.length;
ByteBuffer buffer = ByteBuffer.allocate(numInputBytes);
diff --git a/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeMethodStateMachine.java b/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeMethodStateMachine.java
new file mode 100644
index 00000000..d2e8ba25
--- /dev/null
+++ b/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeMethodStateMachine.java
@@ -0,0 +1,336 @@
+/*
+ * 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.eap.statemachine;
+
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA_PRIME;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CLIENT_ERROR;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF_INPUT;
+
+import android.annotation.Nullable;
+import android.content.Context;
+import android.net.eap.EapSessionConfig.EapAkaPrimeConfig;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.crypto.KeyGenerationUtils;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.crypto.HmacSha256ByteSigner;
+import com.android.internal.net.eap.message.EapData.EapMethod;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaPrimeTypeData;
+import com.android.internal.net.eap.message.simaka.EapAkaPrimeTypeData.EapAkaPrimeTypeDataDecoder;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAutn;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtKdf;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtKdfInput;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+
+import java.nio.BufferOverflowException;
+import java.nio.BufferUnderflowException;
+import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
+import java.security.GeneralSecurityException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+
+/**
+ * EapAkaPrimeMethodStateMachine represents the valid paths possible for the EAP-AKA' protocol.
+ *
+ * <p>EAP-AKA' sessions will always follow the path:
+ *
+ * Created --+--> Identity --+--> Challenge --> Final
+ * | |
+ * +---------------+
+ *
+ * <p>Note: If the EAP-Request/AKA'-Challenge message contains an AUTN with an invalid sequence
+ * number, the peer will indicate a synchronization failure to the server and a new challenge will
+ * be attempted.
+ *
+ * <p>Note: EAP-Request/Notification messages can be received at any point in the above state
+ * machine At most one EAP-AKA'/Notification message is allowed per EAP-AKA' session.
+ *
+ * @see <a href="https://tools.ietf.org/html/rfc4187">RFC 4187, Extensible Authentication Protocol
+ * for Authentication and Key Agreement (EAP-AKA)</a>
+ * @see <a href="https://tools.ietf.org/html/rfc5448">RFC 5448, Improved Extensible Authentication
+ * Protocol Method for 3rd Generation Authentication and Key Agreement (EAP-AKA')</a>
+ */
+public class EapAkaPrimeMethodStateMachine extends EapAkaMethodStateMachine {
+ public static final int K_AUT_LEN = 32;
+ public static final int K_RE_LEN = 32;
+
+ // EAP-AKA' identity prefix (RFC 5448#3)
+ private static final String AKA_PRIME_IDENTITY_PREFIX = "6";
+ private static final int SUPPORTED_KDF = 1;
+ private static final int FC = 0x20; // Required by TS 133 402 Annex A.2
+ private static final int SQN_XOR_AK_LEN = 6;
+ private static final String MAC_ALGORITHM_STRING = "HmacSHA256";
+ private static final String MK_DATA_PREFIX = "EAP-AKA'";
+
+ // MK_LEN_BYTES = len(K_encr | K_aut | K_re | MSK | EMSK)
+ private static final int MK_LEN_BYTES =
+ KEY_LEN + K_AUT_LEN + K_RE_LEN + (2 * SESSION_KEY_LENGTH);
+
+ public final byte[] mKRe = new byte[getKReLen()];
+
+ private final EapAkaPrimeConfig mEapAkaPrimeConfig;
+ private final EapAkaPrimeTypeDataDecoder mEapAkaPrimeTypeDataDecoder;
+
+ EapAkaPrimeMethodStateMachine(
+ Context context, byte[] eapIdentity, EapAkaPrimeConfig eapAkaPrimeConfig) {
+ this(
+ context,
+ eapIdentity,
+ eapAkaPrimeConfig,
+ EapAkaPrimeTypeData.getEapAkaPrimeTypeDataDecoder());
+ }
+
+ @VisibleForTesting
+ protected EapAkaPrimeMethodStateMachine(
+ Context context,
+ byte[] eapIdentity,
+ EapAkaPrimeConfig eapAkaPrimeConfig,
+ EapAkaPrimeTypeDataDecoder eapAkaPrimeTypeDataDecoder) {
+ super(context, eapIdentity, eapAkaPrimeConfig);
+ mEapAkaPrimeConfig = eapAkaPrimeConfig;
+ mEapAkaPrimeTypeDataDecoder = eapAkaPrimeTypeDataDecoder;
+
+ transitionTo(new CreatedState());
+ }
+
+ @Override
+ @EapMethod
+ int getEapMethod() {
+ return EAP_TYPE_AKA_PRIME;
+ }
+
+ @Override
+ protected int getKAutLength() {
+ return K_AUT_LEN;
+ }
+
+ protected int getKReLen() {
+ return K_RE_LEN;
+ }
+
+ @Override
+ protected DecodeResult<EapAkaTypeData> decode(byte[] typeData) {
+ return mEapAkaPrimeTypeDataDecoder.decode(typeData);
+ }
+
+ @Override
+ protected String getIdentityPrefix() {
+ return AKA_PRIME_IDENTITY_PREFIX;
+ }
+
+ @Override
+ protected ChallengeState buildChallengeState() {
+ return new ChallengeState();
+ }
+
+ @Override
+ protected ChallengeState buildChallengeState(byte[] identity) {
+ return new ChallengeState(identity);
+ }
+
+ @Override
+ protected String getMacAlgorithm() {
+ return MAC_ALGORITHM_STRING;
+ }
+
+ protected class ChallengeState extends EapAkaMethodStateMachine.ChallengeState {
+ private final String mTAG = ChallengeState.class.getSimpleName();
+
+ ChallengeState() {
+ super();
+ }
+
+ ChallengeState(byte[] identity) {
+ super(identity);
+ }
+
+ @Override
+ protected EapResult handleChallengeAuthentication(
+ EapMessage message, EapAkaTypeData eapAkaTypeData) {
+ EapAkaPrimeTypeData eapAkaPrimeTypeData = (EapAkaPrimeTypeData) eapAkaTypeData;
+
+ if (!isValidChallengeAttributes(eapAkaPrimeTypeData)) {
+ return buildAuthenticationRejectMessage(message.eapIdentifier);
+ }
+ return super.handleChallengeAuthentication(message, eapAkaPrimeTypeData);
+ }
+
+ @VisibleForTesting
+ boolean isValidChallengeAttributes(EapAkaPrimeTypeData eapAkaPrimeTypeData) {
+ Map<Integer, EapSimAkaAttribute> attrs = eapAkaPrimeTypeData.attributeMap;
+
+ if (!attrs.containsKey(EAP_AT_KDF) || !attrs.containsKey(EAP_AT_KDF_INPUT)) {
+ return false;
+ }
+
+ // TODO(b/143073851): implement KDF resolution specified in RFC 5448#3.2
+ // This is safe, as there only exists one defined KDF.
+ AtKdf atKdf = (AtKdf) attrs.get(EAP_AT_KDF);
+ if (atKdf.kdf != SUPPORTED_KDF) {
+ return false;
+ }
+
+ AtKdfInput atKdfInput = (AtKdfInput) attrs.get(EAP_AT_KDF_INPUT);
+ if (atKdfInput.networkName.length == 0) {
+ return false;
+ }
+
+ boolean hasMatchingNetworkNames =
+ hasMatchingNetworkNames(
+ mEapAkaPrimeConfig.networkName,
+ new String(atKdfInput.networkName, StandardCharsets.UTF_8));
+ return mEapAkaPrimeConfig.allowMismatchedNetworkNames || hasMatchingNetworkNames;
+ }
+
+ /**
+ * Compares the peer's network name against the server's network name.
+ *
+ * <p>RFC 5448#3.1 describes how the network names are to be compared: "each name is broken
+ * down to the fields separated by colons. If one of the names has more colons and fields
+ * than the other one, the additional fields are ignored. The remaining sequences of fields
+ * are compared. This algorithm allows a prefix match".
+ *
+ * @return true iff one network name matches the other, as defined by RC 5448#3.1
+ */
+ @VisibleForTesting
+ boolean hasMatchingNetworkNames(String peerNetworkName, String serverNetworkName) {
+ // compare network names according to RFC 5448#3.1
+ if (peerNetworkName.isEmpty() || serverNetworkName.isEmpty()) {
+ return true;
+ }
+
+ String[] peerNetworkNameFields = peerNetworkName.split(":");
+ String[] serverNetworkNameFields = serverNetworkName.split(":");
+ int numFieldsToCompare =
+ Math.min(peerNetworkNameFields.length, serverNetworkNameFields.length);
+ for (int i = 0; i < numFieldsToCompare; i++) {
+ if (!peerNetworkNameFields[i].equals(serverNetworkNameFields[i])) {
+ LOG.i(
+ mTAG,
+ "EAP-AKA' network names don't match."
+ + " Peer: " + LOG.pii(peerNetworkName)
+ + ", Server: " + LOG.pii(serverNetworkName));
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ @Nullable
+ @Override
+ protected EapResult generateAndPersistEapAkaKeys(
+ RandChallengeResult result, int eapIdentifier, EapAkaTypeData eapAkaTypeData) {
+ try {
+ AtKdfInput atKdfInput =
+ (AtKdfInput) eapAkaTypeData.attributeMap.get(EAP_AT_KDF_INPUT);
+ AtAutn atAutn = (AtAutn) eapAkaTypeData.attributeMap.get(EAP_AT_AUTN);
+ byte[] ckIkPrime = deriveCkIkPrime(result, atKdfInput, atAutn);
+
+ int dataToSignLen = MK_DATA_PREFIX.length() + mIdentity.length;
+ ByteBuffer dataToSign = ByteBuffer.allocate(dataToSignLen);
+ dataToSign.put(MK_DATA_PREFIX.getBytes(StandardCharsets.US_ASCII));
+ dataToSign.put(mIdentity);
+
+ ByteBuffer mk =
+ ByteBuffer.wrap(
+ KeyGenerationUtils.prfPlus(
+ HmacSha256ByteSigner.getInstance(),
+ ckIkPrime,
+ dataToSign.array(),
+ MK_LEN_BYTES));
+
+ mk.get(mKEncr);
+ mk.get(mKAut);
+ mk.get(mKRe);
+ mk.get(mMsk);
+ mk.get(mEmsk);
+
+ // Log as hash unless PII debug mode enabled
+ LOG.d(mTAG, "K_encr=" + LOG.pii(mKEncr));
+ LOG.d(mTAG, "K_aut=" + LOG.pii(mKAut));
+ LOG.d(mTAG, "K_re=" + LOG.pii(mKRe));
+ LOG.d(mTAG, "MSK=" + LOG.pii(mMsk));
+ LOG.d(mTAG, "EMSK=" + LOG.pii(mEmsk));
+ return null;
+ } catch (GeneralSecurityException
+ | BufferOverflowException
+ | BufferUnderflowException ex) {
+ LOG.e(mTAG, "Error while generating keys", ex);
+ return buildClientErrorResponse(
+ eapIdentifier, getEapMethod(), AtClientErrorCode.UNABLE_TO_PROCESS);
+ }
+ }
+
+ /**
+ * Derives CK' and IK' values from CK and IK
+ *
+ * <p>CK' and IK' generation is specified in TS 133 402 Annex A.2, which relies on the key
+ * derivation function KDF specified in TS 133 220 Annex B.2.
+ */
+ @VisibleForTesting
+ byte[] deriveCkIkPrime(
+ RandChallengeResult randChallengeResult, AtKdfInput atKdfInput, AtAutn atAutn)
+ throws GeneralSecurityException {
+ final int fcLen = 1;
+ int lengthFieldLen = 2;
+
+ // SQN ^ AK is the first 6B of the AUTN value
+ byte[] sqnXorAk = Arrays.copyOf(atAutn.autn, SQN_XOR_AK_LEN);
+ int sLength =
+ fcLen
+ + atKdfInput.networkName.length + lengthFieldLen
+ + SQN_XOR_AK_LEN + lengthFieldLen;
+
+ ByteBuffer dataToSign = ByteBuffer.allocate(sLength);
+ dataToSign.put((byte) FC);
+ dataToSign.put(atKdfInput.networkName);
+ dataToSign.putShort((short) atKdfInput.networkName.length);
+ dataToSign.put(sqnXorAk);
+ dataToSign.putShort((short) SQN_XOR_AK_LEN);
+
+ int keyLen = randChallengeResult.ck.length + randChallengeResult.ik.length;
+ ByteBuffer key = ByteBuffer.allocate(keyLen);
+ key.put(randChallengeResult.ck);
+ key.put(randChallengeResult.ik);
+
+ Mac mac = Mac.getInstance(MAC_ALGORITHM_STRING);
+ mac.init(new SecretKeySpec(key.array(), MAC_ALGORITHM_STRING));
+ return mac.doFinal(dataToSign.array());
+ }
+ }
+
+ EapAkaPrimeTypeData getEapSimAkaTypeData(AtClientErrorCode clientErrorCode) {
+ return new EapAkaPrimeTypeData(EAP_AKA_CLIENT_ERROR, Arrays.asList(clientErrorCode));
+ }
+
+ EapAkaPrimeTypeData getEapSimAkaTypeData(int eapSubtype, List<EapSimAkaAttribute> attributes) {
+ return new EapAkaPrimeTypeData(eapSubtype, attributes);
+ }
+}
diff --git a/src/java/com/android/ike/eap/statemachine/EapMethodStateMachine.java b/src/java/com/android/internal/net/eap/statemachine/EapMethodStateMachine.java
index 31a5f2fd..bab182b9 100644
--- a/src/java/com/android/ike/eap/statemachine/EapMethodStateMachine.java
+++ b/src/java/com/android/internal/net/eap/statemachine/EapMethodStateMachine.java
@@ -14,23 +14,23 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.EapAuthenticator.LOG;
-import static com.android.ike.eap.message.EapData.EAP_NOTIFICATION;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.message.EapData.EAP_NOTIFICATION;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
import android.annotation.Nullable;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.message.EapData.EapMethod;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.utils.SimpleStateMachine;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.message.EapData.EapMethod;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.utils.SimpleStateMachine;
/**
* EapMethodStateMachine is an abstract class representing a state machine for EAP Method
diff --git a/src/java/com/android/ike/eap/statemachine/EapMsChapV2MethodStateMachine.java b/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2MethodStateMachine.java
index 96e6b950..490b8ba1 100644
--- a/src/java/com/android/ike/eap/statemachine/EapMsChapV2MethodStateMachine.java
+++ b/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2MethodStateMachine.java
@@ -14,44 +14,45 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.eap.EapAuthenticator.LOG;
-import static com.android.ike.eap.message.EapData.EAP_NOTIFICATION;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_STRING;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_RESPONSE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_FAILURE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_SUCCESS;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_OP_CODE_STRING;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureRequest.EAP_ERROR_CODE_STRING;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureResponse.getEapMsChapV2FailureResponse;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2SuccessResponse.getEapMsChapV2SuccessResponse;
-
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapResult.EapSuccess;
-import com.android.ike.eap.EapSessionConfig.EapMsChapV2Config;
-import com.android.ike.eap.crypto.ParityBitUtil;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.exceptions.EapSilentException;
-import com.android.ike.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapData.EapMethod;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeResponse;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureRequest;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2SuccessRequest;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
-import com.android.ike.utils.Log;
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.message.EapData.EAP_NOTIFICATION;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_STRING;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_RESPONSE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_FAILURE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_SUCCESS;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_OP_CODE_STRING;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureRequest.EAP_ERROR_CODE_STRING;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureResponse.getEapMsChapV2FailureResponse;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2SuccessResponse.getEapMsChapV2SuccessResponse;
+
+import android.net.eap.EapSessionConfig.EapMsChapV2Config;
+
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.crypto.ParityBitUtil;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.exceptions.EapSilentException;
+import com.android.internal.net.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapData.EapMethod;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeResponse;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureRequest;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2SuccessRequest;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
+import com.android.internal.net.utils.Log;
import com.android.org.bouncycastle.crypto.digests.MD4Digest;
import java.io.UnsupportedEncodingException;
diff --git a/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachine.java b/src/java/com/android/internal/net/eap/statemachine/EapSimAkaMethodStateMachine.java
index e792033a..dfd16276 100644
--- a/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachine.java
+++ b/src/java/com/android/internal/net/eap/statemachine/EapSimAkaMethodStateMachine.java
@@ -14,35 +14,35 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.EapAuthenticator.LOG;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_RESPONSE;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NOTIFICATION;
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_RESPONSE;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NOTIFICATION;
+import android.net.eap.EapSessionConfig.EapUiccConfig;
import android.telephony.TelephonyManager;
import android.util.Base64;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapSessionConfig.EapUiccConfig;
-import com.android.ike.eap.crypto.Fips186_2Prf;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.exceptions.EapSilentException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaAuthenticationFailureException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtMac;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData;
-import com.android.ike.utils.Log;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.crypto.Fips186_2Prf;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.exceptions.EapSilentException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaAuthenticationFailureException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData;
+import com.android.internal.net.utils.Log;
import java.nio.ByteBuffer;
import java.security.GeneralSecurityException;
@@ -73,10 +73,10 @@ public abstract class EapSimAkaMethodStateMachine extends EapMethodStateMachine
// Session Key lengths are 64 bytes (RFC 4186#7, RFC 4187#7)
public static final int SESSION_KEY_LENGTH = 64;
- public final byte[] mKEncr = new byte[KEY_LEN];
- public final byte[] mKAut = new byte[KEY_LEN];
- public final byte[] mMsk = new byte[SESSION_KEY_LENGTH];
- public final byte[] mEmsk = new byte[SESSION_KEY_LENGTH];
+ public final byte[] mKEncr = new byte[getKEncrLength()];
+ public final byte[] mKAut = new byte[getKAutLength()];
+ public final byte[] mMsk = new byte[getMskLength()];
+ public final byte[] mEmsk = new byte[getEmskLength()];
@VisibleForTesting boolean mHasReceivedSimAkaNotification = false;
@@ -106,11 +106,31 @@ public abstract class EapSimAkaMethodStateMachine extends EapMethodStateMachine
+ " apptype=" + mEapUiccConfig.apptype);
}
+ protected int getKEncrLength() {
+ return KEY_LEN;
+ }
+
+ protected int getKAutLength() {
+ return KEY_LEN;
+ }
+
+ protected int getMskLength() {
+ return SESSION_KEY_LENGTH;
+ }
+
+ protected int getEmskLength() {
+ return SESSION_KEY_LENGTH;
+ }
+
@Override
EapResult handleEapNotification(String tag, EapMessage message) {
return EapStateMachine.handleNotification(tag, message);
}
+ protected String getMacAlgorithm() {
+ return MAC_ALGORITHM_STRING;
+ }
+
@VisibleForTesting
EapResult buildClientErrorResponse(
int eapIdentifier,
@@ -146,11 +166,8 @@ public abstract class EapSimAkaMethodStateMachine extends EapMethodStateMachine
}
@VisibleForTesting
- void generateAndPersistKeys(
- String tag,
- MessageDigest sha1,
- Fips186_2Prf prf,
- byte[] mkInput) {
+ protected void generateAndPersistKeys(
+ String tag, MessageDigest sha1, Fips186_2Prf prf, byte[] mkInput) {
byte[] mk = sha1.digest(mkInput);
// run mk through FIPS 186-2
@@ -193,8 +210,8 @@ public abstract class EapSimAkaMethodStateMachine extends EapMethodStateMachine
boolean isValidMac(String tag, EapMessage message, EapSimAkaTypeData typeData, byte[] extraData)
throws GeneralSecurityException, EapSimAkaInvalidAttributeException,
EapSilentException {
- mMacAlgorithm = Mac.getInstance(MAC_ALGORITHM_STRING);
- mMacAlgorithm.init(new SecretKeySpec(mKAut, MAC_ALGORITHM_STRING));
+ mMacAlgorithm = Mac.getInstance(getMacAlgorithm());
+ mMacAlgorithm.init(new SecretKeySpec(mKAut, getMacAlgorithm()));
byte[] mac = getMac(message.eapCode, message.eapIdentifier, typeData, extraData);
// attributes are 'valid', so must have AtMac
@@ -206,8 +223,8 @@ public abstract class EapSimAkaMethodStateMachine extends EapMethodStateMachine
LOG.e(
tag,
"Received message with invalid Mac."
- + " expected=" + Log.byteArrayToHexString(mac)
- + ", actual=" + Log.byteArrayToHexString(atMac.mac));
+ + " received=" + Log.byteArrayToHexString(atMac.mac)
+ + ", computed=" + Log.byteArrayToHexString(mac));
}
return isValidMac;
diff --git a/src/java/com/android/ike/eap/statemachine/EapSimMethodStateMachine.java b/src/java/com/android/internal/net/eap/statemachine/EapSimMethodStateMachine.java
index 854d05b2..005cfb96 100644
--- a/src/java/com/android/ike/eap/statemachine/EapSimMethodStateMachine.java
+++ b/src/java/com/android/internal/net/eap/statemachine/EapSimMethodStateMachine.java
@@ -14,55 +14,55 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.eap.EapAuthenticator.LOG;
-import static com.android.ike.eap.message.EapData.EAP_NOTIFICATION;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ENCR_DATA;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_FULLAUTH_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_IV;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_VERSION_LIST;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_CLIENT_ERROR;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_NOTIFICATION;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_START;
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.message.EapData.EAP_NOTIFICATION;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ENCR_DATA;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_FULLAUTH_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_IV;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_VERSION_LIST;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_CLIENT_ERROR;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_NOTIFICATION;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_START;
import android.annotation.Nullable;
import android.content.Context;
+import android.net.eap.EapSessionConfig.EapSimConfig;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapSuccess;
-import com.android.ike.eap.EapSessionConfig.EapSimConfig;
-import com.android.ike.eap.crypto.Fips186_2Prf;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.exceptions.EapSilentException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaAuthenticationFailureException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaIdentityUnavailableException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidLengthException;
-import com.android.ike.eap.message.EapData.EapMethod;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNonceMt;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtSelectedVersion;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.message.simaka.EapSimTypeData;
-import com.android.ike.eap.message.simaka.EapSimTypeData.EapSimTypeDataDecoder;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.crypto.Fips186_2Prf;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.exceptions.EapSilentException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaAuthenticationFailureException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaIdentityUnavailableException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidLengthException;
+import com.android.internal.net.eap.message.EapData.EapMethod;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNonceMt;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtSelectedVersion;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData.EapSimTypeDataDecoder;
import java.nio.BufferUnderflowException;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/eap/statemachine/EapStateMachine.java b/src/java/com/android/internal/net/eap/statemachine/EapStateMachine.java
index e1d793c1..f3e933e2 100644
--- a/src/java/com/android/ike/eap/statemachine/EapStateMachine.java
+++ b/src/java/com/android/internal/net/eap/statemachine/EapStateMachine.java
@@ -14,46 +14,46 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.eap.EapAuthenticator.LOG;
-import static com.android.ike.eap.message.EapData.EAP_IDENTITY;
-import static com.android.ike.eap.message.EapData.EAP_NAK;
-import static com.android.ike.eap.message.EapData.EAP_NOTIFICATION;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA_PRIME;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_STRING;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_RESPONSE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_STRING;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.eap.EapAuthenticator.LOG;
+import static com.android.internal.net.eap.message.EapData.EAP_IDENTITY;
+import static com.android.internal.net.eap.message.EapData.EAP_NAK;
+import static com.android.internal.net.eap.message.EapData.EAP_NOTIFICATION;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA_PRIME;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_STRING;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_RESPONSE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_STRING;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
+import android.net.eap.EapSessionConfig;
+import android.net.eap.EapSessionConfig.EapAkaConfig;
+import android.net.eap.EapSessionConfig.EapAkaPrimeConfig;
+import android.net.eap.EapSessionConfig.EapMethodConfig;
+import android.net.eap.EapSessionConfig.EapMsChapV2Config;
+import android.net.eap.EapSessionConfig.EapSimConfig;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapResult.EapSuccess;
-import com.android.ike.eap.EapSessionConfig;
-import com.android.ike.eap.EapSessionConfig.EapAkaConfig;
-import com.android.ike.eap.EapSessionConfig.EapAkaPrimeConfig;
-import com.android.ike.eap.EapSessionConfig.EapMethodConfig;
-import com.android.ike.eap.EapSessionConfig.EapMsChapV2Config;
-import com.android.ike.eap.EapSessionConfig.EapSimConfig;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.exceptions.EapSilentException;
-import com.android.ike.eap.exceptions.UnsupportedEapTypeException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapData.EapMethod;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.utils.SimpleStateMachine;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.exceptions.EapSilentException;
+import com.android.internal.net.eap.exceptions.UnsupportedEapTypeException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapData.EapMethod;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.utils.SimpleStateMachine;
import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
@@ -325,8 +325,13 @@ public class EapStateMachine extends SimpleStateMachine<byte[], EapResult> {
mContext, mEapSessionConfig.eapIdentity, eapSimConfig, mSecureRandom);
case EAP_TYPE_AKA:
EapAkaConfig eapAkaConfig = (EapAkaConfig) eapMethodConfig;
+ boolean supportsEapAkaPrime =
+ mEapSessionConfig.eapConfigs.containsKey(EAP_TYPE_AKA_PRIME);
return new EapAkaMethodStateMachine(
- mContext, mEapSessionConfig.eapIdentity, eapAkaConfig);
+ mContext,
+ mEapSessionConfig.eapIdentity,
+ eapAkaConfig,
+ supportsEapAkaPrime);
case EAP_TYPE_AKA_PRIME:
EapAkaPrimeConfig eapAkaPrimeConfig = (EapAkaPrimeConfig) eapMethodConfig;
return new EapAkaPrimeMethodStateMachine(
diff --git a/src/java/com/android/ike/ikev2/AbstractSessionStateMachine.java b/src/java/com/android/internal/net/ipsec/ike/AbstractSessionStateMachine.java
index aaeb4f41..82122847 100644
--- a/src/java/com/android/ike/ikev2/AbstractSessionStateMachine.java
+++ b/src/java/com/android/internal/net/ipsec/ike/AbstractSessionStateMachine.java
@@ -13,9 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
-import static com.android.ike.ikev2.IkeManager.getIkeLog;
+import static android.net.ipsec.ike.IkeManager.getIkeLog;
import android.os.Looper;
import android.os.Message;
diff --git a/src/java/com/android/ike/ikev2/ChildSessionStateMachine.java b/src/java/com/android/internal/net/ipsec/ike/ChildSessionStateMachine.java
index 0d591fee..889d8c12 100644
--- a/src/java/com/android/ike/ikev2/ChildSessionStateMachine.java
+++ b/src/java/com/android/internal/net/ipsec/ike/ChildSessionStateMachine.java
@@ -13,28 +13,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2;
-
-import static com.android.ike.ikev2.IkeManager.getIkeLog;
-import static com.android.ike.ikev2.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_DELETE_CHILD;
-import static com.android.ike.ikev2.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_REKEY_CHILD;
-import static com.android.ike.ikev2.SaProposal.DH_GROUP_NONE;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
-import static com.android.ike.ikev2.message.IkeHeader.EXCHANGE_TYPE_CREATE_CHILD_SA;
-import static com.android.ike.ikev2.message.IkeHeader.EXCHANGE_TYPE_IKE_AUTH;
-import static com.android.ike.ikev2.message.IkeHeader.EXCHANGE_TYPE_INFORMATIONAL;
-import static com.android.ike.ikev2.message.IkeHeader.ExchangeType;
-import static com.android.ike.ikev2.message.IkeNotifyPayload.NOTIFY_TYPE_REKEY_SA;
-import static com.android.ike.ikev2.message.IkeNotifyPayload.NOTIFY_TYPE_USE_TRANSPORT_MODE;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_CP;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_DELETE;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_KE;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_NONCE;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_NOTIFY;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_SA;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_TS_INITIATOR;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_TS_RESPONDER;
-import static com.android.ike.ikev2.message.IkePayload.PROTOCOL_ID_ESP;
+package com.android.internal.net.ipsec.ike;
+
+import static android.net.ipsec.ike.IkeManager.getIkeLog;
+import static android.net.ipsec.ike.SaProposal.DH_GROUP_NONE;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
+
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_DELETE_CHILD;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_REKEY_CHILD;
+import static com.android.internal.net.ipsec.ike.message.IkeHeader.EXCHANGE_TYPE_CREATE_CHILD_SA;
+import static com.android.internal.net.ipsec.ike.message.IkeHeader.EXCHANGE_TYPE_IKE_AUTH;
+import static com.android.internal.net.ipsec.ike.message.IkeHeader.EXCHANGE_TYPE_INFORMATIONAL;
+import static com.android.internal.net.ipsec.ike.message.IkeHeader.ExchangeType;
+import static com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NOTIFY_TYPE_REKEY_SA;
+import static com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NOTIFY_TYPE_USE_TRANSPORT_MODE;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_CP;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_DELETE;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_KE;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_NONCE;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_NOTIFY;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_SA;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_TS_INITIATOR;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_TS_RESPONDER;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PROTOCOL_ID_ESP;
import android.annotation.IntDef;
import android.annotation.Nullable;
@@ -44,39 +45,46 @@ import android.net.IpSecManager.ResourceUnavailableException;
import android.net.IpSecManager.SecurityParameterIndex;
import android.net.IpSecManager.SpiUnavailableException;
import android.net.IpSecManager.UdpEncapsulationSocket;
+import android.net.ipsec.ike.ChildSaProposal;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.ChildSessionConfiguration;
+import android.net.ipsec.ike.ChildSessionOptions;
+import android.net.ipsec.ike.IkeTrafficSelector;
+import android.net.ipsec.ike.SaProposal;
+import android.net.ipsec.ike.TunnelModeChildSessionOptions;
+import android.net.ipsec.ike.exceptions.IkeException;
+import android.net.ipsec.ike.exceptions.IkeInternalException;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.os.Looper;
import android.os.Message;
import android.util.Pair;
import android.util.SparseArray;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.ChildLocalRequest;
-import com.android.ike.ikev2.IkeSessionStateMachine.IkeExchangeSubType;
-import com.android.ike.ikev2.SaRecord.ChildSaRecord;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.exceptions.IkeException;
-import com.android.ike.ikev2.exceptions.IkeInternalException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidKeException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.exceptions.NoValidProposalChosenException;
-import com.android.ike.ikev2.exceptions.TemporaryFailureException;
-import com.android.ike.ikev2.exceptions.TsUnacceptableException;
-import com.android.ike.ikev2.message.IkeConfigPayload;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttribute;
-import com.android.ike.ikev2.message.IkeDeletePayload;
-import com.android.ike.ikev2.message.IkeKePayload;
-import com.android.ike.ikev2.message.IkeMessage;
-import com.android.ike.ikev2.message.IkeNoncePayload;
-import com.android.ike.ikev2.message.IkeNotifyPayload;
-import com.android.ike.ikev2.message.IkeNotifyPayload.NotifyType;
-import com.android.ike.ikev2.message.IkePayload;
-import com.android.ike.ikev2.message.IkeSaPayload;
-import com.android.ike.ikev2.message.IkeSaPayload.ChildProposal;
-import com.android.ike.ikev2.message.IkeSaPayload.DhGroupTransform;
-import com.android.ike.ikev2.message.IkeTsPayload;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.ChildLocalRequest;
+import com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IkeExchangeSubType;
+import com.android.internal.net.ipsec.ike.SaRecord.ChildSaRecord;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidKeException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.exceptions.NoValidProposalChosenException;
+import com.android.internal.net.ipsec.ike.exceptions.TemporaryFailureException;
+import com.android.internal.net.ipsec.ike.exceptions.TsUnacceptableException;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttribute;
+import com.android.internal.net.ipsec.ike.message.IkeDeletePayload;
+import com.android.internal.net.ipsec.ike.message.IkeKePayload;
+import com.android.internal.net.ipsec.ike.message.IkeMessage;
+import com.android.internal.net.ipsec.ike.message.IkeNoncePayload;
+import com.android.internal.net.ipsec.ike.message.IkeNotifyPayload;
+import com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NotifyType;
+import com.android.internal.net.ipsec.ike.message.IkePayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.ChildProposal;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.DhGroupTransform;
+import com.android.internal.net.ipsec.ike.message.IkeTsPayload;
import com.android.internal.util.State;
import java.io.IOException;
diff --git a/src/java/com/android/ike/ikev2/ChildSessionStateMachineFactory.java b/src/java/com/android/internal/net/ipsec/ike/ChildSessionStateMachineFactory.java
index dc68e9f1..5282d022 100644
--- a/src/java/com/android/ike/ikev2/ChildSessionStateMachineFactory.java
+++ b/src/java/com/android/internal/net/ipsec/ike/ChildSessionStateMachineFactory.java
@@ -14,14 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
import android.content.Context;
import android.net.IpSecManager;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.ChildSessionOptions;
import android.os.Looper;
-import com.android.ike.ikev2.ChildSessionStateMachine.IChildSessionSmCallback;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.ChildSessionStateMachine.IChildSessionSmCallback;
import java.util.concurrent.Executor;
diff --git a/src/java/com/android/ike/ikev2/IkeDhParams.java b/src/java/com/android/internal/net/ipsec/ike/IkeDhParams.java
index 604353a9..44373fc9 100644
--- a/src/java/com/android/ike/ikev2/IkeDhParams.java
+++ b/src/java/com/android/internal/net/ipsec/ike/IkeDhParams.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
/** IkeDhParams contains Diffie-Hellman constants for IKEv2 supported DH Groups */
public class IkeDhParams {
diff --git a/src/java/com/android/ike/ikev2/IkeEapAuthenticatorFactory.java b/src/java/com/android/internal/net/ipsec/ike/IkeEapAuthenticatorFactory.java
index 75ddc165..b0d6f127 100644
--- a/src/java/com/android/ike/ikev2/IkeEapAuthenticatorFactory.java
+++ b/src/java/com/android/internal/net/ipsec/ike/IkeEapAuthenticatorFactory.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
import android.content.Context;
+import android.net.eap.EapSessionConfig;
import android.os.Looper;
-import com.android.ike.eap.EapAuthenticator;
-import com.android.ike.eap.EapSessionConfig;
-import com.android.ike.eap.IEapCallback;
+import com.android.internal.net.eap.EapAuthenticator;
+import com.android.internal.net.eap.IEapCallback;
/** Package private factory for building EapAuthenticator instances. */
final class IkeEapAuthenticatorFactory {
diff --git a/src/java/com/android/ike/ikev2/IkeLocalRequestScheduler.java b/src/java/com/android/internal/net/ipsec/ike/IkeLocalRequestScheduler.java
index 5039f2a4..b7bf8701 100644
--- a/src/java/com/android/ike/ikev2/IkeLocalRequestScheduler.java
+++ b/src/java/com/android/internal/net/ipsec/ike/IkeLocalRequestScheduler.java
@@ -13,7 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
+
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.ChildSessionOptions;
import java.util.LinkedList;
diff --git a/src/java/com/android/ike/ikev2/IkeSessionStateMachine.java b/src/java/com/android/internal/net/ipsec/ike/IkeSessionStateMachine.java
index 7172dace..03c419db 100644
--- a/src/java/com/android/ike/ikev2/IkeSessionStateMachine.java
+++ b/src/java/com/android/internal/net/ipsec/ike/IkeSessionStateMachine.java
@@ -13,32 +13,44 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2;
-
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_CHILD_SA_NOT_FOUND;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_SYNTAX;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_NO_ADDITIONAL_SAS;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ErrorType;
-import static com.android.ike.ikev2.message.IkeHeader.EXCHANGE_TYPE_INFORMATIONAL;
-import static com.android.ike.ikev2.message.IkeMessage.DECODE_STATUS_OK;
-import static com.android.ike.ikev2.message.IkeMessage.DECODE_STATUS_PARTIAL;
-import static com.android.ike.ikev2.message.IkeMessage.DECODE_STATUS_PROTECTED_ERROR;
-import static com.android.ike.ikev2.message.IkeMessage.DECODE_STATUS_UNPROTECTED_ERROR;
-import static com.android.ike.ikev2.message.IkeNotifyPayload.NOTIFY_TYPE_IKEV2_FRAGMENTATION_SUPPORTED;
-import static com.android.ike.ikev2.message.IkeNotifyPayload.NOTIFY_TYPE_NAT_DETECTION_DESTINATION_IP;
-import static com.android.ike.ikev2.message.IkeNotifyPayload.NOTIFY_TYPE_NAT_DETECTION_SOURCE_IP;
-import static com.android.ike.ikev2.message.IkeNotifyPayload.NOTIFY_TYPE_REKEY_SA;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_CP;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_DELETE;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_NOTIFY;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_VENDOR;
+package com.android.internal.net.ipsec.ike;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_CHILD_SA_NOT_FOUND;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_SYNTAX;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_NO_ADDITIONAL_SAS;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ErrorType;
+
+import static com.android.internal.net.ipsec.ike.message.IkeHeader.EXCHANGE_TYPE_INFORMATIONAL;
+import static com.android.internal.net.ipsec.ike.message.IkeMessage.DECODE_STATUS_OK;
+import static com.android.internal.net.ipsec.ike.message.IkeMessage.DECODE_STATUS_PARTIAL;
+import static com.android.internal.net.ipsec.ike.message.IkeMessage.DECODE_STATUS_PROTECTED_ERROR;
+import static com.android.internal.net.ipsec.ike.message.IkeMessage.DECODE_STATUS_UNPROTECTED_ERROR;
+import static com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NOTIFY_TYPE_IKEV2_FRAGMENTATION_SUPPORTED;
+import static com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NOTIFY_TYPE_NAT_DETECTION_DESTINATION_IP;
+import static com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NOTIFY_TYPE_NAT_DETECTION_SOURCE_IP;
+import static com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NOTIFY_TYPE_REKEY_SA;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_CP;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_DELETE;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_NOTIFY;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_VENDOR;
import android.annotation.IntDef;
import android.content.Context;
import android.net.IpSecManager;
import android.net.IpSecManager.ResourceUnavailableException;
import android.net.IpSecManager.UdpEncapsulationSocket;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.ChildSessionOptions;
+import android.net.ipsec.ike.IkeSaProposal;
+import android.net.ipsec.ike.IkeSessionCallback;
+import android.net.ipsec.ike.IkeSessionOptions;
+import android.net.ipsec.ike.IkeSessionOptions.IkeAuthConfig;
+import android.net.ipsec.ike.IkeSessionOptions.IkeAuthDigitalSignRemoteConfig;
+import android.net.ipsec.ike.IkeSessionOptions.IkeAuthPskConfig;
+import android.net.ipsec.ike.exceptions.IkeException;
+import android.net.ipsec.ike.exceptions.IkeInternalException;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -49,52 +61,46 @@ import android.util.LongSparseArray;
import android.util.Pair;
import android.util.SparseArray;
-import com.android.ike.eap.EapAuthenticator;
-import com.android.ike.eap.IEapCallback;
-import com.android.ike.ikev2.ChildSessionStateMachine.CreateChildSaHelper;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.ChildLocalRequest;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.LocalRequest;
-import com.android.ike.ikev2.IkeSessionOptions.IkeAuthConfig;
-import com.android.ike.ikev2.IkeSessionOptions.IkeAuthDigitalSignRemoteConfig;
-import com.android.ike.ikev2.IkeSessionOptions.IkeAuthPskConfig;
-import com.android.ike.ikev2.SaRecord.IkeSaRecord;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.exceptions.IkeException;
-import com.android.ike.ikev2.exceptions.IkeInternalException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.exceptions.NoValidProposalChosenException;
-import com.android.ike.ikev2.message.IkeAuthDigitalSignPayload;
-import com.android.ike.ikev2.message.IkeAuthPayload;
-import com.android.ike.ikev2.message.IkeAuthPskPayload;
-import com.android.ike.ikev2.message.IkeCertPayload;
-import com.android.ike.ikev2.message.IkeCertX509CertPayload;
-import com.android.ike.ikev2.message.IkeDeletePayload;
-import com.android.ike.ikev2.message.IkeEapPayload;
-import com.android.ike.ikev2.message.IkeHeader;
-import com.android.ike.ikev2.message.IkeHeader.ExchangeType;
-import com.android.ike.ikev2.message.IkeIdPayload;
-import com.android.ike.ikev2.message.IkeInformationalPayload;
-import com.android.ike.ikev2.message.IkeKePayload;
-import com.android.ike.ikev2.message.IkeMessage;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResult;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultError;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultOk;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultPartial;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultProtectedError;
-import com.android.ike.ikev2.message.IkeNoncePayload;
-import com.android.ike.ikev2.message.IkeNotifyPayload;
-import com.android.ike.ikev2.message.IkePayload;
-import com.android.ike.ikev2.message.IkeSaPayload;
-import com.android.ike.ikev2.message.IkeSaPayload.DhGroupTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IkeProposal;
-import com.android.ike.ikev2.message.IkeTsPayload;
-import com.android.ike.ikev2.utils.Retransmitter;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.eap.EapAuthenticator;
+import com.android.internal.net.eap.IEapCallback;
+import com.android.internal.net.ipsec.ike.ChildSessionStateMachine.CreateChildSaHelper;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.ChildLocalRequest;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.LocalRequest;
+import com.android.internal.net.ipsec.ike.SaRecord.IkeSaRecord;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.exceptions.NoValidProposalChosenException;
+import com.android.internal.net.ipsec.ike.message.IkeAuthDigitalSignPayload;
+import com.android.internal.net.ipsec.ike.message.IkeAuthPayload;
+import com.android.internal.net.ipsec.ike.message.IkeAuthPskPayload;
+import com.android.internal.net.ipsec.ike.message.IkeCertPayload;
+import com.android.internal.net.ipsec.ike.message.IkeCertX509CertPayload;
+import com.android.internal.net.ipsec.ike.message.IkeDeletePayload;
+import com.android.internal.net.ipsec.ike.message.IkeEapPayload;
+import com.android.internal.net.ipsec.ike.message.IkeHeader;
+import com.android.internal.net.ipsec.ike.message.IkeHeader.ExchangeType;
+import com.android.internal.net.ipsec.ike.message.IkeIdPayload;
+import com.android.internal.net.ipsec.ike.message.IkeInformationalPayload;
+import com.android.internal.net.ipsec.ike.message.IkeKePayload;
+import com.android.internal.net.ipsec.ike.message.IkeMessage;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResult;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultError;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultOk;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultPartial;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultProtectedError;
+import com.android.internal.net.ipsec.ike.message.IkeNoncePayload;
+import com.android.internal.net.ipsec.ike.message.IkeNotifyPayload;
+import com.android.internal.net.ipsec.ike.message.IkePayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.DhGroupTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IkeProposal;
+import com.android.internal.net.ipsec.ike.message.IkeTsPayload;
+import com.android.internal.net.ipsec.ike.utils.Retransmitter;
import com.android.internal.util.State;
import dalvik.system.CloseGuard;
@@ -375,9 +381,9 @@ public class IkeSessionStateMachine extends AbstractSessionStateMachine {
@VisibleForTesting final State mDeleteIkeLocalDelete = new DeleteIkeLocalDelete();
// TODO: Add InfoLocal.
- // Testing constructor
+ /** Constructor for testing. */
@VisibleForTesting
- IkeSessionStateMachine(
+ public IkeSessionStateMachine(
Looper looper,
Context context,
IpSecManager ipSecManager,
@@ -435,8 +441,8 @@ public class IkeSessionStateMachine extends AbstractSessionStateMachine {
start();
}
- /** Package private constructor */
- IkeSessionStateMachine(
+ /** Construct an instance of IkeSessionStateMachine. */
+ public IkeSessionStateMachine(
Looper looper,
Context context,
IpSecManager ipSecManager,
@@ -498,11 +504,13 @@ public class IkeSessionStateMachine extends AbstractSessionStateMachine {
}
}
- void openSession() {
+ /** Initiates IKE setup procedure. */
+ public void openSession() {
sendMessage(CMD_LOCAL_REQUEST_CREATE_IKE, new LocalRequest(CMD_LOCAL_REQUEST_CREATE_IKE));
}
- void openChildSession(
+ /** Schedules a Create Child procedure. */
+ public void openChildSession(
ChildSessionOptions childSessionOptions, ChildSessionCallback childSessionCallback) {
if (childSessionCallback == null) {
throw new IllegalArgumentException("Child Session Callback must be provided");
@@ -520,7 +528,8 @@ public class IkeSessionStateMachine extends AbstractSessionStateMachine {
CMD_LOCAL_REQUEST_CREATE_CHILD, childSessionCallback, childSessionOptions));
}
- void closeChildSession(ChildSessionCallback childSessionCallback) {
+ /** Schedules a Delete Child procedure. */
+ public void closeChildSession(ChildSessionCallback childSessionCallback) {
if (childSessionCallback == null) {
throw new IllegalArgumentException("Child Session Callback must be provided");
}
@@ -534,10 +543,16 @@ public class IkeSessionStateMachine extends AbstractSessionStateMachine {
new ChildLocalRequest(CMD_LOCAL_REQUEST_DELETE_CHILD, childSessionCallback, null));
}
- void closeSession() {
+ /** Initiates Delete IKE procedure. */
+ public void closeSession() {
sendMessage(CMD_LOCAL_REQUEST_DELETE_IKE, new LocalRequest(CMD_LOCAL_REQUEST_DELETE_IKE));
}
+ /** Forcibly close IKE Session. */
+ public void killSession() {
+ // TODO: b/142977160 Support closing IKE Sesison immediately.
+ }
+
private void scheduleRekeySession(LocalRequest rekeyRequest) {
// TODO: Make rekey timeout fuzzy
sendMessageDelayed(CMD_LOCAL_REQUEST_REKEY_IKE, rekeyRequest, SA_SOFT_LIFETIME_MS);
@@ -2304,7 +2319,8 @@ public class IkeSessionStateMachine extends AbstractSessionStateMachine {
}
/** CreateIkeLocalIkeInit represents state when IKE library initiates IKE_INIT exchange. */
- class CreateIkeLocalIkeInit extends BusyState {
+ @VisibleForTesting
+ public class CreateIkeLocalIkeInit extends BusyState {
private IkeSecurityParameterIndex mLocalIkeSpiResource;
private IkeSecurityParameterIndex mRemoteIkeSpiResource;
private Retransmitter mRetransmitter;
@@ -2953,7 +2969,7 @@ public class IkeSessionStateMachine extends AbstractSessionStateMachine {
+ " notify type: "
+ notifyPayload.notifyType);
}
-
+ break;
default:
logw(
"Received unexpected payload in IKE AUTH response. Payload"
diff --git a/src/java/com/android/ike/ikev2/IkeSocket.java b/src/java/com/android/internal/net/ipsec/ike/IkeSocket.java
index d973119d..2f853c7f 100644
--- a/src/java/com/android/ike/ikev2/IkeSocket.java
+++ b/src/java/com/android/internal/net/ipsec/ike/IkeSocket.java
@@ -14,24 +14,23 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
+import static android.net.ipsec.ike.IkeManager.getIkeLog;
import static android.system.OsConstants.F_SETFL;
import static android.system.OsConstants.SOCK_DGRAM;
import static android.system.OsConstants.SOCK_NONBLOCK;
-import static com.android.ike.ikev2.IkeManager.getIkeLog;
-
import android.net.IpSecManager.UdpEncapsulationSocket;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.os.Handler;
import android.system.ErrnoException;
import android.system.Os;
import android.util.LongSparseArray;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.message.IkeHeader;
-import com.android.ike.ikev2.utils.PacketReader;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.message.IkeHeader;
+import com.android.internal.net.ipsec.ike.utils.PacketReader;
import java.io.FileDescriptor;
import java.io.IOException;
diff --git a/src/java/com/android/ike/ikev2/SaRecord.java b/src/java/com/android/internal/net/ipsec/ike/SaRecord.java
index e86b5c52..035af175 100644
--- a/src/java/com/android/ike/ikev2/SaRecord.java
+++ b/src/java/com/android/internal/net/ipsec/ike/SaRecord.java
@@ -13,9 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
-import static com.android.ike.ikev2.IkeManager.getIkeLog;
+import static android.net.ipsec.ike.IkeManager.getIkeLog;
import android.annotation.Nullable;
import android.content.Context;
@@ -26,18 +26,18 @@ import android.net.IpSecManager.SpiUnavailableException;
import android.net.IpSecManager.UdpEncapsulationSocket;
import android.net.IpSecTransform;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.ChildLocalRequest;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.LocalRequest;
-import com.android.ike.ikev2.IkeSessionStateMachine.IkeSecurityParameterIndex;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.message.IkeKePayload;
-import com.android.ike.ikev2.message.IkeMessage;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultPartial;
-import com.android.ike.ikev2.message.IkeNoncePayload;
-import com.android.ike.ikev2.message.IkePayload;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.ChildLocalRequest;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.LocalRequest;
+import com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IkeSecurityParameterIndex;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.message.IkeKePayload;
+import com.android.internal.net.ipsec.ike.message.IkeMessage;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultPartial;
+import com.android.internal.net.ipsec.ike.message.IkeNoncePayload;
+import com.android.internal.net.ipsec.ike.message.IkePayload;
import dalvik.system.CloseGuard;
diff --git a/src/java/com/android/ike/ikev2/crypto/IkeCipher.java b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeCipher.java
index 2543e012..33a8b37c 100644
--- a/src/java/com/android/ike/ikev2/crypto/IkeCipher.java
+++ b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeCipher.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
import android.net.IpSecAlgorithm;
+import android.net.ipsec.ike.SaProposal;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
import java.security.NoSuchAlgorithmException;
import java.security.Provider;
diff --git a/src/java/com/android/ike/ikev2/crypto/IkeCombinedModeCipher.java b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeCombinedModeCipher.java
index ad3edea3..4bb1d34b 100644
--- a/src/java/com/android/ike/ikev2/crypto/IkeCombinedModeCipher.java
+++ b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeCombinedModeCipher.java
@@ -14,11 +14,10 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
import android.net.IpSecAlgorithm;
-
-import com.android.ike.ikev2.SaProposal;
+import android.net.ipsec.ike.SaProposal;
import java.nio.ByteBuffer;
import java.security.InvalidAlgorithmParameterException;
diff --git a/src/java/com/android/ike/ikev2/crypto/IkeCrypto.java b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeCrypto.java
index abc9d397..65a676b5 100644
--- a/src/java/com/android/ike/ikev2/crypto/IkeCrypto.java
+++ b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeCrypto.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
/**
* IkeCrypto is an abstract class that represents common information for all negotiated
diff --git a/src/java/com/android/ike/ikev2/crypto/IkeMac.java b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMac.java
index 4f233459..ee45cc9e 100644
--- a/src/java/com/android/ike/ikev2/crypto/IkeMac.java
+++ b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMac.java
@@ -14,7 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
+
+import com.android.internal.net.crypto.KeyGenerationUtils.ByteSigner;
import java.nio.ByteBuffer;
import java.security.InvalidKeyException;
@@ -30,7 +32,7 @@ import javax.crypto.spec.SecretKeySpec;
* IkeMac is an abstract class that represents common information for all negotiated algorithms that
* generates Message Authentication Code (MAC), e.g. PRF and integrity algorithm.
*/
-abstract class IkeMac extends IkeCrypto {
+abstract class IkeMac extends IkeCrypto implements ByteSigner {
// STOPSHIP: b/130190639 Catch unchecked exceptions, notify users and close the IKE session.
private final boolean mIsEncryptAlgo;
private final Mac mMac;
@@ -69,6 +71,7 @@ abstract class IkeMac extends IkeCrypto {
* @param dataToSign the data to be signed.
* @return the calculated MAC.
*/
+ @Override
public byte[] signBytes(byte[] keyBytes, byte[] dataToSign) {
try {
SecretKeySpec secretKey = new SecretKeySpec(keyBytes, getAlgorithmName());
diff --git a/src/java/com/android/ike/ikev2/crypto/IkeMacIntegrity.java b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacIntegrity.java
index 179b2646..8f2173f6 100644
--- a/src/java/com/android/ike/ikev2/crypto/IkeMacIntegrity.java
+++ b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacIntegrity.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
import android.net.IpSecAlgorithm;
+import android.net.ipsec.ike.SaProposal;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
import java.security.Provider;
import java.util.Arrays;
diff --git a/src/java/com/android/ike/ikev2/crypto/IkeMacPrf.java b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacPrf.java
index 34ef3bf8..1d81aaed 100644
--- a/src/java/com/android/ike/ikev2/crypto/IkeMacPrf.java
+++ b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacPrf.java
@@ -14,10 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
+import android.net.ipsec.ike.SaProposal;
+
+import com.android.internal.net.crypto.KeyGenerationUtils;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
import java.nio.ByteBuffer;
import java.security.Provider;
@@ -135,26 +137,7 @@ public class IkeMacPrf extends IkeMac {
* @return the byte array of keying materials
*/
public byte[] generateKeyMat(byte[] keyBytes, byte[] dataToSign, int keyMaterialLen) {
- ByteBuffer keyMatBuffer = ByteBuffer.allocate(keyMaterialLen);
-
- byte[] previousMac = new byte[0];
- final int padLen = 1;
- byte padValue = 1;
-
- while (keyMatBuffer.remaining() > 0) {
- ByteBuffer dataToSignBuffer =
- ByteBuffer.allocate(previousMac.length + dataToSign.length + padLen);
- dataToSignBuffer.put(previousMac).put(dataToSign).put(padValue);
-
- previousMac = signBytes(keyBytes, dataToSignBuffer.array());
-
- keyMatBuffer.put(
- previousMac, 0, Math.min(previousMac.length, keyMatBuffer.remaining()));
-
- padValue++;
- }
-
- return keyMatBuffer.array();
+ return KeyGenerationUtils.prfPlus(this, keyBytes, dataToSign, keyMaterialLen);
}
/**
diff --git a/src/java/com/android/ike/ikev2/crypto/IkeNormalModeCipher.java b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipher.java
index 2e6ac51b..e4904d4f 100644
--- a/src/java/com/android/ike/ikev2/crypto/IkeNormalModeCipher.java
+++ b/src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipher.java
@@ -14,11 +14,10 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
import android.net.IpSecAlgorithm;
-
-import com.android.ike.ikev2.SaProposal;
+import android.net.ipsec.ike.SaProposal;
import java.nio.ByteBuffer;
import java.security.InvalidAlgorithmParameterException;
diff --git a/src/java/com/android/ike/ikev2/exceptions/AuthenticationFailedException.java b/src/java/com/android/internal/net/ipsec/ike/exceptions/AuthenticationFailedException.java
index 1c63a619..e5873648 100644
--- a/src/java/com/android/ike/ikev2/exceptions/AuthenticationFailedException.java
+++ b/src/java/com/android/internal/net/ipsec/ike/exceptions/AuthenticationFailedException.java
@@ -13,7 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package com.android.internal.net.ipsec.ike.exceptions;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_AUTHENTICATION_FAILED;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
/**
* This exception is thrown when IKE authentication fails.
diff --git a/src/java/com/android/ike/ikev2/exceptions/InvalidKeException.java b/src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidKeException.java
index 790400ff..ae2330c7 100644
--- a/src/java/com/android/ike/ikev2/exceptions/InvalidKeException.java
+++ b/src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidKeException.java
@@ -13,7 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package com.android.internal.net.ipsec.ike.exceptions;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_KE_PAYLOAD;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
/**
* This exception is thrown when the received KE payload in the request is different from accepted
diff --git a/src/java/com/android/ike/ikev2/exceptions/InvalidMajorVersionException.java b/src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidMajorVersionException.java
index 5ee59607..dc0357ee 100644
--- a/src/java/com/android/ike/ikev2/exceptions/InvalidMajorVersionException.java
+++ b/src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidMajorVersionException.java
@@ -13,7 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package com.android.internal.net.ipsec.ike.exceptions;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_MAJOR_VERSION;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
/**
* This exception is thrown when major version is higher than 2.
diff --git a/src/java/com/android/ike/ikev2/exceptions/InvalidMessageIdException.java b/src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidMessageIdException.java
index d7aa530c..9c5cffa3 100644
--- a/src/java/com/android/ike/ikev2/exceptions/InvalidMessageIdException.java
+++ b/src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidMessageIdException.java
@@ -13,7 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package com.android.internal.net.ipsec.ike.exceptions;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_MESSAGE_ID;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
/**
* This exception is thrown when the message ID is out of window size.
diff --git a/src/java/com/android/ike/ikev2/exceptions/InvalidSyntaxException.java b/src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidSyntaxException.java
index d392bc33..fd73f2f1 100644
--- a/src/java/com/android/ike/ikev2/exceptions/InvalidSyntaxException.java
+++ b/src/java/com/android/internal/net/ipsec/ike/exceptions/InvalidSyntaxException.java
@@ -13,7 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package com.android.internal.net.ipsec.ike.exceptions;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
/**
* This exception is thrown if any IKE message field is invalid.
diff --git a/src/java/com/android/ike/ikev2/exceptions/NoValidProposalChosenException.java b/src/java/com/android/internal/net/ipsec/ike/exceptions/NoValidProposalChosenException.java
index 9f8e695e..4514c65a 100644
--- a/src/java/com/android/ike/ikev2/exceptions/NoValidProposalChosenException.java
+++ b/src/java/com/android/internal/net/ipsec/ike/exceptions/NoValidProposalChosenException.java
@@ -13,7 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package com.android.internal.net.ipsec.ike.exceptions;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_NO_PROPOSAL_CHOSEN;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
/**
* This exception is thrown if either none of SA proposals from SA initiator is acceptable or the
diff --git a/src/java/com/android/ike/ikev2/exceptions/TemporaryFailureException.java b/src/java/com/android/internal/net/ipsec/ike/exceptions/TemporaryFailureException.java
index 2e8ad83a..57ef8cda 100644
--- a/src/java/com/android/ike/ikev2/exceptions/TemporaryFailureException.java
+++ b/src/java/com/android/internal/net/ipsec/ike/exceptions/TemporaryFailureException.java
@@ -13,7 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package com.android.internal.net.ipsec.ike.exceptions;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
/**
* This exception is thrown when local node or remote peer receives a request that cannot be
diff --git a/src/java/com/android/ike/ikev2/exceptions/TsUnacceptableException.java b/src/java/com/android/internal/net/ipsec/ike/exceptions/TsUnacceptableException.java
index b19c8ed5..ef1152a0 100644
--- a/src/java/com/android/ike/ikev2/exceptions/TsUnacceptableException.java
+++ b/src/java/com/android/internal/net/ipsec/ike/exceptions/TsUnacceptableException.java
@@ -13,7 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package com.android.internal.net.ipsec.ike.exceptions;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_TS_UNACCEPTABLE;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
/**
* This exception is thrown if the remote sever proposed unacceptable TS.
diff --git a/src/java/com/android/ike/ikev2/exceptions/UnrecognizedIkeProtocolException.java b/src/java/com/android/internal/net/ipsec/ike/exceptions/UnrecognizedIkeProtocolException.java
index 95bd00d9..3d1d5087 100644
--- a/src/java/com/android/ike/ikev2/exceptions/UnrecognizedIkeProtocolException.java
+++ b/src/java/com/android/internal/net/ipsec/ike/exceptions/UnrecognizedIkeProtocolException.java
@@ -13,7 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package com.android.internal.net.ipsec.ike.exceptions;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
/**
* This exception represents an unrecognized error notification in a received response.
diff --git a/src/java/com/android/ike/ikev2/exceptions/UnsupportedCriticalPayloadException.java b/src/java/com/android/internal/net/ipsec/ike/exceptions/UnsupportedCriticalPayloadException.java
index dab8c6d0..ab1f75e4 100644
--- a/src/java/com/android/ike/ikev2/exceptions/UnsupportedCriticalPayloadException.java
+++ b/src/java/com/android/internal/net/ipsec/ike/exceptions/UnsupportedCriticalPayloadException.java
@@ -13,7 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package com.android.internal.net.ipsec.ike.exceptions;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/java/com/android/ike/ikev2/message/IkeAuthDigitalSignPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthDigitalSignPayload.java
index 0f648d93..a4803af4 100644
--- a/src/java/com/android/ike/ikev2/message/IkeAuthDigitalSignPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthDigitalSignPayload.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import android.annotation.StringDef;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.message.IkeAuthPayload.AuthMethod;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.message.IkeAuthPayload.AuthMethod;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/java/com/android/ike/ikev2/message/IkeAuthPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPayload.java
index d6cc7a1e..53a3f65f 100644
--- a/src/java/com/android/ike/ikev2/message/IkeAuthPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPayload.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import android.annotation.IntDef;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/java/com/android/ike/ikev2/message/IkeAuthPskPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPskPayload.java
index 0e366100..93bef170 100644
--- a/src/java/com/android/ike/ikev2/message/IkeAuthPskPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPskPayload.java
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
import java.nio.ByteBuffer;
import java.util.Arrays;
diff --git a/src/java/com/android/ike/ikev2/message/IkeCertPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeCertPayload.java
index cf14ad47..9227dda9 100644
--- a/src/java/com/android/ike/ikev2/message/IkeCertPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeCertPayload.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import android.annotation.IntDef;
import android.annotation.Nullable;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
import java.io.IOException;
import java.lang.annotation.Retention;
diff --git a/src/java/com/android/ike/ikev2/message/IkeCertX509CertPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeCertX509CertPayload.java
index a40d4860..1804b9b9 100644
--- a/src/java/com/android/ike/ikev2/message/IkeCertX509CertPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeCertX509CertPayload.java
@@ -14,10 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
+
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
import java.io.ByteArrayInputStream;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/ikev2/message/IkeConfigPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeConfigPayload.java
index e8811ae7..ddd1b3ed 100644
--- a/src/java/com/android/ike/ikev2/message/IkeConfigPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeConfigPayload.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import android.annotation.IntDef;
import android.net.LinkAddress;
+import android.net.ipsec.ike.IkeManager;
-import com.android.ike.ikev2.IkeManager;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/java/com/android/ike/ikev2/message/IkeDeletePayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeDeletePayload.java
index 59d32ccf..f629f506 100644
--- a/src/java/com/android/ike/ikev2/message/IkeDeletePayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeDeletePayload.java
@@ -14,10 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
+
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/ikev2/message/IkeEapPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeEapPayload.java
index f79faa01..5dc14971 100644
--- a/src/java/com/android/ike/ikev2/message/IkeEapPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeEapPayload.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import com.android.ike.eap.message.EapMessage;
+import com.android.internal.net.eap.message.EapMessage;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/ikev2/message/IkeEncryptedPayloadBody.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeEncryptedPayloadBody.java
index 00460b01..77cc9f4e 100644
--- a/src/java/com/android/ike/ikev2/message/IkeEncryptedPayloadBody.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeEncryptedPayloadBody.java
@@ -14,14 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
+
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeCombinedModeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.crypto.IkeNormalModeCipher;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeCombinedModeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.crypto.IkeNormalModeCipher;
import java.nio.ByteBuffer;
import java.security.GeneralSecurityException;
diff --git a/src/java/com/android/ike/ikev2/message/IkeHeader.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeHeader.java
index 1fb7e3c7..7aa4fbc8 100644
--- a/src/java/com/android/ike/ikev2/message/IkeHeader.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeHeader.java
@@ -14,17 +14,17 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import static com.android.ike.ikev2.message.IkePayload.PayloadType;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PayloadType;
import android.annotation.IntDef;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.util.SparseArray;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidMajorVersionException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidMajorVersionException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/java/com/android/ike/ikev2/message/IkeIdPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeIdPayload.java
index adb39c2d..12cc14ab 100644
--- a/src/java/com/android/ike/ikev2/message/IkeIdPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeIdPayload.java
@@ -14,17 +14,18 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
-
-import com.android.ike.ikev2.IkeFqdnIdentification;
-import com.android.ike.ikev2.IkeIdentification;
-import com.android.ike.ikev2.IkeIpv4AddrIdentification;
-import com.android.ike.ikev2.IkeIpv6AddrIdentification;
-import com.android.ike.ikev2.IkeKeyIdIdentification;
-import com.android.ike.ikev2.IkeRfc822AddrIdentification;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
+package com.android.internal.net.ipsec.ike.message;
+
+import android.net.ipsec.ike.IkeFqdnIdentification;
+import android.net.ipsec.ike.IkeIdentification;
+import android.net.ipsec.ike.IkeIpv4AddrIdentification;
+import android.net.ipsec.ike.IkeIpv6AddrIdentification;
+import android.net.ipsec.ike.IkeKeyIdIdentification;
+import android.net.ipsec.ike.IkeRfc822AddrIdentification;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
+
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/ikev2/message/IkeInformationalPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeInformationalPayload.java
index 57174712..606c38f8 100644
--- a/src/java/com/android/ike/ikev2/message/IkeInformationalPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeInformationalPayload.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
/**
* IkeInformationalPayload abstracts all Payloads sent in INFORMATIONAL exchanges.
diff --git a/src/java/com/android/ike/ikev2/message/IkeKePayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeKePayload.java
index 35440a2c..7389bf8d 100644
--- a/src/java/com/android/ike/ikev2/message/IkeKePayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeKePayload.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import android.annotation.Nullable;
+import android.net.ipsec.ike.SaProposal;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.IkeDhParams;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.utils.BigIntegerUtils;
+import com.android.internal.net.ipsec.ike.IkeDhParams;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.utils.BigIntegerUtils;
import java.math.BigInteger;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/ikev2/message/IkeMessage.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeMessage.java
index b6a149e8..27fb9651 100644
--- a/src/java/com/android/ike/ikev2/message/IkeMessage.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeMessage.java
@@ -14,25 +14,26 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import static com.android.ike.ikev2.IkeManager.getIkeLog;
-import static com.android.ike.ikev2.message.IkePayload.PayloadType;
+import static android.net.ipsec.ike.IkeManager.getIkeLog;
+
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PayloadType;
import android.annotation.IntDef;
import android.annotation.Nullable;
+import android.net.ipsec.ike.exceptions.IkeException;
+import android.net.ipsec.ike.exceptions.IkeInternalException;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.util.Pair;
-import com.android.ike.ikev2.SaRecord.IkeSaRecord;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.exceptions.IkeException;
-import com.android.ike.ikev2.exceptions.IkeInternalException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidMessageIdException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.exceptions.UnsupportedCriticalPayloadException;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.SaRecord.IkeSaRecord;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidMessageIdException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.exceptions.UnsupportedCriticalPayloadException;
import com.android.org.bouncycastle.jce.provider.BouncyCastleProvider;
import java.lang.annotation.Retention;
diff --git a/src/java/com/android/ike/ikev2/message/IkeNoncePayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeNoncePayload.java
index 3c24770c..70fc824d 100644
--- a/src/java/com/android/ike/ikev2/message/IkeNoncePayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeNoncePayload.java
@@ -14,10 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
+
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import java.nio.ByteBuffer;
import java.security.SecureRandom;
diff --git a/src/java/com/android/ike/ikev2/message/IkeNotifyPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeNotifyPayload.java
index 830e8625..ce9529ee 100644
--- a/src/java/com/android/ike/ikev2/message/IkeNotifyPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeNotifyPayload.java
@@ -14,40 +14,40 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
-
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_AUTHENTICATION_FAILED;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_CHILD_SA_NOT_FOUND;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_FAILED_CP_REQUIRED;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INTERNAL_ADDRESS_FAILURE;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_IKE_SPI;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_KE_PAYLOAD;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_MAJOR_VERSION;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_MESSAGE_ID;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_SELECTORS;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_SYNTAX;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_NO_ADDITIONAL_SAS;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_NO_PROPOSAL_CHOSEN;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_SINGLE_PAIR_REQUIRED;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_TS_UNACCEPTABLE;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD;
+package com.android.internal.net.ipsec.ike.message;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_AUTHENTICATION_FAILED;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_CHILD_SA_NOT_FOUND;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_FAILED_CP_REQUIRED;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INTERNAL_ADDRESS_FAILURE;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_IKE_SPI;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_KE_PAYLOAD;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_MAJOR_VERSION;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_MESSAGE_ID;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_SELECTORS;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_SYNTAX;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_NO_ADDITIONAL_SAS;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_NO_PROPOSAL_CHOSEN;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_SINGLE_PAIR_REQUIRED;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_TS_UNACCEPTABLE;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD;
import android.annotation.IntDef;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.util.ArraySet;
import android.util.SparseArray;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidKeException;
-import com.android.ike.ikev2.exceptions.InvalidMajorVersionException;
-import com.android.ike.ikev2.exceptions.InvalidMessageIdException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.exceptions.NoValidProposalChosenException;
-import com.android.ike.ikev2.exceptions.TemporaryFailureException;
-import com.android.ike.ikev2.exceptions.TsUnacceptableException;
-import com.android.ike.ikev2.exceptions.UnrecognizedIkeProtocolException;
-import com.android.ike.ikev2.exceptions.UnsupportedCriticalPayloadException;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidKeException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidMajorVersionException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidMessageIdException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.exceptions.NoValidProposalChosenException;
+import com.android.internal.net.ipsec.ike.exceptions.TemporaryFailureException;
+import com.android.internal.net.ipsec.ike.exceptions.TsUnacceptableException;
+import com.android.internal.net.ipsec.ike.exceptions.UnrecognizedIkeProtocolException;
+import com.android.internal.net.ipsec.ike.exceptions.UnsupportedCriticalPayloadException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/java/com/android/ike/ikev2/message/IkePayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkePayload.java
index 68aa31df..9ea54c14 100644
--- a/src/java/com/android/ike/ikev2/message/IkePayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkePayload.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import android.annotation.IntDef;
import android.util.SparseArray;
diff --git a/src/java/com/android/ike/ikev2/message/IkePayloadFactory.java b/src/java/com/android/internal/net/ipsec/ike/message/IkePayloadFactory.java
index 94cf409f..2f191d4e 100644
--- a/src/java/com/android/ike/ikev2/message/IkePayloadFactory.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkePayloadFactory.java
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import android.annotation.Nullable;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.util.Pair;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import java.nio.ByteBuffer;
import java.security.GeneralSecurityException;
diff --git a/src/java/com/android/ike/ikev2/message/IkeSaPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeSaPayload.java
index edbbd7d5..3cce6255 100644
--- a/src/java/com/android/ike/ikev2/message/IkeSaPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeSaPayload.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import static com.android.ike.ikev2.IkeManager.getIkeLog;
-import static com.android.ike.ikev2.SaProposal.DhGroup;
-import static com.android.ike.ikev2.SaProposal.EncryptionAlgorithm;
-import static com.android.ike.ikev2.SaProposal.IntegrityAlgorithm;
-import static com.android.ike.ikev2.SaProposal.PseudorandomFunction;
+import static android.net.ipsec.ike.IkeManager.getIkeLog;
+import static android.net.ipsec.ike.SaProposal.DhGroup;
+import static android.net.ipsec.ike.SaProposal.EncryptionAlgorithm;
+import static android.net.ipsec.ike.SaProposal.IntegrityAlgorithm;
+import static android.net.ipsec.ike.SaProposal.PseudorandomFunction;
import android.annotation.IntDef;
import android.annotation.NonNull;
@@ -28,17 +28,17 @@ import android.net.IpSecManager;
import android.net.IpSecManager.ResourceUnavailableException;
import android.net.IpSecManager.SecurityParameterIndex;
import android.net.IpSecManager.SpiUnavailableException;
+import android.net.ipsec.ike.ChildSaProposal;
+import android.net.ipsec.ike.IkeSaProposal;
+import android.net.ipsec.ike.SaProposal;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.util.ArraySet;
import android.util.Pair;
-import com.android.ike.ikev2.ChildSaProposal;
-import com.android.ike.ikev2.IkeSaProposal;
-import com.android.ike.ikev2.IkeSessionStateMachine.IkeSecurityParameterIndex;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.exceptions.NoValidProposalChosenException;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IkeSecurityParameterIndex;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.exceptions.NoValidProposalChosenException;
import java.io.IOException;
import java.lang.annotation.Retention;
diff --git a/src/java/com/android/ike/ikev2/message/IkeSkPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeSkPayload.java
index f918739b..0c2d1fff 100644
--- a/src/java/com/android/ike/ikev2/message/IkeSkPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeSkPayload.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import android.annotation.Nullable;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
import java.nio.ByteBuffer;
import java.security.GeneralSecurityException;
diff --git a/src/java/com/android/ike/ikev2/message/IkeSkfPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeSkfPayload.java
index c04dd1b7..6faea123 100644
--- a/src/java/com/android/ike/ikev2/message/IkeSkfPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeSkfPayload.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import android.annotation.Nullable;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import java.nio.ByteBuffer;
import java.security.GeneralSecurityException;
diff --git a/src/java/com/android/ike/ikev2/message/IkeTsPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeTsPayload.java
index af4c2ab4..207bdc36 100644
--- a/src/java/com/android/ike/ikev2/message/IkeTsPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeTsPayload.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import com.android.ike.ikev2.IkeTrafficSelector;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
+import android.net.ipsec.ike.IkeTrafficSelector;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
+
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/ikev2/message/IkeUnsupportedPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeUnsupportedPayload.java
index 28b3af93..ecfe1e9c 100644
--- a/src/java/com/android/ike/ikev2/message/IkeUnsupportedPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeUnsupportedPayload.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/ikev2/message/IkeVendorPayload.java b/src/java/com/android/internal/net/ipsec/ike/message/IkeVendorPayload.java
index 75cf3792..d3464071 100644
--- a/src/java/com/android/ike/ikev2/message/IkeVendorPayload.java
+++ b/src/java/com/android/internal/net/ipsec/ike/message/IkeVendorPayload.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import java.nio.ByteBuffer;
diff --git a/src/java/com/android/ike/ikev2/utils/FdEventsReader.java b/src/java/com/android/internal/net/ipsec/ike/utils/FdEventsReader.java
index 8fa987af..65f9cedc 100644
--- a/src/java/com/android/ike/ikev2/utils/FdEventsReader.java
+++ b/src/java/com/android/internal/net/ipsec/ike/utils/FdEventsReader.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.utils;
+package com.android.internal.net.ipsec.ike.utils;
import static android.os.MessageQueue.OnFileDescriptorEventListener.EVENT_ERROR;
import static android.os.MessageQueue.OnFileDescriptorEventListener.EVENT_INPUT;
diff --git a/src/java/com/android/ike/ikev2/utils/PacketReader.java b/src/java/com/android/internal/net/ipsec/ike/utils/PacketReader.java
index d0c5bcf8..cd6b98d2 100644
--- a/src/java/com/android/ike/ikev2/utils/PacketReader.java
+++ b/src/java/com/android/internal/net/ipsec/ike/utils/PacketReader.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.utils;
+package com.android.internal.net.ipsec.ike.utils;
import static java.lang.Math.max;
diff --git a/src/java/com/android/ike/ikev2/utils/Retransmitter.java b/src/java/com/android/internal/net/ipsec/ike/utils/Retransmitter.java
index 27a04d70..778d6859 100644
--- a/src/java/com/android/ike/ikev2/utils/Retransmitter.java
+++ b/src/java/com/android/internal/net/ipsec/ike/utils/Retransmitter.java
@@ -13,14 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.utils;
+package com.android.internal.net.ipsec.ike.utils;
-import static com.android.ike.ikev2.IkeSessionStateMachine.CMD_RETRANSMIT;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.CMD_RETRANSMIT;
import android.os.Handler;
-import com.android.ike.ikev2.message.IkeMessage;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.net.ipsec.ike.message.IkeMessage;
/**
* Retransmitter represents a class that will send a message and trigger delayed retransmissions
diff --git a/src/java/com/android/ike/utils/BigIntegerUtils.java b/src/java/com/android/internal/net/utils/BigIntegerUtils.java
index 7bbae1d6..09dad74b 100644
--- a/src/java/com/android/ike/utils/BigIntegerUtils.java
+++ b/src/java/com/android/internal/net/utils/BigIntegerUtils.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.utils;
+package com.android.internal.net.utils;
import java.math.BigInteger;
diff --git a/src/java/com/android/ike/utils/Log.java b/src/java/com/android/internal/net/utils/Log.java
index 2a101f95..55ea0910 100644
--- a/src/java/com/android/ike/utils/Log.java
+++ b/src/java/com/android/internal/net/utils/Log.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.utils;
+package com.android.internal.net.utils;
import android.os.Build;
diff --git a/src/java/com/android/ike/utils/SimpleStateMachine.java b/src/java/com/android/internal/net/utils/SimpleStateMachine.java
index 12b6b7c3..a2fffddf 100644
--- a/src/java/com/android/ike/utils/SimpleStateMachine.java
+++ b/src/java/com/android/internal/net/utils/SimpleStateMachine.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.utils;
+package com.android.internal.net.utils;
/**
* SimpleStateMachine provides a minimal, synchronous state machine framework.
diff --git a/tests/iketests/src/java/com/android/ike/eap/EapSessionConfigTest.java b/tests/iketests/src/java/android/net/eap/EapSessionConfigTest.java
index ffed33fb..eed32e3e 100644
--- a/tests/iketests/src/java/com/android/ike/eap/EapSessionConfigTest.java
+++ b/tests/iketests/src/java/android/net/eap/EapSessionConfigTest.java
@@ -14,26 +14,26 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package android.net.eap;
+import static android.net.eap.EapSessionConfig.DEFAULT_IDENTITY;
import static android.telephony.TelephonyManager.APPTYPE_USIM;
-import static com.android.ike.eap.EapSessionConfig.DEFAULT_IDENTITY;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA_PRIME;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA_PRIME;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.EapSessionConfig.EapAkaConfig;
-import com.android.ike.eap.EapSessionConfig.EapAkaPrimeConfig;
-import com.android.ike.eap.EapSessionConfig.EapMethodConfig;
-import com.android.ike.eap.EapSessionConfig.EapMsChapV2Config;
-import com.android.ike.eap.EapSessionConfig.EapSimConfig;
+import android.net.eap.EapSessionConfig.EapAkaConfig;
+import android.net.eap.EapSessionConfig.EapAkaPrimeConfig;
+import android.net.eap.EapSessionConfig.EapMethodConfig;
+import android.net.eap.EapSessionConfig.EapMsChapV2Config;
+import android.net.eap.EapSessionConfig.EapSimConfig;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/ChildSessionConfigurationTest.java b/tests/iketests/src/java/android/net/ipsec/ike/ChildSessionConfigurationTest.java
index bd8da2c8..08d89942 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/ChildSessionConfigurationTest.java
+++ b/tests/iketests/src/java/android/net/ipsec/ike/ChildSessionConfigurationTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
@@ -22,11 +22,11 @@ import static org.mockito.Mockito.mock;
import android.net.LinkAddress;
-import com.android.ike.ikev2.message.IkeConfigPayload;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttribute;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Address;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Netmask;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv6Address;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttribute;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Address;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Netmask;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv6Address;
import libcore.net.InetAddressUtils;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/ChildSessionOptionsTest.java b/tests/iketests/src/java/android/net/ipsec/ike/ChildSessionOptionsTest.java
index 5f8a4fc6..242957d6 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/ChildSessionOptionsTest.java
+++ b/tests/iketests/src/java/android/net/ipsec/ike/ChildSessionOptionsTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/IkeSessionOptionsTest.java b/tests/iketests/src/java/android/net/ipsec/ike/IkeSessionOptionsTest.java
index 7abcc581..fa077d17 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/IkeSessionOptionsTest.java
+++ b/tests/iketests/src/java/android/net/ipsec/ike/IkeSessionOptionsTest.java
@@ -14,12 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
-import static com.android.ike.ikev2.IkeSessionOptions.IkeAuthConfig;
-import static com.android.ike.ikev2.IkeSessionOptions.IkeAuthDigitalSignRemoteConfig;
-import static com.android.ike.ikev2.IkeSessionOptions.IkeAuthEapConfig;
-import static com.android.ike.ikev2.IkeSessionOptions.IkeAuthPskConfig;
+import static android.net.ipsec.ike.IkeSessionOptions.IkeAuthConfig;
+import static android.net.ipsec.ike.IkeSessionOptions.IkeAuthDigitalSignLocalConfig;
+import static android.net.ipsec.ike.IkeSessionOptions.IkeAuthDigitalSignRemoteConfig;
+import static android.net.ipsec.ike.IkeSessionOptions.IkeAuthEapConfig;
+import static android.net.ipsec.ike.IkeSessionOptions.IkeAuthPskConfig;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -31,11 +32,11 @@ import static org.mockito.Mockito.mock;
import android.content.Context;
import android.net.IpSecManager;
import android.net.IpSecManager.UdpEncapsulationSocket;
+import android.net.eap.EapSessionConfig;
import androidx.test.InstrumentationRegistry;
-import com.android.ike.TestUtils;
-import com.android.ike.eap.EapSessionConfig;
+import com.android.internal.net.TestUtils;
import libcore.net.InetAddressUtils;
@@ -44,7 +45,10 @@ import org.junit.Before;
import org.junit.Test;
import java.net.Inet4Address;
+import java.security.PrivateKey;
import java.security.cert.X509Certificate;
+import java.security.interfaces.DSAPrivateKey;
+import java.security.interfaces.RSAPrivateKey;
public final class IkeSessionOptionsTest {
private static final String PSK_HEX_STRING = "6A756E69706572313233";
@@ -60,6 +64,10 @@ public final class IkeSessionOptionsTest {
private IkeIdentification mLocalIdentification;
private IkeIdentification mRemoteIdentification;
+ private X509Certificate mMockServerCaCert;
+ private X509Certificate mMockClientEndCert;
+ private PrivateKey mMockRsaPrivateKey;
+
@Before
public void setUp() throws Exception {
Context context = InstrumentationRegistry.getContext();
@@ -76,6 +84,10 @@ public final class IkeSessionOptionsTest {
.build();
mLocalIdentification = new IkeIpv4AddrIdentification(LOCAL_IPV4_ADDRESS);
mRemoteIdentification = new IkeIpv4AddrIdentification(REMOTE_IPV4_ADDRESS);
+
+ mMockServerCaCert = mock(X509Certificate.class);
+ mMockClientEndCert = mock(X509Certificate.class);
+ mMockRsaPrivateKey = mock(RSAPrivateKey.class);
}
@After
@@ -121,7 +133,6 @@ public final class IkeSessionOptionsTest {
@Test
public void testBuildWithEap() throws Exception {
- X509Certificate mockCert = mock(X509Certificate.class);
EapSessionConfig eapConfig = mock(EapSessionConfig.class);
IkeSessionOptions sessionOptions =
@@ -131,7 +142,7 @@ public final class IkeSessionOptionsTest {
.addSaProposal(mIkeSaProposal)
.setLocalIdentification(mLocalIdentification)
.setRemoteIdentification(mRemoteIdentification)
- .setAuthEap(mockCert, eapConfig)
+ .setAuthEap(mMockServerCaCert, eapConfig)
.build();
verifyIkeSessionOptionsCommon(sessionOptions);
@@ -145,11 +156,65 @@ public final class IkeSessionOptionsTest {
assertTrue(remoteConfig instanceof IkeAuthDigitalSignRemoteConfig);
assertEquals(IkeSessionOptions.IKE_AUTH_METHOD_PUB_KEY_SIGNATURE, remoteConfig.mAuthMethod);
assertEquals(
- mockCert,
+ mMockServerCaCert,
+ ((IkeAuthDigitalSignRemoteConfig) remoteConfig).mTrustAnchor.getTrustedCert());
+ }
+
+ @Test
+ public void testBuildWithDigitalSignatureAuth() throws Exception {
+ IkeSessionOptions sessionOptions =
+ new IkeSessionOptions.Builder()
+ .setServerAddress(REMOTE_IPV4_ADDRESS)
+ .setUdpEncapsulationSocket(mUdpEncapSocket)
+ .addSaProposal(mIkeSaProposal)
+ .setLocalIdentification(mLocalIdentification)
+ .setRemoteIdentification(mRemoteIdentification)
+ .setAuthDigitalSignature(
+ mMockServerCaCert, mMockClientEndCert, mMockRsaPrivateKey)
+ .build();
+
+ verifyIkeSessionOptionsCommon(sessionOptions);
+
+ IkeAuthConfig localConfig = sessionOptions.getLocalAuthConfig();
+ assertTrue(localConfig instanceof IkeAuthDigitalSignLocalConfig);
+
+ IkeAuthDigitalSignLocalConfig localAuthConfig = (IkeAuthDigitalSignLocalConfig) localConfig;
+ assertEquals(
+ IkeSessionOptions.IKE_AUTH_METHOD_PUB_KEY_SIGNATURE, localAuthConfig.mAuthMethod);
+ assertEquals(mMockClientEndCert, localAuthConfig.mEndCert);
+ assertTrue(localAuthConfig.mIntermediateCerts.isEmpty());
+ assertEquals(mMockRsaPrivateKey, localAuthConfig.mPrivateKey);
+
+ IkeAuthConfig remoteConfig = sessionOptions.getRemoteAuthConfig();
+ assertTrue(remoteConfig instanceof IkeAuthDigitalSignRemoteConfig);
+ assertEquals(IkeSessionOptions.IKE_AUTH_METHOD_PUB_KEY_SIGNATURE, remoteConfig.mAuthMethod);
+ assertEquals(
+ mMockServerCaCert,
((IkeAuthDigitalSignRemoteConfig) remoteConfig).mTrustAnchor.getTrustedCert());
}
@Test
+ public void testBuildWithDsaDigitalSignatureAuth() throws Exception {
+ try {
+ IkeSessionOptions sessionOptions =
+ new IkeSessionOptions.Builder()
+ .setServerAddress(REMOTE_IPV4_ADDRESS)
+ .setUdpEncapsulationSocket(mUdpEncapSocket)
+ .addSaProposal(mIkeSaProposal)
+ .setLocalIdentification(mLocalIdentification)
+ .setRemoteIdentification(mRemoteIdentification)
+ .setAuthDigitalSignature(
+ mMockServerCaCert,
+ mMockClientEndCert,
+ mock(DSAPrivateKey.class))
+ .build();
+ fail("Expected to fail because DSA is not supported");
+ } catch (IllegalArgumentException expected) {
+
+ }
+ }
+
+ @Test
public void testBuildWithoutSaProposal() throws Exception {
try {
new IkeSessionOptions.Builder()
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/IkeSessionTest.java b/tests/iketests/src/java/android/net/ipsec/ike/IkeSessionTest.java
index 28a13110..8bf1281d 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/IkeSessionTest.java
+++ b/tests/iketests/src/java/android/net/ipsec/ike/IkeSessionTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -27,7 +27,9 @@ import android.os.Looper;
import android.os.test.TestLooper;
import android.util.Log;
-import com.android.ike.ikev2.testutils.MockIpSecTestUtils;
+import com.android.internal.net.ipsec.ike.IkeSessionStateMachine;
+import com.android.internal.net.ipsec.ike.IkeSessionStateMachineTest;
+import com.android.internal.net.ipsec.ike.testutils.MockIpSecTestUtils;
import libcore.net.InetAddressUtils;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/IkeTrafficSelectorTest.java b/tests/iketests/src/java/android/net/ipsec/ike/IkeTrafficSelectorTest.java
index d8bde92e..65cf0566 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/IkeTrafficSelectorTest.java
+++ b/tests/iketests/src/java/android/net/ipsec/ike/IkeTrafficSelectorTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -23,8 +23,8 @@ import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import libcore.net.InetAddressUtils;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/SaProposalTest.java b/tests/iketests/src/java/android/net/ipsec/ike/SaProposalTest.java
index da1a0f09..d4efb0c3 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/SaProposalTest.java
+++ b/tests/iketests/src/java/android/net/ipsec/ike/SaProposalTest.java
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
-import static com.android.ike.ikev2.SaProposal.KEY_LEN_AES_128;
-import static com.android.ike.ikev2.SaProposal.KEY_LEN_UNUSED;
+import static android.net.ipsec.ike.SaProposal.KEY_LEN_AES_128;
+import static android.net.ipsec.ike.SaProposal.KEY_LEN_UNUSED;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -25,12 +25,12 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.ikev2.message.IkePayload;
-import com.android.ike.ikev2.message.IkeSaPayload.DhGroupTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.Transform;
+import com.android.internal.net.ipsec.ike.message.IkePayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.DhGroupTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.Transform;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/TunnelModeChildSessionOptionsTest.java b/tests/iketests/src/java/android/net/ipsec/ike/TunnelModeChildSessionOptionsTest.java
index 5ed6480c..b0f81dc2 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/TunnelModeChildSessionOptionsTest.java
+++ b/tests/iketests/src/java/android/net/ipsec/ike/TunnelModeChildSessionOptionsTest.java
@@ -14,18 +14,19 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package android.net.ipsec.ike;
import static android.system.OsConstants.AF_INET;
import static android.system.OsConstants.AF_INET6;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_ADDRESS;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_DNS;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_NETMASK;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_SUBNET;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_ADDRESS;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_DNS;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_SUBNET;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_ADDRESS;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_DHCP;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_DNS;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_NETMASK;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_SUBNET;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_ADDRESS;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_DNS;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_SUBNET;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -35,7 +36,7 @@ import static org.junit.Assert.fail;
import android.util.SparseArray;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttribute;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttribute;
import libcore.net.InetAddressUtils;
@@ -51,6 +52,8 @@ public final class TunnelModeChildSessionOptionsTest {
private static final int IP4_PREFIX_LEN = 32;
private static final int IP6_PREFIX_LEN = 64;
+ private static final int INVALID_ADDR_FAMILY = 5;
+
private static final Inet4Address IPV4_ADDRESS =
(Inet4Address) (InetAddressUtils.parseNumericAddress("192.0.2.100"));
private static final Inet6Address IPV6_ADDRESS =
@@ -61,6 +64,8 @@ public final class TunnelModeChildSessionOptionsTest {
private static final Inet6Address IPV6_DNS_SERVER =
(Inet6Address) (InetAddressUtils.parseNumericAddress("2001:4860:4860::8888"));
+ private static final Inet4Address IPV4_DHCP_SERVER =
+ (Inet4Address) (InetAddressUtils.parseNumericAddress("192.0.2.200"));
private ChildSaProposal mSaProposal;
@Before
@@ -81,10 +86,10 @@ public final class TunnelModeChildSessionOptionsTest {
}
private void verifyAttrTypes(
- SparseArray exptectedAttrCntMap, TunnelModeChildSessionOptions childOptions) {
+ SparseArray expectedAttrCntMap, TunnelModeChildSessionOptions childOptions) {
ConfigAttribute[] configAttributes = childOptions.getConfigurationRequests();
- SparseArray<Integer> atrrCntMap = exptectedAttrCntMap.clone();
+ SparseArray<Integer> atrrCntMap = expectedAttrCntMap.clone();
for (int i = 0; i < configAttributes.length; i++) {
int attType = configAttributes[i].attributeType;
@@ -119,12 +124,12 @@ public final class TunnelModeChildSessionOptionsTest {
verifyCommon(childOptions);
- SparseArray<Integer> exptectedAttrCntMap = new SparseArray<>();
- exptectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP4_ADDRESS, 2);
- exptectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP6_ADDRESS, 3);
- exptectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP4_NETMASK, 1);
+ SparseArray<Integer> expectedAttrCntMap = new SparseArray<>();
+ expectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP4_ADDRESS, 2);
+ expectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP6_ADDRESS, 3);
+ expectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP4_NETMASK, 1);
- verifyAttrTypes(exptectedAttrCntMap, childOptions);
+ verifyAttrTypes(expectedAttrCntMap, childOptions);
}
@Test
@@ -153,11 +158,11 @@ public final class TunnelModeChildSessionOptionsTest {
verifyCommon(childOptions);
- SparseArray<Integer> exptectedAttrCntMap = new SparseArray<>();
- exptectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP4_DNS, 2);
- exptectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP6_DNS, 2);
+ SparseArray<Integer> expectedAttrCntMap = new SparseArray<>();
+ expectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP4_DNS, 2);
+ expectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP6_DNS, 2);
- verifyAttrTypes(exptectedAttrCntMap, childOptions);
+ verifyAttrTypes(expectedAttrCntMap, childOptions);
}
@Test
@@ -171,11 +176,54 @@ public final class TunnelModeChildSessionOptionsTest {
verifyCommon(childOptions);
- SparseArray<Integer> exptectedAttrCntMap = new SparseArray<>();
- exptectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP4_SUBNET, 1);
- exptectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP6_SUBNET, 1);
+ SparseArray<Integer> expectedAttrCntMap = new SparseArray<>();
+ expectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP4_SUBNET, 1);
+ expectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP6_SUBNET, 1);
+
+ verifyAttrTypes(expectedAttrCntMap, childOptions);
+ }
+
+ @Test
+ public void testBuildChildSessionOptionsWithDhcpServerReq() {
+ TunnelModeChildSessionOptions childOptions =
+ new TunnelModeChildSessionOptions.Builder()
+ .addSaProposal(mSaProposal)
+ .addInternalDhcpServerRequest(AF_INET, 3)
+ .addInternalDhcpServerRequest(IPV4_DHCP_SERVER)
+ .build();
+
+ verifyCommon(childOptions);
+
+ SparseArray<Integer> expectedAttrCntMap = new SparseArray<>();
+ expectedAttrCntMap.put(CONFIG_ATTR_INTERNAL_IP4_DHCP, 4);
+
+ verifyAttrTypes(expectedAttrCntMap, childOptions);
+ }
+
+ @Test
+ public void testBuildChildSessionOptionsWithDhcp6SeverReq() {
+ try {
+ new TunnelModeChildSessionOptions.Builder()
+ .addSaProposal(mSaProposal)
+ .addInternalDhcpServerRequest(AF_INET6, 3)
+ .build();
+ fail("Expected to fail because DHCP6 is not supported.");
+ } catch (IllegalArgumentException expected) {
+
+ }
+ }
+
+ @Test
+ public void testBuildChildSessionOptionsWithInvalidDhcpReq() {
+ try {
+ new TunnelModeChildSessionOptions.Builder()
+ .addSaProposal(mSaProposal)
+ .addInternalDhcpServerRequest(INVALID_ADDR_FAMILY, 3)
+ .build();
+ fail("Expected to fail due to invalid address family value");
+ } catch (IllegalArgumentException expected) {
- verifyAttrTypes(exptectedAttrCntMap, childOptions);
+ }
}
}
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/exceptions/IkeProtocolExceptionTest.java b/tests/iketests/src/java/android/net/ipsec/ike/exceptions/IkeProtocolExceptionTest.java
index 69f03be2..8c3b16da 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/exceptions/IkeProtocolExceptionTest.java
+++ b/tests/iketests/src/java/android/net/ipsec/ike/exceptions/IkeProtocolExceptionTest.java
@@ -14,15 +14,17 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.exceptions;
+package android.net.ipsec.ike.exceptions;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_NO_PROPOSAL_CHOSEN;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_NO_PROPOSAL_CHOSEN;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
-import com.android.ike.ikev2.message.IkeNotifyPayload;
+import com.android.internal.net.ipsec.ike.exceptions.NoValidProposalChosenException;
+import com.android.internal.net.ipsec.ike.exceptions.UnsupportedCriticalPayloadException;
+import com.android.internal.net.ipsec.ike.message.IkeNotifyPayload;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeChallengeStateTest.java b/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeChallengeStateTest.java
deleted file mode 100644
index 8eac86b9..00000000
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeChallengeStateTest.java
+++ /dev/null
@@ -1,111 +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.ike.eap.statemachine;
-
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA_PRIME;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_IDENTITY_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_IDENTITY_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.IMSI;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaPrimeTypeData;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.statemachine.EapAkaPrimeMethodStateMachine.ChallengeState;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-
-public class EapAkaPrimeChallengeStateTest extends EapAkaPrimeStateTest {
- @Before
- public void setUp() {
- super.setUp();
-
- mStateMachine.transitionTo(mStateMachine.new ChallengeState());
- }
-
- @Test
- public void testTransitionWithEapIdentity() throws Exception {
- mStateMachine.transitionTo(mStateMachine.new CreatedState());
-
- EapData eapData = new EapData(EAP_TYPE_AKA_PRIME, DUMMY_EAP_TYPE_DATA);
- EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
-
- DecodeResult<EapAkaTypeData> decodeResult =
- new DecodeResult<>(new EapAkaPrimeTypeData(EAP_AKA_CHALLENGE, new ArrayList<>()));
- when(mMockTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
-
- mStateMachine.process(eapMessage);
-
- ChallengeState challengeState = (ChallengeState) mStateMachine.getState();
- assertArrayEquals(EAP_IDENTITY_BYTES, challengeState.mIdentity);
-
- // decode() is called in CreatedState and ChallengeState
- verify(mMockTypeDataDecoder, times(2)).decode(eq(DUMMY_EAP_TYPE_DATA));
- }
-
- @Test
- public void testTransitionWithEapAkaPrimeIdentity() throws Exception {
- mStateMachine.transitionTo(mStateMachine.new CreatedState());
-
- // Process AKA' Identity Request
- EapData eapData = new EapData(EAP_TYPE_AKA_PRIME, DUMMY_EAP_TYPE_DATA);
- EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
-
- DecodeResult<EapAkaTypeData> decodeResult =
- new DecodeResult<>(
- new EapAkaPrimeTypeData(EAP_AKA_IDENTITY, Arrays.asList(new AtAnyIdReq())));
- when(mMockTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
- when(mMockTelephonyManager.getSubscriberId()).thenReturn(IMSI);
-
- EapResponse eapResponse = (EapResponse) mStateMachine.process(eapMessage);
- assertArrayEquals(EAP_AKA_PRIME_IDENTITY_RESPONSE, eapResponse.packet);
-
- // decode() is called in CreatedState and IdentityState
- verify(mMockTypeDataDecoder, times(2)).decode(eq(DUMMY_EAP_TYPE_DATA));
- verify(mMockTelephonyManager).getSubscriberId();
-
- // Process AKA' Challenge Request
- decodeResult =
- new DecodeResult<>(new EapAkaPrimeTypeData(EAP_AKA_CHALLENGE, new ArrayList<>()));
- when(mMockTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
-
- mStateMachine.process(eapMessage);
-
- ChallengeState challengeState = (ChallengeState) mStateMachine.getState();
- assertArrayEquals(EAP_AKA_PRIME_IDENTITY_BYTES, challengeState.mIdentity);
-
- // decode() called again in IdentityState and ChallengeState
- verify(mMockTypeDataDecoder, times(4)).decode(eq(DUMMY_EAP_TYPE_DATA));
- }
-}
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeMethodStateMachineTest.java b/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeMethodStateMachineTest.java
deleted file mode 100644
index c96f3fe2..00000000
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeMethodStateMachineTest.java
+++ /dev/null
@@ -1,30 +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.ike.eap.statemachine;
-
-import static org.junit.Assert.assertTrue;
-
-import com.android.ike.eap.statemachine.EapAkaMethodStateMachine.CreatedState;
-
-import org.junit.Test;
-
-public class EapAkaPrimeMethodStateMachineTest extends EapAkaPrimeTest {
- @Test
- public void testEapAkaPrimeMethodStateMachineStartState() {
- assertTrue(mStateMachine.getState() instanceof CreatedState);
- }
-}
diff --git a/tests/iketests/src/java/com/android/ike/TestUtils.java b/tests/iketests/src/java/com/android/internal/net/TestUtils.java
index f11972ff..6dd5ce5e 100644
--- a/tests/iketests/src/java/com/android/ike/TestUtils.java
+++ b/tests/iketests/src/java/com/android/internal/net/TestUtils.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike;
+package com.android.internal.net;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.spy;
-import com.android.ike.utils.Log;
+import com.android.internal.net.utils.Log;
import java.nio.ByteBuffer;
diff --git a/tests/iketests/src/java/com/android/internal/net/eap/EapAkaPrimeTest.java b/tests/iketests/src/java/com/android/internal/net/eap/EapAkaPrimeTest.java
new file mode 100644
index 00000000..0872b67f
--- /dev/null
+++ b/tests/iketests/src/java/com/android/internal/net/eap/EapAkaPrimeTest.java
@@ -0,0 +1,382 @@
+/*
+ * 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.eap;
+
+import static android.telephony.TelephonyManager.APPTYPE_USIM;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
+
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.net.eap.EapSessionConfig;
+import android.telephony.TelephonyManager;
+
+import com.android.internal.net.eap.statemachine.EapStateMachine;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class EapAkaPrimeTest extends EapMethodEndToEndTest {
+ private static final long AUTHENTICATOR_TIMEOUT_MILLIS = 250L;
+
+ private static final int SUB_ID = 1;
+ private static final String UNFORMATTED_IDENTITY = "123456789ABCDEF"; // IMSI
+
+ // EAP_IDENTITY = hex("test@android.net")
+ private static final byte[] EAP_IDENTITY =
+ hexStringToByteArray("7465737440616E64726F69642E6E6574");
+ private static final boolean ALLOW_MISMATCHED_NETWORK_NAMES = false;
+ private static final String PEER_NETWORK_NAME_1 = "foo:bar";
+ private static final String PEER_NETWORK_NAME_2 = "bar";
+
+ // hex("foo:bar:buzz")
+ private static final String SERVER_NETWORK_NAME = "666F6F3A6261723A62757A7A";
+
+ // TODO(b/142667016): replace with externally generated test values
+
+ // IK: 7320EE404E055EF2B5AB0F86E96C48BE
+ // CK: E9D1707652E13BF3E05975F601678E5C
+ // Server Network Name: 666F6F3A6261723A62757A7A
+ // SQN ^ AK: 35A9143ED9E1
+ // IK': 79DC30692F3D2303D148549E5D50D0AA
+ // CK': BBD0A7AD3F14757BA604C4CBE70F9090
+ // K_encr: 4c22c289bcf40367cf2bdb6a6e3fe56b
+ // K_aut: c64abd508ab628f842e9fb40a14fea769d2ccc67a8412794fe3b4c2556431e78
+ // K_re: 5454ccf7ecc227f25c6cd1023e09394fa5cedc14a2f155e9d96a70dc404b4dca
+ private static final String RAND_1 = "D6A296F030A305601B311D38A004505C";
+ private static final String RAND_2 = "000102030405060708090A0B0C0D0E0F";
+ private static final String AUTN = "35A9143ED9E100011795E785DAFAAD9B";
+ private static final String RES = "E5167A255FDCDE9248AF6B50ADA0D944";
+ private static final String AUTS = "0102030405060708090A0B0C0D0E";
+ private static final byte[] MSK =
+ hexStringToByteArray(
+ "695788d8f33af56b5b2fea065a0e8656"
+ + "7dc48120d6070d96056f9668614ec3e7"
+ + "feb4933a3aaab3587980a624998c8b5e"
+ + "a69d7295b824ef4a2201720be89d04df");
+ private static final byte[] EMSK =
+ hexStringToByteArray(
+ "2db1f574d6e92cec294779defef5a7f0"
+ + "49319cc75367102815d0244087f23660"
+ + "0986b47a862c1aeeca418c84a2f9581b"
+ + "0738fdefd229a5f7a4ca76709379bf00");
+
+ // IK: 7320EE404E055EF2B5AB0F86E96C48BE
+ // CK: E9D1707652E13BF3E05975F601678E5C
+ // Server Network Name: 666F6F3A6261723A62757A7A
+ // SQN ^ AK: 35A9143ED9E1
+ // IK': 6C45FB0B12FF8172223B6D0E599EAE20
+ // CK': A01C894696BEB759ABE0340F71A20D7B
+ // K_encr: c039213c78fcf78a34bef30219a77822
+ // K_aut: 95b014e569144eba71a387f91fb6b72e06781df12d61bfe88e5149477cd232aa
+ // K_re: 1000c2e2f01766a4d2581ac454e41fce1ee17bcccbc32dfad78815075d884c5e
+ private static final byte[] MSK_WITHOUT_IDENTITY_REQ =
+ hexStringToByteArray(
+ "ad75a86586773134dcd9e78e3f75b282"
+ + "7a42435cb1be7235be58cddc60a0ba19"
+ + "dd5c30accfdb0db5ef065f46c3c25d7b"
+ + "9f8703d9493a2dc6fb6563dbdc854658");
+ private static final byte[] EMSK_WITHOUT_IDENTITY_REQ =
+ hexStringToByteArray(
+ "31a3f2bb0e3e831d991dc8666438297f"
+ + "4a5bc157fc1e31537e5a4927206d7b4b"
+ + "db830761eea3441d9b90da48aebb9734"
+ + "d3cbdec96072230a64043f54932a8841");
+
+ // Base 64 of: [Length][RAND_1][Length][AUTN]
+ private static final String BASE64_CHALLENGE_1 =
+ "ENailvAwowVgGzEdOKAEUFwQNakUPtnhAAEXleeF2vqtmw==";
+
+ // Base 64 of: ['DB'][Length][RES][Length][IK][Length][CK]
+ private static final String BASE_64_RESPONSE_SUCCESS =
+ "2xDlFnolX9zekkiva1CtoNlEEHMg7kBOBV7ytasPhulsSL4Q6dFwdlLhO/PgWXX2AWeOXA==";
+
+ // Base 64 of: [Length][RAND_2][Length][AUTN]
+ private static final String BASE64_CHALLENGE_2 =
+ "EAABAgMEBQYHCAkKCwwNDg8QNakUPtnhAAEXleeF2vqtmw==";
+
+ // Base 64 of: ['DC'][Length][AUTS]
+ private static final String BASE_64_RESPONSE_SYNC_FAIL = "3A4BAgMEBQYHCAkKCwwNDg==";
+
+ private static final String REQUEST_MAC = "9089f89b2f99bb85f2f2b529779f98db";
+ private static final String RESPONSE_MAC = "48d7d6a80e1e2ff26a1e4148e0a2303e";
+ private static final String REQUEST_MAC_WITHOUT_IDENTITY_REQ =
+ "59f680ede020a3d0156eef56affb6997";
+ private static final String RESPONSE_MAC_WITHOUT_IDENTITY_REQ =
+ "e15322ff4abe51479c0fa92d00e343d7";
+
+ private static final byte[] EAP_AKA_PRIME_IDENTITY_REQUEST =
+ hexStringToByteArray(
+ "01CD000C" // EAP-Request | ID | length in bytes
+ + "32050000" // EAP-AKA' | Identity | 2B padding
+ + "0D010000"); // AT_ANY_ID_REQ attribute
+ private static final byte[] EAP_AKA_PRIME_IDENTITY_RESPONSE =
+ hexStringToByteArray(
+ "02CD001C" // EAP-Response | ID | length in bytes
+ + "32050000" // EAP-AKA' | Identity | 2B padding
+ + "0E05001036313233343536373839414243444546"); // AT_IDENTITY attribute
+
+ private static final byte[] EAP_AKA_PRIME_CHALLENGE_REQUEST =
+ hexStringToByteArray(
+ "01CE0044" // EAP-Request | ID | length in bytes
+ + "32010000" // EAP-AKA' | Challenge | 2B padding
+ + "01050000" + RAND_1 // AT_RAND attribute
+ + "02050000" + AUTN // AT_AUTN attribute
+ + "1704000C" + SERVER_NETWORK_NAME // AT_KDF_INPUT attribute
+ + "18010001" // AT_KDF attribute
+ + "0B050000" + REQUEST_MAC); // AT_MAC attribute
+ private static final byte[] EAP_AKA_PRIME_CHALLENGE_RESPONSE =
+ hexStringToByteArray(
+ "02CE0030" // EAP-Response | ID | length in bytes
+ + "32010000" // EAP-AKA' | Challenge | 2B padding
+ + "03050080" + RES // AT_RES attribute
+ + "0B050000" + RESPONSE_MAC); // AT_MAC attribute
+
+ private static final byte[] EAP_AKA_PRIME_CHALLENGE_REQUEST_WITHOUT_IDENTITY_REQ =
+ hexStringToByteArray(
+ "01CE0044" // EAP-Request | ID | length in bytes
+ + "32010000" // EAP-AKA' | Challenge | 2B padding
+ + "01050000" + RAND_1 // AT_RAND attribute
+ + "02050000" + AUTN // AT_AUTN attribute
+ + "1704000C" + SERVER_NETWORK_NAME // AT_KDF_INPUT attribute
+ + "18010001" // AT_KDF attribute
+ + "0B050000" + REQUEST_MAC_WITHOUT_IDENTITY_REQ); // AT_MAC attribute
+ private static final byte[] EAP_AKA_PRIME_CHALLENGE_RESPONSE_WITHOUT_IDENTITY_REQUEST =
+ hexStringToByteArray(
+ "02CE0030" // EAP-Response | ID | length in bytes
+ + "32010000" // EAP-AKA' | Challenge | 2B padding
+ + "03050080" + RES // AT_RES attribute
+ + "0B050000" + RESPONSE_MAC_WITHOUT_IDENTITY_REQ); // AT_MAC attribute
+
+ private static final byte[] EAP_AKA_PRIME_CHALLENGE_REQUEST_SYNC_FAIL =
+ hexStringToByteArray(
+ "01CE0044" // EAP-Request | ID | length in bytes
+ + "32010000" // EAP-AKA' | Challenge | 2B padding
+ + "01050000" + RAND_2 // AT_RAND attribute
+ + "02050000" + AUTN // AT_AUTN attribute
+ + "1704000C" + SERVER_NETWORK_NAME // AT_KDF_INPUT attribute
+ + "18010001" // AT_KDF attribute
+ + "0B050000" + REQUEST_MAC); // AT_MAC attribute
+ private static final byte[] EAP_AKA_PRIME_SYNC_FAIL_RESPONSE =
+ hexStringToByteArray(
+ "02CE0018" // EAP-Response | ID | length in bytes
+ + "32040000" // EAP-AKA' | Synchronization-Failure | 2B padding
+ + "0404" + AUTS); // AT_AUTS attribute
+
+ private static final byte[] EAP_AKA_PRIME_AUTHENTICATION_REJECT =
+ hexStringToByteArray(
+ "02CE0008" // EAP-Response | ID | length in bytes
+ + "32020000"); // EAP-AKA' | Authentication-Reject | 2B padding
+
+ private static final byte[] EAP_RESPONSE_NAK_PACKET =
+ hexStringToByteArray("021000060332"); // NAK with EAP-AKA' listed
+
+ private TelephonyManager mMockTelephonyManager;
+
+ @Before
+ @Override
+ public void setUp() {
+ super.setUp();
+
+ setUp(ALLOW_MISMATCHED_NETWORK_NAMES, PEER_NETWORK_NAME_1);
+ }
+
+ private void setUp(boolean allowMismatchedNetworkNames, String peerNetworkName) {
+ mMockTelephonyManager = mock(TelephonyManager.class);
+
+ mEapSessionConfig =
+ new EapSessionConfig.Builder()
+ .setEapIdentity(EAP_IDENTITY)
+ .setEapAkaPrimeConfig(
+ SUB_ID, APPTYPE_USIM, peerNetworkName, allowMismatchedNetworkNames)
+ .build();
+ mEapAuthenticator =
+ new EapAuthenticator(
+ mTestLooper.getLooper(),
+ mMockCallback,
+ new EapStateMachine(mMockContext, mEapSessionConfig, mMockSecureRandom),
+ (runnable) -> runnable.run(),
+ AUTHENTICATOR_TIMEOUT_MILLIS);
+
+ when(mMockContext.getSystemService(Context.TELEPHONY_SERVICE))
+ .thenReturn(mMockTelephonyManager);
+ when(mMockTelephonyManager.createForSubscriptionId(SUB_ID))
+ .thenReturn(mMockTelephonyManager);
+ }
+
+ @Test
+ public void testEapAkaPrimeEndToEnd() {
+ verifyEapPrimeAkaIdentity();
+ verifyEapAkaPrimeChallenge(BASE_64_RESPONSE_SUCCESS, EAP_AKA_PRIME_CHALLENGE_RESPONSE);
+ verifyEapSuccess(MSK, EMSK);
+ }
+
+ @Test
+ public void testEapAkaPrimeEndToEndWithoutIdentityRequest() {
+ verifyEapAkaPrimeChallengeWithoutIdentityReq();
+ verifyEapSuccess(MSK_WITHOUT_IDENTITY_REQ, EMSK_WITHOUT_IDENTITY_REQ);
+ }
+
+ @Test
+ public void testEapAkaPrimeWithEapNotifications() {
+ verifyEapNotification(1);
+ verifyEapPrimeAkaIdentity();
+
+ verifyEapNotification(2);
+ verifyEapAkaPrimeChallenge(BASE_64_RESPONSE_SUCCESS, EAP_AKA_PRIME_CHALLENGE_RESPONSE);
+
+ verifyEapNotification(3);
+ verifyEapSuccess(MSK, EMSK);
+ }
+
+ @Test
+ public void testEapAkaPrimeUnsupportedType() {
+ verifyUnsupportedType(EAP_REQUEST_SIM_START_PACKET, EAP_RESPONSE_NAK_PACKET);
+
+ verifyEapPrimeAkaIdentity();
+ verifyEapAkaPrimeChallenge(BASE_64_RESPONSE_SUCCESS, EAP_AKA_PRIME_CHALLENGE_RESPONSE);
+ verifyEapSuccess(MSK, EMSK);
+ }
+
+ @Test
+ public void testEapAkaPrimeSynchronizationFailure() {
+ verifyEapPrimeAkaIdentity();
+ verifyEapAkaPrimeSynchronizationFailure();
+ verifyEapAkaPrimeChallenge(BASE_64_RESPONSE_SUCCESS, EAP_AKA_PRIME_CHALLENGE_RESPONSE);
+ verifyEapSuccess(MSK, EMSK);
+ }
+
+ @Test
+ public void testEapAkaPrimeAuthenticationReject() {
+ verifyEapPrimeAkaIdentity();
+
+ // return null from TelephonyManager to simluate rejection of AUTN
+ verifyEapAkaPrimeChallenge(null, EAP_AKA_PRIME_AUTHENTICATION_REJECT);
+ verifyEapFailure();
+ }
+
+ @Test
+ public void testEapAkaPrimeMismatchedNetworkNamesNotAllowed() {
+ // use mismatched peer network name
+ setUp(false, PEER_NETWORK_NAME_2);
+ verifyEapPrimeAkaIdentity();
+ verifyEapAkaPrimeChallengeMismatchedNetworkNames();
+ verifyEapFailure();
+ }
+
+ @Test
+ public void testEapAkaPrimeMismatchedNetworkNamesAllowed() {
+ setUp(true, PEER_NETWORK_NAME_2);
+ verifyEapPrimeAkaIdentity();
+ verifyEapAkaPrimeChallenge(BASE_64_RESPONSE_SUCCESS, EAP_AKA_PRIME_CHALLENGE_RESPONSE);
+ verifyEapSuccess(MSK, EMSK);
+ }
+
+ private void verifyEapPrimeAkaIdentity() {
+ // EAP-AKA'/Identity request
+ when(mMockTelephonyManager.getSubscriberId()).thenReturn(UNFORMATTED_IDENTITY);
+
+ mEapAuthenticator.processEapMessage(EAP_AKA_PRIME_IDENTITY_REQUEST);
+ mTestLooper.dispatchAll();
+
+ // verify EAP-AKA'/Identity response
+ verify(mMockContext).getSystemService(eq(Context.TELEPHONY_SERVICE));
+ verify(mMockTelephonyManager).createForSubscriptionId(SUB_ID);
+ verify(mMockTelephonyManager).getSubscriberId();
+ verify(mMockCallback).onResponse(eq(EAP_AKA_PRIME_IDENTITY_RESPONSE));
+ verifyNoMoreInteractions(
+ mMockContext, mMockTelephonyManager, mMockSecureRandom, mMockCallback);
+ }
+
+ private void verifyEapAkaPrimeChallenge(
+ String challengeBase64,
+ String responseBase64,
+ byte[] incomingEapPacket,
+ byte[] outgoingEapPacket) {
+ // EAP-AKA'/Challenge request
+ when(mMockTelephonyManager.getIccAuthentication(
+ TelephonyManager.APPTYPE_USIM,
+ TelephonyManager.AUTHTYPE_EAP_AKA,
+ challengeBase64))
+ .thenReturn(responseBase64);
+
+ mEapAuthenticator.processEapMessage(incomingEapPacket);
+ mTestLooper.dispatchAll();
+
+ // verify EAP-AKA'/Challenge response
+ verify(mMockTelephonyManager)
+ .getIccAuthentication(
+ TelephonyManager.APPTYPE_USIM,
+ TelephonyManager.AUTHTYPE_EAP_AKA,
+ challengeBase64);
+ verify(mMockCallback).onResponse(eq(outgoingEapPacket));
+ }
+
+ private void verifyEapAkaPrimeChallenge(String responseBase64, byte[] outgoingPacket) {
+ verifyEapAkaPrimeChallenge(
+ BASE64_CHALLENGE_1,
+ responseBase64,
+ EAP_AKA_PRIME_CHALLENGE_REQUEST,
+ outgoingPacket);
+ verifyNoMoreInteractions(
+ mMockContext, mMockTelephonyManager, mMockSecureRandom, mMockCallback);
+ }
+
+ private void verifyEapAkaPrimeChallengeWithoutIdentityReq() {
+ verifyEapAkaPrimeChallenge(
+ BASE64_CHALLENGE_1,
+ BASE_64_RESPONSE_SUCCESS,
+ EAP_AKA_PRIME_CHALLENGE_REQUEST_WITHOUT_IDENTITY_REQ,
+ EAP_AKA_PRIME_CHALLENGE_RESPONSE_WITHOUT_IDENTITY_REQUEST);
+
+ // also need to verify interactions with Context and TelephonyManager
+ verify(mMockContext).getSystemService(eq(Context.TELEPHONY_SERVICE));
+ verify(mMockTelephonyManager).createForSubscriptionId(SUB_ID);
+ verifyNoMoreInteractions(
+ mMockContext, mMockTelephonyManager, mMockSecureRandom, mMockCallback);
+ }
+
+ private void verifyEapAkaPrimeSynchronizationFailure() {
+ verifyEapAkaPrimeChallenge(
+ BASE64_CHALLENGE_2,
+ BASE_64_RESPONSE_SYNC_FAIL,
+ EAP_AKA_PRIME_CHALLENGE_REQUEST_SYNC_FAIL,
+ EAP_AKA_PRIME_SYNC_FAIL_RESPONSE);
+ verifyNoMoreInteractions(
+ mMockContext, mMockTelephonyManager, mMockSecureRandom, mMockCallback);
+ }
+
+ private void verifyEapAkaPrimeChallengeMismatchedNetworkNames() {
+ // EAP-AKA'/Challenge request
+ mEapAuthenticator.processEapMessage(EAP_AKA_PRIME_CHALLENGE_REQUEST);
+ mTestLooper.dispatchAll();
+ verify(mMockCallback).onResponse(eq(EAP_AKA_PRIME_AUTHENTICATION_REJECT));
+ }
+
+ @Override
+ protected void verifyEapSuccess(byte[] msk, byte[] emsk) {
+ super.verifyEapSuccess(msk, emsk);
+
+ verifyNoMoreInteractions(mMockTelephonyManager);
+ }
+}
diff --git a/tests/iketests/src/java/com/android/ike/eap/EapAkaTest.java b/tests/iketests/src/java/com/android/internal/net/eap/EapAkaTest.java
index b1744e17..e982a85d 100644
--- a/tests/iketests/src/java/com/android/ike/eap/EapAkaTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/EapAkaTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
import static android.telephony.TelephonyManager.APPTYPE_USIM;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
@@ -28,9 +28,10 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.net.eap.EapSessionConfig;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.statemachine.EapStateMachine;
+import com.android.internal.net.eap.statemachine.EapStateMachine;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/EapAuthenticatorTest.java b/tests/iketests/src/java/com/android/internal/net/eap/EapAuthenticatorTest.java
index 11d46615..4c868a03 100644
--- a/tests/iketests/src/java/com/android/ike/eap/EapAuthenticatorTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/EapAuthenticatorTest.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_FAILURE_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_RESPONSE_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.REQUEST_UNSUPPORTED_TYPE_PACKET;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_FAILURE_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_RESPONSE_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.REQUEST_UNSUPPORTED_TYPE_PACKET;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
@@ -35,12 +35,12 @@ import static org.mockito.Mockito.when;
import android.os.Looper;
import android.os.test.TestLooper;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapResult.EapSuccess;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.statemachine.EapStateMachine;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.statemachine.EapStateMachine;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/EapErrorTest.java b/tests/iketests/src/java/com/android/internal/net/eap/EapErrorTest.java
index f2209eca..ce497635 100644
--- a/tests/iketests/src/java/com/android/ike/eap/EapErrorTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/EapErrorTest.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
import static org.junit.Assert.assertEquals;
-import com.android.ike.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapError;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/EapMethodEndToEndTest.java b/tests/iketests/src/java/com/android/internal/net/eap/EapMethodEndToEndTest.java
index aed73c25..412a4cf1 100644
--- a/tests/iketests/src/java/com/android/ike/eap/EapMethodEndToEndTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/EapMethodEndToEndTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_FAILURE_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SUCCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_FAILURE_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SUCCESS;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
@@ -28,6 +28,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import android.content.Context;
+import android.net.eap.EapSessionConfig;
import android.os.test.TestLooper;
import org.junit.Before;
diff --git a/tests/iketests/src/java/com/android/ike/eap/EapMsChapV2Test.java b/tests/iketests/src/java/com/android/internal/net/eap/EapMsChapV2Test.java
index d63b59f2..01264f9d 100644
--- a/tests/iketests/src/java/com/android/ike/eap/EapMsChapV2Test.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/EapMsChapV2Test.java
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_AKA_IDENTITY_PACKET;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_AKA_IDENTITY_PACKET;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
@@ -25,7 +25,9 @@ import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
-import com.android.ike.eap.statemachine.EapStateMachine;
+import android.net.eap.EapSessionConfig;
+
+import com.android.internal.net.eap.statemachine.EapStateMachine;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/EapResponseTest.java b/tests/iketests/src/java/com/android/internal/net/eap/EapResponseTest.java
index 77aed415..0c6dd52d 100644
--- a/tests/iketests/src/java/com/android/ike/eap/EapResponseTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/EapResponseTest.java
@@ -14,19 +14,19 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NAK_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NAK_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.exceptions.InvalidEapResponseException;
-import com.android.ike.eap.message.EapMessage;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.InvalidEapResponseException;
+import com.android.internal.net.eap.message.EapMessage;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/EapSimTest.java b/tests/iketests/src/java/com/android/internal/net/eap/EapSimTest.java
index b6f41659..8b11d278 100644
--- a/tests/iketests/src/java/com/android/ike/eap/EapSimTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/EapSimTest.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
import static android.telephony.TelephonyManager.APPTYPE_USIM;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_AKA_IDENTITY_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NAK_PACKET;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_AKA_IDENTITY_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NAK_PACKET;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
@@ -31,9 +31,10 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.net.eap.EapSessionConfig;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.statemachine.EapStateMachine;
+import com.android.internal.net.eap.statemachine.EapStateMachine;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/EapSuccessTest.java b/tests/iketests/src/java/com/android/internal/net/eap/EapSuccessTest.java
index 724101fd..d7410540 100644
--- a/tests/iketests/src/java/com/android/ike/eap/EapSuccessTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/EapSuccessTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.fail;
-import com.android.ike.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.EapResult.EapSuccess;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/EapTestUtils.java b/tests/iketests/src/java/com/android/internal/net/eap/EapTestUtils.java
index aa374552..de058d15 100644
--- a/tests/iketests/src/java/com/android/ike/eap/EapTestUtils.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/EapTestUtils.java
@@ -14,10 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap;
+package com.android.internal.net.eap;
import static android.telephony.TelephonyManager.APPTYPE_USIM;
+import android.net.eap.EapSessionConfig;
+
import java.util.HashMap;
/**
diff --git a/tests/iketests/src/java/com/android/ike/eap/crypto/Fips186_2PrfTest.java b/tests/iketests/src/java/com/android/internal/net/eap/crypto/Fips186_2PrfTest.java
index 7bded7b2..978f070f 100644
--- a/tests/iketests/src/java/com/android/ike/eap/crypto/Fips186_2PrfTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/crypto/Fips186_2PrfTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap.crypto;
+package com.android.internal.net.eap.crypto;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
+import com.android.internal.net.TestUtils;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/internal/net/eap/crypto/HmacSha256ByteSignerTest.java b/tests/iketests/src/java/com/android/internal/net/eap/crypto/HmacSha256ByteSignerTest.java
new file mode 100644
index 00000000..355c1db1
--- /dev/null
+++ b/tests/iketests/src/java/com/android/internal/net/eap/crypto/HmacSha256ByteSignerTest.java
@@ -0,0 +1,93 @@
+/*
+ * 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.eap.crypto;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+
+import static org.junit.Assert.assertArrayEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * HmacSha256ByteSignerTest tests that {@link HmacSha256ByteSigner} correctly signs data using the
+ * HMAC-SHA-256 algorithm.
+ *
+ * <p>These test vectors are defined in RFC 4231#4.
+ *
+ * @see <a href="https://tools.ietf.org/html/rfc4231#section-4">Test Vectors</a>
+ */
+public class HmacSha256ByteSignerTest {
+ private static final String[] KEYS = {
+ "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
+ "4a656665",
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "0102030405060708090a0b0c0d0e0f10111213141516171819",
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ + "aaaaaa",
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ + "aaaaaa"
+ };
+ private static final String[] DATA = {
+ "4869205468657265",
+ "7768617420646f2079612077616e7420666f72206e6f7468696e673f",
+ "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
+ + "dddddddddddddddddddddddddddddddddddd",
+ "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
+ + "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
+ "54657374205573696e67204c6172676572205468616e20426c6f636b2d53697a"
+ + "65204b6579202d2048617368204b6579204669727374",
+ "5468697320697320612074657374207573696e672061206c6172676572207468"
+ + "616e20626c6f636b2d73697a65206b657920616e642061206c61726765722074"
+ + "68616e20626c6f636b2d73697a6520646174612e20546865206b6579206e6565"
+ + "647320746f20626520686173686564206265666f7265206265696e6720757365"
+ + "642062792074686520484d414320616c676f726974686d2e"
+ };
+ private static final String[] MACS = {
+ "b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7",
+ "5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843",
+ "773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe",
+ "82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b",
+ "60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54",
+ "9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2"
+ };
+
+ private HmacSha256ByteSigner mMacByteSigner;
+
+ @Before
+ public void setUp() {
+ mMacByteSigner = HmacSha256ByteSigner.getInstance();
+ }
+
+ @Test
+ public void testSignBytes() {
+ for (int i = 0; i < KEYS.length; i++) {
+ byte[] key = hexStringToByteArray(KEYS[i]);
+ byte[] data = hexStringToByteArray(DATA[i]);
+
+ byte[] expected = hexStringToByteArray(MACS[i]);
+
+ assertArrayEquals(expected, mMacByteSigner.signBytes(key, data));
+ }
+ }
+}
diff --git a/tests/iketests/src/java/com/android/ike/eap/crypto/ParityBitUtilTest.java b/tests/iketests/src/java/com/android/internal/net/eap/crypto/ParityBitUtilTest.java
index ae31caf0..7ba024e5 100644
--- a/tests/iketests/src/java/com/android/ike/eap/crypto/ParityBitUtilTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/crypto/ParityBitUtilTest.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.crypto;
+package com.android.internal.net.eap.crypto;
-import static com.android.ike.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/EapDataTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/EapDataTest.java
index 49de5364..9d4cc7ca 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/EapDataTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/EapDataTest.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.message;
+package com.android.internal.net.eap.message;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/EapMessageTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/EapMessageTest.java
index 88d2b6fc..813a30f7 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/EapMessageTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/EapMessageTest.java
@@ -14,26 +14,26 @@
* limitations under the License.
*/
-package com.android.ike.eap.message;
-
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapData.EAP_NAK;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_RESPONSE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_TYPE_DATA;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NAK_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.INCOMPLETE_HEADER_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.INVALID_CODE_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.LONG_SUCCESS_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.REQUEST_MISSING_TYPE_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.REQUEST_UNSUPPORTED_TYPE_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.SHORT_PACKET;
+package com.android.internal.net.eap.message;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_NAK;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_RESPONSE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_TYPE_DATA;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NAK_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.INCOMPLETE_HEADER_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.INVALID_CODE_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.LONG_SUCCESS_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.REQUEST_MISSING_TYPE_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.REQUEST_UNSUPPORTED_TYPE_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.SHORT_PACKET;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -41,11 +41,11 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.exceptions.EapInvalidPacketLengthException;
-import com.android.ike.eap.exceptions.InvalidEapCodeException;
-import com.android.ike.eap.exceptions.UnsupportedEapTypeException;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.EapInvalidPacketLengthException;
+import com.android.internal.net.eap.exceptions.InvalidEapCodeException;
+import com.android.internal.net.eap.exceptions.UnsupportedEapTypeException;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/EapTestMessageDefinitions.java b/tests/iketests/src/java/com/android/internal/net/eap/message/EapTestMessageDefinitions.java
index 3ddbe549..20517583 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/EapTestMessageDefinitions.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/EapTestMessageDefinitions.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.eap.message;
+package com.android.internal.net.eap.message;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_VERSION_LIST_DATA;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.IDENTITY_STRING;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT_STRING;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_2;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RES;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_VERSION_LIST_DATA;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.IDENTITY_STRING;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT_STRING;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_2;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RES;
/**
* EapTestMessageDefinitions provides byte[] encodings of commonly used EAP Messages.
@@ -318,6 +318,10 @@ public class EapTestMessageDefinitions {
public static final byte[] EAP_AKA_PRIME_IDENTITY_RESPONSE =
hexStringToByteArray(
"02" + ID + "001C" // EAP-Response | ID | length in bytes
- + "32050000" // EAP-AKA | Identity | 2B padding
+ + "32050000" // EAP-AKA' | Identity | 2B padding
+ "0E050010" + EAP_AKA_PRIME_IDENTITY); // AT_IDENTITY ("6" + IMSI)
+ public static final byte[] EAP_AKA_PRIME_AUTHENTICATION_REJECT =
+ hexStringToByteArray(
+ "02" + ID + "0008" // EAP-Response | ID | length in bytes
+ + "32020000"); // EAP-AKA' | Authentication Reject | 2B padding
}
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2ChallengeRequestTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2ChallengeRequestTest.java
index a5aff231..45a86735 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2ChallengeRequestTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2ChallengeRequestTest.java
@@ -14,17 +14,17 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.mschapv2;
-
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_REQUEST_LONG_MS_LENGTH;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_REQUEST_SHORT_CHALLENGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_REQUEST_SHORT_MS_LENGTH;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_REQUEST_WRONG_OP_CODE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_CHALLENGE_REQUEST;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ID_INT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SERVER_NAME_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_CHALLENGE;
+package com.android.internal.net.eap.message.mschapv2;
+
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_REQUEST_LONG_MS_LENGTH;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_REQUEST_SHORT_CHALLENGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_REQUEST_SHORT_MS_LENGTH;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_REQUEST_WRONG_OP_CODE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_CHALLENGE_REQUEST;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SERVER_NAME_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_CHALLENGE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -32,11 +32,11 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2ChallengeResponseTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2ChallengeResponseTest.java
index f43dd4d8..3e243a98 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2ChallengeResponseTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2ChallengeResponseTest.java
@@ -14,23 +14,23 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.mschapv2;
+package com.android.internal.net.eap.message.mschapv2;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_CHALLENGE_RESPONSE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ID_INT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.NT_RESPONSE_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.PEER_CHALLENGE_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.PEER_NAME_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SHORT_CHALLENGE_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SHORT_NT_RESPONSE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_RESPONSE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_CHALLENGE_RESPONSE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.NT_RESPONSE_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.PEER_CHALLENGE_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.PEER_NAME_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SHORT_CHALLENGE_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SHORT_NT_RESPONSE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_RESPONSE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeResponse;
+import com.android.internal.net.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeResponse;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2FailureRequestTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2FailureRequestTest.java
index 67790760..ead8022a 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2FailureRequestTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2FailureRequestTest.java
@@ -14,34 +14,34 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.mschapv2;
-
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_FAILURE_REQUEST;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_FAILURE_REQUEST_MISSING_MESSAGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_FAILURE_REQUEST_MISSING_MESSAGE_WITH_SPACE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ERROR_CODE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.FAILURE_REQUEST_EXTRA_ATTRIBUTE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.FAILURE_REQUEST_INVALID_CHALLENGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.FAILURE_REQUEST_INVALID_ERROR_CODE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.FAILURE_REQUEST_INVALID_PASSWORD_CHANGE_PROTOCOL;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.FAILURE_REQUEST_SHORT_CHALLENGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ID_INT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE_MISSING_TEXT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.PASSWORD_CHANGE_PROTOCOL;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.RETRY_BIT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_FAILURE;
+package com.android.internal.net.eap.message.mschapv2;
+
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_FAILURE_REQUEST;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_FAILURE_REQUEST_MISSING_MESSAGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_FAILURE_REQUEST_MISSING_MESSAGE_WITH_SPACE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ERROR_CODE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.FAILURE_REQUEST_EXTRA_ATTRIBUTE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.FAILURE_REQUEST_INVALID_CHALLENGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.FAILURE_REQUEST_INVALID_ERROR_CODE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.FAILURE_REQUEST_INVALID_PASSWORD_CHANGE_PROTOCOL;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.FAILURE_REQUEST_SHORT_CHALLENGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE_MISSING_TEXT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.PASSWORD_CHANGE_PROTOCOL;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.RETRY_BIT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_FAILURE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureRequest;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
+import com.android.internal.net.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureRequest;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2FailureResponseTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2FailureResponseTest.java
index 05d71ca7..261ddb28 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2FailureResponseTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2FailureResponseTest.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.mschapv2;
+package com.android.internal.net.eap.message.mschapv2;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_FAILURE_RESPONSE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_FAILURE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_FAILURE_RESPONSE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_FAILURE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureResponse;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureResponse;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2PacketDefinitions.java b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2PacketDefinitions.java
index 687ed926..e70c2a2f 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2PacketDefinitions.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2PacketDefinitions.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.mschapv2;
+package com.android.internal.net.eap.message.mschapv2;
-import static com.android.ike.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
public class EapMsChapV2PacketDefinitions {
public static final String ID = "1F";
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2SuccessRequestTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2SuccessRequestTest.java
index 72593ada..1e0909ed 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2SuccessRequestTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2SuccessRequestTest.java
@@ -14,22 +14,22 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.mschapv2;
-
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.AUTH_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_SUCCESS_REQUEST;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_SUCCESS_REQUEST_EMPTY_MESSAGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_SUCCESS_REQUEST_MISSING_MESSAGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_SUCCESS_REQUEST_MISSING_MESSAGE_WITH_SPACE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ID_INT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE_MISSING_TEXT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_EXTRA_ATTRIBUTE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_INVALID_AUTH_STRING;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_SHORT_AUTH_STRING;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_WRONG_OP_CODE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_WRONG_PREFIX;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_SUCCESS;
+package com.android.internal.net.eap.message.mschapv2;
+
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.AUTH_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_SUCCESS_REQUEST;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_SUCCESS_REQUEST_EMPTY_MESSAGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_SUCCESS_REQUEST_MISSING_MESSAGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_SUCCESS_REQUEST_MISSING_MESSAGE_WITH_SPACE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE_MISSING_TEXT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_EXTRA_ATTRIBUTE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_INVALID_AUTH_STRING;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_SHORT_AUTH_STRING;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_WRONG_OP_CODE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_WRONG_PREFIX;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_SUCCESS;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -37,11 +37,11 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2SuccessRequest;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2SuccessRequest;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2SuccessResponseTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2SuccessResponseTest.java
index 3e6a9c5f..524b3ecf 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2SuccessResponseTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2SuccessResponseTest.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.mschapv2;
+package com.android.internal.net.eap.message.mschapv2;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_SUCCESS_RESPONSE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_SUCCESS;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EAP_MSCHAP_V2_SUCCESS_RESPONSE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_SUCCESS;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2SuccessResponse;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2SuccessResponse;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2TypeDataTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2TypeDataTest.java
index a3376031..45f1c641 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/mschapv2/EapMsChapV2TypeDataTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/mschapv2/EapMsChapV2TypeDataTest.java
@@ -14,19 +14,19 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.mschapv2;
-
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.AUTH_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.AUTH_STRING;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EXTRA_M_MESSAGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE_MISSING_TEXT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_DUPLICATE_KEY;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_EXTRA_M;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_INVALID_FORMAT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_MISSING_M;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_CHALLENGE;
+package com.android.internal.net.eap.message.mschapv2;
+
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.AUTH_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.AUTH_STRING;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.EXTRA_M_MESSAGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE_MISSING_TEXT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_DUPLICATE_KEY;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_EXTRA_M;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_INVALID_FORMAT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SUCCESS_REQUEST_MISSING_M;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_CHALLENGE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -34,10 +34,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2VariableTypeData;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2VariableTypeData;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/EapAkaPrimeTypeDataTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapAkaPrimeTypeDataTest.java
index 36066f1e..6a9e517f 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/EapAkaPrimeTypeDataTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapAkaPrimeTypeDataTest.java
@@ -14,33 +14,33 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
-
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF_INPUT;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INPUT;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.KDF_VERSION;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NETWORK_NAME_BYTES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NETWORK_NAME_HEX;
+package com.android.internal.net.eap.message.simaka;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF_INPUT;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INPUT;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.KDF_VERSION;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NETWORK_NAME_BYTES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NETWORK_NAME_HEX;
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 com.android.ike.eap.message.simaka.EapAkaPrimeTypeData.EapAkaPrimeTypeDataDecoder;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAutn;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtKdf;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtKdfInput;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtMac;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.message.simaka.EapAkaPrimeTypeData.EapAkaPrimeTypeDataDecoder;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAutn;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtKdf;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtKdfInput;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/EapAkaTypeDataTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapAkaTypeDataTest.java
index e5c6f9e8..b2d89d16 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/EapAkaTypeDataTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapAkaTypeDataTest.java
@@ -14,22 +14,22 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
-
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_CHALLENGE_RESPONSE_MAC_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_CHALLENGE_RESPONSE_TYPE_DATA;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_IDENTITY_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.INVALID_SUBTYPE;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_CHECKCODE;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RES_BYTES;
+package com.android.internal.net.eap.message.simaka;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_CHALLENGE_RESPONSE_MAC_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_CHALLENGE_RESPONSE_TYPE_DATA;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_IDENTITY_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.INVALID_SUBTYPE;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_CHECKCODE;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RES_BYTES;
import static junit.framework.TestCase.fail;
@@ -38,14 +38,14 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import com.android.ike.eap.message.simaka.EapAkaTypeData.EapAkaTypeDataDecoder;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAutn;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtMac;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRes;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.EapSimAkaUnsupportedAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData.EapAkaTypeDataDecoder;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAutn;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRes;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EapSimAkaUnsupportedAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/EapSimAkaAttributeFactoryTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapSimAkaAttributeFactoryTest.java
index 75ea9018..5b6f5d60 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/EapSimAkaAttributeFactoryTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapSimAkaAttributeFactoryTest.java
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.SKIPPABLE_DATA;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.SKIPPABLE_DATA_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.SKIPPABLE_INVALID_ATTRIBUTE;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.SKIPPABLE_DATA;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.SKIPPABLE_DATA_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.SKIPPABLE_INVALID_ATTRIBUTE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.EapSimAkaUnsupportedAttribute;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaUnsupportedAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EapSimAkaUnsupportedAttribute;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/EapSimTypeDataTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapSimTypeDataTest.java
index 40b55c19..678a812b 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/EapSimTypeDataTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/EapSimTypeDataTest.java
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka;
+package com.android.internal.net.eap.message.simaka;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_START_DUPLICATE_ATTRIBUTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_START_SUBTYPE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.INVALID_SUBTYPE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.SHORT_TYPE_DATA;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.TYPE_DATA_INVALID_ATTRIBUTE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.TYPE_DATA_INVALID_AT_RAND;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_VERSION_LIST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_START_DUPLICATE_ATTRIBUTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_START_SUBTYPE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.INVALID_SUBTYPE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.SHORT_TYPE_DATA;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.TYPE_DATA_INVALID_ATTRIBUTE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.TYPE_DATA_INVALID_AT_RAND;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_VERSION_LIST;
import static junit.framework.TestCase.fail;
@@ -32,10 +32,10 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.message.simaka.EapSimTypeData.EapSimTypeDataDecoder;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData.EapSimTypeDataDecoder;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtAutnTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtAutnTest.java
index 73f25b71..ebf22e4f 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtAutnTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtAutnTest.java
@@ -14,22 +14,22 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_AUTN;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_AUTN_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AUTN_BYTES;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTN;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_AUTN;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_AUTN_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AUTN_BYTES;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapAkaAttributeFactory;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAutn;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapAkaAttributeFactory;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAutn;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtAutsTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtAutsTest.java
index afd64fe4..d65a735f 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtAutsTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtAutsTest.java
@@ -14,22 +14,22 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTS;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_AUTS;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_AUTS_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AUTS_BYTES;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_AUTS;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_AUTS;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_AUTS_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AUTS_BYTES;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapAkaAttributeFactory;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAuts;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapAkaAttributeFactory;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAuts;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtBiddingTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtBiddingTest.java
index 3e6374e8..efdfcc2e 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtBiddingTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtBiddingTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_BIDDING;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_BIDDING_DOES_NOT_SUPPORT_AKA_PRIME;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_BIDDING_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_BIDDING_SUPPORTS_AKA_PRIME;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_BIDDING;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_BIDDING_DOES_NOT_SUPPORT_AKA_PRIME;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_BIDDING_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_BIDDING_SUPPORTS_AKA_PRIME;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -27,10 +27,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapAkaAttributeFactory;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtBidding;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapAkaAttributeFactory;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtBidding;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtClientErrorCodeTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtClientErrorCodeTest.java
index 94aa9d9c..2051414c 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtClientErrorCodeTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtClientErrorCodeTest.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.TestUtils.hexStringToInt;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_CLIENT_ERROR_CODE;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_CLIENT_ERROR_CODE;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_CLIENT_ERROR_CODE_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.ERROR_CODE;
+import static com.android.internal.net.TestUtils.hexStringToInt;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_CLIENT_ERROR_CODE;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_CLIENT_ERROR_CODE;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_CLIENT_ERROR_CODE_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.ERROR_CODE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -28,9 +28,9 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaAttributeFactory;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtCounterTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtCounterTest.java
index 9f9a6d2f..eb1086d5 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtCounterTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtCounterTest.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_COUNTER;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_COUNTER_TOO_SMALL;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_COUNTER;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_COUNTER_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_COUNTER_TOO_SMALL;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_COUNTER_TOO_SMALL_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.COUNTER_INT;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_COUNTER;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_COUNTER_TOO_SMALL;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_COUNTER;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_COUNTER_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_COUNTER_TOO_SMALL;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_COUNTER_TOO_SMALL_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.COUNTER_INT;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -30,11 +30,11 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtCounter;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtCounterTooSmall;
-import com.android.ike.eap.message.simaka.EapSimAkaAttributeFactory;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtCounter;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtCounterTooSmall;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtIdReqTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtIdReqTest.java
index 18c74f1c..d006053e 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtIdReqTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtIdReqTest.java
@@ -14,17 +14,17 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
-
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_FULLAUTH_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.ANY_ID_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_ANY_ID_REQ;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_FULL_AUTH_ID_REQ;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_PERMANENT_ID_REQ;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.FULL_AUTH_ID_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.PERMANENT_ID_INVALID_LENGTH;
+package com.android.internal.net.eap.message.simaka.attributes;
+
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_FULLAUTH_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.ANY_ID_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_ANY_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_FULL_AUTH_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_PERMANENT_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.FULL_AUTH_ID_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.PERMANENT_ID_INVALID_LENGTH;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -32,12 +32,12 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtFullauthIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttributeFactory;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtFullauthIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtIdentityTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtIdentityTest.java
index 9844c493..cf8e8803 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtIdentityTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtIdentityTest.java
@@ -14,21 +14,21 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_IDENTITY;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_IDENTITY;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.IDENTITY;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_IDENTITY;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_IDENTITY;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.IDENTITY;
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 com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
-import com.android.ike.eap.message.simaka.EapSimAkaAttributeFactory;
-import com.android.ike.eap.message.simaka.EapSimAttributeFactory;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttributeFactory;
+import com.android.internal.net.eap.message.simaka.EapSimAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfInputTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtKdfInputTest.java
index dc13f087..51ea3f14 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfInputTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtKdfInputTest.java
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF_INPUT;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INPUT;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INPUT_EMPTY_NETWORK_NAME;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NETWORK_NAME_BYTES;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF_INPUT;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INPUT;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INPUT_EMPTY_NETWORK_NAME;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NETWORK_NAME_BYTES;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
-import com.android.ike.eap.message.simaka.EapAkaPrimeAttributeFactory;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtKdfInput;
+import com.android.internal.net.eap.message.simaka.EapAkaPrimeAttributeFactory;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtKdfInput;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtKdfTest.java
index 0a1209c8..0bb07326 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtKdfTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtKdfTest.java
@@ -14,22 +14,22 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.KDF_VERSION;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_KDF;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_KDF_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.KDF_VERSION;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapAkaPrimeAttributeFactory;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtKdf;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapAkaPrimeAttributeFactory;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtKdf;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtMacTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtMacTest.java
index ca4c4b98..82b066d5 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtMacTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtMacTest.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_MAC;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_MAC_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.MAC;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_MAC;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_MAC_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.MAC;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -28,10 +28,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtMac;
-import com.android.ike.eap.message.simaka.EapSimAkaAttributeFactory;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtNonceMtTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtNonceMtTest.java
index a83aa9a4..751908a2 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtNonceMtTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtNonceMtTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NONCE_MT;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NONCE_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NONCE_MT;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NONCE_MT;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NONCE_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NONCE_MT;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -27,10 +27,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNonceMt;
-import com.android.ike.eap.message.simaka.EapSimAttributeFactory;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNonceMt;
+import com.android.internal.net.eap.message.simaka.EapSimAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtNonceSTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtNonceSTest.java
index 06af7494..1ad64669 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtNonceSTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtNonceSTest.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NONCE_S;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NONCE_S;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NONCE_S_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_S;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NONCE_S;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NONCE_S;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NONCE_S_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_S;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -28,10 +28,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNonceS;
-import com.android.ike.eap.message.simaka.EapSimAkaAttributeFactory;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNonceS;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtNotificationTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtNotificationTest.java
index f51b3903..2db3cbb2 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtNotificationTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtNotificationTest.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.TestUtils.hexStringToInt;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_POST_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NOTIFICATION;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NOTIFICATION;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NOTIFICATION_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NOTIFICATION_INVALID_STATE;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NOTIFICATION_CODE;
+import static com.android.internal.net.TestUtils.hexStringToInt;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_POST_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_NOTIFICATION;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NOTIFICATION;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NOTIFICATION_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_NOTIFICATION_INVALID_STATE;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NOTIFICATION_CODE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -32,10 +32,10 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification;
-import com.android.ike.eap.message.simaka.EapSimAkaAttributeFactory;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtPaddingTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtPaddingTest.java
index 58a6ce7f..d310d504 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtPaddingTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtPaddingTest.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PADDING;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_PADDING;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_PADDING_INVALID_PADDING;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PADDING;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_PADDING;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_PADDING_INVALID_PADDING;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -26,10 +26,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAtPaddingException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtPadding;
-import com.android.ike.eap.message.simaka.EapSimAkaAttributeFactory;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAtPaddingException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtPadding;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtRandAkaTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtRandAkaTest.java
index 851a1720..bdffdda9 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtRandAkaTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtRandAkaTest.java
@@ -14,22 +14,22 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RAND_AKA;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RAND_AKA_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1_BYTES;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RAND_AKA;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RAND_AKA_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1_BYTES;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapAkaAttributeFactory;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapAkaAttributeFactory;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtRandSimTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtRandSimTest.java
index 1d3e9b35..7456be6c 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtRandSimTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtRandSimTest.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RAND_SIM;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RAND_SIM_DUPLICATE_RANDS;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RAND_SIM_INVALID_NUM_RANDS;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_2;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RAND_SIM;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RAND_SIM_DUPLICATE_RANDS;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RAND_SIM_INVALID_NUM_RANDS;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_2;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -30,11 +30,11 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimInvalidAtRandException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
-import com.android.ike.eap.message.simaka.EapSimAttributeFactory;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimInvalidAtRandException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
+import com.android.internal.net.eap.message.simaka.EapSimAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtResTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtResTest.java
index 4f97498d..34c2ff39 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtResTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtResTest.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RES_INVALID_RES_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RES_LONG_RES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RES_SHORT_RES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RES_BYTES;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RES_INVALID_RES_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RES_LONG_RES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_RES_SHORT_RES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RES_BYTES;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -29,10 +29,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapAkaAttributeFactory;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRes;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapAkaAttributeFactory;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRes;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtSelectedVersionTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtSelectedVersionTest.java
index 1d9c5591..659fe9a8 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtSelectedVersionTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtSelectedVersionTest.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_SELECTED_VERSION;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_SELECTED_VERSION;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_SELECTED_VERSION_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_SELECTED_VERSION;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_SELECTED_VERSION;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_SELECTED_VERSION_INVALID_LENGTH;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -26,10 +26,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtSelectedVersion;
-import com.android.ike.eap.message.simaka.EapSimAttributeFactory;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtSelectedVersion;
+import com.android.internal.net.eap.message.simaka.EapSimAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtVersionListTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtVersionListTest.java
index 69cda932..96bb7ca3 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/AtVersionListTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/AtVersionListTest.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.TestUtils.hexStringToInt;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_VERSION_LIST;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_VERSION_LIST;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_VERSION_LIST_INVALID_LENGTH;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.VERSION;
+import static com.android.internal.net.TestUtils.hexStringToInt;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_VERSION_LIST;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_VERSION_LIST;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_VERSION_LIST_INVALID_LENGTH;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.VERSION;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -28,10 +28,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
-import com.android.ike.eap.message.simaka.EapSimAttributeFactory;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
+import com.android.internal.net.eap.message.simaka.EapSimAttributeFactory;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapSimAkaAttributeTest.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/EapSimAkaAttributeTest.java
index 3cc7b50f..98ea222c 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapSimAkaAttributeTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/EapSimAkaAttributeTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapTestAttributeDefinitions.java b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/EapTestAttributeDefinitions.java
index 01a7da1d..60397e1f 100644
--- a/tests/iketests/src/java/com/android/ike/eap/message/simaka/attributes/EapTestAttributeDefinitions.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/message/simaka/attributes/EapTestAttributeDefinitions.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.eap.message.simaka.attributes;
+package com.android.internal.net.eap.message.simaka.attributes;
-import static com.android.ike.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
/**
* EapTestAttributeDefinitions provides byte[] encodings of commonly used EAP Messages.
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/CreatedStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/CreatedStateTest.java
index c4978d84..a452fa6f 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/CreatedStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/CreatedStateTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_IDENTITY_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_IDENTITY_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
@@ -29,10 +29,10 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.statemachine.EapStateMachine.IdentityState;
-import com.android.ike.eap.statemachine.EapStateMachine.MethodState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.statemachine.EapStateMachine.IdentityState;
+import com.android.internal.net.eap.statemachine.EapStateMachine.MethodState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaChallengeStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaChallengeStateTest.java
index 4deecf30..b07d1ff3 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaChallengeStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaChallengeStateTest.java
@@ -14,32 +14,32 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapData.EAP_IDENTITY;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.CK_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_AUTHENTICATION_REJECT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_CHALLENGE_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_CLIENT_ERROR_UNABLE_TO_PROCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_SYNCHRONIZATION_FAILURE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_UICC_RESP_INVALID_TAG;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_UICC_RESP_SUCCESS_BASE_64;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_UICC_RESP_SYNCHRONIZE_BASE_64;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EMSK;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.IK_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSK;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AUTN_BYTES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AUTS_BYTES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.IDENTITY;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1_BYTES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RES_BYTES;
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_IDENTITY;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.CK_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_AUTHENTICATION_REJECT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_CHALLENGE_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_CLIENT_ERROR_UNABLE_TO_PROCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_SYNCHRONIZATION_FAILURE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_UICC_RESP_INVALID_TAG;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_UICC_RESP_SUCCESS_BASE_64;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_UICC_RESP_SYNCHRONIZE_BASE_64;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EMSK;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.IK_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSK;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AUTN_BYTES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AUTS_BYTES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.IDENTITY;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1_BYTES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RES_BYTES;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertNull;
@@ -52,24 +52,25 @@ import static org.mockito.Mockito.when;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapResult.EapSuccess;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.exceptions.simaka.EapAkaInvalidAuthenticationResponse;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidLengthException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAutn;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtMac;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.statemachine.EapAkaMethodStateMachine.ChallengeState;
-import com.android.ike.eap.statemachine.EapAkaMethodStateMachine.ChallengeState.RandChallengeResult;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.FinalState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.exceptions.simaka.EapAkaInvalidAuthenticationResponse;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidLengthException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAutn;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtBidding;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapAkaMethodStateMachine.ChallengeState;
+import com.android.internal.net.eap.statemachine.EapAkaMethodStateMachine.ChallengeState.RandChallengeResult;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.FinalState;
import org.junit.Before;
import org.junit.Test;
@@ -92,13 +93,24 @@ public class EapAkaChallengeStateTest extends EapAkaStateTest {
* 020500000123456789ABCDEFFEDCBA9876543210 | AT_AUTN
* 0B05000000000000000000000000000000000000 | AT_MAC (zeroed out)
*
- * MK = SHA-1(message)
+ * MK = SHA-1(Identity | IK | CK)
* K_encr, K_aut, MSK, EMSK = PRF(MK)
* MAC = HMAC-SHA-1(K_aut, message)
*/
private static final byte[] REQUEST_MAC_BYTES =
hexStringToByteArray("3EB97A1D0E62894FD0DA384D24D8983C");
+ /**
+ * message = 01100048 | EAP-Request, ID, length in bytes
+ * 17010000 | EAP-AKA, AKA-Challenge, padding
+ * 0105000000112233445566778899AABBCCDDEEFF | AT_RAND
+ * 020500000123456789ABCDEFFEDCBA9876543210 | AT_AUTN
+ * 88018000 | AT_BIDDING
+ * 0B05000000000000000000000000000000000000 | AT_MAC (zeroed out)
+ */
+ private static final byte[] BIDDING_DOWN_MAC =
+ hexStringToByteArray("9CB543894A5EFDC32DF6A6CE1AB0E01A");
+
@Before
public void setUp() {
super.setUp();
@@ -352,8 +364,6 @@ public class EapAkaChallengeStateTest extends EapAkaStateTest {
@Test
public void testProcessValidChallenge() throws Exception {
- // TODO(b/140258387): update test vectors with externally generated values
-
EapData eapData = new EapData(EAP_TYPE_AKA, DUMMY_EAP_TYPE_DATA);
EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
@@ -383,4 +393,38 @@ public class EapAkaChallengeStateTest extends EapAkaStateTest {
BASE_64_CHALLENGE);
verifyNoMoreInteractions(mMockEapAkaTypeDataDecoder, mMockTelephonyManager);
}
+
+ @Test
+ public void testProcessBiddingDownAttack() throws Exception {
+ EapData eapData = new EapData(EAP_TYPE_AKA, DUMMY_EAP_TYPE_DATA);
+ EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
+
+ AtRandAka atRandAka = new AtRandAka(RAND_1_BYTES);
+ AtAutn atAutn = new AtAutn(AUTN_BYTES);
+ AtBidding atBidding = new AtBidding(true);
+ AtMac atMac = new AtMac(BIDDING_DOWN_MAC);
+
+ DecodeResult<EapAkaTypeData> decodeResult =
+ new DecodeResult<>(
+ new EapAkaTypeData(
+ EAP_AKA_CHALLENGE,
+ Arrays.asList(atRandAka, atAutn, atBidding, atMac)));
+ when(mMockEapAkaTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
+ when(mMockTelephonyManager.getIccAuthentication(
+ TelephonyManager.APPTYPE_USIM,
+ TelephonyManager.AUTHTYPE_EAP_AKA,
+ BASE_64_CHALLENGE))
+ .thenReturn(EAP_AKA_UICC_RESP_SUCCESS_BASE_64);
+
+ EapResponse eapResponse = (EapResponse) mEapAkaMethodStateMachine.process(eapMessage);
+ assertArrayEquals(EAP_AKA_AUTHENTICATION_REJECT, eapResponse.packet);
+
+ verify(mMockEapAkaTypeDataDecoder).decode(eq(DUMMY_EAP_TYPE_DATA));
+ verify(mMockTelephonyManager)
+ .getIccAuthentication(
+ TelephonyManager.APPTYPE_USIM,
+ TelephonyManager.AUTHTYPE_EAP_AKA,
+ BASE_64_CHALLENGE);
+ verifyNoMoreInteractions(mMockEapAkaTypeDataDecoder, mMockTelephonyManager);
+ }
}
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaCreatedStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaCreatedStateTest.java
index c32fefac..6e100dbf 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaCreatedStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaCreatedStateTest.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
@@ -32,17 +32,17 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.statemachine.EapAkaMethodStateMachine.ChallengeState;
-import com.android.ike.eap.statemachine.EapAkaMethodStateMachine.IdentityState;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.FinalState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapAkaMethodStateMachine.ChallengeState;
+import com.android.internal.net.eap.statemachine.EapAkaMethodStateMachine.IdentityState;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.FinalState;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaIdentityStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaIdentityStateTest.java
index dcfeb0f1..20175f95 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaIdentityStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaIdentityStateTest.java
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_CLIENT_ERROR_UNABLE_TO_PROCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_IDENTITY_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.IMSI;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_CLIENT_ERROR_UNABLE_TO_PROCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_IDENTITY_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.IMSI;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
@@ -33,17 +33,17 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaIdentityUnavailableException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.statemachine.EapAkaMethodStateMachine.ChallengeState;
-import com.android.ike.eap.statemachine.EapAkaMethodStateMachine.IdentityState;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaIdentityUnavailableException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapAkaMethodStateMachine.ChallengeState;
+import com.android.internal.net.eap.statemachine.EapAkaMethodStateMachine.IdentityState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaMethodStateMachineTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaMethodStateMachineTest.java
index 23c2649b..db2899b6 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaMethodStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaMethodStateMachineTest.java
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
import static android.telephony.TelephonyManager.APPTYPE_USIM;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_CLIENT_ERROR_UNABLE_TO_PROCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_NOTIFICATION_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.IMSI;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_NOTIFICATION;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_PRE_CHALLENGE;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_CLIENT_ERROR_UNABLE_TO_PROCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_NOTIFICATION_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.IMSI;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_NOTIFICATION;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_PRE_CHALLENGE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -40,20 +40,20 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import android.net.eap.EapSessionConfig.EapAkaConfig;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapSessionConfig.EapAkaConfig;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapAkaTypeData.EapAkaTypeDataDecoder;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.statemachine.EapAkaMethodStateMachine.CreatedState;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData.EapAkaTypeDataDecoder;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapAkaMethodStateMachine.CreatedState;
import org.junit.Before;
import org.junit.Test;
@@ -87,7 +87,8 @@ public class EapAkaMethodStateMachineTest {
mMockTelephonyManager,
EAP_IDENTITY_BYTES,
mEapAkaConfig,
- mMockEapAkaTypeDataDecoder);
+ mMockEapAkaTypeDataDecoder,
+ false);
verify(mMockTelephonyManager).createForSubscriptionId(SUB_ID);
}
diff --git a/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeChallengeStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeChallengeStateTest.java
new file mode 100644
index 00000000..731eb6bd
--- /dev/null
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeChallengeStateTest.java
@@ -0,0 +1,354 @@
+/*
+ * 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.eap.statemachine;
+
+import static android.telephony.TelephonyManager.APPTYPE_USIM;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA_PRIME;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.CK_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_AUTHENTICATION_REJECT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_IDENTITY_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_IDENTITY_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.IK_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.IMSI;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AUTN_BYTES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.MAC_BYTES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1_BYTES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RES_BYTES;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.net.eap.EapSessionConfig;
+
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaPrimeTypeData;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAutn;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtKdf;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtKdfInput;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandAka;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapAkaMethodStateMachine.ChallengeState.RandChallengeResult;
+import com.android.internal.net.eap.statemachine.EapAkaPrimeMethodStateMachine.ChallengeState;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class EapAkaPrimeChallengeStateTest extends EapAkaPrimeStateTest {
+ private static final String SERVER_NETWORK_NAME_STRING = "foo:bar:buzz";
+ private static final byte[] SERVER_NETWORK_NAME =
+ SERVER_NETWORK_NAME_STRING.getBytes(StandardCharsets.UTF_8);
+ private static final String INCORRECT_NETWORK_NAME = "foo:buzz";
+ private static final byte[] INCORRECT_SERVER_NETWORK_NAME =
+ INCORRECT_NETWORK_NAME.getBytes(StandardCharsets.UTF_8);
+ private static final int VALID_KDF = 1;
+ private static final int INVALID_KDF = 10;
+
+ private static final byte[] EXPECTED_CK_IK_PRIME =
+ hexStringToByteArray(
+ "A0B37E7C7E9CC4F37A5C0AAA55DC87BE51FDA70A9D8F37E62E23B15F1B3941E6");
+ private static final byte[] K_ENCR = hexStringToByteArray("15a5bb098528210cde9e8d4a1bd63850");
+ private static final byte[] K_AUT =
+ hexStringToByteArray(
+ "957b3d518ac9ff028f2cc5177fedad841f5f812cb06e2b88aceaa98129680f35");
+ private static final byte[] K_RE =
+ hexStringToByteArray(
+ "3c15cf7112935a8170d0904622ecbb67c49dcba5d50814bdd81958e045e42f9c");
+ private static final byte[] MSK =
+ hexStringToByteArray(
+ "1dcca0351a58d2b858e6cf2380551470d67cc8749d1915409793171abd360118"
+ + "e3ae271bf088ca5a41bb1b9b8f7028bcba888298bfbf64d7b8a4f53a6c2cdf18");
+ private static final byte[] EMSK =
+ hexStringToByteArray(
+ "a5e6b66a9cb2daa9fe3867d41145848e7bf50d749bfd1bb0d090257402e6a555"
+ + "da6d538e76b71e9f80afe60709965a63a355bdccc4e3a8b358e098e41545fa67");
+
+ private ChallengeState mState;
+
+ @Before
+ public void setUp() {
+ super.setUp();
+
+ mState = mStateMachine.new ChallengeState();
+ mStateMachine.transitionTo(mState);
+ }
+
+ @Test
+ public void testTransitionWithEapIdentity() throws Exception {
+ mStateMachine.transitionTo(mStateMachine.new CreatedState());
+
+ EapData eapData = new EapData(EAP_TYPE_AKA_PRIME, DUMMY_EAP_TYPE_DATA);
+ EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
+
+ DecodeResult<EapAkaTypeData> decodeResult =
+ new DecodeResult<>(new EapAkaPrimeTypeData(EAP_AKA_CHALLENGE, new ArrayList<>()));
+ when(mMockTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
+
+ mStateMachine.process(eapMessage);
+
+ ChallengeState challengeState = (ChallengeState) mStateMachine.getState();
+ assertArrayEquals(EAP_IDENTITY_BYTES, challengeState.mIdentity);
+
+ // decode() is called in CreatedState and ChallengeState
+ verify(mMockTypeDataDecoder, times(2)).decode(eq(DUMMY_EAP_TYPE_DATA));
+ }
+
+ @Test
+ public void testTransitionWithEapAkaPrimeIdentity() throws Exception {
+ mStateMachine.transitionTo(mStateMachine.new CreatedState());
+
+ // Process AKA' Identity Request
+ EapData eapData = new EapData(EAP_TYPE_AKA_PRIME, DUMMY_EAP_TYPE_DATA);
+ EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
+
+ DecodeResult<EapAkaTypeData> decodeResult =
+ new DecodeResult<>(
+ new EapAkaPrimeTypeData(EAP_AKA_IDENTITY, Arrays.asList(new AtAnyIdReq())));
+ when(mMockTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
+ when(mMockTelephonyManager.getSubscriberId()).thenReturn(IMSI);
+
+ EapResponse eapResponse = (EapResponse) mStateMachine.process(eapMessage);
+ assertArrayEquals(EAP_AKA_PRIME_IDENTITY_RESPONSE, eapResponse.packet);
+
+ // decode() is called in CreatedState and IdentityState
+ verify(mMockTypeDataDecoder, times(2)).decode(eq(DUMMY_EAP_TYPE_DATA));
+ verify(mMockTelephonyManager).getSubscriberId();
+
+ // Process AKA' Challenge Request
+ decodeResult =
+ new DecodeResult<>(new EapAkaPrimeTypeData(EAP_AKA_CHALLENGE, new ArrayList<>()));
+ when(mMockTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
+
+ mStateMachine.process(eapMessage);
+
+ ChallengeState challengeState = (ChallengeState) mStateMachine.getState();
+ assertArrayEquals(EAP_AKA_PRIME_IDENTITY_BYTES, challengeState.mIdentity);
+
+ // decode() called again in IdentityState and ChallengeState
+ verify(mMockTypeDataDecoder, times(4)).decode(eq(DUMMY_EAP_TYPE_DATA));
+ }
+
+ @Test
+ public void testProcessMissingAtKdf() throws Exception {
+ EapData eapData = new EapData(EAP_TYPE_AKA_PRIME, DUMMY_EAP_TYPE_DATA);
+ EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
+
+ AtRandAka atRandAka = new AtRandAka(RAND_1_BYTES);
+ AtAutn atAutn = new AtAutn(AUTN_BYTES);
+ AtMac atMac = new AtMac(MAC_BYTES);
+ AtKdfInput atKdfInput = new AtKdfInput(0, SERVER_NETWORK_NAME);
+
+ DecodeResult<EapAkaTypeData> decodeResult =
+ new DecodeResult<>(
+ new EapAkaPrimeTypeData(
+ EAP_AKA_CHALLENGE,
+ Arrays.asList(atRandAka, atAutn, atMac, atKdfInput)));
+ when(mMockTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
+
+ EapResponse eapResponse = (EapResponse) mStateMachine.process(eapMessage);
+ assertArrayEquals(EAP_AKA_PRIME_AUTHENTICATION_REJECT, eapResponse.packet);
+ verify(mMockTypeDataDecoder).decode(eq(DUMMY_EAP_TYPE_DATA));
+ }
+
+ @Test
+ public void testProcessMissingAtKdfInput() throws Exception {
+ EapData eapData = new EapData(EAP_TYPE_AKA_PRIME, DUMMY_EAP_TYPE_DATA);
+ EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
+
+ AtRandAka atRandAka = new AtRandAka(RAND_1_BYTES);
+ AtAutn atAutn = new AtAutn(AUTN_BYTES);
+ AtMac atMac = new AtMac(MAC_BYTES);
+ AtKdf atKdf = new AtKdf(VALID_KDF);
+
+ DecodeResult<EapAkaTypeData> decodeResult =
+ new DecodeResult<>(
+ new EapAkaPrimeTypeData(
+ EAP_AKA_CHALLENGE, Arrays.asList(atRandAka, atAutn, atMac, atKdf)));
+ when(mMockTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
+
+ EapResponse eapResponse = (EapResponse) mStateMachine.process(eapMessage);
+ assertArrayEquals(EAP_AKA_PRIME_AUTHENTICATION_REJECT, eapResponse.packet);
+ verify(mMockTypeDataDecoder).decode(eq(DUMMY_EAP_TYPE_DATA));
+ }
+
+ @Test
+ public void testProcessUnsupportedKdf() throws Exception {
+ EapData eapData = new EapData(EAP_TYPE_AKA_PRIME, DUMMY_EAP_TYPE_DATA);
+ EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
+
+ AtRandAka atRandAka = new AtRandAka(RAND_1_BYTES);
+ AtAutn atAutn = new AtAutn(AUTN_BYTES);
+ AtMac atMac = new AtMac(MAC_BYTES);
+ AtKdfInput atKdfInput = new AtKdfInput(0, SERVER_NETWORK_NAME);
+ AtKdf atKdf = new AtKdf(INVALID_KDF);
+
+ DecodeResult<EapAkaTypeData> decodeResult =
+ new DecodeResult<>(
+ new EapAkaPrimeTypeData(
+ EAP_AKA_CHALLENGE,
+ Arrays.asList(atRandAka, atAutn, atMac, atKdfInput, atKdf)));
+ when(mMockTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
+
+ EapResponse eapResponse = (EapResponse) mStateMachine.process(eapMessage);
+ assertArrayEquals(EAP_AKA_PRIME_AUTHENTICATION_REJECT, eapResponse.packet);
+ verify(mMockTypeDataDecoder).decode(eq(DUMMY_EAP_TYPE_DATA));
+ }
+
+ @Test
+ public void testProcessIncorrectNetworkName() throws Exception {
+ EapData eapData = new EapData(EAP_TYPE_AKA_PRIME, DUMMY_EAP_TYPE_DATA);
+ EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
+
+ AtRandAka atRandAka = new AtRandAka(RAND_1_BYTES);
+ AtAutn atAutn = new AtAutn(AUTN_BYTES);
+ AtMac atMac = new AtMac(MAC_BYTES);
+ AtKdfInput atKdfInput = new AtKdfInput(0, INCORRECT_SERVER_NETWORK_NAME);
+ AtKdf atKdf = new AtKdf(VALID_KDF);
+
+ DecodeResult<EapAkaTypeData> decodeResult =
+ new DecodeResult<>(
+ new EapAkaPrimeTypeData(
+ EAP_AKA_CHALLENGE,
+ Arrays.asList(atRandAka, atAutn, atMac, atKdfInput, atKdf)));
+ when(mMockTypeDataDecoder.decode(eq(DUMMY_EAP_TYPE_DATA))).thenReturn(decodeResult);
+
+ EapResponse eapResponse = (EapResponse) mStateMachine.process(eapMessage);
+ assertArrayEquals(EAP_AKA_PRIME_AUTHENTICATION_REJECT, eapResponse.packet);
+ verify(mMockTypeDataDecoder).decode(eq(DUMMY_EAP_TYPE_DATA));
+ }
+
+ @Test
+ public void testProcessIncorrectNetworkNameIsIgnored() throws Exception {
+ // Create state machine with configs allowing invalid network name to be ignored
+ mStateMachine =
+ new EapAkaPrimeMethodStateMachine(
+ mMockContext,
+ EAP_IDENTITY_BYTES,
+ new EapSessionConfig.EapAkaPrimeConfig(
+ SUB_ID, APPTYPE_USIM, PEER_NETWORK_NAME, true),
+ mMockTypeDataDecoder);
+ mState = mStateMachine.new ChallengeState();
+ mStateMachine.transitionTo(mState);
+
+ AtRandAka atRandAka = new AtRandAka(RAND_1_BYTES);
+ AtAutn atAutn = new AtAutn(AUTN_BYTES);
+ AtMac atMac = new AtMac(MAC_BYTES);
+ AtKdfInput atKdfInput = new AtKdfInput(0, INCORRECT_SERVER_NETWORK_NAME);
+ AtKdf atKdf = new AtKdf(VALID_KDF);
+
+ EapAkaPrimeTypeData eapAkaPrimeTypeData =
+ new EapAkaPrimeTypeData(
+ EAP_AKA_CHALLENGE,
+ Arrays.asList(atRandAka, atAutn, atMac, atKdfInput, atKdf));
+ assertTrue(
+ "Incorrect network names should be ignored",
+ mState.isValidChallengeAttributes(eapAkaPrimeTypeData));
+ }
+
+ @Test
+ public void testHasMatchingNetworkNames() {
+ // "" should match anything
+ assertTrue(mState.hasMatchingNetworkNames("", SERVER_NETWORK_NAME_STRING));
+ assertTrue(mState.hasMatchingNetworkNames(SERVER_NETWORK_NAME_STRING, ""));
+
+ // "foo:bar" should match "foo:bar:buzz"
+ assertTrue(mState.hasMatchingNetworkNames(PEER_NETWORK_NAME, SERVER_NETWORK_NAME_STRING));
+ assertTrue(mState.hasMatchingNetworkNames(SERVER_NETWORK_NAME_STRING, PEER_NETWORK_NAME));
+
+ // "foo:buzz" shouldn't match "foo:bar:buzz"
+ assertFalse(
+ mState.hasMatchingNetworkNames(SERVER_NETWORK_NAME_STRING, INCORRECT_NETWORK_NAME));
+ assertFalse(
+ mState.hasMatchingNetworkNames(INCORRECT_NETWORK_NAME, SERVER_NETWORK_NAME_STRING));
+ }
+
+ @Test
+ public void testDeriveCkIkPrime() throws Exception {
+ RandChallengeResult randChallengeResult =
+ mState.new RandChallengeResult(RES_BYTES, IK_BYTES, CK_BYTES);
+ AtKdfInput atKdfInput =
+ new AtKdfInput(0, PEER_NETWORK_NAME.getBytes(StandardCharsets.UTF_8));
+ AtAutn atAutn = new AtAutn(AUTN_BYTES);
+
+ // S = FC | Network Name | len(Network Name) | SQN ^ AK | len(SQN ^ AK)
+ // = 20666F6F3A62617200070123456789AB0006
+ // K = CK | IK
+ // = FFEEDDCCBBAA9988776655443322110000112233445566778899AABBCCDDEEFF
+ // CK' | IK' = HMAC-SHA256(K, S)
+ // = A0B37E7C7E9CC4F37A5C0AAA55DC87BE51FDA70A9D8F37E62E23B15F1B3941E6
+ byte[] result = mState.deriveCkIkPrime(randChallengeResult, atKdfInput, atAutn);
+ assertArrayEquals(EXPECTED_CK_IK_PRIME, result);
+ }
+
+ @Test
+ public void testGenerateAndPersistEapAkaKeys() throws Exception {
+ RandChallengeResult randChallengeResult =
+ mState.new RandChallengeResult(RES_BYTES, IK_BYTES, CK_BYTES);
+
+ AtRandAka atRandAka = new AtRandAka(RAND_1_BYTES);
+ AtAutn atAutn = new AtAutn(AUTN_BYTES);
+ AtMac atMac = new AtMac(MAC_BYTES);
+ AtKdfInput atKdfInput =
+ new AtKdfInput(0, PEER_NETWORK_NAME.getBytes(StandardCharsets.UTF_8));
+ AtKdf atKdf = new AtKdf(VALID_KDF);
+
+ EapAkaPrimeTypeData eapAkaPrimeTypeData =
+ new EapAkaPrimeTypeData(
+ EAP_AKA_CHALLENGE,
+ Arrays.asList(atRandAka, atAutn, atMac, atKdfInput, atKdf));
+
+ // CK' | IK' = A0B37E7C7E9CC4F37A5C0AAA55DC87BE51FDA70A9D8F37E62E23B15F1B3941E6
+ // data = "EAP-AKA'" | Identity
+ // = 4541502D414B41277465737440616E64726F69642E6E6574
+ // prf+(CK' | IK', data) = T1 | T2 | T3 | T4 | T5 | T6 | T7
+ // T1 = 15a5bb098528210cde9e8d4a1bd63850957b3d518ac9ff028f2cc5177fedad84
+ // T2 = 1f5f812cb06e2b88aceaa98129680f353c15cf7112935a8170d0904622ecbb67
+ // T3 = c49dcba5d50814bdd81958e045e42f9c1dcca0351a58d2b858e6cf2380551470
+ // T4 = d67cc8749d1915409793171abd360118e3ae271bf088ca5a41bb1b9b8f7028bc
+ // T5 = ba888298bfbf64d7b8a4f53a6c2cdf18a5e6b66a9cb2daa9fe3867d41145848e
+ // T6 = 7bf50d749bfd1bb0d090257402e6a555da6d538e76b71e9f80afe60709965a63
+ // T7 = a355bdccc4e3a8b358e098e41545fa677897d8341c4a107a2343f393ec966181
+ // K_encr | K_aut | K_re | MSK | EMSK = prf+(CK' | IK', data)
+ assertNull(
+ mState.generateAndPersistEapAkaKeys(randChallengeResult, 0, eapAkaPrimeTypeData));
+ assertArrayEquals(K_ENCR, mStateMachine.mKEncr);
+ assertArrayEquals(K_AUT, mStateMachine.mKAut);
+ assertArrayEquals(K_RE, mStateMachine.mKRe);
+ assertArrayEquals(MSK, mStateMachine.mMsk);
+ assertArrayEquals(EMSK, mStateMachine.mEmsk);
+ }
+}
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeCreatedStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeCreatedStateTest.java
index 8664cdab..90d0bf66 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeCreatedStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeCreatedStateTest.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA_PRIME;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA_PRIME;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
@@ -30,12 +30,12 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaPrimeTypeData;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.statemachine.EapAkaPrimeMethodStateMachine.ChallengeState;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaPrimeTypeData;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapAkaPrimeMethodStateMachine.ChallengeState;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeIdentityStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeIdentityStateTest.java
index 0ce5a45a..73191fb0 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeIdentityStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeIdentityStateTest.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA_PRIME;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_IDENTITY_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.IMSI;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA_PRIME;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_IDENTITY_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.IMSI;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_IDENTITY;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
@@ -32,14 +32,14 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaPrimeTypeData;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.statemachine.EapAkaPrimeMethodStateMachine.ChallengeState;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaPrimeTypeData;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapAkaPrimeMethodStateMachine.ChallengeState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeMethodStateMachineTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeMethodStateMachineTest.java
new file mode 100644
index 00000000..125b3235
--- /dev/null
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeMethodStateMachineTest.java
@@ -0,0 +1,74 @@
+/*
+ * 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.eap.statemachine;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA_PRIME;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_CHALLENGE;
+import static com.android.internal.net.eap.statemachine.EapAkaPrimeMethodStateMachine.K_AUT_LEN;
+import static com.android.internal.net.eap.statemachine.EapAkaPrimeMethodStateMachine.K_RE_LEN;
+import static com.android.internal.net.eap.statemachine.EapSimAkaMethodStateMachine.KEY_LEN;
+import static com.android.internal.net.eap.statemachine.EapSimAkaMethodStateMachine.SESSION_KEY_LENGTH;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaPrimeTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.statemachine.EapAkaMethodStateMachine.CreatedState;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+
+public class EapAkaPrimeMethodStateMachineTest extends EapAkaPrimeTest {
+ private static final String TAG = EapAkaPrimeMethodStateMachineTest.class.getSimpleName();
+ private static final byte[] K_AUT =
+ hexStringToByteArray(
+ "000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F");
+ private static final byte[] MAC = hexStringToByteArray("0322b08b59cae2df8f766162ac76f30b");
+
+ @Test
+ public void testEapAkaPrimeMethodStateMachineStartState() {
+ assertTrue(mStateMachine.getState() instanceof CreatedState);
+ }
+
+ @Test
+ public void testKeyLengths() {
+ assertEquals(KEY_LEN, mStateMachine.getKEncrLength());
+ assertEquals(K_AUT_LEN, mStateMachine.getKAutLength());
+ assertEquals(K_RE_LEN, mStateMachine.getKReLen());
+ assertEquals(SESSION_KEY_LENGTH, mStateMachine.getMskLength());
+ assertEquals(SESSION_KEY_LENGTH, mStateMachine.getEmskLength());
+ }
+
+ @Test
+ public void testIsValidMacUsesHmacSha256() throws Exception {
+ System.arraycopy(K_AUT, 0, mStateMachine.mKAut, 0, K_AUT.length);
+
+ EapData eapData = new EapData(EAP_TYPE_AKA_PRIME, new byte[0]);
+ EapMessage eapMessage = new EapMessage(EAP_CODE_REQUEST, ID_INT, eapData);
+ EapAkaPrimeTypeData eapAkaPrimeTypeData =
+ new EapAkaPrimeTypeData(EAP_AKA_CHALLENGE, Arrays.asList(new AtMac(MAC)));
+
+ assertTrue(mStateMachine.isValidMac(TAG, eapMessage, eapAkaPrimeTypeData, new byte[0]));
+ }
+}
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeStateTest.java
index 98d7bc38..18fce265 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeStateTest.java
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.message.EapData.EAP_NOTIFICATION;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA_PRIME;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_CLIENT_ERROR_UNABLE_TO_PROCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapData.EAP_NOTIFICATION;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA_PRIME;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_CLIENT_ERROR_UNABLE_TO_PROCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -33,18 +33,18 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.EapMethodState;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.FinalState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.EapMethodState;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.FinalState;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeTest.java
index 4a8e3941..48371bbd 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaPrimeTest.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
import static android.telephony.TelephonyManager.APPTYPE_USIM;
-import static com.android.ike.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
@@ -26,10 +26,10 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.net.eap.EapSessionConfig.EapAkaPrimeConfig;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.EapSessionConfig.EapAkaPrimeConfig;
-import com.android.ike.eap.message.simaka.EapAkaPrimeTypeData;
+import com.android.internal.net.eap.message.simaka.EapAkaPrimeTypeData;
import org.junit.Before;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaStateTest.java
index 02ea9202..23b240b9 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapAkaStateTest.java
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
import static android.telephony.TelephonyManager.APPTYPE_USIM;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapData.EAP_NOTIFICATION;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_AKA;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_CLIENT_ERROR_UNABLE_TO_PROCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_NOTIFICATION_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.simaka.EapAkaTypeData.EAP_AKA_NOTIFICATION;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_PRE_CHALLENGE;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_NOTIFICATION;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_CLIENT_ERROR_UNABLE_TO_PROCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_NOTIFICATION_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.simaka.EapAkaTypeData.EAP_AKA_NOTIFICATION;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_PRE_CHALLENGE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -38,19 +38,19 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import android.net.eap.EapSessionConfig.EapAkaConfig;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapSessionConfig.EapAkaConfig;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapAkaTypeData;
-import com.android.ike.eap.message.simaka.EapAkaTypeData.EapAkaTypeDataDecoder;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.EapMethodState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapAkaTypeData.EapAkaTypeDataDecoder;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.EapMethodState;
import org.junit.Before;
import org.junit.Test;
@@ -85,7 +85,8 @@ public class EapAkaStateTest {
mMockTelephonyManager,
EAP_IDENTITY_BYTES,
mEapAkaConfig,
- mMockEapAkaTypeDataDecoder);
+ mMockEapAkaTypeDataDecoder,
+ true);
verify(mMockTelephonyManager).createForSubscriptionId(SUB_ID);
}
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2AwaitingEapFailureStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2AwaitingEapFailureStateTest.java
index f9140007..1dd60c0c 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2AwaitingEapFailureStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2AwaitingEapFailureStateTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
import org.junit.Before;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2AwaitingEapSuccessStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2AwaitingEapSuccessStateTest.java
index b5508f39..d4377cb6 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2AwaitingEapSuccessStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2AwaitingEapSuccessStateTest.java
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_MSK;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_NT_RESPONSE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_MSK;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_NT_RESPONSE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapSuccess;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.FinalState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.FinalState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2ChallengeStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2ChallengeStateTest.java
index 8f19ba80..ec442dab 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2ChallengeStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2ChallengeStateTest.java
@@ -14,18 +14,18 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_MSCHAP_V2_CHALLENGE_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_AUTHENTICATOR_CHALLENGE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PEER_CHALLENGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SERVER_NAME_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest.TYPE_DATA_HEADER_SIZE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest.VALUE_SIZE;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_MSCHAP_V2_CHALLENGE_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_AUTHENTICATOR_CHALLENGE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PEER_CHALLENGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SERVER_NAME_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest.TYPE_DATA_HEADER_SIZE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest.VALUE_SIZE;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
@@ -35,15 +35,15 @@ import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
-import com.android.ike.eap.statemachine.EapMsChapV2MethodStateMachine.ValidateAuthenticatorState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapMsChapV2MethodStateMachine.ValidateAuthenticatorState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2CreatedStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2CreatedStateTest.java
index 62ce4e4e..633e0ebd 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2CreatedStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2CreatedStateTest.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SERVER_NAME_BYTES;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.SERVER_NAME_BYTES;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
@@ -29,14 +29,14 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
-import com.android.ike.eap.statemachine.EapMsChapV2MethodStateMachine.ValidateAuthenticatorState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.exceptions.mschapv2.EapMsChapV2ParsingException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2ChallengeRequest;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapMsChapV2MethodStateMachine.ValidateAuthenticatorState;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2MethodStateMachineTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2MethodStateMachineTest.java
index 16646a1d..b24c3f82 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2MethodStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2MethodStateMachineTest.java
@@ -14,32 +14,33 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_AUTHENTICATOR_CHALLENGE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_AUTHENTICATOR_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_CHALLENGE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_MASTER_KEY;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_MSK;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_NT_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PASSWORD;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PASSWORD_HASH;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PASSWORD_HASH_HASH;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PASSWORD_UTF_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PEER_CHALLENGE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_RECEIVE_START_KEY;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_SEND_START_KEY;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_USERNAME;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_USERNAME_ASCII_BYTES;
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_AUTHENTICATOR_CHALLENGE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_AUTHENTICATOR_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_CHALLENGE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_MASTER_KEY;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_MSK;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_NT_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PASSWORD;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PASSWORD_HASH;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PASSWORD_HASH_HASH;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PASSWORD_UTF_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PEER_CHALLENGE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_RECEIVE_START_KEY;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_SEND_START_KEY;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_USERNAME;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_USERNAME_ASCII_BYTES;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import com.android.ike.eap.EapSessionConfig.EapMsChapV2Config;
-import com.android.ike.eap.statemachine.EapMsChapV2MethodStateMachine.CreatedState;
-import com.android.ike.utils.Log;
+import android.net.eap.EapSessionConfig.EapMsChapV2Config;
+
+import com.android.internal.net.eap.statemachine.EapMsChapV2MethodStateMachine.CreatedState;
+import com.android.internal.net.utils.Log;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2StateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2StateTest.java
index db4325e9..1e4a0c58 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2StateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2StateTest.java
@@ -14,34 +14,35 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapData.EAP_NOTIFICATION;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PASSWORD;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_USERNAME;
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_NOTIFICATION;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PASSWORD;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_USERNAME;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapSessionConfig.EapMsChapV2Config;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.EapMethodState;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.FinalState;
+import android.net.eap.EapSessionConfig.EapMsChapV2Config;
+
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.EapMethodState;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.FinalState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2ValidateAuthenticatorStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2ValidateAuthenticatorStateTest.java
index c7fc84f5..dda7d5bc 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapMsChapV2ValidateAuthenticatorStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapMsChapV2ValidateAuthenticatorStateTest.java
@@ -14,26 +14,26 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_MSCHAP_V2_FAILURE_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_MSCHAP_V2_SUCCESS_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.INVALID_AUTHENTICATOR_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_AUTHENTICATOR_CHALLENGE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_AUTHENTICATOR_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_NT_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PEER_CHALLENGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_BYTES;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ERROR_CODE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.PASSWORD_CHANGE_PROTOCOL;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2PacketDefinitions.RETRY_BIT;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_FAILURE;
-import static com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_SUCCESS;
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_MSCHAP_V2;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_MSCHAP_V2_FAILURE_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_MSCHAP_V2_SUCCESS_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.INVALID_AUTHENTICATOR_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_AUTHENTICATOR_CHALLENGE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_AUTHENTICATOR_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_NT_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSCHAP_V2_PEER_CHALLENGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.CHALLENGE_BYTES;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.ERROR_CODE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.MESSAGE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.PASSWORD_CHANGE_PROTOCOL;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2PacketDefinitions.RETRY_BIT;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_FAILURE;
+import static com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EAP_MSCHAP_V2_SUCCESS;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
@@ -42,19 +42,19 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureRequest;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2SuccessRequest;
-import com.android.ike.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.FinalState;
-import com.android.ike.eap.statemachine.EapMsChapV2MethodStateMachine.AwaitingEapFailureState;
-import com.android.ike.eap.statemachine.EapMsChapV2MethodStateMachine.AwaitingEapSuccessState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2FailureRequest;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2SuccessRequest;
+import com.android.internal.net.eap.message.mschapv2.EapMsChapV2TypeData.EapMsChapV2TypeDataDecoder.DecodeResult;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.FinalState;
+import com.android.internal.net.eap.statemachine.EapMsChapV2MethodStateMachine.AwaitingEapFailureState;
+import com.android.internal.net.eap.statemachine.EapMsChapV2MethodStateMachine.AwaitingEapSuccessState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachineTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimAkaMethodStateMachineTest.java
index f3cc5a03..7adc9f75 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimAkaMethodStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimAkaMethodStateMachineTest.java
@@ -14,57 +14,58 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.COMPUTED_MAC;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_CHALLENGE_RESPONSE_MAC_INPUT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_CHALLENGE_RESPONSE_WITH_MAC;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_CLIENT_ERROR_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_CLIENT_ERROR_UNABLE_TO_PROCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_IDENTITY;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_REQUEST_WITH_EMPTY_MAC;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_RESPONSE_WITH_EMPTY_MAC;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_RESPONSE_WITH_MAC;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_RESPONSE_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EMSK;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EMSK_STRING;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.KC_1;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.KC_2;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.K_AUT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.K_AUT_STRING;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.K_ENCR;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.K_ENCR_STRING;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MAC_INPUT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MK;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSK;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSK_STRING;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ORIGINAL_MAC;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.SRES_1;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.SRES_BYTES;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_POST_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_PRE_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_CLIENT_ERROR;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_NOTIFICATION;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_START;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_IDENTITY;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.IDENTITY;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT_STRING;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1_BYTES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_2_BYTES;
-import static com.android.ike.eap.statemachine.EapSimAkaMethodStateMachine.KEY_LEN;
-import static com.android.ike.eap.statemachine.EapSimAkaMethodStateMachine.MAC_ALGORITHM_STRING;
-import static com.android.ike.eap.statemachine.EapSimAkaMethodStateMachine.MASTER_KEY_GENERATION_ALG;
-import static com.android.ike.eap.statemachine.EapSimAkaMethodStateMachine.SESSION_KEY_LENGTH;
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.COMPUTED_MAC;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_CHALLENGE_RESPONSE_MAC_INPUT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_CHALLENGE_RESPONSE_WITH_MAC;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_CLIENT_ERROR_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_CLIENT_ERROR_UNABLE_TO_PROCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_IDENTITY;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_REQUEST_WITH_EMPTY_MAC;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_RESPONSE_WITH_EMPTY_MAC;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_RESPONSE_WITH_MAC;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_RESPONSE_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EMSK;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EMSK_STRING;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.KC_1;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.KC_2;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.K_AUT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.K_AUT_STRING;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.K_ENCR;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.K_ENCR_STRING;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MAC_INPUT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MK;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSK;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSK_STRING;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ORIGINAL_MAC;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.SRES_1;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.SRES_BYTES;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_POST_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_PRE_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_CLIENT_ERROR;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_NOTIFICATION;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_START;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.AT_IDENTITY;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.IDENTITY;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT_STRING;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1_BYTES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_2_BYTES;
+import static com.android.internal.net.eap.statemachine.EapSimAkaMethodStateMachine.KEY_LEN;
+import static com.android.internal.net.eap.statemachine.EapSimAkaMethodStateMachine.MAC_ALGORITHM_STRING;
+import static com.android.internal.net.eap.statemachine.EapSimAkaMethodStateMachine.MASTER_KEY_GENERATION_ALG;
+import static com.android.internal.net.eap.statemachine.EapSimAkaMethodStateMachine.SESSION_KEY_LENGTH;
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;
@@ -79,27 +80,27 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import android.net.eap.EapSessionConfig.EapSimConfig;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapSessionConfig.EapSimConfig;
-import com.android.ike.eap.crypto.Fips186_2Prf;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaAuthenticationFailureException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtMac;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtSelectedVersion;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData;
-import com.android.ike.eap.message.simaka.EapSimTypeData;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.EapMethodState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.crypto.Fips186_2Prf;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaAuthenticationFailureException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtSelectedVersion;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.EapMethodState;
import org.junit.Before;
import org.junit.Test;
@@ -463,4 +464,12 @@ public class EapSimAkaMethodStateMachineTest {
assertArrayEquals(EAP_SIM_CLIENT_ERROR_UNABLE_TO_PROCESS, eapResponse.packet);
verify(mStateMachine, never()).transitionTo(any(EapMethodState.class));
}
+
+ @Test
+ public void testKeyLengths() {
+ assertEquals(KEY_LEN, mStateMachine.getKEncrLength());
+ assertEquals(KEY_LEN, mStateMachine.getKAutLength());
+ assertEquals(SESSION_KEY_LENGTH, mStateMachine.getMskLength());
+ assertEquals(SESSION_KEY_LENGTH, mStateMachine.getEmskLength());
+ }
}
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimChallengeStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimChallengeStateTest.java
index 031603e1..bffc03ab 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimChallengeStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimChallengeStateTest.java
@@ -14,33 +14,33 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapData.EAP_IDENTITY;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.CHALLENGE_RESPONSE_INVALID_KC;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.CHALLENGE_RESPONSE_INVALID_SRES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_IDENTITY_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EMSK;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.KC_1_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.KC_2_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSK;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.SRES_1_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.SRES_2_BYTES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.VALID_CHALLENGE_RESPONSE;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_CHALLENGE;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1_BYTES;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_2;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_2_BYTES;
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_IDENTITY;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.CHALLENGE_RESPONSE_INVALID_KC;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.CHALLENGE_RESPONSE_INVALID_SRES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_IDENTITY_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EMSK;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.KC_1_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.KC_2_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSK;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.SRES_1_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.SRES_2_BYTES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.VALID_CHALLENGE_RESPONSE;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_RAND;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_1_BYTES;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_2;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.RAND_2_BYTES;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -55,25 +55,25 @@ import static org.mockito.Mockito.when;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapSuccess;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaAuthenticationFailureException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaInvalidLengthException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtMac;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNonceMt;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.message.simaka.EapSimTypeData;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.FinalState;
-import com.android.ike.eap.statemachine.EapSimMethodStateMachine.ChallengeState;
-import com.android.ike.eap.statemachine.EapSimMethodStateMachine.ChallengeState.RandChallengeResult;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaAuthenticationFailureException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidAttributeException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaInvalidLengthException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNonceMt;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtRandSim;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.FinalState;
+import com.android.internal.net.eap.statemachine.EapSimMethodStateMachine.ChallengeState;
+import com.android.internal.net.eap.statemachine.EapSimMethodStateMachine.ChallengeState.RandChallengeResult;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimCreatedStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimCreatedStateTest.java
index 2ccda480..bdd19201 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimCreatedStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimCreatedStateTest.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.message.EapData.EAP_IDENTITY;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapData.EAP_IDENTITY;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.eq;
@@ -30,20 +30,20 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.message.simaka.EapSimTypeData;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.FinalState;
-import com.android.ike.eap.statemachine.EapSimMethodStateMachine.CreatedState;
-import com.android.ike.eap.statemachine.EapSimMethodStateMachine.StartState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.FinalState;
+import com.android.internal.net.eap.statemachine.EapSimMethodStateMachine.CreatedState;
+import com.android.internal.net.eap.statemachine.EapSimMethodStateMachine.StartState;
import org.junit.Before;
import org.junit.Test;
@@ -51,7 +51,6 @@ import org.junit.Test;
import java.util.Arrays;
import java.util.List;
-
public class EapSimCreatedStateTest extends EapSimStateTest {
private static final int EAP_SIM_START = 10;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimMethodStateMachineTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimMethodStateMachineTest.java
index 8aa41311..ac1d01ca 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimMethodStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimMethodStateMachineTest.java
@@ -14,19 +14,19 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
import static android.telephony.TelephonyManager.APPTYPE_USIM;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_CLIENT_ERROR_UNABLE_TO_PROCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_PRE_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_NOTIFICATION;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_START;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_CLIENT_ERROR_UNABLE_TO_PROCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_PRE_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_NOTIFICATION;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_START;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -39,21 +39,21 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import android.net.eap.EapSessionConfig.EapSimConfig;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapSessionConfig.EapSimConfig;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.message.simaka.EapSimTypeData;
-import com.android.ike.eap.message.simaka.EapSimTypeData.EapSimTypeDataDecoder;
-import com.android.ike.eap.statemachine.EapSimMethodStateMachine.CreatedState;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData.EapSimTypeDataDecoder;
+import com.android.internal.net.eap.statemachine.EapSimMethodStateMachine.CreatedState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimStartStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimStartStateTest.java
index 4965c8fa..ccb746ab 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimStartStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimStartStateTest.java
@@ -14,26 +14,26 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
-
-import static com.android.ike.eap.message.EapData.EAP_IDENTITY;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_IDENTITY;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_RESPONSE_WITHOUT_IDENTITY;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.IMSI;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ENCR_DATA;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_IV;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.EAP_AT_VERSION_LIST;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_START;
-import static com.android.ike.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT;
+package com.android.internal.net.eap.statemachine;
+
+import static com.android.internal.net.eap.message.EapData.EAP_IDENTITY;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_IDENTITY;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_RESPONSE_WITHOUT_IDENTITY;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.IMSI;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ANY_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_ENCR_DATA;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_IV;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_MAC;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_PERMANENT_ID_REQ;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.EAP_AT_VERSION_LIST;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_START;
+import static com.android.internal.net.eap.message.simaka.attributes.EapTestAttributeDefinitions.NONCE_MT;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
@@ -46,27 +46,27 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.exceptions.simaka.EapSimAkaIdentityUnavailableException;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtMac;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNonceMt;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.message.simaka.EapSimTypeData;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.FinalState;
-import com.android.ike.eap.statemachine.EapSimMethodStateMachine.ChallengeState;
-import com.android.ike.eap.statemachine.EapSimMethodStateMachine.StartState;
-import com.android.ike.utils.Log;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.exceptions.simaka.EapSimAkaIdentityUnavailableException;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtAnyIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtIdentity;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtMac;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNonceMt;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtPermanentIdReq;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtVersionList;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.FinalState;
+import com.android.internal.net.eap.statemachine.EapSimMethodStateMachine.ChallengeState;
+import com.android.internal.net.eap.statemachine.EapSimMethodStateMachine.StartState;
+import com.android.internal.net.utils.Log;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimStateTest.java
index 9a0a3c2c..d8d18416 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapSimStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapSimStateTest.java
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
import static android.telephony.TelephonyManager.APPTYPE_USIM;
-import static com.android.ike.TestUtils.hexStringToByteArray;
-import static com.android.ike.eap.message.EapData.EAP_NOTIFICATION;
-import static com.android.ike.eap.message.EapData.EAP_TYPE_SIM;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_CLIENT_ERROR_INSUFFICIENT_CHALLENGES;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_RESPONSE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_PRE_CHALLENGE;
-import static com.android.ike.eap.message.simaka.EapSimTypeData.EAP_SIM_NOTIFICATION;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.eap.message.EapData.EAP_NOTIFICATION;
+import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_CLIENT_ERROR_INSUFFICIENT_CHALLENGES;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_NOTIFICATION_RESPONSE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification.GENERAL_FAILURE_PRE_CHALLENGE;
+import static com.android.internal.net.eap.message.simaka.EapSimTypeData.EAP_SIM_NOTIFICATION;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -38,19 +38,19 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import android.net.eap.EapSessionConfig.EapSimConfig;
import android.telephony.TelephonyManager;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapSessionConfig.EapSimConfig;
-import com.android.ike.eap.message.EapData;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
-import com.android.ike.eap.message.simaka.EapSimAkaAttribute.AtNotification;
-import com.android.ike.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
-import com.android.ike.eap.message.simaka.EapSimTypeData;
-import com.android.ike.eap.message.simaka.EapSimTypeData.EapSimTypeDataDecoder;
-import com.android.ike.eap.statemachine.EapMethodStateMachine.EapMethodState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.message.EapData;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtClientErrorCode;
+import com.android.internal.net.eap.message.simaka.EapSimAkaAttribute.AtNotification;
+import com.android.internal.net.eap.message.simaka.EapSimAkaTypeData.DecodeResult;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData;
+import com.android.internal.net.eap.message.simaka.EapSimTypeData.EapSimTypeDataDecoder;
+import com.android.internal.net.eap.statemachine.EapMethodStateMachine.EapMethodState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapStateMachineTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapStateMachineTest.java
index 4ef2a6d7..288fc85f 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapStateMachineTest.java
@@ -14,24 +14,24 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
import static androidx.test.InstrumentationRegistry.getInstrumentation;
-import static com.android.ike.eap.EapTestUtils.getDummyEapSessionConfig;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
+import static com.android.internal.net.eap.EapTestUtils.getDummyEapSessionConfig;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
import static org.junit.Assert.assertTrue;
import android.content.Context;
+import android.net.eap.EapSessionConfig;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapSessionConfig;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.statemachine.EapStateMachine.CreatedState;
-import com.android.ike.eap.statemachine.EapStateMachine.FailureState;
-import com.android.ike.eap.statemachine.EapStateMachine.SuccessState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.statemachine.EapStateMachine.CreatedState;
+import com.android.internal.net.eap.statemachine.EapStateMachine.FailureState;
+import com.android.internal.net.eap.statemachine.EapStateMachine.SuccessState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapStateTest.java
index ed6e08ac..0193cb4e 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/EapStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/EapStateTest.java
@@ -14,30 +14,30 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
import static androidx.test.InstrumentationRegistry.getInstrumentation;
-import static com.android.ike.eap.EapTestUtils.getDummyEapSimSessionConfig;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_MD5_CHALLENGE;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_NAK_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NAK_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.REQUEST_UNSUPPORTED_TYPE_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.SHORT_PACKET;
+import static com.android.internal.net.eap.EapTestUtils.getDummyEapSimSessionConfig;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_MD5_CHALLENGE;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_NAK_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NAK_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.REQUEST_UNSUPPORTED_TYPE_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.SHORT_PACKET;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
import android.content.Context;
-
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapSessionConfig;
-import com.android.ike.eap.exceptions.EapInvalidPacketLengthException;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.statemachine.EapStateMachine.EapState;
+import android.net.eap.EapSessionConfig;
+
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.exceptions.EapInvalidPacketLengthException;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.statemachine.EapStateMachine.EapState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/IdentityStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/IdentityStateTest.java
index 6ba04e93..abe4e824 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/IdentityStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/IdentityStateTest.java
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
-import static com.android.ike.eap.EapTestUtils.getDummyEapSessionConfig;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_IDENTITY;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_IDENTITY_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_IDENTITY_DEFAULT_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_IDENTITY_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.EapTestUtils.getDummyEapSessionConfig;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_IDENTITY;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_IDENTITY_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_IDENTITY_DEFAULT_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_IDENTITY_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
@@ -33,9 +33,9 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.statemachine.EapStateMachine.MethodState;
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.statemachine.EapStateMachine.MethodState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/eap/statemachine/MethodStateTest.java b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/MethodStateTest.java
index c719e7f7..9df06e56 100644
--- a/tests/iketests/src/java/com/android/ike/eap/statemachine/MethodStateTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/eap/statemachine/MethodStateTest.java
@@ -14,26 +14,26 @@
* limitations under the License.
*/
-package com.android.ike.eap.statemachine;
+package com.android.internal.net.eap.statemachine;
import static android.telephony.TelephonyManager.APPTYPE_USIM;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_FAILURE;
-import static com.android.ike.eap.message.EapMessage.EAP_CODE_SUCCESS;
-import static com.android.ike.eap.message.EapMessage.EAP_HEADER_LENGTH;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_REQUEST;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_FAILURE_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_AKA;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_IDENTITY_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_MSCHAP_V2;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NAK_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.EMSK;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.ID_INT;
-import static com.android.ike.eap.message.EapTestMessageDefinitions.MSK;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_FAILURE;
+import static com.android.internal.net.eap.message.EapMessage.EAP_CODE_SUCCESS;
+import static com.android.internal.net.eap.message.EapMessage.EAP_HEADER_LENGTH;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_AKA_PRIME_REQUEST;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_FAILURE_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_AKA;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_IDENTITY_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_MSCHAP_V2;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NAK_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_RESPONSE_NOTIFICATION_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EMSK;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.ID_INT;
+import static com.android.internal.net.eap.message.EapTestMessageDefinitions.MSK;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;
@@ -43,17 +43,18 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import com.android.ike.eap.EapResult;
-import com.android.ike.eap.EapResult.EapError;
-import com.android.ike.eap.EapResult.EapFailure;
-import com.android.ike.eap.EapResult.EapResponse;
-import com.android.ike.eap.EapResult.EapSuccess;
-import com.android.ike.eap.EapSessionConfig;
-import com.android.ike.eap.exceptions.EapInvalidRequestException;
-import com.android.ike.eap.message.EapMessage;
-import com.android.ike.eap.statemachine.EapStateMachine.FailureState;
-import com.android.ike.eap.statemachine.EapStateMachine.MethodState;
-import com.android.ike.eap.statemachine.EapStateMachine.SuccessState;
+import android.net.eap.EapSessionConfig;
+
+import com.android.internal.net.eap.EapResult;
+import com.android.internal.net.eap.EapResult.EapError;
+import com.android.internal.net.eap.EapResult.EapFailure;
+import com.android.internal.net.eap.EapResult.EapResponse;
+import com.android.internal.net.eap.EapResult.EapSuccess;
+import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
+import com.android.internal.net.eap.message.EapMessage;
+import com.android.internal.net.eap.statemachine.EapStateMachine.FailureState;
+import com.android.internal.net.eap.statemachine.EapStateMachine.MethodState;
+import com.android.internal.net.eap.statemachine.EapStateMachine.SuccessState;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/ChildSessionStateMachineTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/ChildSessionStateMachineTest.java
index 1b6276a6..f6c32eef 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/ChildSessionStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/ChildSessionStateMachineTest.java
@@ -14,30 +14,30 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INTERNAL_ADDRESS_FAILURE;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_NO_PROPOSAL_CHOSEN;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
import static android.system.OsConstants.AF_INET;
-import static com.android.ike.ikev2.ChildSessionStateMachine.CMD_FORCE_TRANSITION;
-import static com.android.ike.ikev2.IkeSessionStateMachine.CMD_LOCAL_REQUEST_REKEY_CHILD;
-import static com.android.ike.ikev2.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_DELETE_CHILD;
-import static com.android.ike.ikev2.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_REKEY_CHILD;
-import static com.android.ike.ikev2.IkeSessionStateMachine.REKEY_DELETE_TIMEOUT_MS;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INTERNAL_ADDRESS_FAILURE;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_NO_PROPOSAL_CHOSEN;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
-import static com.android.ike.ikev2.message.IkeHeader.EXCHANGE_TYPE_CREATE_CHILD_SA;
-import static com.android.ike.ikev2.message.IkeHeader.EXCHANGE_TYPE_INFORMATIONAL;
-import static com.android.ike.ikev2.message.IkeNotifyPayload.NOTIFY_TYPE_REKEY_SA;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_CP;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_DELETE;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_KE;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_NONCE;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_NOTIFY;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_SA;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_TS_INITIATOR;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_TS_RESPONDER;
-import static com.android.ike.ikev2.message.IkePayload.PROTOCOL_ID_ESP;
+import static com.android.internal.net.ipsec.ike.ChildSessionStateMachine.CMD_FORCE_TRANSITION;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.CMD_LOCAL_REQUEST_REKEY_CHILD;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_DELETE_CHILD;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_REKEY_CHILD;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.REKEY_DELETE_TIMEOUT_MS;
+import static com.android.internal.net.ipsec.ike.message.IkeHeader.EXCHANGE_TYPE_CREATE_CHILD_SA;
+import static com.android.internal.net.ipsec.ike.message.IkeHeader.EXCHANGE_TYPE_INFORMATIONAL;
+import static com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NOTIFY_TYPE_REKEY_SA;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_CP;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_DELETE;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_KE;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_NONCE;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_NOTIFY;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_SA;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_TS_INITIATOR;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_TS_RESPONDER;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PROTOCOL_ID_ESP;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -68,45 +68,53 @@ import android.net.IpSecManager;
import android.net.IpSecManager.UdpEncapsulationSocket;
import android.net.IpSecTransform;
import android.net.LinkAddress;
+import android.net.ipsec.ike.ChildSaProposal;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.ChildSessionConfiguration;
+import android.net.ipsec.ike.ChildSessionOptions;
+import android.net.ipsec.ike.IkeManager;
+import android.net.ipsec.ike.IkeTrafficSelector;
+import android.net.ipsec.ike.SaProposal;
+import android.net.ipsec.ike.TunnelModeChildSessionOptions;
+import android.net.ipsec.ike.exceptions.IkeException;
+import android.net.ipsec.ike.exceptions.IkeInternalException;
import android.os.test.TestLooper;
import androidx.test.InstrumentationRegistry;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.ChildSessionStateMachine.CreateChildSaHelper;
-import com.android.ike.ikev2.ChildSessionStateMachine.IChildSessionSmCallback;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.ChildLocalRequest;
-import com.android.ike.ikev2.SaRecord.ChildSaRecord;
-import com.android.ike.ikev2.SaRecord.ChildSaRecordConfig;
-import com.android.ike.ikev2.SaRecord.ISaRecordHelper;
-import com.android.ike.ikev2.SaRecord.SaRecordHelper;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.exceptions.IkeException;
-import com.android.ike.ikev2.exceptions.IkeInternalException;
-import com.android.ike.ikev2.exceptions.InvalidKeException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.exceptions.NoValidProposalChosenException;
-import com.android.ike.ikev2.message.IkeConfigPayload;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttribute;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Address;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Netmask;
-import com.android.ike.ikev2.message.IkeDeletePayload;
-import com.android.ike.ikev2.message.IkeKePayload;
-import com.android.ike.ikev2.message.IkeMessage;
-import com.android.ike.ikev2.message.IkeNoncePayload;
-import com.android.ike.ikev2.message.IkeNotifyPayload;
-import com.android.ike.ikev2.message.IkePayload;
-import com.android.ike.ikev2.message.IkeSaPayload;
-import com.android.ike.ikev2.message.IkeSaPayload.DhGroupTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
-import com.android.ike.ikev2.message.IkeTestUtils;
-import com.android.ike.ikev2.message.IkeTsPayload;
-import com.android.ike.ikev2.testutils.MockIpSecTestUtils;
-import com.android.ike.utils.Log;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.ChildSessionStateMachine.CreateChildSaHelper;
+import com.android.internal.net.ipsec.ike.ChildSessionStateMachine.IChildSessionSmCallback;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.ChildLocalRequest;
+import com.android.internal.net.ipsec.ike.SaRecord.ChildSaRecord;
+import com.android.internal.net.ipsec.ike.SaRecord.ChildSaRecordConfig;
+import com.android.internal.net.ipsec.ike.SaRecord.ISaRecordHelper;
+import com.android.internal.net.ipsec.ike.SaRecord.SaRecordHelper;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidKeException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.exceptions.NoValidProposalChosenException;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttribute;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Address;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Netmask;
+import com.android.internal.net.ipsec.ike.message.IkeDeletePayload;
+import com.android.internal.net.ipsec.ike.message.IkeKePayload;
+import com.android.internal.net.ipsec.ike.message.IkeMessage;
+import com.android.internal.net.ipsec.ike.message.IkeNoncePayload;
+import com.android.internal.net.ipsec.ike.message.IkeNotifyPayload;
+import com.android.internal.net.ipsec.ike.message.IkePayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.DhGroupTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
+import com.android.internal.net.ipsec.ike.message.IkeTestUtils;
+import com.android.internal.net.ipsec.ike.message.IkeTsPayload;
+import com.android.internal.net.ipsec.ike.testutils.MockIpSecTestUtils;
+import com.android.internal.net.utils.Log;
import com.android.server.IpSecService;
import libcore.net.InetAddressUtils;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/IkeLocalRequestSchedulerTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeLocalRequestSchedulerTest.java
index 4b3442e7..3406d014 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/IkeLocalRequestSchedulerTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeLocalRequestSchedulerTest.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
-import static com.android.ike.ikev2.IkeSessionStateMachine.CMD_LOCAL_REQUEST_REKEY_IKE;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.CMD_LOCAL_REQUEST_REKEY_IKE;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
@@ -26,8 +26,8 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.IProcedureConsumer;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.LocalRequest;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.IProcedureConsumer;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.LocalRequest;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/IkeSessionStateMachineTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSessionStateMachineTest.java
index 819c3280..94f4d622 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/IkeSessionStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSessionStateMachineTest.java
@@ -14,29 +14,30 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
-
-import static com.android.ike.ikev2.IkeSessionStateMachine.CMD_LOCAL_REQUEST_REKEY_IKE;
-import static com.android.ike.ikev2.IkeSessionStateMachine.CMD_RECEIVE_IKE_PACKET;
-import static com.android.ike.ikev2.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_DELETE_CHILD;
-import static com.android.ike.ikev2.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_REKEY_CHILD;
-import static com.android.ike.ikev2.IkeSessionStateMachine.RETRY_INTERVAL_MS;
-import static com.android.ike.ikev2.IkeSessionStateMachine.SA_SOFT_LIFETIME_MS;
-import static com.android.ike.ikev2.IkeSessionStateMachine.TEMP_FAILURE_RETRY_TIMEOUT_MS;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_CHILD_SA_NOT_FOUND;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_SYNTAX;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_NO_ADDITIONAL_SAS;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_NO_PROPOSAL_CHOSEN;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD;
-import static com.android.ike.ikev2.message.IkeHeader.EXCHANGE_TYPE_CREATE_CHILD_SA;
-import static com.android.ike.ikev2.message.IkeHeader.EXCHANGE_TYPE_INFORMATIONAL;
-import static com.android.ike.ikev2.message.IkeNotifyPayload.NOTIFY_TYPE_IKEV2_FRAGMENTATION_SUPPORTED;
-import static com.android.ike.ikev2.message.IkeNotifyPayload.NOTIFY_TYPE_NAT_DETECTION_DESTINATION_IP;
-import static com.android.ike.ikev2.message.IkeNotifyPayload.NOTIFY_TYPE_NAT_DETECTION_SOURCE_IP;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_AUTH;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_NOTIFY;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_SA;
+package com.android.internal.net.ipsec.ike;
+
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_CHILD_SA_NOT_FOUND;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_SYNTAX;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_NO_ADDITIONAL_SAS;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_NO_PROPOSAL_CHOSEN;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_TEMPORARY_FAILURE;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD;
+
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.CMD_LOCAL_REQUEST_REKEY_IKE;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.CMD_RECEIVE_IKE_PACKET;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_DELETE_CHILD;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IKE_EXCHANGE_SUBTYPE_REKEY_CHILD;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.RETRY_INTERVAL_MS;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.SA_SOFT_LIFETIME_MS;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.TEMP_FAILURE_RETRY_TIMEOUT_MS;
+import static com.android.internal.net.ipsec.ike.message.IkeHeader.EXCHANGE_TYPE_CREATE_CHILD_SA;
+import static com.android.internal.net.ipsec.ike.message.IkeHeader.EXCHANGE_TYPE_INFORMATIONAL;
+import static com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NOTIFY_TYPE_IKEV2_FRAGMENTATION_SUPPORTED;
+import static com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NOTIFY_TYPE_NAT_DETECTION_DESTINATION_IP;
+import static com.android.internal.net.ipsec.ike.message.IkeNotifyPayload.NOTIFY_TYPE_NAT_DETECTION_SOURCE_IP;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_AUTH;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_NOTIFY;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_SA;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -67,68 +68,78 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.IpSecManager;
import android.net.IpSecManager.UdpEncapsulationSocket;
+import android.net.eap.EapSessionConfig;
+import android.net.ipsec.ike.ChildSaProposal;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.ChildSessionOptions;
+import android.net.ipsec.ike.IkeIpv4AddrIdentification;
+import android.net.ipsec.ike.IkeManager;
+import android.net.ipsec.ike.IkeSaProposal;
+import android.net.ipsec.ike.IkeSessionCallback;
+import android.net.ipsec.ike.IkeSessionOptions;
+import android.net.ipsec.ike.SaProposal;
+import android.net.ipsec.ike.TransportModeChildSessionOptions;
+import android.net.ipsec.ike.exceptions.IkeException;
+import android.net.ipsec.ike.exceptions.IkeInternalException;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.os.test.TestLooper;
import android.telephony.TelephonyManager;
-import com.android.ike.TestUtils;
-import com.android.ike.eap.EapAuthenticator;
-import com.android.ike.eap.EapSessionConfig;
-import com.android.ike.eap.IEapCallback;
-import com.android.ike.ikev2.ChildSessionStateMachine.IChildSessionSmCallback;
-import com.android.ike.ikev2.ChildSessionStateMachineFactory.ChildSessionFactoryHelper;
-import com.android.ike.ikev2.ChildSessionStateMachineFactory.IChildSessionFactoryHelper;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.ChildLocalRequest;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.LocalRequest;
-import com.android.ike.ikev2.IkeSessionStateMachine.IkeSecurityParameterIndex;
-import com.android.ike.ikev2.IkeSessionStateMachine.ReceivedIkePacket;
-import com.android.ike.ikev2.SaRecord.ISaRecordHelper;
-import com.android.ike.ikev2.SaRecord.IkeSaRecord;
-import com.android.ike.ikev2.SaRecord.IkeSaRecordConfig;
-import com.android.ike.ikev2.SaRecord.SaRecordHelper;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.exceptions.IkeException;
-import com.android.ike.ikev2.exceptions.IkeInternalException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.exceptions.NoValidProposalChosenException;
-import com.android.ike.ikev2.exceptions.UnsupportedCriticalPayloadException;
-import com.android.ike.ikev2.message.IkeAuthDigitalSignPayload;
-import com.android.ike.ikev2.message.IkeAuthPayload;
-import com.android.ike.ikev2.message.IkeAuthPskPayload;
-import com.android.ike.ikev2.message.IkeCertX509CertPayload;
-import com.android.ike.ikev2.message.IkeDeletePayload;
-import com.android.ike.ikev2.message.IkeEapPayload;
-import com.android.ike.ikev2.message.IkeHeader;
-import com.android.ike.ikev2.message.IkeIdPayload;
-import com.android.ike.ikev2.message.IkeInformationalPayload;
-import com.android.ike.ikev2.message.IkeKePayload;
-import com.android.ike.ikev2.message.IkeMessage;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResult;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultOk;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultPartial;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultProtectedError;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultUnprotectedError;
-import com.android.ike.ikev2.message.IkeMessage.IIkeMessageHelper;
-import com.android.ike.ikev2.message.IkeMessage.IkeMessageHelper;
-import com.android.ike.ikev2.message.IkeNoncePayload;
-import com.android.ike.ikev2.message.IkeNotifyPayload;
-import com.android.ike.ikev2.message.IkePayload;
-import com.android.ike.ikev2.message.IkeSaPayload;
-import com.android.ike.ikev2.message.IkeSaPayload.DhGroupTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
-import com.android.ike.ikev2.message.IkeSkfPayload;
-import com.android.ike.ikev2.message.IkeTestUtils;
-import com.android.ike.ikev2.message.IkeTsPayload;
-import com.android.ike.ikev2.testutils.CertUtils;
-import com.android.ike.ikev2.testutils.MockIpSecTestUtils;
-import com.android.ike.ikev2.utils.Retransmitter;
-import com.android.ike.ikev2.utils.Retransmitter.IBackoffTimeoutCalculator;
-import com.android.ike.utils.Log;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.eap.EapAuthenticator;
+import com.android.internal.net.eap.IEapCallback;
+import com.android.internal.net.ipsec.ike.ChildSessionStateMachine.IChildSessionSmCallback;
+import com.android.internal.net.ipsec.ike.ChildSessionStateMachineFactory.ChildSessionFactoryHelper;
+import com.android.internal.net.ipsec.ike.ChildSessionStateMachineFactory.IChildSessionFactoryHelper;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.ChildLocalRequest;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.LocalRequest;
+import com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IkeSecurityParameterIndex;
+import com.android.internal.net.ipsec.ike.IkeSessionStateMachine.ReceivedIkePacket;
+import com.android.internal.net.ipsec.ike.SaRecord.ISaRecordHelper;
+import com.android.internal.net.ipsec.ike.SaRecord.IkeSaRecord;
+import com.android.internal.net.ipsec.ike.SaRecord.IkeSaRecordConfig;
+import com.android.internal.net.ipsec.ike.SaRecord.SaRecordHelper;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.exceptions.NoValidProposalChosenException;
+import com.android.internal.net.ipsec.ike.exceptions.UnsupportedCriticalPayloadException;
+import com.android.internal.net.ipsec.ike.message.IkeAuthDigitalSignPayload;
+import com.android.internal.net.ipsec.ike.message.IkeAuthPayload;
+import com.android.internal.net.ipsec.ike.message.IkeAuthPskPayload;
+import com.android.internal.net.ipsec.ike.message.IkeCertX509CertPayload;
+import com.android.internal.net.ipsec.ike.message.IkeDeletePayload;
+import com.android.internal.net.ipsec.ike.message.IkeEapPayload;
+import com.android.internal.net.ipsec.ike.message.IkeHeader;
+import com.android.internal.net.ipsec.ike.message.IkeIdPayload;
+import com.android.internal.net.ipsec.ike.message.IkeInformationalPayload;
+import com.android.internal.net.ipsec.ike.message.IkeKePayload;
+import com.android.internal.net.ipsec.ike.message.IkeMessage;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResult;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultOk;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultPartial;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultProtectedError;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultUnprotectedError;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.IIkeMessageHelper;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.IkeMessageHelper;
+import com.android.internal.net.ipsec.ike.message.IkeNoncePayload;
+import com.android.internal.net.ipsec.ike.message.IkeNotifyPayload;
+import com.android.internal.net.ipsec.ike.message.IkePayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.DhGroupTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSkfPayload;
+import com.android.internal.net.ipsec.ike.message.IkeTestUtils;
+import com.android.internal.net.ipsec.ike.message.IkeTsPayload;
+import com.android.internal.net.ipsec.ike.testutils.CertUtils;
+import com.android.internal.net.ipsec.ike.testutils.MockIpSecTestUtils;
+import com.android.internal.net.ipsec.ike.utils.Retransmitter;
+import com.android.internal.net.ipsec.ike.utils.Retransmitter.IBackoffTimeoutCalculator;
+import com.android.internal.net.utils.Log;
import com.android.internal.util.State;
import libcore.net.InetAddressUtils;
@@ -713,7 +724,7 @@ public final class IkeSessionStateMachineTest {
return ikeSession;
}
- static IkeSaProposal buildSaProposal() throws Exception {
+ public static IkeSaProposal buildSaProposal() throws Exception {
return new IkeSaProposal.Builder()
.addEncryptionAlgorithm(
SaProposal.ENCRYPTION_ALGORITHM_AES_CBC, SaProposal.KEY_LEN_AES_128)
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/IkeSocketTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSocketTest.java
index 11db7df4..1b8761f7 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/IkeSocketTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSocketTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -39,9 +39,9 @@ import android.util.LongSparseArray;
import androidx.test.InstrumentationRegistry;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.IkeSocket.PacketReceiver;
-import com.android.ike.ikev2.message.IkeHeader;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.IkeSocket.PacketReceiver;
+import com.android.internal.net.ipsec.ike.message.IkeHeader;
import org.junit.After;
import org.junit.Before;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/SaRecordTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/SaRecordTest.java
index e3a69554..646b9d9a 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/SaRecordTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/SaRecordTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2;
+package com.android.internal.net.ipsec.ike;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -32,26 +32,27 @@ import android.net.IpSecManager;
import android.net.IpSecManager.SecurityParameterIndex;
import android.net.IpSecManager.UdpEncapsulationSocket;
import android.net.IpSecTransform;
-
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.ChildLocalRequest;
-import com.android.ike.ikev2.IkeLocalRequestScheduler.LocalRequest;
-import com.android.ike.ikev2.IkeSessionStateMachine.IkeSecurityParameterIndex;
-import com.android.ike.ikev2.SaRecord.ChildSaRecord;
-import com.android.ike.ikev2.SaRecord.ChildSaRecordConfig;
-import com.android.ike.ikev2.SaRecord.IIpSecTransformHelper;
-import com.android.ike.ikev2.SaRecord.IkeSaRecord;
-import com.android.ike.ikev2.SaRecord.IkeSaRecordConfig;
-import com.android.ike.ikev2.SaRecord.IpSecTransformHelper;
-import com.android.ike.ikev2.SaRecord.SaRecordHelper;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.message.IkeMessage;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
-import com.android.ike.ikev2.testutils.MockIpSecTestUtils;
+import android.net.ipsec.ike.SaProposal;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.ChildLocalRequest;
+import com.android.internal.net.ipsec.ike.IkeLocalRequestScheduler.LocalRequest;
+import com.android.internal.net.ipsec.ike.IkeSessionStateMachine.IkeSecurityParameterIndex;
+import com.android.internal.net.ipsec.ike.SaRecord.ChildSaRecord;
+import com.android.internal.net.ipsec.ike.SaRecord.ChildSaRecordConfig;
+import com.android.internal.net.ipsec.ike.SaRecord.IIpSecTransformHelper;
+import com.android.internal.net.ipsec.ike.SaRecord.IkeSaRecord;
+import com.android.internal.net.ipsec.ike.SaRecord.IkeSaRecordConfig;
+import com.android.internal.net.ipsec.ike.SaRecord.IpSecTransformHelper;
+import com.android.internal.net.ipsec.ike.SaRecord.SaRecordHelper;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.message.IkeMessage;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
+import com.android.internal.net.ipsec.ike.testutils.MockIpSecTestUtils;
import com.android.server.IpSecService;
import libcore.net.InetAddressUtils;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeCombinedModeCipherTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeCombinedModeCipherTest.java
index a7ff2990..a3b2253e 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeCombinedModeCipherTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeCombinedModeCipherTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -23,11 +23,11 @@ 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.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.message.IkeMessage;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
+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;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeMacIntegrityTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacIntegrityTest.java
index d3c857c9..ed625660 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeMacIntegrityTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacIntegrityTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
@@ -22,11 +22,11 @@ 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.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.message.IkeMessage;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.message.IkeMessage;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeMacPrfTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacPrfTest.java
index 0de72fac..717886f7 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeMacPrfTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeMacPrfTest.java
@@ -14,15 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.message.IkeMessage;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
+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.PrfTransform;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeNormalModeCipherTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipherTest.java
index 8119d7a3..3f3a0e10 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/crypto/IkeNormalModeCipherTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/crypto/IkeNormalModeCipherTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.crypto;
+package com.android.internal.net.ipsec.ike.crypto;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -23,11 +23,11 @@ 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.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.message.IkeMessage;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
+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;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeAuthDigitalSignPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthDigitalSignPayloadTest.java
index 239bd504..96921c30 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeAuthDigitalSignPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthDigitalSignPayloadTest.java
@@ -14,21 +14,22 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import static com.android.ike.ikev2.message.IkeAuthDigitalSignPayload.SIGNATURE_ALGO_RSA_SHA2_256;
+import static com.android.internal.net.ipsec.ike.message.IkeAuthDigitalSignPayload.SIGNATURE_ALGO_RSA_SHA2_256;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
-import com.android.ike.ikev2.testutils.CertUtils;
+import android.net.ipsec.ike.SaProposal;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
+import com.android.internal.net.ipsec.ike.testutils.CertUtils;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeAuthPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPayloadTest.java
index f2de2607..989b4689 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeAuthPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPayloadTest.java
@@ -14,18 +14,19 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
+import android.net.ipsec.ike.SaProposal;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeAuthPskPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPskPayloadTest.java
index d514b69e..cad60522 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeAuthPskPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeAuthPskPayloadTest.java
@@ -14,17 +14,18 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.crypto.IkeMacPrf;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
+import android.net.ipsec.ike.SaProposal;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacPrf;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeCertPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeCertPayloadTest.java
index 1b641fcf..2bb72e33 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeCertPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeCertPayloadTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.fail;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.testutils.CertUtils;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.testutils.CertUtils;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeCertX509CertPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeCertX509CertPayloadTest.java
index 8cabaebc..ef6ec289 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeCertX509CertPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeCertX509CertPayloadTest.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeConfigPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeConfigPayloadTest.java
index e8a67d79..9fc32229 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeConfigPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeConfigPayloadTest.java
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
-
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_ADDRESS;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_DHCP;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_DNS;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_NETMASK;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_SUBNET;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_ADDRESS;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_DNS;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_SUBNET;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_TYPE_REPLY;
-import static com.android.ike.ikev2.message.IkeConfigPayload.CONFIG_TYPE_REQUEST;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_CP;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_NOTIFY;
+package com.android.internal.net.ipsec.ike.message;
+
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_ADDRESS;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_DHCP;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_DNS;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_NETMASK;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP4_SUBNET;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_ADDRESS;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_DNS;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_ATTR_INTERNAL_IP6_SUBNET;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_TYPE_REPLY;
+import static com.android.internal.net.ipsec.ike.message.IkeConfigPayload.CONFIG_TYPE_REQUEST;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_CP;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_NOTIFY;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -42,19 +42,19 @@ import static org.mockito.Mockito.when;
import android.net.LinkAddress;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttrIpv4AddressBase;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttrIpv6AddrRangeBase;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttribute;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Address;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Dhcp;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Dns;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Netmask;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv4Subnet;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv6Address;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv6Dns;
-import com.android.ike.ikev2.message.IkeConfigPayload.ConfigAttributeIpv6Subnet;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttrIpv4AddressBase;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttrIpv6AddrRangeBase;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttribute;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Address;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Dhcp;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Dns;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Netmask;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv4Subnet;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv6Address;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv6Dns;
+import com.android.internal.net.ipsec.ike.message.IkeConfigPayload.ConfigAttributeIpv6Subnet;
import libcore.net.InetAddressUtils;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeDeletePayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeDeletePayloadTest.java
index ddd1aa9d..6be5336f 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeDeletePayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeDeletePayloadTest.java
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import static com.android.ike.ikev2.message.IkePayload.PROTOCOL_ID_ESP;
-import static com.android.ike.ikev2.message.IkePayload.PROTOCOL_ID_IKE;
-import static com.android.ike.ikev2.message.IkePayload.SPI_LEN_IPSEC;
-import static com.android.ike.ikev2.message.IkePayload.SPI_LEN_NOT_INCLUDED;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PROTOCOL_ID_ESP;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PROTOCOL_ID_IKE;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.SPI_LEN_IPSEC;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.SPI_LEN_NOT_INCLUDED;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeEapPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeEapPayloadTest.java
index df89ce09..fff82b60 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeEapPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeEapPayloadTest.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import static com.android.ike.TestUtils.hexStringToByteArray;
+import static com.android.internal.net.TestUtils.hexStringToByteArray;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeEncryptedPayloadBodyTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeEncryptedPayloadBodyTest.java
index c43a8594..36c7648a 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeEncryptedPayloadBodyTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeEncryptedPayloadBodyTest.java
@@ -13,20 +13,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeCombinedModeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.crypto.IkeNormalModeCipher;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
+import android.net.ipsec.ike.SaProposal;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeCombinedModeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.crypto.IkeNormalModeCipher;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeHeaderTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeHeaderTest.java
index f3c7a2be..4592815d 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeHeaderTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeHeaderTest.java
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
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 com.android.ike.TestUtils;
-import com.android.ike.ikev2.exceptions.InvalidMajorVersionException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidMajorVersionException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeIdPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeIdPayloadTest.java
index 14d05264..75552b31 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeIdPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeIdPayloadTest.java
@@ -14,20 +14,21 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.IkeFqdnIdentification;
-import com.android.ike.ikev2.IkeIdentification;
-import com.android.ike.ikev2.IkeIpv4AddrIdentification;
-import com.android.ike.ikev2.IkeIpv6AddrIdentification;
-import com.android.ike.ikev2.IkeKeyIdIdentification;
-import com.android.ike.ikev2.IkeRfc822AddrIdentification;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
+import android.net.ipsec.ike.IkeFqdnIdentification;
+import android.net.ipsec.ike.IkeIdentification;
+import android.net.ipsec.ike.IkeIpv4AddrIdentification;
+import android.net.ipsec.ike.IkeIpv6AddrIdentification;
+import android.net.ipsec.ike.IkeKeyIdIdentification;
+import android.net.ipsec.ike.IkeRfc822AddrIdentification;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeKePayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeKePayloadTest.java
index b1887bdd..f5046dca 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeKePayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeKePayloadTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -22,11 +22,12 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.IkeDhParams;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.utils.BigIntegerUtils;
+import android.net.ipsec.ike.SaProposal;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.IkeDhParams;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.utils.BigIntegerUtils;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeMessageTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeMessageTest.java
index e9994556..38b41527 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeMessageTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeMessageTest.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import static com.android.ike.ikev2.message.IkeMessage.DECODE_STATUS_OK;
-import static com.android.ike.ikev2.message.IkeMessage.DECODE_STATUS_PROTECTED_ERROR;
-import static com.android.ike.ikev2.message.IkeMessage.DECODE_STATUS_UNPROTECTED_ERROR;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_AUTH;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_ID_INITIATOR;
-import static com.android.ike.ikev2.message.IkePayload.PAYLOAD_TYPE_NO_NEXT;
-import static com.android.ike.ikev2.message.IkeTestUtils.makeDummySkfPayload;
+import static com.android.internal.net.ipsec.ike.message.IkeMessage.DECODE_STATUS_OK;
+import static com.android.internal.net.ipsec.ike.message.IkeMessage.DECODE_STATUS_PROTECTED_ERROR;
+import static com.android.internal.net.ipsec.ike.message.IkeMessage.DECODE_STATUS_UNPROTECTED_ERROR;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_AUTH;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_ID_INITIATOR;
+import static com.android.internal.net.ipsec.ike.message.IkePayload.PAYLOAD_TYPE_NO_NEXT;
+import static com.android.internal.net.ipsec.ike.message.IkeTestUtils.makeDummySkfPayload;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -44,20 +44,21 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.SaRecord.IkeSaRecord;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.crypto.IkeNormalModeCipher;
-import com.android.ike.ikev2.exceptions.IkeException;
-import com.android.ike.ikev2.exceptions.IkeInternalException;
-import com.android.ike.ikev2.exceptions.InvalidMessageIdException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.exceptions.UnsupportedCriticalPayloadException;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResult;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultError;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultOk;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultPartial;
-import com.android.ike.ikev2.message.IkePayloadFactory.IIkePayloadDecoder;
+import android.net.ipsec.ike.exceptions.IkeException;
+import android.net.ipsec.ike.exceptions.IkeInternalException;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.SaRecord.IkeSaRecord;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.crypto.IkeNormalModeCipher;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidMessageIdException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.exceptions.UnsupportedCriticalPayloadException;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResult;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultError;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultOk;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultPartial;
+import com.android.internal.net.ipsec.ike.message.IkePayloadFactory.IIkePayloadDecoder;
import org.junit.After;
import org.junit.Before;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeNoncePayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeNoncePayloadTest.java
index 1c3d193e..dd92a45e 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeNoncePayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeNoncePayloadTest.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.assertArrayEquals;
-import com.android.ike.TestUtils;
+import com.android.internal.net.TestUtils;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeNotifyPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeNotifyPayloadTest.java
index 99ce6b99..884c76eb 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeNotifyPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeNotifyPayloadTest.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_AUTHENTICATION_FAILED;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_KE_PAYLOAD;
-import static com.android.ike.ikev2.exceptions.IkeProtocolException.ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_AUTHENTICATION_FAILED;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_INVALID_KE_PAYLOAD;
+import static android.net.ipsec.ike.exceptions.IkeProtocolException.ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -26,13 +26,14 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.exceptions.AuthenticationFailedException;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidKeException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.exceptions.UnrecognizedIkeProtocolException;
+import android.net.ipsec.ike.SaProposal;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.exceptions.AuthenticationFailedException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidKeException;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.exceptions.UnrecognizedIkeProtocolException;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeSaPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeSaPayloadTest.java
index 7a6bd4c7..750ff463 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeSaPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeSaPayloadTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -33,31 +33,31 @@ import static org.mockito.Mockito.when;
import android.net.IpSecManager;
import android.net.IpSecSpiResponse;
+import android.net.ipsec.ike.ChildSaProposal;
+import android.net.ipsec.ike.IkeSaProposal;
+import android.net.ipsec.ike.SaProposal;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.util.Pair;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.ChildSaProposal;
-import com.android.ike.ikev2.IkeSaProposal;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.exceptions.NoValidProposalChosenException;
-import com.android.ike.ikev2.message.IkeSaPayload.Attribute;
-import com.android.ike.ikev2.message.IkeSaPayload.AttributeDecoder;
-import com.android.ike.ikev2.message.IkeSaPayload.ChildProposal;
-import com.android.ike.ikev2.message.IkeSaPayload.DhGroupTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.EsnTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IkeProposal;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.KeyLengthAttribute;
-import com.android.ike.ikev2.message.IkeSaPayload.PrfTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.Proposal;
-import com.android.ike.ikev2.message.IkeSaPayload.Transform;
-import com.android.ike.ikev2.message.IkeSaPayload.TransformDecoder;
-import com.android.ike.ikev2.message.IkeSaPayload.UnrecognizedAttribute;
-import com.android.ike.ikev2.message.IkeSaPayload.UnrecognizedTransform;
-import com.android.ike.ikev2.testutils.MockIpSecTestUtils;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.exceptions.NoValidProposalChosenException;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.Attribute;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.AttributeDecoder;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.ChildProposal;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.DhGroupTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EsnTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IkeProposal;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.KeyLengthAttribute;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.PrfTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.Proposal;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.Transform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.TransformDecoder;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.UnrecognizedAttribute;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.UnrecognizedTransform;
+import com.android.internal.net.ipsec.ike.testutils.MockIpSecTestUtils;
import com.android.server.IpSecService;
import libcore.net.InetAddressUtils;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeSkPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeSkPayloadTest.java
index f3af5b65..898db30f 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeSkPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeSkPayloadTest.java
@@ -14,16 +14,17 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.assertArrayEquals;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
+import android.net.ipsec.ike.SaProposal;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeSkfPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeSkfPayloadTest.java
index f51d1e60..3374a7dc 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeSkfPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeSkfPayloadTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -23,14 +23,15 @@ import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.SaProposal;
-import com.android.ike.ikev2.crypto.IkeCipher;
-import com.android.ike.ikev2.crypto.IkeMacIntegrity;
-import com.android.ike.ikev2.crypto.IkeNormalModeCipher;
-import com.android.ike.ikev2.exceptions.InvalidSyntaxException;
-import com.android.ike.ikev2.message.IkeSaPayload.EncryptionTransform;
-import com.android.ike.ikev2.message.IkeSaPayload.IntegrityTransform;
+import android.net.ipsec.ike.SaProposal;
+
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.crypto.IkeCipher;
+import com.android.internal.net.ipsec.ike.crypto.IkeMacIntegrity;
+import com.android.internal.net.ipsec.ike.crypto.IkeNormalModeCipher;
+import com.android.internal.net.ipsec.ike.exceptions.InvalidSyntaxException;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.EncryptionTransform;
+import com.android.internal.net.ipsec.ike.message.IkeSaPayload.IntegrityTransform;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeTestUtils.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeTestUtils.java
index a87f8ad4..05474379 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeTestUtils.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeTestUtils.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
-import static com.android.ike.ikev2.message.IkeMessage.DECODE_STATUS_UNPROTECTED_ERROR;
+import static com.android.internal.net.ipsec.ike.message.IkeMessage.DECODE_STATUS_UNPROTECTED_ERROR;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -24,12 +24,12 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import android.net.ipsec.ike.exceptions.IkeProtocolException;
import android.util.Pair;
-import com.android.ike.TestUtils;
-import com.android.ike.ikev2.exceptions.IkeProtocolException;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResult;
-import com.android.ike.ikev2.message.IkeMessage.DecodeResultError;
+import com.android.internal.net.TestUtils;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResult;
+import com.android.internal.net.ipsec.ike.message.IkeMessage.DecodeResultError;
import java.nio.ByteBuffer;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeTsPayloadTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeTsPayloadTest.java
index 1e455917..cbd6f930 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/message/IkeTsPayloadTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/message/IkeTsPayloadTest.java
@@ -14,15 +14,16 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.message;
+package com.android.internal.net.ipsec.ike.message;
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 com.android.ike.TestUtils;
-import com.android.ike.ikev2.IkeTrafficSelector;
+import android.net.ipsec.ike.IkeTrafficSelector;
+
+import com.android.internal.net.TestUtils;
import libcore.net.InetAddressUtils;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/testutils/CertUtils.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/testutils/CertUtils.java
index e42e5647..db128c80 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/testutils/CertUtils.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/testutils/CertUtils.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.testutils;
+package com.android.internal.net.ipsec.ike.testutils;
import android.content.Context;
import androidx.test.InstrumentationRegistry;
-import com.android.ike.ikev2.message.IkeMessage;
+import com.android.internal.net.ipsec.ike.message.IkeMessage;
import com.android.org.bouncycastle.util.io.pem.PemObject;
import com.android.org.bouncycastle.util.io.pem.PemReader;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/testutils/MockIpSecTestUtils.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/testutils/MockIpSecTestUtils.java
index 9659f5e4..742ff240 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/testutils/MockIpSecTestUtils.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/testutils/MockIpSecTestUtils.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.testutils;
+package com.android.internal.net.ipsec.ike.testutils;
import static android.system.OsConstants.AF_INET;
import static android.system.OsConstants.IPPROTO_UDP;
diff --git a/tests/iketests/src/java/com/android/ike/ikev2/utils/RetransmitterTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/utils/RetransmitterTest.java
index b1d4ea56..1fddb1d9 100644
--- a/tests/iketests/src/java/com/android/ike/ikev2/utils/RetransmitterTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/utils/RetransmitterTest.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.ike.ikev2.utils;
+package com.android.internal.net.ipsec.ike.utils;
-import static com.android.ike.ikev2.IkeSessionStateMachine.CMD_RETRANSMIT;
+import static com.android.internal.net.ipsec.ike.IkeSessionStateMachine.CMD_RETRANSMIT;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -33,7 +33,7 @@ import static org.mockito.Mockito.when;
import android.os.Handler;
import android.os.Message;
-import com.android.ike.ikev2.message.IkeMessage;
+import com.android.internal.net.ipsec.ike.message.IkeMessage;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/iketests/src/java/com/android/ike/utils/BigIntegerUtilsTest.java b/tests/iketests/src/java/com/android/internal/net/utils/BigIntegerUtilsTest.java
index a9babaef..29bb313d 100644
--- a/tests/iketests/src/java/com/android/ike/utils/BigIntegerUtilsTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/utils/BigIntegerUtilsTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.utils;
+package com.android.internal.net.utils;
import static org.junit.Assert.assertArrayEquals;
diff --git a/tests/iketests/src/java/com/android/ike/utils/LogTest.java b/tests/iketests/src/java/com/android/internal/net/utils/LogTest.java
index 9536e00b..23305aa7 100644
--- a/tests/iketests/src/java/com/android/ike/utils/LogTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/utils/LogTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.utils;
+package com.android.internal.net.utils;
import static org.junit.Assert.assertEquals;
diff --git a/tests/iketests/src/java/com/android/ike/utils/SimpleStateMachineTest.java b/tests/iketests/src/java/com/android/internal/net/utils/SimpleStateMachineTest.java
index b2ea9141..2ee8dc53 100644
--- a/tests/iketests/src/java/com/android/ike/utils/SimpleStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/utils/SimpleStateMachineTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.ike.utils;
+package com.android.internal.net.utils;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
@@ -22,7 +22,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import com.android.ike.utils.SimpleStateMachine.SimpleState;
+import com.android.internal.net.utils.SimpleStateMachine.SimpleState;
import org.junit.Before;
import org.junit.Test;