2017 © Pedro Peláez
 

library cloud-kms

Cloud KMS Client for PHP

image

google/cloud-kms

Cloud KMS Client for PHP

  • Thursday, July 19, 2018
  • by bshaffer
  • Repository
  • 43 Watchers
  • 0 Stars
  • 3 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Cloud KMS for PHP

Idiomatic PHP client for Cloud KMS., (*1)

Latest Stable Version Packagist, (*2)

NOTE: This repository is part of Google Cloud PHP. Any support requests, bug reports, or development contributions should be directed to that project., (*3)

Installation

To begin, install the preferred dependency manager for PHP, Composer., (*4)

Now install this component:, (*5)

$ composer require google/cloud-kms

This component supports both REST over HTTP/1.1 and gRPC. In order to take advantage of the benefits offered by gRPC (such as streaming methods) please see our gRPC installation guide., (*6)

Authentication

Please see our Authentication guide for more information on authenticating your client. Once authenticated, you'll be ready to start making requests., (*7)

Sample

require __DIR__ . '/vendor/autoload.php';

use Google\ApiCore\ApiException;
use Google\Cloud\Kms\V1\CryptoKey;
use Google\Cloud\Kms\V1\CryptoKey\CryptoKeyPurpose;
use Google\Cloud\Kms\V1\KeyManagementServiceClient;
use Google\Cloud\Kms\V1\KeyRing;

$client = new KeyManagementServiceClient();

$projectId = 'example-project';
$location = 'global';

// Create a keyring
$keyRingId = 'example-keyring';
$locationName = $client::locationName($projectId, $location);
$keyRingName = $client::keyRingName($projectId, $location, $keyRingId);

try {
    $keyRing = $client->getKeyRing($keyRingName);
} catch (ApiException $e) {
    if ($e->getStatus() === 'NOT_FOUND') {
        $keyRing = new KeyRing();
        $keyRing->setName($keyRingName);
        $client->createKeyRing($locationName, $keyRingId, $keyRing);
    }
}

// Create a cryptokey
$keyId = 'example-key';
$keyName = $client::cryptoKeyName($projectId, $location, $keyRingId, $keyId);

try {
    $cryptoKey = $client->getCryptoKey($keyName);
} catch (ApiException $e) {
    if ($e->getStatus() === 'NOT_FOUND') {
        $cryptoKey = new CryptoKey();
        $cryptoKey->setPurpose(CryptoKeyPurpose::ENCRYPT_DECRYPT);
        $cryptoKey = $client->createCryptoKey($keyRingName, $keyId, $cryptoKey);
    }
}

// Encrypt and decrypt
$secret = 'My secret text';
$response = $client->encrypt($keyName, $secret);
$cipherText = $response->getCiphertext();

$response = $client->decrypt($keyName, $cipherText);

$plainText = $response->getPlaintext();

assert($secret === $plainText);

Debugging

Please see our Debugging guide for more information about the debugging tools., (*8)

Version

This component is considered GA (generally available). As such, it will not introduce backwards-incompatible changes in any minor or patch releases. We will address issues and requests with the highest priority., (*9)

Next Steps

  1. Understand the official documentation.

The Versions

19/07 2018

dev-master

9999999-dev

Cloud KMS Client for PHP

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

19/07 2018

v0.2.0

0.2.0.0

Cloud KMS Client for PHP

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

11/07 2018

v0.1.1

0.1.1.0

Cloud KMS Client for PHP

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

03/07 2018

v0.1.0

0.1.0.0

Cloud KMS Client for PHP

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires