2026-09-05 00:57:28 +03:00
//
// Copyright 2026 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.6.2
// - protoc v7.34.1
// source: org/signal/chat/challenge.proto
package challenge
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.
// Requires gRPC-Go v1.64.0 or later.
const _ = grpc . SupportPackageIsVersion9
const (
2026-10-01 18:12:17 +03:00
Challenge_AnswerChallenge_FullMethodName = "/org.signal.chat.challenge.Challenge/AnswerChallenge"
Challenge_RequestPushChallenge_FullMethodName = "/org.signal.chat.challenge.Challenge/RequestPushChallenge"
2026-09-05 00:57:28 +03:00
)
// ChallengeClient is the client API for Challenge 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 ChallengeClient interface {
2026-10-01 18:12:17 +03:00
// Submit proof of a challenge completion.
//
// Some server endpoints (the "send message" endpoint, for example) may return
// a response indicating the client must complete a challenge before continuing.
// Clients may use this endpoint to provide proof of a completed challenge.
// If successful, the client may then continue their original operation.
AnswerChallenge ( ctx context . Context , in * AnswerChallengeRequest , opts ... grpc . CallOption ) ( * AnswerChallengeResponse , error )
// Requests that a challenge value be sent to the authenticated account's
// primary device via push notification. Once received, callers may present
// the challenge value via the HandleChallengeResponse RPC.
//
// APNs challenge payloads will be formatted as follows:
//
// ```
// {
// "aps": {
// "sound": "default",
// "alert": {
// "loc-key": "APN_Message"
// }
// },
// "rateLimitChallenge": "{CHALLENGE_TOKEN}"
// }
// ```
//
// FCM challenge payloads will be formatted as follows:
//
// ```
// {"rateLimitChallenge": "{CHALLENGE_TOKEN}"}
// ```
RequestPushChallenge ( ctx context . Context , in * RequestPushChallengeRequest , opts ... grpc . CallOption ) ( * RequestPushChallengeResponse , error )
2026-09-05 00:57:28 +03:00
}
type challengeClient struct {
cc grpc . ClientConnInterface
}
func NewChallengeClient ( cc grpc . ClientConnInterface ) ChallengeClient {
return & challengeClient { cc }
}
2026-10-01 18:12:17 +03:00
func ( c * challengeClient ) AnswerChallenge ( ctx context . Context , in * AnswerChallengeRequest , opts ... grpc . CallOption ) ( * AnswerChallengeResponse , error ) {
2026-09-05 00:57:28 +03:00
cOpts := append ( [ ] grpc . CallOption { grpc . StaticMethod ( ) } , opts ... )
out := new ( AnswerChallengeResponse )
2026-10-01 18:12:17 +03:00
err := c . cc . Invoke ( ctx , Challenge_AnswerChallenge_FullMethodName , in , out , cOpts ... )
if err != nil {
return nil , err
}
return out , nil
}
func ( c * challengeClient ) RequestPushChallenge ( ctx context . Context , in * RequestPushChallengeRequest , opts ... grpc . CallOption ) ( * RequestPushChallengeResponse , error ) {
cOpts := append ( [ ] grpc . CallOption { grpc . StaticMethod ( ) } , opts ... )
out := new ( RequestPushChallengeResponse )
err := c . cc . Invoke ( ctx , Challenge_RequestPushChallenge_FullMethodName , in , out , cOpts ... )
2026-09-05 00:57:28 +03:00
if err != nil {
return nil , err
}
return out , nil
}
// ChallengeServer is the server API for Challenge service.
// All implementations must embed UnimplementedChallengeServer
// for forward compatibility.
type ChallengeServer interface {
2026-10-01 18:12:17 +03:00
// Submit proof of a challenge completion.
//
// Some server endpoints (the "send message" endpoint, for example) may return
// a response indicating the client must complete a challenge before continuing.
// Clients may use this endpoint to provide proof of a completed challenge.
// If successful, the client may then continue their original operation.
AnswerChallenge ( context . Context , * AnswerChallengeRequest ) ( * AnswerChallengeResponse , error )
// Requests that a challenge value be sent to the authenticated account's
// primary device via push notification. Once received, callers may present
// the challenge value via the HandleChallengeResponse RPC.
//
// APNs challenge payloads will be formatted as follows:
//
// ```
// {
// "aps": {
// "sound": "default",
// "alert": {
// "loc-key": "APN_Message"
// }
// },
// "rateLimitChallenge": "{CHALLENGE_TOKEN}"
// }
// ```
//
// FCM challenge payloads will be formatted as follows:
//
// ```
// {"rateLimitChallenge": "{CHALLENGE_TOKEN}"}
// ```
RequestPushChallenge ( context . Context , * RequestPushChallengeRequest ) ( * RequestPushChallengeResponse , error )
2026-09-05 00:57:28 +03:00
mustEmbedUnimplementedChallengeServer ( )
}
// UnimplementedChallengeServer must be embedded to have
// forward compatible implementations.
//
// NOTE: this should be embedded by value instead of pointer to avoid a nil
// pointer dereference when methods are called.
type UnimplementedChallengeServer struct { }
2026-10-01 18:12:17 +03:00
func ( UnimplementedChallengeServer ) AnswerChallenge ( context . Context , * AnswerChallengeRequest ) ( * AnswerChallengeResponse , error ) {
return nil , status . Error ( codes . Unimplemented , "method AnswerChallenge not implemented" )
}
func ( UnimplementedChallengeServer ) RequestPushChallenge ( context . Context , * RequestPushChallengeRequest ) ( * RequestPushChallengeResponse , error ) {
return nil , status . Error ( codes . Unimplemented , "method RequestPushChallenge not implemented" )
2026-09-05 00:57:28 +03:00
}
func ( UnimplementedChallengeServer ) mustEmbedUnimplementedChallengeServer ( ) { }
func ( UnimplementedChallengeServer ) testEmbeddedByValue ( ) { }
// UnsafeChallengeServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to ChallengeServer will
// result in compilation errors.
type UnsafeChallengeServer interface {
mustEmbedUnimplementedChallengeServer ( )
}
func RegisterChallengeServer ( s grpc . ServiceRegistrar , srv ChallengeServer ) {
// If the following call panics, it indicates UnimplementedChallengeServer was
// embedded by pointer and is nil. This will cause panics if an
// unimplemented method is ever invoked, so we test this at initialization
// time to prevent it from happening at runtime later due to I/O.
if t , ok := srv . ( interface { testEmbeddedByValue ( ) } ) ; ok {
t . testEmbeddedByValue ( )
}
s . RegisterService ( & Challenge_ServiceDesc , srv )
}
2026-10-01 18:12:17 +03:00
func _Challenge_AnswerChallenge_Handler ( srv interface { } , ctx context . Context , dec func ( interface { } ) error , interceptor grpc . UnaryServerInterceptor ) ( interface { } , error ) {
2026-09-05 00:57:28 +03:00
in := new ( AnswerChallengeRequest )
if err := dec ( in ) ; err != nil {
return nil , err
}
if interceptor == nil {
2026-10-01 18:12:17 +03:00
return srv . ( ChallengeServer ) . AnswerChallenge ( ctx , in )
2026-09-05 00:57:28 +03:00
}
info := & grpc . UnaryServerInfo {
Server : srv ,
2026-10-01 18:12:17 +03:00
FullMethod : Challenge_AnswerChallenge_FullMethodName ,
2026-09-05 00:57:28 +03:00
}
handler := func ( ctx context . Context , req interface { } ) ( interface { } , error ) {
2026-10-01 18:12:17 +03:00
return srv . ( ChallengeServer ) . AnswerChallenge ( ctx , req . ( * AnswerChallengeRequest ) )
}
return interceptor ( ctx , in , info , handler )
}
func _Challenge_RequestPushChallenge_Handler ( srv interface { } , ctx context . Context , dec func ( interface { } ) error , interceptor grpc . UnaryServerInterceptor ) ( interface { } , error ) {
in := new ( RequestPushChallengeRequest )
if err := dec ( in ) ; err != nil {
return nil , err
}
if interceptor == nil {
return srv . ( ChallengeServer ) . RequestPushChallenge ( ctx , in )
}
info := & grpc . UnaryServerInfo {
Server : srv ,
FullMethod : Challenge_RequestPushChallenge_FullMethodName ,
}
handler := func ( ctx context . Context , req interface { } ) ( interface { } , error ) {
return srv . ( ChallengeServer ) . RequestPushChallenge ( ctx , req . ( * RequestPushChallengeRequest ) )
2026-09-05 00:57:28 +03:00
}
return interceptor ( ctx , in , info , handler )
}
// Challenge_ServiceDesc is the grpc.ServiceDesc for Challenge service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var Challenge_ServiceDesc = grpc . ServiceDesc {
ServiceName : "org.signal.chat.challenge.Challenge" ,
HandlerType : ( * ChallengeServer ) ( nil ) ,
Methods : [ ] grpc . MethodDesc {
{
2026-10-01 18:12:17 +03:00
MethodName : "AnswerChallenge" ,
Handler : _Challenge_AnswerChallenge_Handler ,
} ,
{
MethodName : "RequestPushChallenge" ,
Handler : _Challenge_RequestPushChallenge_Handler ,
2026-09-05 00:57:28 +03:00
} ,
} ,
Streams : [ ] grpc . StreamDesc { } ,
Metadata : "org/signal/chat/challenge.proto" ,
}