diff options
author | Jiaxin Wu <jiaxin.wu@intel.com> | 2016-07-20 10:53:31 +0800 |
---|---|---|
committer | Jiaxin Wu <jiaxin.wu@intel.com> | 2016-09-06 19:01:04 +0800 |
commit | 96c13c011766a950247c743887705cc035a15497 (patch) | |
tree | f9fa7956c1bba8a0554b995c4ddea3101cc7a089 /NetworkPkg/IpSecDxe/Ikev2 | |
parent | 8c5f78a2cc15199e3f77ae4b156023af366fd6c7 (diff) | |
download | edk2-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')
-rw-r--r-- | NetworkPkg/IpSecDxe/Ikev2/Utility.c | 11 |
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;
|