func()

in sec/sign.go [315:339]


func (key *PubSignKey) SigType() (SigType, error) {
	if key.Rsa != nil {
		switch key.Rsa.Size() {
		case 2048 / 8:
			return SIG_TYPE_RSA2048, nil
		case 3072 / 8:
			return SIG_TYPE_RSA3072, nil
		default:
			return 0, errors.Errorf("unknown RSA key size (bytes): %d", key.Rsa.Size())
		}
	} else if key.Ec != nil {
		switch key.Ec.Curve.Params().Name {
		case "P-224":
			return SIG_TYPE_ECDSA224, nil
		case "P-256":
			return SIG_TYPE_ECDSA256, nil
		default:
			return 0, errors.Errorf("unknown EC curve: %s", key.Ec.Curve.Params().Name)
		}
	} else if key.Ed25519 != nil {
		return SIG_TYPE_ED25519, nil
	}

	return 0, errors.Errorf("invalid key: no non-nil members")
}