1. Go to this page and download the library: Download k2gl/dsse library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use K2gl\Dsse\Envelope;
use K2gl\Dsse\EcdsaP256Signer;
$signer = EcdsaP256Signer::fromPem($privateKeyPem, keyId: 'k1');
$envelope = Envelope::sign('hello world', 'http://example.com/HelloWorld', $signer);
echo $envelope->toJson();
// {"payload":"aGVsbG8gd29ybGQ=","payloadType":"http://example.com/HelloWorld","signatures":[{"keyid":"k1","sig":"..."}]}
use K2gl\Dsse\Envelope;
use K2gl\Dsse\EcdsaP256Verifier;
use K2gl\Dsse\Exception\SignatureVerificationFailed;
$envelope = Envelope::fromJson($json);
try {
$payload = $envelope->verify(EcdsaP256Verifier::fromPem($publicKeyPem));
// $payload === 'hello world'
} catch (SignatureVerificationFailed) {
// no signature matched any supplied verifier
}
use K2gl\Dsse\Ed25519Signer;
use K2gl\Dsse\Ed25519Verifier;
$keypair = sodium_crypto_sign_keypair();
$signer = new Ed25519Signer(sodium_crypto_sign_secretkey($keypair), 'ed-1');
$verifier = new Ed25519Verifier(sodium_crypto_sign_publickey($keypair));
use K2gl\Dsse\EcdsaP384Signer;
use K2gl\Dsse\EcdsaP384Verifier;
use K2gl\Dsse\RsaSigner;
use K2gl\Dsse\RsaVerifier;
$signer = EcdsaP384Signer::fromPem($p384PrivateKeyPem);
$verifier = EcdsaP384Verifier::fromPem($p384PublicKeyPem);
// RSASSA-PKCS1-v1_5; hash algorithm defaults to sha256 (sha384/sha512 also supported)
$rsaSigner = RsaSigner::fromPem($rsaPrivateKeyPem, hashAlgorithm: 'sha512');
$rsaVerifier = RsaVerifier::fromPem($rsaPublicKeyPem, hashAlgorithm: 'sha512');
use K2gl\Dsse\PublicKey;
$verifier = PublicKey::fromPem($publicKeyPem); // detects the algorithm and curve
$verifier = PublicKey::fromJwk($jwk); // EC / RSA / OKP (Ed25519)
$payload = $envelope->verify($verifier);
use K2gl\Dsse\KeyId;
KeyId::sha256Spki($publicKeyPem); // hex SHA-256 of the DER key (cosign / Sigstore style)
KeyId::jwkThumbprint($jwk); // RFC 7638 base64url thumbprint
use K2gl\Dsse\Signer;
final class KmsSigner implements Signer
{
public function sign(string $message): string { /* sign PAE bytes, return raw signature */ }
public function keyId(): ?string { return 'arn:aws:kms:...'; }
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.