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