NetworkPkg/IpSecDxe/IkeCommon.h File Reference


Defines

#define IKE_DEFAULT_PORT   500
#define IKE_DEFAULT_TIMEOUT_INTERVAL   10000
#define IKE_NONCE_SIZE   16
#define IKE_MAX_RETRY   4
#define IKE_SPI_BASE   0x10000
#define IKE_PAYLOAD_SIGNATURE   SIGNATURE_32('I','K','E','P')
#define IKE_PAYLOAD_BY_PACKET(a)   CR(a,IKE_PAYLOAD,ByPacket,IKE_PAYLOAD_SIGNATURE)
#define IKE_PACKET_APPEND_PAYLOAD(IkePacket, IkePayload)
#define IKE_PACKET_REMOVE_PAYLOAD(IkePacket, IkePayload)
#define IKE_PACKET_END_PAYLOAD(IkePacket, Node)

Functions

UINT64 IkeGenerateCookie (VOID)
UINT8 * IkeGenerateNonce (IN UINTN NonceSize)
VOID IkeHdrNetToHost (IN OUT IKE_HEADER *Header)
VOID IkeHdrHostToNet (IN OUT IKE_HEADER *Header)
IKE_PAYLOADIkePayloadAlloc (VOID)
VOID IkePayloadFree (IN IKE_PAYLOAD *IkePayload)
UINT32 IkeGenerateSpi (VOID)
EFI_STATUS IkeGenerateIv (IN UINT8 *IvBuffer, IN UINTN IvSize)
UINT8 IkeGetVersionFromSession (IN UINT8 *Session)
IPSEC_SPD_ENTRYIkeSearchSpdEntry (IN EFI_IPSEC_SPD_SELECTOR *SpdSel)

Variables

MODP_GROUP OakleyModpGroup []
IKE_ALG_GUID_INFO mIPsecEncrAlgInfo []
IKE_ALG_GUID_INFO mIPsecAuthAlgInfo []

Detailed Description

Common operation of the IKE.

Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.

This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.


Define Documentation

#define IKE_DEFAULT_PORT   500

#define IKE_DEFAULT_TIMEOUT_INTERVAL   10000

Referenced by Ikev2SendIkePacket().

#define IKE_MAX_RETRY   4

Referenced by Ikev2ResendNotify().

#define IKE_NONCE_SIZE   16

#define IKE_PACKET_APPEND_PAYLOAD ( IkePacket,
IkePayload   ) 

Value:

do {                                                                  \
    InsertTailList(&(IkePacket)->PayloadList, &(IkePayload)->ByPacket); \
  } while (0)

Referenced by Ikev2AuthCertGenerator(), Ikev2AuthPskGenerator(), Ikev2CreateChildGenerator(), Ikev2DecodePacket(), Ikev2EncryptPacket(), Ikev2InfoGenerator(), Ikev2InitCertGenerator(), and Ikev2InitPskGenerator().

#define IKE_PACKET_END_PAYLOAD ( IkePacket,
Node   ) 

Value:

Node = GetFirstNode (&(IkePacket)->PayloadList);                      \
  while (!IsNodeAtEnd (&(IkePacket)->PayloadList, Node)) {             \
    Node = GetNextNode (&(IkePacket)->PayloadList, Node);              \
  }                                                                     \

Referenced by Ikev2InitCertGenerator().

#define IKE_PACKET_REMOVE_PAYLOAD ( IkePacket,
IkePayload   ) 

Value:

do {                                                                  \
    RemoveEntryList(&(IkePayload)->ByPacket);                           \
  } while (0)

Referenced by ClearAllPayloads().

#define IKE_PAYLOAD_BY_PACKET (  )     CR(a,IKE_PAYLOAD,ByPacket,IKE_PAYLOAD_SIGNATURE)

#define IKE_PAYLOAD_SIGNATURE   SIGNATURE_32('I','K','E','P')

Referenced by IkePayloadAlloc().

#define IKE_SPI_BASE   0x10000


Function Documentation

UINT64 IkeGenerateCookie ( VOID   ) 

Call Crypto Lib to generate a random value with eight-octet length.

Returns:
the 64 byte vaule.

References IpSecCryptoIoGenerateRandomBytes().

Referenced by Ikev2InitPskParser(), and Ikev2SaSessionAlloc().

EFI_STATUS IkeGenerateIv ( IN UINT8 *  IvBuffer,
IN UINTN  IvSize 
)

Generate a random data for IV

Parameters:
[in] IvBuffer The pointer of the IV buffer.
[in] IvSize The IV size.
Return values:
EFI_SUCCESS Create a random data for IV.
otherwise Failed.

References IpSecCryptoIoGenerateRandomBytes().

Referenced by Ikev2EncryptPacket().

UINT8* IkeGenerateNonce ( IN UINTN  NonceSize  ) 

Generate the random data for Nonce payload.

Parameters:
[in] NonceSize Size of the data in bytes.
Returns:
Buffer which contains the random data of the spcified size.

References IpSecCryptoIoGenerateRandomBytes().

Referenced by Ikev2InitPskGenerator(), and Ikev2InitPskParser().

UINT32 IkeGenerateSpi ( VOID   ) 

Generate an unused SPI

Returns:
a SPI in 4 bytes.
Generate an new SPI.

Returns:
a SPI in 4 bytes.

References mNextSpi.

Referenced by Ikev2ChildSaSessionAlloc().

UINT8 IkeGetVersionFromSession ( IN UINT8 *  Session  ) 

Get the IKE Version from the IKE_SA_SESSION.

Parameters:
[in] Session Pointer of the IKE_SA_SESSION.

References IKEV2_SA_SESSION_SIGNATURE.

Referenced by IkeDeleteAllSas(), and IkeNegotiate().

VOID IkeHdrHostToNet ( IN OUT IKE_HEADER Header  ) 

Convert the IKE Header from Host order to Network order.

Parameters:
[in,out] Header The pointer of the IKE_HEADER.

Referenced by Ikev2DecryptPacket(), Ikev2EncodePacket(), and Ikev2EncryptPacket().

VOID IkeHdrNetToHost ( IN OUT IKE_HEADER Header  ) 

Convert the IKE Header from Network order to Host order.

Parameters:
[in,out] Header The pointer of the IKE_HEADER.

Referenced by IkePacketFromNetbuf(), and Ikev2DecodePacket().

IKE_PAYLOAD* IkePayloadAlloc ( VOID   ) 

VOID IkePayloadFree ( IN IKE_PAYLOAD IkePayload  ) 

IPSEC_SPD_ENTRY* IkeSearchSpdEntry ( IN EFI_IPSEC_SPD_SELECTOR *  SpdSel  ) 

Find SPD entry by a specified SPD selector.

Parameters:
[in] SpdSel Point to SPD Selector to be searched for.
Return values:
Point to Spd Entry if the SPD entry found.
NULL if not found.
Find SPD entry by a specified SPD selector.

Parameters:
[in] SpdSel Point to SPD Selector to be searched for.
Return values:
Point to SPD Entry if the SPD entry found.
NULL if not found.

References CompareSpdSelector(), IPSEC_SPD_ENTRY_FROM_LIST, mConfigData, and _IPSEC_SPD_ENTRY::Selector.

Referenced by Ikev2MatchSpdEntry().


Variable Documentation


Generated on Mon Sep 28 08:49:06 2015 for NetworkPkg[ALL] by  doxygen 1.5.7.1