Files
himbocrypt/pkg/engine/engine.go

29 lines
451 B
Go

package engine
import (
"crypto/ecdh"
"crypto/rand"
"fmt"
)
type Engine struct {
curve ecdh.Curve
}
func NewEngine() *Engine {
return &Engine{
curve: ecdh.X25519(),
}
}
func (e *Engine) GenerateKeyPair() (*KeyPair, error) {
priv, err := e.curve.GenerateKey(rand.Reader)
if err != nil {
return nil, fmt.Errorf("failed to generate private key: %w", err)
}
return &KeyPair{
PrivateKey: priv,
PublicKey: priv.PublicKey(),
}, nil
}