3,7 → 3,7 |
/* |
* UUID & MAC Utils |
* Copyright 2017 - 2023 Daniel Marschall, ViaThinkSoft |
* Version 2023-09-06 |
* Version 2023-09-07 |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
348,7 → 348,7 |
NameSpaceUuid<OID> := "6ba7b812-9dad-11d1-80b4-00c04fd430c8". |
NameSpaceUuid<X500> := "6ba7b814-9dad-11d1-80b4-00c04fd430c8". |
|
<u>As defined by <a href="https://datatracker.ietf.org/doc/draft-ietf-uuidrev-rfc4122bis/">draft-ietf-uuidrev-rfc4122bis-11</a> Appendix B:</u><!-- TODO: When new RFC is published, replace the RFC number --> |
<u>As defined by <a href="https://datatracker.ietf.org/doc/draft-ietf-uuidrev-rfc4122bis/">draft-ietf-uuidrev-rfc4122bis-11</a> Appendix B:</u> |
<?php |
|
$tmp = []; |
358,6 → 358,7 |
$line .= ':= "'.$space.'".'; |
if (!$available) $line .= " (Currently not available on this system)"; |
$line .= "\n"; |
if (isset($tmp[$friendlyName])) continue; // Ignore "Internet Draft 12 Proposal" |
$tmp[$friendlyName] = $line; |
} |
} |
368,6 → 369,28 |
|
?> |
|
<u>As defined in <a href="https://github.com/ietf-wg-uuidrev/rfc4122bis/issues/143#issuecomment-1709117798">Internet Draft 12 Proposal</a>:</u> |
HashSpaceUuid<<i>HashAlgo</i>> := UUIDv5(NS_OID, OID[<i>HashAlgo</i>]). |
which results in the following UUIDs: |
<?php |
|
$tmp = []; |
foreach (get_uuidv8_hash_space_ids() as list($algo,$space,$friendlyName,$author,$available)) { |
if (strpos($author,'ViaThinkSoft') === false) { |
$line = str_pad('HashSpaceUuid<'.htmlentities($friendlyName).'>', 34, ' ', STR_PAD_RIGHT); |
$line .= ':= "'.$space.'".'; |
if (!$available) $line .= " (Currently not available on this system)"; |
$line .= "\n"; |
$tmp[$friendlyName] = $line; |
} |
} |
ksort($tmp); |
foreach ($tmp as $line) { |
echo $line; |
} |
|
?> |
|
<u>As defined by ViaThinkSoft for all other algorithms:</u> |
HashSpaceUuid<<i>HashAlgo</i>> := UUIDv5("1ee317e2-1853-64b2-8fe9-3c4a92df8582", <a href="https://www.php.net/manual/de/function.hash-algos.php">PhpName</a>[<i>HashAlgo</i>]). |
which results in the following UUIDs: |
405,12 → 428,25 |
<form method="GET" action="interprete_uuid.php"> |
<label>Hash algorithm:</label><select name="version" id="nb_version" onchange="javascript:nb_version_choose();"> |
<?php |
|
echo "\t\t<option disabled>--- UUIDv3 (RFC 4122) ---</option>\n"; |
echo "\t\t<option value=\"3\">MD5</option>\n"; |
echo "\t\t<option disabled>--- UUIDv5 (RFC 4122) ---</option>\n"; |
echo "\t\t<option value=\"5\" selected>SHA1</option>\n"; |
|
$categories = []; |
foreach (get_uuidv8_hash_space_ids() as list($algo,$space,$friendlyName,$author,$available)) { |
if (!in_array($author, $categories)) $categories[] = $author; |
} |
sort($categories); |
|
foreach ($categories as $category) { |
echo "\t\t<option disabled>--- UUIDv8 (defined by ".htmlentities($category).") ---</option>\n"; |
$tmp = []; |
$tmp['MD5'] = '<option value="3">MD5 (UUIDv3)</option>'; |
$tmp['SHA1'] = '<option value="5" selected>SHA1 (UUIDv5)</option>'; |
foreach (get_uuidv8_hash_space_ids() as list($algo,$space,$friendlyName,$author,$available)) { |
if ($author != $category) continue; |
if ($available) { |
$tmp[$friendlyName] = '<option value="8_namebased_'.$space.'">'.htmlentities($friendlyName).' (UUIDv8 defined by '.htmlentities($author).')</option>'; |
$tmp[$friendlyName] = '<option value="8_namebased_'.$space.'">'.htmlentities($friendlyName).'</option>'; |
} |
} |
ksort($tmp); |
417,6 → 453,7 |
foreach ($tmp as $html) { |
echo "\t\t$html\n"; |
} |
} |
?> |
</select><font size="-1"><span id="nb_hash_info"></span></font><br> |
<label>Namespace:</label><select name="namespace_choose" id="nb_nsc" onchange="javascript:nb_ns_choose();"> |