MongoDB\Driver\ClientEncryption::rewrapManyDataKey()

重新包装多个数据密钥,将其从一个密钥外部重新包装到另一个密钥外部

首字母:M

函数名称:MongoDB\Driver\ClientEncryption::rewrapManyDataKey()

函数描述:重新包装多个数据密钥,将其从一个密钥外部重新包装到另一个密钥外部。

适用版本:该函数在MongoDB PHP扩展版本1.7.0及以上版本可用。

用法:

MongoDB\Driver\ClientEncryption::rewrapManyDataKey(
 string $keyVaultNamespace,
 array $keyAltNames,
 string $wrappingKey,
 string $unwrappingKey
): array|object

参数:

  • $keyVaultNamespace:密钥库的命名空间。
  • $keyAltNames:待重新包装的数据密钥的备用名称数组。
  • $wrappingKey:用于重新包装数据密钥的密钥ID或名称。
  • $unwrappingKey:用于解包数据密钥的密钥ID或名称。

返回值:

  • 成功时,返回一个包含重新包装的数据密钥的数组或对象。
  • 失败时,抛出MongoDB\Driver\Exception\Exception或其子类的异常。

示例:

// 创建一个MongoDB\Client实例
$client = new MongoDB\Client("mongodb://localhost:27017");
// 创建一个MongoDB\Driver\ClientEncryption实例
$clientEncryption = new MongoDB\Driver\ClientEncryption($client);
// 定义待重新包装的数据密钥备用名称数组
$keyAltNames = [
 "dataKey1",
 "dataKey2"
];
// 定义用于重新包装和解包数据密钥的密钥ID或名称
$wrappingKey = "wrappingKey";
$unwrappingKey = "unwrappingKey";
try {
 // 重新包装多个数据密钥
 $rewrappedDataKeys = $clientEncryption->rewrapManyDataKey(
 "myKeyVault.namespace",
 $keyAltNames,
 $wrappingKey,
 $unwrappingKey
 );
 // 打印重新包装的数据密钥
 foreach ($rewrappedDataKeys as $keyAltName => $rewrappedDataKey) {
 echo "Rewrapped data key for {$keyAltName}: {$rewrappedDataKey}\n";
 }
} catch (MongoDB\Driver\Exception\Exception $e) {
 echo "Error: " . $e->getMessage() . "\n";
}

注意事项:

  • 该函数需要MongoDB扩展1.7.0及以上版本。
  • 在调用此函数之前,需要先创建一个MongoDB\Driver\ClientEncryption实例。
  • 在调用此函数之前,需要确保已经成功创建了密钥库,并且存在指定的密钥ID或名称。

同首字母函数