Files
zitadel/backend/v3/domain/crypto.go

38 lines
954 B
Go
Raw Normal View History

2025-04-29 06:03:47 +02:00
package domain
import (
"context"
"github.com/zitadel/zitadel/internal/crypto"
)
type generateCodeCommand struct {
code string
value *crypto.CryptoValue
}
2025-05-08 19:01:55 +02:00
// I didn't update this repository to the solution proposed please view one of the following interfaces for correct usage:
// - [UserRepository]
// - [InstanceRepository]
// - [OrgRepository]
2025-04-29 06:03:47 +02:00
type CryptoRepository interface {
GetEncryptionConfig(ctx context.Context) (*crypto.GeneratorConfig, error)
}
2025-05-08 15:30:06 +02:00
// String implements [Commander].
func (cmd *generateCodeCommand) String() string {
return "generateCodeCommand"
}
2025-04-29 06:03:47 +02:00
func (cmd *generateCodeCommand) Execute(ctx context.Context, opts *CommandOpts) error {
config, err := cryptoRepo(opts.DB).GetEncryptionConfig(ctx)
if err != nil {
return err
}
generator := crypto.NewEncryptionGenerator(*config, userCodeAlgorithm)
cmd.value, cmd.code, err = crypto.NewCode(generator)
return err
}
2025-05-08 15:30:06 +02:00
var _ Commander = (*generateCodeCommand)(nil)