+++ /dev/null
-/** @file\r
- Common operation of the IKE.\r
-\r
- Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>\r
-\r
- SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef _IKE_COMMON_H_\r
-#define _IKE_COMMON_H_\r
-\r
-#include <Protocol/Udp4.h>\r
-#include <Protocol/Udp6.h>\r
-#include <Protocol/Ip4Config2.h>\r
-\r
-#include <Library/BaseLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/UefiRuntimeServicesTableLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/UdpIoLib.h>\r
-#include <Library/BaseCryptLib.h>\r
-\r
-#include "Ikev2/Ikev2.h"\r
-#include "IpSecImpl.h"\r
-#include "IkePacket.h"\r
-#include "IpSecCryptIo.h"\r
-\r
-\r
-#define IKE_DEFAULT_PORT 500\r
-#define IKE_DEFAULT_TIMEOUT_INTERVAL 10000 // 10s\r
-#define IKE_NONCE_SIZE 16\r
-#define IKE_MAX_RETRY 4\r
-#define IKE_SPI_BASE 0x100\r
-#define IKE_PAYLOAD_SIGNATURE SIGNATURE_32('I','K','E','P')\r
-#define IKE_PAYLOAD_BY_PACKET(a) CR(a,IKE_PAYLOAD,ByPacket,IKE_PAYLOAD_SIGNATURE)\r
-\r
-\r
-#define IKE_PACKET_APPEND_PAYLOAD(IkePacket,IkePayload) \\r
- do { \\r
- InsertTailList(&(IkePacket)->PayloadList, &(IkePayload)->ByPacket); \\r
- } while (0)\r
-\r
-#define IKE_PACKET_REMOVE_PAYLOAD(IkePacket,IkePayload) \\r
- do { \\r
- RemoveEntryList(&(IkePayload)->ByPacket); \\r
- } while (0)\r
-\r
-#define IKE_PACKET_END_PAYLOAD(IkePacket, Node) \\r
- Node = GetFirstNode (&(IkePacket)->PayloadList); \\r
- while (!IsNodeAtEnd (&(IkePacket)->PayloadList, Node)) { \\r
- Node = GetNextNode (&(IkePacket)->PayloadList, Node); \\r
- } \\r
-\r
-/**\r
- Call Crypto Lib to generate a random value with eight-octet length.\r
-\r
- @return the 64 byte vaule.\r
-\r
-**/\r
-UINT64\r
-IkeGenerateCookie (\r
- VOID\r
- );\r
-\r
-/**\r
- Generate the random data for Nonce payload.\r
-\r
- @param[in] NonceSize Size of the data in bytes.\r
-\r
- @return Buffer which contains the random data of the spcified size.\r
-\r
-**/\r
-UINT8 *\r
-IkeGenerateNonce (\r
- IN UINTN NonceSize\r
- );\r
-\r
-/**\r
- Convert the IKE Header from Network order to Host order.\r
-\r
- @param[in, out] Header The pointer of the IKE_HEADER.\r
-\r
-**/\r
-VOID\r
-IkeHdrNetToHost (\r
- IN OUT IKE_HEADER *Header\r
- );\r
-\r
-\r
-/**\r
- Convert the IKE Header from Host order to Network order.\r
-\r
- @param[in, out] Header The pointer of the IKE_HEADER.\r
-\r
-**/\r
-VOID\r
-IkeHdrHostToNet (\r
- IN OUT IKE_HEADER *Header\r
- );\r
-\r
-/**\r
- Allocate a buffer of IKE_PAYLOAD and set its Signature.\r
-\r
- @return A buffer of IKE_PAYLOAD.\r
-\r
-**/\r
-IKE_PAYLOAD *\r
-IkePayloadAlloc (\r
- VOID\r
- );\r
-\r
-/**\r
- Free a specified IKE_PAYLOAD buffer.\r
-\r
- @param[in] IkePayload Pointer of IKE_PAYLOAD to be freed.\r
-\r
-**/\r
-VOID\r
-IkePayloadFree (\r
- IN IKE_PAYLOAD *IkePayload\r
- );\r
-\r
-/**\r
- Generate an new SPI.\r
-\r
- @param[in] IkeSaSession Pointer to IKEV2_SA_SESSION related to this Child SA\r
- Session.\r
- @param[in, out] SpiValue Pointer to the new generated SPI value.\r
-\r
- @retval EFI_SUCCESS The operation performs successfully.\r
- @retval Otherwise The operation is failed.\r
-\r
-**/\r
-EFI_STATUS\r
-IkeGenerateSpi (\r
- IN IKEV2_SA_SESSION *IkeSaSession,\r
- IN OUT UINT32 *SpiValue\r
- );\r
-\r
-/**\r
- Generate a random data for IV\r
-\r
- @param[in] IvBuffer The pointer of the IV buffer.\r
- @param[in] IvSize The IV size.\r
-\r
- @retval EFI_SUCCESS Create a random data for IV.\r
- @retval otherwise Failed.\r
-\r
-**/\r
-EFI_STATUS\r
-IkeGenerateIv (\r
- IN UINT8 *IvBuffer,\r
- IN UINTN IvSize\r
- );\r
-\r
-/**\r
- Get the IKE Version from the IKE_SA_SESSION.\r
-\r
- @param[in] Session Pointer of the IKE_SA_SESSION.\r
-\r
-**/\r
-UINT8\r
-IkeGetVersionFromSession (\r
- IN UINT8 *Session\r
- );\r
-\r
-/**\r
- Find SPD entry by a specified SPD selector.\r
-\r
- @param[in] SpdSel Point to SPD Selector to be searched for.\r
-\r
- @retval Point to Spd Entry if the SPD entry found.\r
- @retval NULL if not found.\r
-\r
-**/\r
-IPSEC_SPD_ENTRY *\r
-IkeSearchSpdEntry (\r
- IN EFI_IPSEC_SPD_SELECTOR *SpdSel\r
- );\r
-\r
-extern MODP_GROUP OakleyModpGroup[];\r
-extern IKE_ALG_GUID_INFO mIPsecEncrAlgInfo[];\r
-extern IKE_ALG_GUID_INFO mIPsecAuthAlgInfo[];\r
-\r
-#endif\r
-\r