<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h4 class="title">
      <a name="keyring-component-plugin-comparison">
      </a>
      8.4.4.1 Keyring Components Versus Keyring Plugins
     </h4>
    </div>
   </div>
  </div>
  <p>
   The MySQL Keyring originally implemented keystore capabilities
        using server plugins, but began transitioning to use the
        component infrastructure. This section briefly compares keyring
        components and plugins to provide an overview of their
        differences. It may assist you in making the transition from
        plugins to components, or, if you are just beginning to use the
        keyring, assist you in choosing whether to use a component
        versus using a plugin.
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      Keyring plugin loading uses the
      <a class="link" href="server-options.html#option_mysqld_early-plugin-load">
       <code class="option">
        --early-plugin-load
       </code>
      </a>
      option.
            Keyring component loading uses a manifest.
     </p>
    </li>
    <li class="listitem">
     <p>
      Keyring plugin configuration is based on plugin-specific
            system variables. For keyring components, no system
            variables are used. Instead, each component has its own
            configuration file.
     </p>
    </li>
    <li class="listitem">
     <p>
      Keyring components have fewer restrictions than keyring
            plugins with respect to key types and lengths. See
      <a class="xref" href="keyring-key-types.html" title="8.4.4.10 Supported Keyring Key Types and Lengths">
       Section 8.4.4.10, “Supported Keyring Key Types and Lengths”
      </a>
      .
     </p>
     <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
      <div class="admon-title">
       Note
      </div>
      <p>
       <code class="literal">
        component_keyring_oci
       </code>
       can generate keys
              of type
       <code class="literal">
        AES
       </code>
       with a size of 16, 24, or
              32 bytes only.
      </p>
     </div>
    </li>
    <li class="listitem">
     <p>
      Keyring components support secure storage for persisted
            system variable values, whereas keyring plugins do not
            support the function.
     </p>
     <p>
      A keyring component must be enabled on the MySQL server
            instance to support secure storage for persisted system
            variable values. The sensitive data that can be protected in
            this way includes items such as private keys and passwords
            that appear in the values of system variables. In the
            operating system file where persisted system variables are
            stored, the names and values of sensitive system variables
            are stored in an encrypted format, along with a generated
            file key to decrypt them. The generated file key is in turn
            encrypted using a master key that is stored in a keyring.
            See
      <a class="xref" href="persisted-system-variables.html#persisted-system-variables-sensitive" title="Persisting Sensitive System Variables">
       Persisting Sensitive System Variables
      </a>
      .
     </p>
    </li>
   </ul>
  </div>
 </div>
 <br/>
</div>
