podman
23 строки · 466.0 Байт
1// +build !libtrust_openssl
2
3package libtrust
4
5import (
6"crypto"
7"crypto/ecdsa"
8"crypto/rand"
9"fmt"
10"io"
11"math/big"
12)
13
14func (k *ecPrivateKey) sign(data io.Reader, hashID crypto.Hash) (r, s *big.Int, err error) {
15hasher := k.signatureAlgorithm.HashID().New()
16_, err = io.Copy(hasher, data)
17if err != nil {
18return nil, nil, fmt.Errorf("error reading data to sign: %s", err)
19}
20hash := hasher.Sum(nil)
21
22return ecdsa.Sign(rand.Reader, k.PrivateKey, hash)
23}
24