KeyProvider
提供金鑰
-
加密金鑰
-
潛在解密金鑰清單。提供多個解密金鑰支援輪替機制,其中會新增新金鑰,但需要舊金鑰持續運作
方法
- D
- E
- N
類別公開方法
new(keys) 連結
來源: 顯示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/key_provider.rb, line 11 def initialize(keys) @keys = Array(keys) end
執行個體公開方法
decryption_keys(encrypted_message) 連結
傳回解密金鑰清單
當訊息儲存對應加密金鑰的參考時,將會傳回包含該金鑰的陣列。若否,會傳回金鑰清單。
來源: 顯示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/key_provider.rb, line 32 def decryption_keys(encrypted_message) if encrypted_message.headers.encrypted_data_key_id keys_grouped_by_id[encrypted_message.headers.encrypted_data_key_id] else @keys end end
encryption_key() 連結
將清單中的最後一個金鑰傳回,作為執行加密作業的主動金鑰
當ActiveRecord::Encryption.config.store_key_references
為真時,金鑰將包括參考金鑰本身的公開標籤。該金鑰將儲存在加密訊息的公開標頭中
來源: 顯示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/key_provider.rb, line 20 def encryption_key @encryption_key ||= @keys.last.tap do |key| key.public_tags.encrypted_data_key_id = key.id if ActiveRecord::Encryption.config.store_key_references end @encryption_key end