package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"github.com/gotd/td/bin"
"github.com/gotd/td/tdjson"
"github.com/gotd/td/tdp"
"github.com/gotd/td/tgerr"
)
var (
_ = bin .Buffer {}
_ = context .Background ()
_ = fmt .Stringer (nil )
_ = strings .Builder {}
_ = errors .Is
_ = multierr .AppendInto
_ = sort .Ints
_ = tdp .Format
_ = tgerr .Error {}
_ = tdjson .Encoder {}
)
type InputPasskeyResponseRegister struct {
ClientData DataJSON
AttestationData []byte
}
const InputPasskeyResponseRegisterTypeID = 0x3e63935c
func (i InputPasskeyResponseRegister ) construct () InputPasskeyResponseClass { return &i }
var (
_ bin .Encoder = &InputPasskeyResponseRegister {}
_ bin .Decoder = &InputPasskeyResponseRegister {}
_ bin .BareEncoder = &InputPasskeyResponseRegister {}
_ bin .BareDecoder = &InputPasskeyResponseRegister {}
_ InputPasskeyResponseClass = &InputPasskeyResponseRegister {}
)
func (i *InputPasskeyResponseRegister ) Zero () bool {
if i == nil {
return true
}
if !(i .ClientData .Zero ()) {
return false
}
if !(i .AttestationData == nil ) {
return false
}
return true
}
func (i *InputPasskeyResponseRegister ) String () string {
if i == nil {
return "InputPasskeyResponseRegister(nil)"
}
type Alias InputPasskeyResponseRegister
return fmt .Sprintf ("InputPasskeyResponseRegister%+v" , Alias (*i ))
}
func (i *InputPasskeyResponseRegister ) FillFrom (from interface {
GetClientData () (value DataJSON )
GetAttestationData () (value []byte )
}) {
i .ClientData = from .GetClientData ()
i .AttestationData = from .GetAttestationData ()
}
func (*InputPasskeyResponseRegister ) TypeID () uint32 {
return InputPasskeyResponseRegisterTypeID
}
func (*InputPasskeyResponseRegister ) TypeName () string {
return "inputPasskeyResponseRegister"
}
func (i *InputPasskeyResponseRegister ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "inputPasskeyResponseRegister" ,
ID : InputPasskeyResponseRegisterTypeID ,
}
if i == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "ClientData" ,
SchemaName : "client_data" ,
},
{
Name : "AttestationData" ,
SchemaName : "attestation_data" ,
},
}
return typ
}
func (i *InputPasskeyResponseRegister ) Encode (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't encode inputPasskeyResponseRegister#3e63935c as nil" )
}
b .PutID (InputPasskeyResponseRegisterTypeID )
return i .EncodeBare (b )
}
func (i *InputPasskeyResponseRegister ) EncodeBare (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't encode inputPasskeyResponseRegister#3e63935c as nil" )
}
if err := i .ClientData .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode inputPasskeyResponseRegister#3e63935c: field client_data: %w" , err )
}
b .PutBytes (i .AttestationData )
return nil
}
func (i *InputPasskeyResponseRegister ) Decode (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't decode inputPasskeyResponseRegister#3e63935c to nil" )
}
if err := b .ConsumeID (InputPasskeyResponseRegisterTypeID ); err != nil {
return fmt .Errorf ("unable to decode inputPasskeyResponseRegister#3e63935c: %w" , err )
}
return i .DecodeBare (b )
}
func (i *InputPasskeyResponseRegister ) DecodeBare (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't decode inputPasskeyResponseRegister#3e63935c to nil" )
}
{
if err := i .ClientData .Decode (b ); err != nil {
return fmt .Errorf ("unable to decode inputPasskeyResponseRegister#3e63935c: field client_data: %w" , err )
}
}
{
value , err := b .Bytes ()
if err != nil {
return fmt .Errorf ("unable to decode inputPasskeyResponseRegister#3e63935c: field attestation_data: %w" , err )
}
i .AttestationData = value
}
return nil
}
func (i *InputPasskeyResponseRegister ) GetClientData () (value DataJSON ) {
if i == nil {
return
}
return i .ClientData
}
func (i *InputPasskeyResponseRegister ) GetAttestationData () (value []byte ) {
if i == nil {
return
}
return i .AttestationData
}
type InputPasskeyResponseLogin struct {
ClientData DataJSON
AuthenticatorData []byte
Signature []byte
UserHandle string
}
const InputPasskeyResponseLoginTypeID = 0xc31fc14a
func (i InputPasskeyResponseLogin ) construct () InputPasskeyResponseClass { return &i }
var (
_ bin .Encoder = &InputPasskeyResponseLogin {}
_ bin .Decoder = &InputPasskeyResponseLogin {}
_ bin .BareEncoder = &InputPasskeyResponseLogin {}
_ bin .BareDecoder = &InputPasskeyResponseLogin {}
_ InputPasskeyResponseClass = &InputPasskeyResponseLogin {}
)
func (i *InputPasskeyResponseLogin ) Zero () bool {
if i == nil {
return true
}
if !(i .ClientData .Zero ()) {
return false
}
if !(i .AuthenticatorData == nil ) {
return false
}
if !(i .Signature == nil ) {
return false
}
if !(i .UserHandle == "" ) {
return false
}
return true
}
func (i *InputPasskeyResponseLogin ) String () string {
if i == nil {
return "InputPasskeyResponseLogin(nil)"
}
type Alias InputPasskeyResponseLogin
return fmt .Sprintf ("InputPasskeyResponseLogin%+v" , Alias (*i ))
}
func (i *InputPasskeyResponseLogin ) FillFrom (from interface {
GetClientData () (value DataJSON )
GetAuthenticatorData () (value []byte )
GetSignature () (value []byte )
GetUserHandle () (value string )
}) {
i .ClientData = from .GetClientData ()
i .AuthenticatorData = from .GetAuthenticatorData ()
i .Signature = from .GetSignature ()
i .UserHandle = from .GetUserHandle ()
}
func (*InputPasskeyResponseLogin ) TypeID () uint32 {
return InputPasskeyResponseLoginTypeID
}
func (*InputPasskeyResponseLogin ) TypeName () string {
return "inputPasskeyResponseLogin"
}
func (i *InputPasskeyResponseLogin ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "inputPasskeyResponseLogin" ,
ID : InputPasskeyResponseLoginTypeID ,
}
if i == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "ClientData" ,
SchemaName : "client_data" ,
},
{
Name : "AuthenticatorData" ,
SchemaName : "authenticator_data" ,
},
{
Name : "Signature" ,
SchemaName : "signature" ,
},
{
Name : "UserHandle" ,
SchemaName : "user_handle" ,
},
}
return typ
}
func (i *InputPasskeyResponseLogin ) Encode (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't encode inputPasskeyResponseLogin#c31fc14a as nil" )
}
b .PutID (InputPasskeyResponseLoginTypeID )
return i .EncodeBare (b )
}
func (i *InputPasskeyResponseLogin ) EncodeBare (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't encode inputPasskeyResponseLogin#c31fc14a as nil" )
}
if err := i .ClientData .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode inputPasskeyResponseLogin#c31fc14a: field client_data: %w" , err )
}
b .PutBytes (i .AuthenticatorData )
b .PutBytes (i .Signature )
b .PutString (i .UserHandle )
return nil
}
func (i *InputPasskeyResponseLogin ) Decode (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't decode inputPasskeyResponseLogin#c31fc14a to nil" )
}
if err := b .ConsumeID (InputPasskeyResponseLoginTypeID ); err != nil {
return fmt .Errorf ("unable to decode inputPasskeyResponseLogin#c31fc14a: %w" , err )
}
return i .DecodeBare (b )
}
func (i *InputPasskeyResponseLogin ) DecodeBare (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't decode inputPasskeyResponseLogin#c31fc14a to nil" )
}
{
if err := i .ClientData .Decode (b ); err != nil {
return fmt .Errorf ("unable to decode inputPasskeyResponseLogin#c31fc14a: field client_data: %w" , err )
}
}
{
value , err := b .Bytes ()
if err != nil {
return fmt .Errorf ("unable to decode inputPasskeyResponseLogin#c31fc14a: field authenticator_data: %w" , err )
}
i .AuthenticatorData = value
}
{
value , err := b .Bytes ()
if err != nil {
return fmt .Errorf ("unable to decode inputPasskeyResponseLogin#c31fc14a: field signature: %w" , err )
}
i .Signature = value
}
{
value , err := b .String ()
if err != nil {
return fmt .Errorf ("unable to decode inputPasskeyResponseLogin#c31fc14a: field user_handle: %w" , err )
}
i .UserHandle = value
}
return nil
}
func (i *InputPasskeyResponseLogin ) GetClientData () (value DataJSON ) {
if i == nil {
return
}
return i .ClientData
}
func (i *InputPasskeyResponseLogin ) GetAuthenticatorData () (value []byte ) {
if i == nil {
return
}
return i .AuthenticatorData
}
func (i *InputPasskeyResponseLogin ) GetSignature () (value []byte ) {
if i == nil {
return
}
return i .Signature
}
func (i *InputPasskeyResponseLogin ) GetUserHandle () (value string ) {
if i == nil {
return
}
return i .UserHandle
}
const InputPasskeyResponseClassName = "InputPasskeyResponse"
type InputPasskeyResponseClass interface {
bin .Encoder
bin .Decoder
bin .BareEncoder
bin .BareDecoder
construct () InputPasskeyResponseClass
TypeID () uint32
TypeName () string
String () string
Zero () bool
GetClientData () (value DataJSON )
}
func DecodeInputPasskeyResponse (buf *bin .Buffer ) (InputPasskeyResponseClass , error ) {
id , err := buf .PeekID ()
if err != nil {
return nil , err
}
switch id {
case InputPasskeyResponseRegisterTypeID :
v := InputPasskeyResponseRegister {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode InputPasskeyResponseClass: %w" , err )
}
return &v , nil
case InputPasskeyResponseLoginTypeID :
v := InputPasskeyResponseLogin {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode InputPasskeyResponseClass: %w" , err )
}
return &v , nil
default :
return nil , fmt .Errorf ("unable to decode InputPasskeyResponseClass: %w" , bin .NewUnexpectedID (id ))
}
}
type InputPasskeyResponseBox struct {
InputPasskeyResponse InputPasskeyResponseClass
}
func (b *InputPasskeyResponseBox ) Decode (buf *bin .Buffer ) error {
if b == nil {
return fmt .Errorf ("unable to decode InputPasskeyResponseBox to nil" )
}
v , err := DecodeInputPasskeyResponse (buf )
if err != nil {
return fmt .Errorf ("unable to decode boxed value: %w" , err )
}
b .InputPasskeyResponse = v
return nil
}
func (b *InputPasskeyResponseBox ) Encode (buf *bin .Buffer ) error {
if b == nil || b .InputPasskeyResponse == nil {
return fmt .Errorf ("unable to encode InputPasskeyResponseClass as nil" )
}
return b .InputPasskeyResponse .Encode (buf )
}
The pages are generated with Golds v0.8.4 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .