clientupdate_windows.go 693 B

12345678910111213141516171819202122232425262728
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. // Windows-specific stuff that can't go in clientupdate.go because it needs
  4. // x/sys/windows.
  5. package clientupdate
  6. import (
  7. "golang.org/x/sys/windows"
  8. "tailscale.com/util/winutil/authenticode"
  9. )
  10. func init() {
  11. markTempFileFunc = markTempFileWindows
  12. verifyAuthenticode = verifyTailscale
  13. }
  14. func markTempFileWindows(name string) error {
  15. name16 := windows.StringToUTF16Ptr(name)
  16. return windows.MoveFileEx(name16, nil, windows.MOVEFILE_DELAY_UNTIL_REBOOT)
  17. }
  18. const certSubjectTailscale = "Tailscale Inc."
  19. func verifyTailscale(path string) error {
  20. return authenticode.Verify(path, certSubjectTailscale)
  21. }