mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 23:38:38 +09:00
No Issue - Implement crypto.randomUUID
We already have code in the platform to generate random UUIDs. This simply exposes that functionality via the crypto.UUID function
This commit is contained in:
parent
48c27934c7
commit
9e6a0c089f
3 changed files with 27 additions and 0 deletions
|
|
@ -115,6 +115,27 @@ Crypto::GetRandomValues(JSContext* aCx, const ArrayBufferView& aArray,
|
|||
aRetval.set(view);
|
||||
}
|
||||
|
||||
void Crypto::RandomUUID(nsAString& aRetVal)
|
||||
{
|
||||
// NSID_LENGTH == 39 == 36 UUID chars + 2 curly braces + 1 NUL byte
|
||||
static_assert(NSID_LENGTH == 39);
|
||||
|
||||
nsCOMPtr<nsIUUIDGenerator> uuidgen =
|
||||
do_GetService("@mozilla.org/uuid-generator;1");
|
||||
|
||||
nsID uuid;
|
||||
|
||||
nsresult rv = uuidgen->GenerateUUIDInPlace(&uuid);
|
||||
|
||||
char uuidBuffer[NSID_LENGTH];
|
||||
uuid.ToProvidedString(uuidBuffer);
|
||||
|
||||
nsCString asciiString(uuidBuffer);
|
||||
|
||||
// Convert UUID chars to UTF-16 retval, omitting the curly braces and NUL
|
||||
CopyASCIItoUTF16(Substring(asciiString, 1, NSID_LENGTH - 3), aRetVal);
|
||||
}
|
||||
|
||||
SubtleCrypto*
|
||||
Crypto::Subtle()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue