summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/IpSecDxe/Ikev2/Utility.c
diff options
context:
space:
mode:
authorJiaxin Wu <jiaxin.wu@intel.com>2016-07-20 10:53:31 +0800
committerJiaxin Wu <jiaxin.wu@intel.com>2016-09-06 19:01:04 +0800
commit96c13c011766a950247c743887705cc035a15497 (patch)
treef9fa7956c1bba8a0554b995c4ddea3101cc7a089 /NetworkPkg/IpSecDxe/Ikev2/Utility.c
parent8c5f78a2cc15199e3f77ae4b156023af366fd6c7 (diff)
downloadedk2-96c13c011766a950247c743887705cc035a15497.tar.gz
edk2-96c13c011766a950247c743887705cc035a15497.tar.bz2
edk2-96c13c011766a950247c743887705cc035a15497.zip
NetworkPkg/IpSecDxe: Generate SPI randomly and correct IKE_SPI_BASE value
This path made the following update: * Generate SPI randomly. * Correct IKE_SPI_BASE value according RFC 4302/4303. Cc: Ye Ting <ting.ye@intel.com> Cc: Fu Siyuan <siyuan.fu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com> Reviewed-by: Ye Ting <ting.ye@intel.com> Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Diffstat (limited to 'NetworkPkg/IpSecDxe/Ikev2/Utility.c')
-rw-r--r--NetworkPkg/IpSecDxe/Ikev2/Utility.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/NetworkPkg/IpSecDxe/Ikev2/Utility.c b/NetworkPkg/IpSecDxe/Ikev2/Utility.c
index 5b26ba1d02..c3655328c4 100644
--- a/NetworkPkg/IpSecDxe/Ikev2/Utility.c
+++ b/NetworkPkg/IpSecDxe/Ikev2/Utility.c
@@ -525,7 +525,16 @@ Ikev2ChildSaSessionAlloc (
ChildSaSession->Signature = IKEV2_CHILD_SA_SESSION_SIGNATURE;
ChildSaSession->IkeSaSession = IkeSaSession;
ChildSaSession->MessageId = IkeSaSession->MessageId;
- ChildSaSession->LocalPeerSpi = IkeGenerateSpi ();
+
+ //
+ // Generate an new SPI.
+ //
+ Status = IkeGenerateSpi (IkeSaSession, &(ChildSaSession->LocalPeerSpi));
+ if (EFI_ERROR (Status)) {
+ FreePool (ChildSaSession);
+ return NULL;
+ }
+
ChildSaCommon = &ChildSaSession->SessionCommon;
ChildSaCommon->UdpService = UdpService;
ChildSaCommon->Private = IkeSaSession->SessionCommon.Private;