func (p PrivateKey) Public() crypto.PublicKey {
	var bytes [ed25519.PublicKeySize]byte
	copy(bytes[:], p.bytes[32:])
	return PublicKey{
		id:    p.ID(),
		bytes: bytes,
	}
}
Public returns the corresponding public key.
package minisign
import (
	"crypto"
	"crypto/ed25519"
	"crypto/rand"
	"crypto/subtle"
	"encoding/base64"
	"encoding/binary"
	"errors"
	"io"
	"io/ioutil"
	"strconv"
	"strings"
	"time"
	"golang.org/x/crypto/blake2b"
	"golang.org/x/crypto/scrypt"
)
func PrivateKeyFromFile(password, path string) (PrivateKey, error) {
	bytes, err := ioutil.ReadFile(path)
	if err != nil {
		return PrivateKey{}, err
	}
	return DecryptKey(password, bytes)
}
type PrivateKey struct {
	_ [0]func()  
	id    uint64
	bytes [ed25519.PrivateKeySize]byte
}
var _ crypto.Signer = (*PrivateKey)(nil)  
func (p PrivateKey) ID() uint64 { return p.id }