Spec-Zone.ru › Ruby on Rails 8.0

класс 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