| // Copyright 2020 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. |
| |
| // +build darwin,arm64 darwin,amd64,ios |
| // +build x509omitbundledroots |
| |
| // This file provides the loadSystemRoots func when the |
| // "x509omitbundledroots" build tag has disabled bundling a copy, |
| // which currently on happens on darwin/arm64 (root_darwin_arm64.go). |
| // This then saves 256 KiB of binary size and another 560 KiB of |
| // runtime memory size retaining the parsed roots forever. Constrained |
| // environments can construct minimal x509 root CertPools on the fly |
| // in the crypto/tls.Config.VerifyPeerCertificate hook. |
| |
| package x509 |
| |
| import "errors" |
| |
| func loadSystemRoots() (*CertPool, error) { |
| return nil, errors.New("x509: system root bundling disabled") |
| } |
| |
| func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate, err error) { |
| return nil, nil |
| } |
| |
| // loadSystemRootsWithCgo is not available on iOS. |
| var loadSystemRootsWithCgo func() (*CertPool, error) |