mirror of
https://github.com/tailscale/tailscale.git
synced 2024-12-02 06:25:37 +00:00
57 lines
1.7 KiB
Go
57 lines
1.7 KiB
Go
|
// Copyright 2013 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 ignore
|
||
|
|
||
|
// This file is run by the x509 tests to ensure that a program with minimal
|
||
|
// imports can sign certificates without errors resulting from missing hash
|
||
|
// functions.
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"crypto/rand"
|
||
|
"crypto/x509"
|
||
|
"crypto/x509/pkix"
|
||
|
"encoding/pem"
|
||
|
"math/big"
|
||
|
"strings"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
block, _ := pem.Decode([]byte(pemPrivateKey))
|
||
|
rsaPriv, err := x509.ParsePKCS1PrivateKey(block.Bytes)
|
||
|
if err != nil {
|
||
|
panic("Failed to parse private key: " + err.Error())
|
||
|
}
|
||
|
|
||
|
template := x509.Certificate{
|
||
|
SerialNumber: big.NewInt(1),
|
||
|
Subject: pkix.Name{
|
||
|
CommonName: "test",
|
||
|
Organization: []string{"Σ Acme Co"},
|
||
|
},
|
||
|
NotBefore: time.Unix(1000, 0),
|
||
|
NotAfter: time.Unix(100000, 0),
|
||
|
KeyUsage: x509.KeyUsageCertSign,
|
||
|
}
|
||
|
|
||
|
if _, err = x509.CreateCertificate(rand.Reader, &template, &template, &rsaPriv.PublicKey, rsaPriv); err != nil {
|
||
|
panic("failed to create certificate with basic imports: " + err.Error())
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var pemPrivateKey = testingKey(`-----BEGIN RSA TESTING KEY-----
|
||
|
MIIBOgIBAAJBALKZD0nEffqM1ACuak0bijtqE2QrI/KLADv7l3kK3ppMyCuLKoF0
|
||
|
fd7Ai2KW5ToIwzFofvJcS/STa6HA5gQenRUCAwEAAQJBAIq9amn00aS0h/CrjXqu
|
||
|
/ThglAXJmZhOMPVn4eiu7/ROixi9sex436MaVeMqSNf7Ex9a8fRNfWss7Sqd9eWu
|
||
|
RTUCIQDasvGASLqmjeffBNLTXV2A5g4t+kLVCpsEIZAycV5GswIhANEPLmax0ME/
|
||
|
EO+ZJ79TJKN5yiGBRsv5yvx5UiHxajEXAiAhAol5N4EUyq6I9w1rYdhPMGpLfk7A
|
||
|
IU2snfRJ6Nq2CQIgFrPsWRCkV+gOYcajD17rEqmuLrdIRexpg8N1DOSXoJ8CIGlS
|
||
|
tAboUGBxTDq3ZroNism3DaMIbKPyYrAqhKov1h5V
|
||
|
-----END RSA TESTING KEY-----
|
||
|
`)
|
||
|
|
||
|
func testingKey(s string) string { return strings.ReplaceAll(s, "TESTING KEY", "PRIVATE KEY") }
|