• Thirunarayanan Balathandayuthapani's avatar
    MDEV-14180 Automatically disable key rotation checks for file_key_managment plugin · 8c7d8b71
    Thirunarayanan Balathandayuthapani authored
    Problem:
    =======
    - InnoDB iterates the fil_system space list to encrypt the
    tablespace in case of key rotation. But it is not
    necessary for any encryption plugin which doesn't do
    key version rotation.
    
    Solution:
    =========
    - Introduce a new variable called srv_encrypt_rotate to
    indicate whether encryption plugin does key rotation
    
    fil_space_crypt_t::key_get_latest_version(): Enable the
    srv_encrypt_rotate only once if current key version is
    higher than innodb_encyrption_rotate_key_age
    
    fil_crypt_must_default_encrypt(): Default encryption tables
    should be added to default_encryp_tables list if
    innodb_encyrption_rotate_key_age is zero and encryption
    plugin doesn't do key version rotation
    
    fil_space_create(): Add the newly created space to
    default_encrypt_tables list if
    fil_crypt_must_default_encrypt() returns true
    
    Removed the nondeterministic select from
    innodb-key-rotation-disable test. By default,
    InnoDB adds the tablespace to the rotation list and
    background crypt thread does encryption of tablespace.
    So these select doesn't give reliable results.
    8c7d8b71
fil0crypt.cc 74.9 KB