docs: private Key unwrap(String wrappedKey, String keyAlgorithm, int keyType,
                         String wrapAlgorithm) {
  
          try {
              byte[] wrapped = ByteArray.fromBase64(wrappedKey);
              Cipher cipher = Cipher.getInstance(wrapAlgorithm);
              cipher.init(Cipher.UNWRAP_MODE, wrapKey);
              Key result = cipher.unwrap(wrapped, keyAlgorithm, keyType);
              return result;
  
          } catch (NoSuchAlgorithmException e) {
              if (SecurityProvider.addProvider()) {
                  return unwrap(wrappedKey, keyAlgorithm, keyType, wrapAlgorithm);
              } else {
                  throw new IllegalStateException("Algorithm unavailable: " + wrapAlgorithm, e);
              }
          } catch (NoSuchPaddingException e) {
              throw new IllegalStateException("Padding unavailable: " + wrapAlgorithm, e);
          } catch (InvalidKeyException e) {
              throw new IllegalArgumentException("Invalid key for algorithm " + wrapAlgorithm, e);
          }
      }