模块:Mongoid::Tasks::Encryption
Overview
该模块包含数据加密的辅助方法。
实例方法摘要折叠
-
# create_data_key (client_name: nil, kms_provider_name: nil, key_alt_name: nil) ⇒ 哈希
使用客户端配置中的 auto_encryption_options 为给定KMS提供商创建数据加密密钥。
实例方法详细信息
# create_data_key (client_name: nil, kms_provider_name: nil, key_alt_name: nil) ⇒哈希
使用客户端配置中的 auto_encryption_options 为给定KMS提供商创建数据加密密钥。
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/mongoid/tasks/ 加密.rb', line 24 def create_data_key(client_name: nil, kms_provider_name: nil, key_alt_name: nil) kms_provider_name, kms_providers, key_vault_namespace = prepare_arguments( kms_provider_name, client_name ) key_vault_client = Mongoid::客户端.访问.通过(database: key_vault_namespace.拆分(' 。 ').first) client_encryption = mongo::ClientEncryption.new( key_vault_client, key_vault_namespace: key_vault_namespace, kms_providers: kms_providers ) client_encryption_opts = {}.点击 do |opts| opts[:key_alt_names] = [key_alt_name] if key_alt_name end data_key_id = client_encryption.create_data_key(kms_provider_name, client_encryption_opts) { key_id: Base64.strict_encode 64(data_key_id.数据), kms_provider: kms_provider_name, key_vault_namespace: key_vault_namespace, key_alt_name: key_alt_name }.compact end |