| // 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") } |