mirror of
https://gh.wpcy.net/https://github.com/fairpm/did-manager.git
synced 2026-06-20 02:12:32 +08:00
Make code compatible with php 8.0 Signed-off-by: Namith Jawahar <namith.jawahar@gmail.com>
92 lines
2.1 KiB
Markdown
92 lines
2.1 KiB
Markdown
# FAIR DID Manager
|
|
|
|
`fairpm/did-manager` is the core FAIR DID library. It contains generic DID lifecycle management, PLC operations, key generation/export, and local key storage.
|
|
|
|
## Features
|
|
|
|
- Create, resolve, update, rotate, and deactivate `did:plc` identifiers
|
|
- Generate secp256k1 rotation keys and Ed25519 verification keys
|
|
- Encode/sign PLC operations with CBOR and multibase helpers
|
|
- Store DIDs, keys, and generic metadata locally
|
|
- Export keys in JSON, text, and environment-variable formats
|
|
|
|
## Requirements
|
|
|
|
- PHP 8.0 or higher
|
|
- Composer
|
|
- Extensions: `curl`, `json`
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
git clone https://github.com/fairpm/did-manager.git
|
|
cd did-manager
|
|
composer install
|
|
```
|
|
|
|
For WordPress package metadata parsing, install `fairpm/did-manager-wordpress` alongside this package.
|
|
|
|
## Quick Start
|
|
|
|
```php
|
|
<?php
|
|
|
|
require_once 'vendor/autoload.php';
|
|
|
|
use FAIR\DID\DIDManager;
|
|
use FAIR\DID\PLC\PlcClient;
|
|
use FAIR\DID\Storage\KeyStore;
|
|
|
|
$store = new KeyStore(__DIR__ . '/keys.json');
|
|
$client = new PlcClient();
|
|
$manager = new DIDManager($store, $client);
|
|
|
|
$result = $manager->create_did(
|
|
handle: 'example-package',
|
|
service_endpoint: 'https://example.com/did-endpoint',
|
|
type: 'package',
|
|
metadata: ['owner' => 'Example Org'],
|
|
);
|
|
|
|
echo $result['did'] . PHP_EOL;
|
|
```
|
|
|
|
## Namespaces
|
|
|
|
- `FAIR\DID\Crypto` for encoding, canonicalization, and DID helpers
|
|
- `FAIR\DID\Keys` for key generation, decoding, and export
|
|
- `FAIR\DID\PLC` for PLC client and operation objects
|
|
- `FAIR\DID\Storage` for local key/DID persistence
|
|
- `FAIR\DID` for high-level DID lifecycle orchestration
|
|
|
|
## Examples
|
|
|
|
Core examples remain in [examples](examples):
|
|
|
|
- `01-generate-keys.php`
|
|
- `02-plc-operations.php`
|
|
- `03-key-storage.php`
|
|
- `04-export-keys.php`
|
|
- `05-generate-and-submit-did.php`
|
|
|
|
WordPress examples were moved to the `did-manager-wordpress` package.
|
|
|
|
## Testing
|
|
|
|
```bash
|
|
composer test
|
|
composer lint
|
|
composer analyze
|
|
```
|
|
|
|
## Related Packages
|
|
|
|
- `fairpm/did-manager-wordpress` for WordPress header parsing, readme parsing, and FAIR metadata generation
|
|
|
|
## Security
|
|
|
|
Never commit private keys or generated keystore files to version control.
|
|
|
|
## License
|
|
|
|
GPL-3.0-or-later. See `LICENSE.md` for details.
|