Files
certmanager/cmd/certmanagerctl/issuer.go
Олег Бородин c9917f0f62 update
2024-09-14 07:55:43 +02:00

155 lines
3.8 KiB
Go

package main
import (
"context"
"encoding/base64"
"os"
"certmanager/pkg/client"
"certmanager/pkg/cmctl"
)
func (util *Util) CreateIssuerPair(ctx context.Context) (*cmctl.CreateIssuerPairResult, error) {
var err error
res := &cmctl.CreateIssuerPairResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.CreateIssuerPairParams{
IssuerOrganizationName: util.issuerOrganizationName,
IssuerOrganizationalUnitName: util.issuerOrganizationalUnitName,
IssuerCommonName: util.issuerCommonName,
SignerID: util.signerID,
EncodingKey: util.encodingKey,
}
res, err = cli.CreateIssuerPair(ctx, params)
if err != nil {
return res, err
}
certPEM, err := base64.StdEncoding.DecodeString(res.Certificate)
if err != nil {
return res, err
}
res.Certificate = string(certPEM)
for i, cert := range res.SignerCertificates {
caPEM, err := base64.StdEncoding.DecodeString(cert)
if err != nil {
return res, err
}
res.SignerCertificates[i] = string(caPEM)
}
return res, err
}
func (util *Util) ImportIssuerPair(ctx context.Context) (*cmctl.ImportIssuerPairResult, error) {
var err error
res := &cmctl.ImportIssuerPairResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
certBytes, err := os.ReadFile(util.certFilename)
if err != nil {
return res, err
}
cert := base64.StdEncoding.EncodeToString(certBytes)
keyBytes, err := os.ReadFile(util.certFilename)
if err != nil {
return res, err
}
key := base64.StdEncoding.EncodeToString(keyBytes)
params := &cmctl.ImportIssuerPairParams{
Certificate: cert,
Key: key,
}
res, err = cli.ImportIssuerPair(ctx, params)
if err != nil {
return res, err
}
return res, err
}
func (util *Util) RevokeIssuerPair(ctx context.Context) (*cmctl.RevokeIssuerPairResult, error) {
var err error
res := &cmctl.RevokeIssuerPairResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.RevokeIssuerPairParams{
IssuerID: util.issuerID,
IssuerName: util.issuerName,
}
res, err = cli.RevokeIssuerPair(ctx, params)
if err != nil {
return res, err
}
return res, err
}
func (util *Util) UnrevokeIssuerPair(ctx context.Context) (*cmctl.UnrevokeIssuerPairResult, error) {
var err error
res := &cmctl.UnrevokeIssuerPairResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.UnrevokeIssuerPairParams{
IssuerID: util.issuerID,
IssuerName: util.issuerName,
}
res, err = cli.UnrevokeIssuerPair(ctx, params)
if err != nil {
return res, err
}
return res, err
}
func (util *Util) ListIssuerPairs(ctx context.Context) (*cmctl.ListIssuerPairsResult, error) {
var err error
res := &cmctl.ListIssuerPairsResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.ListIssuerPairsParams{}
res, err = cli.ListIssuerPairs(ctx, params)
if err != nil {
return res, err
}
return res, err
}
func (util *Util) GetIssuerCertificate(ctx context.Context) (*cmctl.GetIssuerCertificateResult, error) {
var err error
res := &cmctl.GetIssuerCertificateResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.GetIssuerCertificateParams{
IssuerID: util.issuerID,
IssuerName: util.issuerName,
EncodingKey: util.encodingKey,
}
res, err = cli.GetIssuerCertificate(ctx, params)
if err != nil {
return res, err
}
certPEM, err := base64.StdEncoding.DecodeString(res.Certificate)
if err != nil {
return res, err
}
res.Certificate = string(certPEM)
for i, cert := range res.SignerCertificates {
caPEM, err := base64.StdEncoding.DecodeString(cert)
if err != nil {
return res, err
}
res.SignerCertificates[i] = string(caPEM)
}
return res, err
}