// Copyright 2025 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build goexperiment.runtimesecret && (arm64 || amd64) // testing stubs, these are implemented in assembly in // asm_$GOARCH.s // // Note that this file is also used as a template to build a // crashing binary that tries to leave secrets in places where // they are supposed to be erased. see crash_test.go for more info package secret import "unsafe" // Load data from p into test registers. // //go:noescape func loadRegisters(p unsafe.Pointer) // Spill data from test registers into p. // Returns the amount of space filled in. // //go:noescape func spillRegisters(p unsafe.Pointer) uintptr // Load secret into all registers. // //go:noescape func useSecret(secret []byte) // callback from assembly func delay() { sleep(1_000_000) } // linknamed to avoid package importing time // for just testing code // //go:linkname sleep time.Sleep func sleep(int64)