private static byte[] getBytes(WinCrypt.DATA_BLOB out, boolean rc) {
    if (!rc) {
      throw new RuntimeException("CryptProtectData failed: " + Kernel32.INSTANCE.GetLastError());
    }

    byte[] output = new byte[out.cbData];
    out.pbData.read(0, output, 0, output.length);
    Kernel32.INSTANCE.LocalFree(out.pbData);
    return output;
  }
private static byte[] getBytes(WinCrypt.DATA_BLOB out, boolean rc)