aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php
diff options
context:
space:
mode:
authorMax Kostikov <max@kostikov.co>2020-12-04 14:33:34 +0100
committerMax Kostikov <max@kostikov.co>2020-12-04 14:33:34 +0100
commita9dd6d6bdbc27e11ffe71644670686d82e05420f (patch)
tree05dd57d1c3f2a8b7541598544b92dbbfe964c329 /vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php
parentc9ce562369556ae01044dfb91541c4e4ee35af9e (diff)
parent9c7ec55b4049599f3a61192eaf020e3a112dfa0e (diff)
downloadvolse-hubzilla-a9dd6d6bdbc27e11ffe71644670686d82e05420f.tar.gz
volse-hubzilla-a9dd6d6bdbc27e11ffe71644670686d82e05420f.tar.bz2
volse-hubzilla-a9dd6d6bdbc27e11ffe71644670686d82e05420f.zip
Merge branch 'dev' into 'dev'
Dev sync See merge request kostikov/core!2
Diffstat (limited to 'vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php')
-rw-r--r--vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php54
1 files changed, 54 insertions, 0 deletions
diff --git a/vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php b/vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php
new file mode 100644
index 000000000..93b786878
--- /dev/null
+++ b/vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the ramsey/uuid library
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
+ * @license http://opensource.org/licenses/MIT MIT
+ */
+
+declare(strict_types=1);
+
+namespace Ramsey\Uuid\Generator;
+
+use Ramsey\Uuid\Exception\NameException;
+use Ramsey\Uuid\UuidInterface;
+
+use function sprintf;
+use function uuid_generate_md5;
+use function uuid_generate_sha1;
+use function uuid_parse;
+
+/**
+ * PeclUuidNameGenerator generates strings of binary data from a namespace and a
+ * name, using ext-uuid
+ *
+ * @link https://pecl.php.net/package/uuid ext-uuid
+ */
+class PeclUuidNameGenerator implements NameGeneratorInterface
+{
+ /** @psalm-pure */
+ public function generate(UuidInterface $ns, string $name, string $hashAlgorithm): string
+ {
+ switch ($hashAlgorithm) {
+ case 'md5':
+ $uuid = (string) uuid_generate_md5($ns->toString(), $name);
+
+ break;
+ case 'sha1':
+ $uuid = (string) uuid_generate_sha1($ns->toString(), $name);
+
+ break;
+ default:
+ throw new NameException(sprintf(
+ 'Unable to hash namespace and name with algorithm \'%s\'',
+ $hashAlgorithm
+ ));
+ }
+
+ return (string) uuid_parse($uuid);
+ }
+}