Source File
root.go
Belonging Package
crypto/x509
// Copyright 2012 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.package x509import ()var (once sync.OncesystemRootsMu sync.RWMutexsystemRoots *CertPoolsystemRootsErr errorfallbacksSet bool)func () *CertPool {once.Do(initSystemRoots)systemRootsMu.RLock()defer systemRootsMu.RUnlock()return systemRoots}func () {systemRootsMu.Lock()defer systemRootsMu.Unlock()systemRoots, systemRootsErr = loadSystemRoots()if systemRootsErr != nil {systemRoots = nil}}var x509usefallbackroots = godebug.New("x509usefallbackroots")// SetFallbackRoots sets the roots to use during certificate verification, if no// custom roots are specified and a platform verifier or a system certificate// pool is not available (for instance in a container which does not have a root// certificate bundle). SetFallbackRoots will panic if roots is nil.//// SetFallbackRoots may only be called once, if called multiple times it will// panic.//// The fallback behavior can be forced on all platforms, even when there is a// system certificate pool, by setting GODEBUG=x509usefallbackroots=1 (note that// on Windows and macOS this will disable usage of the platform verification// APIs and cause the pure Go verifier to be used). Setting// x509usefallbackroots=1 without calling SetFallbackRoots has no effect.func ( *CertPool) {if == nil {panic("roots must be non-nil")}// trigger initSystemRoots if it hasn't already been called before we// take the lock_ = systemRootsPool()systemRootsMu.Lock()defer systemRootsMu.Unlock()if fallbacksSet {panic("SetFallbackRoots has already been called")}fallbacksSet = trueif systemRoots != nil && (systemRoots.len() > 0 || systemRoots.systemPool) {if x509usefallbackroots.Value() != "1" {return}x509usefallbackroots.IncNonDefault()}systemRoots, systemRootsErr = , nil}
![]() |
The pages are generated with Golds v0.6.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |