Spec-Zone.ru › Ruby on Rails 7.1

класс ActiveRecord::Encryption::KeyProvider

Родитель:
Объект

Служит для предоставления ключей:

  • Ключ шифрования

  • Список потенциальных ключей расшифрования. Поддержка множества ключей расшифрования поддерживает схемы ротации, где добавляются новые ключи, но старые ключи должны продолжать работать

Открытые методы класса

new(keys) Показать исходный код
# File activerecord/lib/active_record/encryption/key_provider.rb, line 11
def initialize(keys)
  @keys = Array(keys)
end

Открытые методы экземпляра

decryption_keys(encrypted_message) Показать исходный код
# 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() Показать исходный код
# 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

Возвращает первый ключ в списке в качестве активного ключа для выполнения шифрования

Если ActiveRecord::Encryption.config.store_key_references имеет значение true, ключ будет включать публичный тег, ссылающийся на сам ключ. Этот ключ будет сохранен в заголовках сообщения, зашифрованного с помощью этого ключа.

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API