Files
certmanager/internal/test/logic_issuer_import_test.go
Олег Бородин 07b32e881e istore: updated
2024-08-07 09:20:36 +02:00

96 lines
2.3 KiB
Go

package test
import (
"context"
"crypto/ecdsa"
"crypto/ed25519"
"crypto/rsa"
"encoding/base64"
"fmt"
"os"
"testing"
"time"
cmapi "certmanager/pkg/cmctl"
"certmanager/internal/config"
"certmanager/internal/database"
"certmanager/internal/logic"
"certmanager/pkg/cm509"
"github.com/stretchr/testify/require"
)
func XXXTestLogicImportIssuer(t *testing.T) {
var err error
var lg *logic.Logic
{
conf := config.NewConfig()
err = conf.ReadFile()
require.NoError(t, err)
db, err := database.NewDatabase(conf.DataDir)
require.NoError(t, err)
require.NotNil(t, db)
err = db.InitDatabase()
require.NoError(t, err)
logicConfig := &logic.LogicConfig{
Auths: conf.Auths,
Database: db,
}
lg, err = logic.NewLogic(logicConfig)
require.NoError(t, err)
require.NotNil(t, lg)
}
certBytes, err := os.ReadFile("testchain_a00.crt")
require.NoError(t, err)
require.NotZero(t, len(certBytes))
certObj, err := cm509.ParseEncodedCerificate(string(certBytes))
require.NoError(t, err)
require.NotNil(t, certObj)
certString := base64.StdEncoding.EncodeToString(certBytes)
keyBytes, err := os.ReadFile("testchain_a00.key")
require.NoError(t, err)
require.NotZero(t, len(keyBytes))
keyString := base64.StdEncoding.EncodeToString(keyBytes)
keyObj, err := cm509.ParseDoubleEncodedKey(keyString)
require.NoError(t, err)
require.NotNil(t, keyObj)
switch keyObj.(type) {
case ed25519.PrivateKey:
fmt.Printf("ED25519 key\n")
case *rsa.PrivateKey:
fmt.Printf("RSA key\n")
case *ecdsa.PrivateKey:
fmt.Printf("ECDSA key\n")
default:
fmt.Printf("Unknown key type\n")
}
certStrings := make([]string, 0)
for i := 2; i < 4; i++ {
certBytes, err := os.ReadFile(fmt.Sprintf("testchain_a%02d.crt", i))
require.NoError(t, err)
require.NotZero(t, len(certBytes))
certString := base64.StdEncoding.EncodeToString(certBytes)
certStrings = append(certStrings, certString)
}
ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
{
importIssuerPairParams := &cmapi.ImportIssuerPairParams{
Certificate: certString,
Key: keyString,
}
importIssuerPairRes, err := lg.ImportIssuerPair(ctx, importIssuerPairParams)
require.NoError(t, err)
require.NotNil(t, importIssuerPairRes)
printObj("importIssuerPairRes", importIssuerPairRes)
}
}