mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-12-02 06:13:54 +00:00
Vendor cfssl and cfssljson
This commit is contained in:
99
vendor/github.com/cloudflare/cfssl/cli/gencsr/gencsr.go
generated
vendored
Normal file
99
vendor/github.com/cloudflare/cfssl/cli/gencsr/gencsr.go
generated
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
// Package gencsr implements the gencsr command.
|
||||
package gencsr
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
|
||||
"github.com/cloudflare/cfssl/cli"
|
||||
"github.com/cloudflare/cfssl/csr"
|
||||
"github.com/cloudflare/cfssl/helpers"
|
||||
"github.com/cloudflare/cfssl/signer"
|
||||
)
|
||||
|
||||
var gencsrUsageText = `cfssl gencsr -- generate a csr from a private key with existing CSR json specification or certificate
|
||||
|
||||
Usage of genkey:
|
||||
cfssl gencsr -key private_key_file [-host hostname_override] CSRJSON
|
||||
cfssl gencsr -key private_key_file [-host hostname_override] -cert certificate_file
|
||||
|
||||
Arguments:
|
||||
CSRJSON: JSON file containing the request, use '-' for reading JSON from stdin
|
||||
|
||||
Flags:
|
||||
`
|
||||
|
||||
var gencsrFlags = []string{"key", "cert"}
|
||||
|
||||
func gencsrMain(args []string, c cli.Config) (err error) {
|
||||
if c.KeyFile == "" {
|
||||
return errors.New("private key file is required through '-key', please check with usage")
|
||||
}
|
||||
|
||||
keyBytes, err := helpers.ReadBytes(c.KeyFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
key, err := helpers.ParsePrivateKeyPEM(keyBytes)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// prepare a stub CertificateRequest
|
||||
req := &csr.CertificateRequest{
|
||||
KeyRequest: csr.NewBasicKeyRequest(),
|
||||
}
|
||||
|
||||
if c.CertFile != "" {
|
||||
if len(args) > 0 {
|
||||
return errors.New("no argument is accepted with '-cert', please check with usage")
|
||||
}
|
||||
|
||||
certBytes, err := helpers.ReadBytes(c.CertFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cert, err := helpers.ParseCertificatePEM(certBytes)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
req = csr.ExtractCertificateRequest(cert)
|
||||
} else {
|
||||
csrFile, args, err := cli.PopFirstArgument(args)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if len(args) > 0 {
|
||||
return errors.New("only one argument is accepted, please check with usage")
|
||||
}
|
||||
|
||||
csrFileBytes, err := cli.ReadStdin(csrFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(csrFileBytes, req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if c.Hostname != "" {
|
||||
req.Hosts = signer.SplitHosts(c.Hostname)
|
||||
}
|
||||
|
||||
csrBytes, err := csr.Generate(key, req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cli.PrintCert(keyBytes, csrBytes, nil)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Command assembles the definition of Command 'gencsr'
|
||||
var Command = &cli.Command{UsageText: gencsrUsageText, Flags: gencsrFlags, Main: gencsrMain}
|
||||
Reference in New Issue
Block a user