public static byte @NotNull [] protect(byte @NotNull [] data) {
    if (data.length == 0) return data;
    WinCrypt.DATA_BLOB in = prepareInput(data);
    WinCrypt.DATA_BLOB out = new WinCrypt.DATA_BLOB.ByReference();
    boolean rc = Crypt32.INSTANCE.CryptProtectData(in, "Master Key", null, null, null, 0, out);
    return getBytes(out, rc);
  }
public static byte @NotNull [] protect(byte @NotNull [] data)