Files
sjy01-image-proc/license/public/algorithm.go
2024-12-12 14:44:44 +08:00

50 lines
886 B
Go

package public
import (
"crypto/ecdsa"
"encoding/pem"
)
type NonEquAlgorthm struct {
Algorithm *SigningMethodECDSA
PrivateKey *ecdsa.PrivateKey
PublicKey *ecdsa.PublicKey
}
func GetNonEquAlgorthm(prikey []byte, pubkey []byte) (*NonEquAlgorthm, error) {
var err error
alg := &NonEquAlgorthm{
Algorithm: GetSignVerifyMgr(),
}
if prikey != nil {
if block, _ := pem.Decode(prikey); block == nil {
prikey, err = FormatPem(prikey, true)
if err != nil {
return nil, err
}
}
alg.PrivateKey, err = ParseECPrivateKeyFromPEM(prikey)
if err != nil {
return nil, err
}
}
if pubkey != nil {
if block, _ := pem.Decode(pubkey); block == nil {
pubkey, err = FormatPem(pubkey, false)
if err != nil {
return nil, err
}
}
alg.PublicKey, err = ParseECPublicKeyFromPEM(pubkey)
if err != nil {
return nil, err
}
}
return alg, nil
}