155 lines
3.8 KiB
Go
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
|
|
}
|