Lines Matching defs:ChildSaSession

510   IKEV2_CHILD_SA_SESSION      *ChildSaSession;
514 ChildSaSession = AllocateZeroPool (sizeof (IKEV2_CHILD_SA_SESSION));
515 if (ChildSaSession == NULL) {
520 // Initialize the fields of ChildSaSession and its SessionCommon.
522 ChildSaSession->Signature = IKEV2_CHILD_SA_SESSION_SIGNATURE;
523 ChildSaSession->IkeSaSession = IkeSaSession;
524 ChildSaSession->MessageId = IkeSaSession->MessageId;
525 ChildSaSession->LocalPeerSpi = IkeGenerateSpi ();
526 ChildSaCommon = &ChildSaSession->SessionCommon;
533 SaCommon = &ChildSaSession->IkeSaSession->SessionCommon;
546 FreePool (ChildSaSession);
553 return ChildSaSession;
561 @param[in] ChildSaSession Pointer to IKEV2_CHILD_SA_SESSION to be registered.
567 IN IKEV2_CHILD_SA_SESSION *ChildSaSession,
581 SessionCommon = &ChildSaSession->SessionCommon;
582 IkeSaSession = ChildSaSession->IkeSaSession;
585 ChildSaSession->LocalPeerSpi,
598 Ikev2StoreSaData (ChildSaSession);
608 Ikev2ChildSaSessionInsert (&IkeSaSession->ChildSaEstablishSessionList, ChildSaSession);
628 if (ChildSaSession->Spd->Data->ProcessingPolicy->SaLifetime.HardLifetime != 0){
629 Lifetime = ChildSaSession->Spd->Data->ProcessingPolicy->SaLifetime.HardLifetime;
653 Find the ChildSaSession by it's MessagId.
655 @param[in] SaSessionList Pointer to a ChildSaSession List.
656 @param[in] Mid The messageId used to search ChildSaSession.
668 IKEV2_CHILD_SA_SESSION *ChildSaSession;
671 ChildSaSession = IKEV2_CHILD_SA_SESSION_BY_IKE_SA (Entry);
673 if (ChildSaSession->MessageId == Mid) {
674 return ChildSaSession;
699 IKEV2_CHILD_SA_SESSION *ChildSaSession;
702 ChildSaSession = IKEV2_CHILD_SA_SESSION_BY_IKE_SA (Entry);
704 if (ChildSaSession->RemotePeerSpi == Spi || ChildSaSession->LocalPeerSpi == Spi) {
705 return ChildSaSession;
716 @param[in] ChildSaSession Pointer to IKEV2_CHILD_SA_SESSION to be inserted.
722 IN IKEV2_CHILD_SA_SESSION *ChildSaSession
725 InsertTailList (SaSessionList, &ChildSaSession->ByIkeSa);
748 IKEV2_CHILD_SA_SESSION *ChildSaSession;
753 ChildSaSession = IKEV2_CHILD_SA_SESSION_BY_IKE_SA (Entry);
755 ChildSaSession = IKEV2_CHILD_SA_SESSION_BY_DEL_SA (Entry);
760 if (ChildSaSession->RemotePeerSpi == Spi || ChildSaSession->LocalPeerSpi == Spi) {
762 return ChildSaSession;
772 @param[in] ChildSaSession Pointer to IKEV2_CHILD_SA_SESSION.
779 IN IKEV2_CHILD_SA_SESSION *ChildSaSession
788 @param[in] ChildSaSession Pointer to IKEV2_CHILD_SA_SESSION.
793 IN IKEV2_CHILD_SA_SESSION *ChildSaSession
798 SessionCommon = &ChildSaSession->SessionCommon;
799 if (ChildSaSession->SaData != NULL) {
800 FreePool (ChildSaSession->SaData);
803 if (ChildSaSession->NiBlock != NULL) {
804 FreePool (ChildSaSession->NiBlock);
807 if (ChildSaSession->NrBlock != NULL) {
808 FreePool (ChildSaSession->NrBlock);
811 if (ChildSaSession->ChildKeymats.LocalPeerInfo.EspAlgoInfo.AuthKey != NULL) {
812 FreePool (ChildSaSession->ChildKeymats.LocalPeerInfo.EspAlgoInfo.AuthKey);
815 if (ChildSaSession->ChildKeymats.LocalPeerInfo.EspAlgoInfo.EncKey != NULL) {
816 FreePool (ChildSaSession->ChildKeymats.LocalPeerInfo.EspAlgoInfo.EncKey);
819 if (ChildSaSession->ChildKeymats.RemotePeerInfo.EspAlgoInfo.AuthKey != NULL) {
820 FreePool (ChildSaSession->ChildKeymats.RemotePeerInfo.EspAlgoInfo.AuthKey);
823 if (ChildSaSession->ChildKeymats.RemotePeerInfo.EspAlgoInfo.EncKey != NULL) {
824 FreePool (ChildSaSession->ChildKeymats.RemotePeerInfo.EspAlgoInfo.EncKey);
830 Ikev2DhBufferFree (ChildSaSession->DhBuffer);
835 if (ChildSaSession->SpdSelector != NULL) {
836 if (ChildSaSession->SpdSelector->LocalAddress != NULL) {
837 FreePool (ChildSaSession->SpdSelector->LocalAddress);
839 if (ChildSaSession->SpdSelector->RemoteAddress != NULL) {
840 FreePool (ChildSaSession->SpdSelector->RemoteAddress);
842 FreePool (ChildSaSession->SpdSelector);
845 FreePool (ChildSaSession);
1100 @param[in, out] ChildSaSession Pointer to the Child SA Session to be associated to
1109 IN OUT IKEV2_CHILD_SA_SESSION *ChildSaSession
1112 IpSecVisitConfigData (IPsecConfigDataTypeSpd, Ikev2MatchSpdEntry, ChildSaSession);
1113 if (ChildSaSession->Spd != NULL) {
1225 IKEV2_CHILD_SA_SESSION *ChildSaSession;
1274 ChildSaSession = IKEV2_CHILD_SA_SESSION_FROM_COMMON (SessionCommon);
1276 ProposalData->Spi = AllocateZeroPool (sizeof (ChildSaSession->LocalPeerSpi));
1280 &ChildSaSession->LocalPeerSpi,
1281 sizeof(ChildSaSession->LocalPeerSpi)
1341 ChildSaSession = IKEV2_CHILD_SA_SESSION_FROM_COMMON (SessionCommon);
1344 ProposalData->Spi = AllocateZeroPool (sizeof (ChildSaSession->LocalPeerSpi));
1348 &ChildSaSession->LocalPeerSpi,
1349 sizeof(ChildSaSession->LocalPeerSpi)
1407 @param[in] ChildSaSession Pointer to IKEV2_CHILD_SA_SESSION.
1412 IN IKEV2_CHILD_SA_SESSION *ChildSaSession
1423 SessionCommon = &ChildSaSession->SessionCommon;
1435 TempAddressCount = ChildSaSession->SpdSelector->LocalAddressCount;
1436 TempAddressInfo = ChildSaSession->SpdSelector->LocalAddress;
1438 ChildSaSession->SpdSelector->LocalAddressCount = ChildSaSession->SpdSelector->RemoteAddressCount;
1439 ChildSaSession->SpdSelector->LocalAddress = ChildSaSession->SpdSelector->RemoteAddress;
1441 ChildSaSession->SpdSelector->RemoteAddress = TempAddressInfo;
1442 ChildSaSession->SpdSelector->RemoteAddressCount= TempAddressCount;
1447 SaId.Spi = ChildSaSession->LocalPeerSpi;
1451 SaData.Mode = ChildSaSession->Spd->Data->ProcessingPolicy->Mode;
1459 &ChildSaSession->Spd->Data->ProcessingPolicy->TunnelOption->RemoteTunnelAddress,
1464 &ChildSaSession->Spd->Data->ProcessingPolicy->TunnelOption->LocalTunnelAddress,
1469 CopyMem (&SaId.DestAddress, &ChildSaSession->SessionCommon.LocalPeerIp, sizeof (EFI_IP_ADDRESS));
1470 CopyMem (&SaData.AlgoInfo, &ChildSaSession->ChildKeymats.LocalPeerInfo, sizeof (EFI_IPSEC_ALGO_INFO));
1471 SaData.SpdSelector = ChildSaSession->SpdSelector;
1488 ChildSaSession->SpdSelector->RemoteAddressCount = ChildSaSession->SpdSelector->LocalAddressCount;
1489 ChildSaSession->SpdSelector->RemoteAddress = ChildSaSession->SpdSelector->LocalAddress;
1491 ChildSaSession->SpdSelector->LocalAddress = TempAddressInfo;
1492 ChildSaSession->SpdSelector->LocalAddressCount = TempAddressCount;
1494 SaId.Spi = ChildSaSession->RemotePeerSpi;
1496 CopyMem (&SaId.DestAddress, &ChildSaSession->SessionCommon.RemotePeerIp, sizeof (EFI_IP_ADDRESS));
1497 CopyMem (&SaData.AlgoInfo, &ChildSaSession->ChildKeymats.RemotePeerInfo, sizeof (EFI_IPSEC_ALGO_INFO));
1498 SaData.SpdSelector = ChildSaSession->SpdSelector;
1506 &ChildSaSession->Spd->Data->ProcessingPolicy->TunnelOption->LocalTunnelAddress,
1511 &ChildSaSession->Spd->Data->ProcessingPolicy->TunnelOption->RemoteTunnelAddress,
1545 IKEV2_CHILD_SA_SESSION *ChildSaSession;
1567 ChildSaSession = IKEV2_CHILD_SA_SESSION_FROM_COMMON (SessionCommon);
1568 IkeSaSession = ChildSaSession->IkeSaSession;
1573 InsertTailList (&IkeSaSession->DeleteSaList, &ChildSaSession->ByDelete);
1581 ChildSaSession->LocalPeerSpi
1607 IKEV2_CHILD_SA_SESSION *ChildSaSession;
1615 ChildSaSession = NULL;
1634 ChildSaSession = IKEV2_CHILD_SA_SESSION_BY_IKE_SA (ChildSaEntry);
1640 // Delete LocalSpi & RemoteSpi and remove the ChildSaSession from the
1643 Ikev2ChildSaSilentDelete (IkeSaSession, ChildSaSession->LocalPeerSpi);
1684 ChildSaSession = IKEV2_CHILD_SA_SESSION_FROM_COMMON (SessionCommon);
1685 IkeSaSession = ChildSaSession->IkeSaSession;
1686 if (ChildSaSession->SessionCommon.State == IkeStateSaDeleting) {
1694 Ikev2ChildSaSilentDelete (IkeSaSession, ChildSaSession->LocalPeerSpi);
1697 ChildSaSession->LocalPeerSpi,
1703 ChildSaSession->LocalPeerSpi,
1708 Ikev2ChildSaSessionFree (ChildSaSession);
1731 Copy ChildSaSession->Spd->Selector to ChildSaSession->SpdSelector.
1733 ChildSaSession->SpdSelector stores the real Spdselector for its SA. Sometime,
1734 the SpdSelector in ChildSaSession is more accurated or the scope is smaller
1735 than the one in ChildSaSession->Spd, especially for the tunnel mode.
1737 @param[in, out] ChildSaSession Pointer to IKEV2_CHILD_SA_SESSION related to.
1742 IN OUT IKEV2_CHILD_SA_SESSION *ChildSaSession
1745 if (ChildSaSession->Spd != NULL && ChildSaSession->Spd->Selector != NULL) {
1746 if (ChildSaSession->SpdSelector == NULL) {
1747 ChildSaSession->SpdSelector = AllocateZeroPool (sizeof (EFI_IPSEC_SPD_SELECTOR));
1748 ASSERT (ChildSaSession->SpdSelector != NULL);
1751 ChildSaSession->SpdSelector,
1752 ChildSaSession->Spd->Selector,
1755 ChildSaSession->SpdSelector->RemoteAddress = AllocateCopyPool (
1756 ChildSaSession->Spd->Selector->RemoteAddressCount *
1758 ChildSaSession->Spd->Selector->RemoteAddress
1760 ChildSaSession->SpdSelector->LocalAddress = AllocateCopyPool (
1761 ChildSaSession->Spd->Selector->LocalAddressCount *
1763 ChildSaSession->Spd->Selector->LocalAddress
1766 ASSERT (ChildSaSession->SpdSelector->LocalAddress != NULL);
1767 ASSERT (ChildSaSession->SpdSelector->RemoteAddress != NULL);
1769 ChildSaSession->SpdSelector->RemoteAddressCount = ChildSaSession->Spd->Selector->RemoteAddressCount;
1770 ChildSaSession->SpdSelector->LocalAddressCount = ChildSaSession->Spd->Selector->LocalAddressCount;
1789 IKEV2_CHILD_SA_SESSION *ChildSaSession;
1793 // Create a new ChildSaSession.Insert it into processing list and initiate the common parameters.
1795 ChildSaSession = Ikev2ChildSaSessionAlloc (UdpService, IkeSaSession);
1796 ASSERT (ChildSaSession != NULL);
1801 ChildSaSession->Spd = IkeSaSession->Spd;
1802 ChildSaCommon = &ChildSaSession->SessionCommon;
1813 // If SPD->Selector is not NULL, copy it to the ChildSaSession->SpdSelector.
1814 // The ChildSaSession->SpdSelector might be changed after the traffic selector
1817 Ikev2ChildSaSessionSpdSelectorCreate (ChildSaSession);
1822 ChildSaSession->NiBlock = AllocateZeroPool (IkeSaSession->NiBlkSize);
1823 ASSERT (ChildSaSession->NiBlock != NULL);
1824 ChildSaSession->NiBlkSize = IkeSaSession->NiBlkSize;
1825 CopyMem (ChildSaSession->NiBlock, IkeSaSession->NiBlock, IkeSaSession->NiBlkSize);
1827 ChildSaSession->NrBlock = AllocateZeroPool (IkeSaSession->NrBlkSize);
1828 ASSERT (ChildSaSession->NrBlock != NULL);
1829 ChildSaSession->NrBlkSize = IkeSaSession->NrBlkSize;
1830 CopyMem (ChildSaSession->NrBlock, IkeSaSession->NrBlock, IkeSaSession->NrBlkSize);
1838 ChildSaSession->ProtoId = IkeSaSession->Spd->Selector->NextLayerProtocol;
1839 ChildSaSession->LocalPort = IkeSaSession->Spd->Selector->LocalPort;
1840 ChildSaSession->RemotePort = IkeSaSession->Spd->Selector->RemotePort;
1844 // Insert the new ChildSaSession into processing child SA list.
1846 Ikev2ChildSaSessionInsert (&IkeSaSession->ChildSaSessionList, ChildSaSession);
1847 return ChildSaSession;
1868 set the ChildSaSession->Spd to point to this SPD Selector.
1881 IKEV2_CHILD_SA_SESSION *ChildSaSession;
1896 ChildSaSession = (IKEV2_CHILD_SA_SESSION *) Context;
1897 IpVersion = ChildSaSession->SessionCommon.UdpService->IpVersion;
1914 SpdSelector->NextLayerProtocol != ChildSaSession->ProtoId
1919 if (SpdSelector->LocalPort != EFI_IPSEC_ANY_PORT && SpdSelector->LocalPort != ChildSaSession->LocalPort) {
1923 if (SpdSelector->RemotePort != EFI_IPSEC_ANY_PORT && SpdSelector->RemotePort != ChildSaSession->RemotePort) {
1930 &ChildSaSession->SessionCommon.LocalPeerIp,
1938 &ChildSaSession->SessionCommon.RemotePeerIp,
1944 ChildSaSession->Spd = IkeSearchSpdEntry (SpdSelector);
2327 @param[in, out] ChildSaSession Pointer to IKEV2_CHILD_SA_SESSION related to
2338 IN OUT IKEV2_CHILD_SA_SESSION *ChildSaSession,
2397 ChildSaSession->SessionCommon.SaParams = AllocateZeroPool (sizeof (IKEV2_SA_PARAMS));
2398 ASSERT (ChildSaSession->SessionCommon.SaParams != NULL);
2399 ChildSaSession->SessionCommon.SaParams->EncAlgId = PreferEncryptAlgorithm;
2400 ChildSaSession->SessionCommon.SaParams->EnckeyLen = PreferEncryptKeylength;
2401 ChildSaSession->SessionCommon.SaParams->IntegAlgId = PreferIntegrityAlgorithm;
2402 CopyMem (&ChildSaSession->RemotePeerSpi, ProposalData->Spi, sizeof (ChildSaSession->RemotePeerSpi));
2411 ChildSaSession->SaData = AllocateZeroPool (SaDataSize);
2412 ASSERT (ChildSaSession->SaData != NULL);
2414 ChildSaSession->SaData->NumProposals = 1;
2422 (IKEV2_PROPOSAL_DATA *) (ChildSaSession->SaData + 1),
2427 ((IKEV2_PROPOSAL_DATA *) (ChildSaSession->SaData + 1))->ProposalIndex = 1;
2429 ((IKEV2_PROPOSAL_DATA *) (ChildSaSession->SaData + 1))->Spi = AllocateCopyPool (
2430 sizeof (ChildSaSession->LocalPeerSpi),
2431 &ChildSaSession->LocalPeerSpi
2433 ASSERT (((IKEV2_PROPOSAL_DATA *) (ChildSaSession->SaData + 1))->Spi != NULL);
2472 ProposalData = (IKEV2_PROPOSAL_DATA *) (ChildSaSession->SaData + 1);
2474 for (ProposalIndex = 0; ProposalIndex < ChildSaSession->SaData->NumProposals && (!IsMatch); ProposalIndex++) {
2502 ChildSaSession->SessionCommon.SaParams = AllocateZeroPool (sizeof (IKEV2_SA_PARAMS));
2503 ASSERT (ChildSaSession->SessionCommon.SaParams != NULL);
2504 ChildSaSession->SessionCommon.SaParams->EncAlgId = PreferEncryptAlgorithm;
2505 ChildSaSession->SessionCommon.SaParams->EnckeyLen = PreferEncryptKeylength;
2506 ChildSaSession->SessionCommon.SaParams->IntegAlgId = PreferIntegrityAlgorithm;
2507 CopyMem (&ChildSaSession->RemotePeerSpi, ProposalData->Spi, sizeof (ChildSaSession->RemotePeerSpi));