fix: add register org and key pairs (#1275)

This commit is contained in:
Fabi
2021-02-12 16:51:12 +01:00
committed by GitHub
parent fbc75d89b2
commit 3bc3ef1f2c
20 changed files with 307 additions and 224 deletions
+45
View File
@@ -0,0 +1,45 @@
package command
import (
"context"
"github.com/caos/zitadel/internal/api/authz"
"github.com/caos/zitadel/internal/crypto"
"github.com/caos/zitadel/internal/v2/domain"
keypair "github.com/caos/zitadel/internal/v2/repository/keypair"
"time"
)
const (
oidcUser = "OIDC"
)
func (r *CommandSide) GenerateSigningKeyPair(ctx context.Context, algorithm string) error {
ctx = setOIDCCtx(ctx)
privateCrypto, publicCrypto, err := crypto.GenerateEncryptedKeyPair(r.keySize, r.keyAlgorithm)
if err != nil {
return err
}
keyID, err := r.idGenerator.Next()
if err != nil {
return err
}
privateKeyExp := time.Now().UTC().Add(r.privateKeyLifetime)
publicKeyExp := time.Now().UTC().Add(r.publicKeyLifetime)
keyPairWriteModel := NewKeyPairWriteModel(keyID, domain.IAMID)
keyAgg := KeyPairAggregateFromWriteModel(&keyPairWriteModel.WriteModel)
keyAgg.PushEvents(
keypair.NewAddedEvent(
ctx,
domain.KeyUsageSigning,
algorithm,
privateCrypto, publicCrypto,
privateKeyExp, publicKeyExp),
)
return r.eventstore.PushAggregate(ctx, keyPairWriteModel, keyAgg)
}
func setOIDCCtx(ctx context.Context) context.Context {
return authz.SetCtxData(ctx, authz.CtxData{UserID: oidcUser, OrgID: domain.IAMID})
}