code: func (policy *KeyPolicy) GoodKey(key crypto.PublicKey) error {
  	switch t := key.(type) {
  	case rsa.PublicKey:
  		return policy.goodKeyRSA(t)
  	case *rsa.PublicKey:
  		return policy.goodKeyRSA(*t)
  	case ecdsa.PublicKey:
  		return policy.goodKeyECDSA(t)
  	case *ecdsa.PublicKey:
  		return policy.goodKeyECDSA(*t)
  	default:
  		return fmt.Errorf("Unknown key type %s", reflect.TypeOf(key))
  	}
  }
docs: // GoodKey returns true if the key is acceptable for both TLS use and account
  // key use (our requirements are the same for either one), according to basic
  // strength and algorithm checking.
  // TODO: Support JsonWebKeys once go-jose migration is done.