unitpay / shamir
Shamir PHP implementation
1.0.0
2021-09-29 16:15 UTC
Requires
- php: ^7.4|^8.0
Requires (Dev)
- phpunit/phpunit: ^9.4
- roave/infection-static-analysis-plugin: ^1.5
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.10
This package is not auto-updated.
Last update: 2025-03-13 23:39:49 UTC
README
PHP Shamir's Secret Sharing implementation. Inspired by hashicorp vault shamir. Compatible with Simple Shamir's Secret Sharing (s4).
Requirements
- PHP 7.4 or higher.
Installation
The package could be installed with composer:
composer require unitpay/shamir --prefer-dist
Usage
Split secret to parts with threshold
$secret = 'Some super secret'; $parts = 5; $threshold = 3; $shares = Shamir::split($secret, $parts, $threshold);
Reconstruct shares
$recoveredSecret = Shamir::reconstruct([$parts[1], $parts[0], $parts[3]]);
Testing
Unit testing
The package is tested with PHPUnit. To run tests:
./vendor/bin/phpunit
Mutation testing
The package tests are checked with Infection mutation framework with Infection Static Analysis Plugin. To run it:
./vendor/bin/roave-infection-static-analysis-plugin
Static analysis
The code is statically analyzed with Psalm. To run static analysis:
./vendor/bin/psalm
License
It is released under the terms of the MIT License.
Please see LICENSE
for more information.