diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-11-11 21:20:57 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-11-11 21:20:57 +0000 |
commit | f4e6b1361762f94a263f97e8b502f672d1eca9e5 (patch) | |
tree | b39c3e794945072d38b97c963c5a6f10753514e1 | |
parent | 7ffef5cae6d3c93c93b4055fd22517d44f77acda (diff) | |
parent | eb4c77d7228f956f928c7d3500a220339ee78388 (diff) | |
download | ike-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.java | 136 | ||||
-rw-r--r-- | src/java/com/android/internal/net/crypto/KeyGenerationUtils.java | 81 | ||||
-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.java | 56 | ||||
-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.java | 336 | ||||
-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.java | 111 | ||||
-rw-r--r-- | tests/iketests/src/java/com/android/ike/eap/statemachine/EapAkaPrimeMethodStateMachineTest.java | 30 | ||||
-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.java | 382 | ||||
-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.java | 93 | ||||
-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.java | 354 | ||||
-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.java | 74 | ||||
-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; |