This commit is contained in:
Олег Бородин
2024-09-14 07:55:43 +02:00
parent 93e7808130
commit c9917f0f62
4 changed files with 439 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
package main
import (
"context"
"certmanager/pkg/client"
"certmanager/pkg/cmctl"
)
func (util *Util) CreateAccount(ctx context.Context) (*cmctl.CreateAccountResult, error) {
var err error
res := &cmctl.CreateAccountResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.CreateAccountParams{
Username: util.username,
Password: util.password,
}
res, err = cli.CreateAccount(ctx, params)
if err != nil {
return res, err
}
if err != nil {
return res, err
}
return res, err
}
func (util *Util) DeleteAccount(ctx context.Context) (*cmctl.DeleteAccountResult, error) {
var err error
res := &cmctl.DeleteAccountResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.DeleteAccountParams{
Username: util.username,
AccountID: util.accountID,
}
res, err = cli.DeleteAccount(ctx, params)
if err != nil {
return res, err
}
return res, err
}
func (util *Util) ListAccounts(ctx context.Context) (*cmctl.ListAccountsResult, error) {
var err error
res := &cmctl.ListAccountsResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.ListAccountsParams{}
res, err = cli.ListAccounts(ctx, params)
if err != nil {
return res, err
}
return res, err
}
func (util *Util) UpdateAccount(ctx context.Context) (*cmctl.UpdateAccountResult, error) {
var err error
res := &cmctl.UpdateAccountResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.UpdateAccountParams{
Username: util.username,
AccountID: util.accountID,
NewUsername: util.newUsername,
NewPassword: util.newPassword,
}
res, err = cli.UpdateAccount(ctx, params)
if err != nil {
return res, err
}
return res, err
}

View File

@@ -0,0 +1,49 @@
package main
import (
"context"
"certmanager/pkg/client"
"certmanager/pkg/cmctl"
)
func (util *Util) SetGrant(ctx context.Context) (*cmctl.SetGrantResult, error) {
var err error
res := &cmctl.SetGrantResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.SetGrantParams{
Username: util.username,
AccountID: util.accountID,
Operation: util.operation,
}
res, err = cli.SetGrant(ctx, params)
if err != nil {
return res, err
}
if err != nil {
return res, err
}
return res, err
}
func (util *Util) DeleteGrant(ctx context.Context) (*cmctl.DeleteGrantResult, error) {
var err error
res := &cmctl.DeleteGrantResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.DeleteGrantParams{
Username: util.username,
AccountID: util.accountID,
Operation: util.operation,
}
res, err = cli.DeleteGrant(ctx, params)
if err != nil {
return res, err
}
return res, err
}

View File

@@ -0,0 +1,154 @@
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
}

View File

@@ -0,0 +1,154 @@
package main
import (
"context"
"encoding/base64"
"strings"
"certmanager/pkg/client"
"certmanager/pkg/cmctl"
)
func (util *Util) CreateServicePair(ctx context.Context) (*cmctl.CreateServicePairResult, error) {
var err error
res := &cmctl.CreateServicePairResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
inetAddresses := make([]string, 0)
hostnames := make([]string, 0)
if util.ipAdressesList != "" {
inetAddresses = strings.Split(util.ipAdressesList, ",")
}
if util.hostnameList != "" {
hostnames = strings.Split(util.hostnameList, ",")
}
params := &cmctl.CreateServicePairParams{
IssuerName: util.issuerName,
IssuerID: util.issuerID,
ServiceOrganizationName: util.serviceOrganizationName,
ServiceOrganizationalUnitName: util.serviceOrganizationalUnitName,
ServiceCommonName: util.serviceCommonName,
InetAddresses: inetAddresses,
Hostnames: hostnames,
}
res, err = cli.CreateServicePair(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)
keyPEM, err := base64.StdEncoding.DecodeString(res.Key)
if err != nil {
return res, err
}
res.Key = string(keyPEM)
caPEM, err := base64.StdEncoding.DecodeString(res.IssuerCertificate)
if err != nil {
return res, err
}
res.IssuerCertificate = string(caPEM)
for i, cert := range res.IssuerCertificates {
caPEM, err := base64.StdEncoding.DecodeString(cert)
if err != nil {
return res, err
}
res.IssuerCertificates[i] = string(caPEM)
}
return res, err
}
func (util *Util) RevokeServicePair(ctx context.Context) (*cmctl.RevokeServicePairResult, error) {
var err error
res := &cmctl.RevokeServicePairResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.RevokeServicePairParams{
ServiceName: util.serviceName,
ServiceID: util.serviceID,
}
res, err = cli.RevokeServicePair(ctx, params)
if err != nil {
return res, err
}
return res, err
}
func (util *Util) UnrevokeServicePair(ctx context.Context) (*cmctl.UnrevokeServicePairResult, error) {
var err error
res := &cmctl.UnrevokeServicePairResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.UnrevokeServicePairParams{
ServiceName: util.serviceName,
ServiceID: util.serviceID,
}
res, err = cli.UnrevokeServicePair(ctx, params)
if err != nil {
return res, err
}
return res, err
}
func (util *Util) ListServicePairs(ctx context.Context) (*cmctl.ListServicePairsResult, error) {
var err error
res := &cmctl.ListServicePairsResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.ListServicePairsParams{}
res, err = cli.ListServicePairs(ctx, params)
if err != nil {
return res, err
}
return res, err
}
func (util *Util) GetServicePair(ctx context.Context) (*cmctl.GetServicePairResult, error) {
var err error
res := &cmctl.GetServicePairResult{}
cli, err := client.NewClient(&util.access)
if err != nil {
return res, err
}
params := &cmctl.GetServicePairParams{
ServiceID: util.serviceID,
ServiceName: util.serviceName,
}
res, err = cli.GetServicePair(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)
keyPEM, err := base64.StdEncoding.DecodeString(res.Key)
if err != nil {
return res, err
}
res.Key = string(keyPEM)
caPEM, err := base64.StdEncoding.DecodeString(res.IssuerCertificate)
if err != nil {
return res, err
}
res.IssuerCertificate = string(caPEM)
for i, cert := range res.IssuerCertificates {
caPEM, err := base64.StdEncoding.DecodeString(cert)
if err != nil {
return res, err
}
res.IssuerCertificates[i] = string(caPEM)
}
return res, err
}