]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseRngLib/BaseRng.c
MdePkg: Create GetRandomNumber128 in RngLib
[mirror_edk2.git] / MdePkg / Library / BaseRngLib / BaseRng.c
index 279df3013c9f77975b96806b86dc55d48625aa0e..2c8df56286111a3e5fff78353b206790fa7d006f 100644 (file)
@@ -155,3 +155,35 @@ GetRandomNumber64 (
 \r
   return FALSE;\r
 }\r
+\r
+/**\r
+  Generates a 128-bit random number.\r
+\r
+  if Rand is NULL, then ASSERT().\r
+\r
+  @param[out] Rand     Buffer pointer to store the 128-bit random value.\r
+\r
+  @retval TRUE         Random number generated successfully.\r
+  @retval FALSE        Failed to generate the random number.\r
+\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+GetRandomNumber128 (\r
+  OUT     UINT64                    *Rand\r
+  )\r
+{\r
+  ASSERT (Rand != NULL);\r
+\r
+  //\r
+  // Read first 64 bits\r
+  //\r
+  if (!GetRandomNumber64 (Rand)) {\r
+    return FALSE;\r
+  }\r
+\r
+  //\r
+  // Read second 64 bits\r
+  //\r
+  return GetRandomNumber64 (++Rand);\r
+}\r