code: @Override
      protected byte[] load(ConfidentialKey key) throws IOException {
          try {
              File f = getFileFor(key);
              if (!f.exists())    return null;
  
              Cipher sym = Secret.getCipher("AES");
              sym.init(Cipher.DECRYPT_MODE, masterKey);
              try (InputStream fis=Files.newInputStream(f.toPath());
                   CipherInputStream cis = new CipherInputStream(fis, sym)) {
                  byte[] bytes = IOUtils.toByteArray(cis);
                  return verifyMagic(bytes);
              }
          } catch (GeneralSecurityException e) {
              throw new IOException("Failed to load the key: "+key.getId(),e);
          } catch (InvalidPathException e) {
              throw new IOException(e);
          } catch (IOException x) {
              if (x.getCause() instanceof BadPaddingException) {
                  return null; // broken somehow
              } else {
                  throw x;
              }
          }
      }
docs: Reverse operation of {@link #store(ConfidentialKey, byte[])}
  
  @return
  null the data has not been previously persisted.