1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
# fakeca [](https://pkg.go.dev/github.com/github/smimesign/fakeca?tab=doc)
This is a package for creating fake certificate authorities for test fixtures.
## Example
```go
package main
import (
"crypto/x509/pkix"
"github.com/github/smimesign/fakeca"
)
func main() {
// Change defaults for cert subjects.
fakeca.DefaultProvince = []string{"CO"}
fakeca.DefaultLocality = []string{"Denver"}
// Create a root CA.
root := fakeca.New(fakeca.IsCA, fakeca.Subject(pkix.Name{
CommonName: "root.myorg.com",
}))
// Create an intermediate CA under the root.
intermediate := root.Issue(fakeca.IsCA, fakeca.Subject(pkix.Name{
CommonName: "intermediate.myorg.com",
}))
// Create a leaf certificate under the intermediate.
leaf := intermediate.Issue(fakeca.Subject(pkix.Name{
CommonName: "leaf.myorg.com",
}))
// Get PFX (PKCS12) blob containing certificate and encrypted private key.
leafPFX := leaf.PFX("pa55w0rd")
// Get an *x509.CertPool containing certificate chain from CA to leaf for use
// with Go's TLS libraries.
leafPool := leaf.ChainPool()
}
```
|