File: ec_key_no_openssl.go

package info (click to toggle)
golang-github-containers-libtrust 0.0~git20230121.c1716e8-2~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 336 kB
  • sloc: makefile: 3
file content (23 lines) | stat: -rw-r--r-- 466 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// +build !libtrust_openssl

package libtrust

import (
	"crypto"
	"crypto/ecdsa"
	"crypto/rand"
	"fmt"
	"io"
	"math/big"
)

func (k *ecPrivateKey) sign(data io.Reader, hashID crypto.Hash) (r, s *big.Int, err error) {
	hasher := k.signatureAlgorithm.HashID().New()
	_, err = io.Copy(hasher, data)
	if err != nil {
		return nil, nil, fmt.Errorf("error reading data to sign: %s", err)
	}
	hash := hasher.Sum(nil)

	return ecdsa.Sign(rand.Reader, k.PrivateKey, hash)
}