mirror of
https://github.com/macintoshplus/mongo-php-driver.git
synced 2026-03-26 18:02:10 +01:00
* Use non-breaking space in OS axis labels * Revise titles and Manager construction in autoEncryption tests * Define CSFLE_KEY_VAULT_NS and CSFLE_LOCAL_KEY constants The value for CSFLE_KEY_VAULT_NS is based on the example from PHPLIB-826. This was not required but helps makes all tests consistent and will make it easier if we need to add functionality to a helper to drop the key vault collection before a test. Using CSFLE_LOCAL_KEY allows removal of a duplicated string literal in various CSFLE tests. Although the new constant wasn't required for all tests (empty strings worked fine to satisfy option validation), using a constant helps ensure consistency across the test suite. Also use create_test_manager() in more places when basic.inc is included. The remaining instances of direct Manager construction should only be in tests where basic.inc isn't used.
31 lines
893 B
PHP
31 lines
893 B
PHP
--TEST--
|
|
MongoDB\Driver\ClientEncryption::decrypt()
|
|
--SKIPIF--
|
|
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
|
|
<?php skip_if_not_libmongocrypt(); ?>
|
|
<?php skip_if_not_live(); ?>
|
|
<?php skip_if_not_server_storage_engine('wiredTiger'); ?>
|
|
--FILE--
|
|
<?php
|
|
|
|
require_once __DIR__ . "/../utils/basic.inc";
|
|
|
|
$manager = create_test_manager();
|
|
|
|
$clientEncryption = $manager->createClientEncryption([
|
|
'keyVaultNamespace' => CSFLE_KEY_VAULT_NS,
|
|
'kmsProviders' => ['local' => ['key' => new MongoDB\BSON\Binary(CSFLE_LOCAL_KEY, 0)]],
|
|
]);
|
|
|
|
$keyId = $clientEncryption->createDataKey('local');
|
|
|
|
$encrypted = $clientEncryption->encrypt('top-secret', ['keyId' => $keyId, 'algorithm' => MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC]);
|
|
var_dump($clientEncryption->decrypt($encrypted));
|
|
|
|
?>
|
|
===DONE===
|
|
<?php exit(0); ?>
|
|
--EXPECTF--
|
|
string(10) "top-secret"
|
|
===DONE===
|