// Code generated by protoc-gen-go-grpc. DO NOT EDIT.

package fido2

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// FIDO2Client is the client API for FIDO2 service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type FIDO2Client interface {
	Devices(ctx context.Context, in *DevicesRequest, opts ...grpc.CallOption) (*DevicesResponse, error)
	DeviceInfo(ctx context.Context, in *DeviceInfoRequest, opts ...grpc.CallOption) (*DeviceInfoResponse, error)
	DeviceType(ctx context.Context, in *DeviceTypeRequest, opts ...grpc.CallOption) (*DeviceTypeResponse, error)
	MakeCredential(ctx context.Context, in *MakeCredentialRequest, opts ...grpc.CallOption) (*MakeCredentialResponse, error)
	SetPIN(ctx context.Context, in *SetPINRequest, opts ...grpc.CallOption) (*SetPINResponse, error)
	Reset(ctx context.Context, in *ResetRequest, opts ...grpc.CallOption) (*ResetResponse, error)
	RetryCount(ctx context.Context, in *RetryCountRequest, opts ...grpc.CallOption) (*RetryCountResponse, error)
	Assertion(ctx context.Context, in *AssertionRequest, opts ...grpc.CallOption) (*AssertionResponse, error)
	CredentialsInfo(ctx context.Context, in *CredentialsInfoRequest, opts ...grpc.CallOption) (*CredentialsInfoResponse, error)
	Credentials(ctx context.Context, in *CredentialsRequest, opts ...grpc.CallOption) (*CredentialsResponse, error)
	RelyingParties(ctx context.Context, in *RelyingPartiesRequest, opts ...grpc.CallOption) (*RelyingPartiesResponse, error)
	GenerateHMACSecret(ctx context.Context, in *GenerateHMACSecretRequest, opts ...grpc.CallOption) (*GenerateHMACSecretResponse, error)
	HMACSecret(ctx context.Context, in *HMACSecretRequest, opts ...grpc.CallOption) (*HMACSecretResponse, error)
}

type fIDO2Client struct {
	cc grpc.ClientConnInterface
}

func NewFIDO2Client(cc grpc.ClientConnInterface) FIDO2Client {
	return &fIDO2Client{cc}
}

func (c *fIDO2Client) Devices(ctx context.Context, in *DevicesRequest, opts ...grpc.CallOption) (*DevicesResponse, error) {
	out := new(DevicesResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/Devices", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) DeviceInfo(ctx context.Context, in *DeviceInfoRequest, opts ...grpc.CallOption) (*DeviceInfoResponse, error) {
	out := new(DeviceInfoResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/DeviceInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) DeviceType(ctx context.Context, in *DeviceTypeRequest, opts ...grpc.CallOption) (*DeviceTypeResponse, error) {
	out := new(DeviceTypeResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/DeviceType", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) MakeCredential(ctx context.Context, in *MakeCredentialRequest, opts ...grpc.CallOption) (*MakeCredentialResponse, error) {
	out := new(MakeCredentialResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/MakeCredential", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) SetPIN(ctx context.Context, in *SetPINRequest, opts ...grpc.CallOption) (*SetPINResponse, error) {
	out := new(SetPINResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/SetPIN", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) Reset(ctx context.Context, in *ResetRequest, opts ...grpc.CallOption) (*ResetResponse, error) {
	out := new(ResetResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/Reset", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) RetryCount(ctx context.Context, in *RetryCountRequest, opts ...grpc.CallOption) (*RetryCountResponse, error) {
	out := new(RetryCountResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/RetryCount", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) Assertion(ctx context.Context, in *AssertionRequest, opts ...grpc.CallOption) (*AssertionResponse, error) {
	out := new(AssertionResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/Assertion", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) CredentialsInfo(ctx context.Context, in *CredentialsInfoRequest, opts ...grpc.CallOption) (*CredentialsInfoResponse, error) {
	out := new(CredentialsInfoResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/CredentialsInfo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) Credentials(ctx context.Context, in *CredentialsRequest, opts ...grpc.CallOption) (*CredentialsResponse, error) {
	out := new(CredentialsResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/Credentials", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) RelyingParties(ctx context.Context, in *RelyingPartiesRequest, opts ...grpc.CallOption) (*RelyingPartiesResponse, error) {
	out := new(RelyingPartiesResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/RelyingParties", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) GenerateHMACSecret(ctx context.Context, in *GenerateHMACSecretRequest, opts ...grpc.CallOption) (*GenerateHMACSecretResponse, error) {
	out := new(GenerateHMACSecretResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/GenerateHMACSecret", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fIDO2Client) HMACSecret(ctx context.Context, in *HMACSecretRequest, opts ...grpc.CallOption) (*HMACSecretResponse, error) {
	out := new(HMACSecretResponse)
	err := c.cc.Invoke(ctx, "/fido2.FIDO2/HMACSecret", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// FIDO2Server is the server API for FIDO2 service.
// All implementations must embed UnimplementedFIDO2Server
// for forward compatibility
type FIDO2Server interface {
	Devices(context.Context, *DevicesRequest) (*DevicesResponse, error)
	DeviceInfo(context.Context, *DeviceInfoRequest) (*DeviceInfoResponse, error)
	DeviceType(context.Context, *DeviceTypeRequest) (*DeviceTypeResponse, error)
	MakeCredential(context.Context, *MakeCredentialRequest) (*MakeCredentialResponse, error)
	SetPIN(context.Context, *SetPINRequest) (*SetPINResponse, error)
	Reset(context.Context, *ResetRequest) (*ResetResponse, error)
	RetryCount(context.Context, *RetryCountRequest) (*RetryCountResponse, error)
	Assertion(context.Context, *AssertionRequest) (*AssertionResponse, error)
	CredentialsInfo(context.Context, *CredentialsInfoRequest) (*CredentialsInfoResponse, error)
	Credentials(context.Context, *CredentialsRequest) (*CredentialsResponse, error)
	RelyingParties(context.Context, *RelyingPartiesRequest) (*RelyingPartiesResponse, error)
	GenerateHMACSecret(context.Context, *GenerateHMACSecretRequest) (*GenerateHMACSecretResponse, error)
	HMACSecret(context.Context, *HMACSecretRequest) (*HMACSecretResponse, error)
	mustEmbedUnimplementedFIDO2Server()
}

// UnimplementedFIDO2Server must be embedded to have forward compatible implementations.
type UnimplementedFIDO2Server struct {
}

func (*UnimplementedFIDO2Server) Devices(context.Context, *DevicesRequest) (*DevicesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Devices not implemented")
}
func (*UnimplementedFIDO2Server) DeviceInfo(context.Context, *DeviceInfoRequest) (*DeviceInfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeviceInfo not implemented")
}
func (*UnimplementedFIDO2Server) DeviceType(context.Context, *DeviceTypeRequest) (*DeviceTypeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeviceType not implemented")
}
func (*UnimplementedFIDO2Server) MakeCredential(context.Context, *MakeCredentialRequest) (*MakeCredentialResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method MakeCredential not implemented")
}
func (*UnimplementedFIDO2Server) SetPIN(context.Context, *SetPINRequest) (*SetPINResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetPIN not implemented")
}
func (*UnimplementedFIDO2Server) Reset(context.Context, *ResetRequest) (*ResetResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Reset not implemented")
}
func (*UnimplementedFIDO2Server) RetryCount(context.Context, *RetryCountRequest) (*RetryCountResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RetryCount not implemented")
}
func (*UnimplementedFIDO2Server) Assertion(context.Context, *AssertionRequest) (*AssertionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Assertion not implemented")
}
func (*UnimplementedFIDO2Server) CredentialsInfo(context.Context, *CredentialsInfoRequest) (*CredentialsInfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CredentialsInfo not implemented")
}
func (*UnimplementedFIDO2Server) Credentials(context.Context, *CredentialsRequest) (*CredentialsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Credentials not implemented")
}
func (*UnimplementedFIDO2Server) RelyingParties(context.Context, *RelyingPartiesRequest) (*RelyingPartiesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RelyingParties not implemented")
}
func (*UnimplementedFIDO2Server) GenerateHMACSecret(context.Context, *GenerateHMACSecretRequest) (*GenerateHMACSecretResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GenerateHMACSecret not implemented")
}
func (*UnimplementedFIDO2Server) HMACSecret(context.Context, *HMACSecretRequest) (*HMACSecretResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method HMACSecret not implemented")
}
func (*UnimplementedFIDO2Server) mustEmbedUnimplementedFIDO2Server() {}

func RegisterFIDO2Server(s *grpc.Server, srv FIDO2Server) {
	s.RegisterService(&_FIDO2_serviceDesc, srv)
}

func _FIDO2_Devices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DevicesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).Devices(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/Devices",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).Devices(ctx, req.(*DevicesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_DeviceInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeviceInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).DeviceInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/DeviceInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).DeviceInfo(ctx, req.(*DeviceInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_DeviceType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeviceTypeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).DeviceType(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/DeviceType",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).DeviceType(ctx, req.(*DeviceTypeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_MakeCredential_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(MakeCredentialRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).MakeCredential(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/MakeCredential",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).MakeCredential(ctx, req.(*MakeCredentialRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_SetPIN_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetPINRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).SetPIN(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/SetPIN",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).SetPIN(ctx, req.(*SetPINRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_Reset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ResetRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).Reset(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/Reset",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).Reset(ctx, req.(*ResetRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_RetryCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RetryCountRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).RetryCount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/RetryCount",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).RetryCount(ctx, req.(*RetryCountRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_Assertion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AssertionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).Assertion(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/Assertion",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).Assertion(ctx, req.(*AssertionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_CredentialsInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CredentialsInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).CredentialsInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/CredentialsInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).CredentialsInfo(ctx, req.(*CredentialsInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_Credentials_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CredentialsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).Credentials(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/Credentials",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).Credentials(ctx, req.(*CredentialsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_RelyingParties_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RelyingPartiesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).RelyingParties(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/RelyingParties",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).RelyingParties(ctx, req.(*RelyingPartiesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_GenerateHMACSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GenerateHMACSecretRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).GenerateHMACSecret(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/GenerateHMACSecret",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).GenerateHMACSecret(ctx, req.(*GenerateHMACSecretRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FIDO2_HMACSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HMACSecretRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FIDO2Server).HMACSecret(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fido2.FIDO2/HMACSecret",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FIDO2Server).HMACSecret(ctx, req.(*HMACSecretRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _FIDO2_serviceDesc = grpc.ServiceDesc{
	ServiceName: "fido2.FIDO2",
	HandlerType: (*FIDO2Server)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Devices",
			Handler:    _FIDO2_Devices_Handler,
		},
		{
			MethodName: "DeviceInfo",
			Handler:    _FIDO2_DeviceInfo_Handler,
		},
		{
			MethodName: "DeviceType",
			Handler:    _FIDO2_DeviceType_Handler,
		},
		{
			MethodName: "MakeCredential",
			Handler:    _FIDO2_MakeCredential_Handler,
		},
		{
			MethodName: "SetPIN",
			Handler:    _FIDO2_SetPIN_Handler,
		},
		{
			MethodName: "Reset",
			Handler:    _FIDO2_Reset_Handler,
		},
		{
			MethodName: "RetryCount",
			Handler:    _FIDO2_RetryCount_Handler,
		},
		{
			MethodName: "Assertion",
			Handler:    _FIDO2_Assertion_Handler,
		},
		{
			MethodName: "CredentialsInfo",
			Handler:    _FIDO2_CredentialsInfo_Handler,
		},
		{
			MethodName: "Credentials",
			Handler:    _FIDO2_Credentials_Handler,
		},
		{
			MethodName: "RelyingParties",
			Handler:    _FIDO2_RelyingParties_Handler,
		},
		{
			MethodName: "GenerateHMACSecret",
			Handler:    _FIDO2_GenerateHMACSecret_Handler,
		},
		{
			MethodName: "HMACSecret",
			Handler:    _FIDO2_HMACSecret_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "fido2.proto",
}
