Spec-Zone.ru › Ruby on Rails 8.1

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

Родительский класс:
Object

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