Spec-Zone.ru › Ruby on Rails 7.2

класс ActiveRecord::Encryption::EnvelopeEncryptionKeyProvider

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

Реализует простой подход к шифрованию конверта, где:

  • Он генерирует случайный ключ шифрования данных для каждой операции шифрования.

  • Он сохраняет сгенерированный ключ вместе с зашифрованной полезной нагрузкой. Он шифрует этот ключ с помощью основного ключа, предоставленного в active_record_encryption.primary_key учетных данных.

Этот поставщик может работать с несколькими основными ключами. Он будет использовать последний для шифрования.

Когда config.active_record.encryption.store_key_references имеет значение true, он также сохранит ссылку на конкретный основной ключ, который был использован для шифрования ключа шифрования данных. В противном случае он попробует все настроенные основные ключи, чтобы найти правильный, для возвращения правильного ключа расшифровки.

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

active_primary_key() Показать исходный код
# File activerecord/lib/active_record/encryption/envelope_encryption_key_provider.rb, line 31
def active_primary_key
  @active_primary_key ||= primary_key_provider.encryption_key
end
decryption_keys(encrypted_message) Показать исходный код
# File activerecord/lib/active_record/encryption/envelope_encryption_key_provider.rb, line 26
def decryption_keys(encrypted_message)
  secret = decrypt_data_key(encrypted_message)
  secret ? [ActiveRecord::Encryption::Key.new(secret)] : []
end
encryption_key() Показать исходный код
# File activerecord/lib/active_record/encryption/envelope_encryption_key_provider.rb, line 18
def encryption_key
  random_secret = generate_random_secret
  ActiveRecord::Encryption::Key.new(random_secret).tap do |key|
    key.public_tags.encrypted_data_key = encrypt_data_key(random_secret)
    key.public_tags.encrypted_data_key_id = active_primary_key.id if ActiveRecord::Encryption.config.store_key_references
  end
end

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

Spec-Zone.ru

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