code: async def register_storage_library(storage_type: str, c_library: str, entry_point: str) -> None:
          
  
          LOGGER.debug(
              'WalletManager.register_storage_library >>> storage_type %s, c_library %s, entry_point %s',
              storage_type,
              c_library,
              entry_point)
  
          try:
              stg_lib = CDLL(c_library)
              result = stg_lib[entry_point]()
              if result:
                  LOGGER.debug(
                      'WalletManager.register_storage_library <!< indy error code %s on storage library entry at %s',
                      result,
                      entry_point)
                  raise IndyError(result)
              LOGGER.info('Loaded storage library type %s (%s)', storage_type, c_library)
          except IndyError as x_indy:
              LOGGER.debug(
                  'WalletManager.register_storage_library <!< indy error code %s on load of storage library %s %s',
                  x_indy.error_code,
                  storage_type,
                  c_library)
              raise
  
          LOGGER.debug('WalletManager.register_storage_library <<<')
docs: Load a wallet storage plug-in.
  
          An indy-sdk wallet storage plug-in is a shared library; relying parties must explicitly
          load it before creating or opening a wallet with the plug-in.
  
          The implementation loads a dynamic library and calls an entry point; internally,
          the plug-in calls the indy-sdk wallet
          async def register_wallet_storage_library(storage_type: str, c_library: str, fn_pfx: str).
  
          :param storage_type: wallet storage type
          :param c_library: plug-in library
          :param entry_point: function to initialize the library