Documentation
¶
Index ¶
- Constants
- Variables
- func MarshalRecord(version uint32, rec []byte) ([]byte, error)
- func ParseVersionAndContent(prefix, str string) (version uint32, content []byte, err error)
- func UnmarshalRecord(record []byte) (version uint32, rec []byte, err error)
- func UpdateEnrollmentRecord(oldRecord []byte, updateToken string) (newRecord []byte, err error)
- type APIClient
- type Context
- type DatabaseRecord
- func (*DatabaseRecord) Descriptor() ([]byte, []int)
- func (m *DatabaseRecord) GetRecord() []byte
- func (m *DatabaseRecord) GetVersion() uint32
- func (*DatabaseRecord) ProtoMessage()
- func (m *DatabaseRecord) Reset()
- func (m *DatabaseRecord) String() string
- func (m *DatabaseRecord) XXX_DiscardUnknown()
- func (m *DatabaseRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *DatabaseRecord) XXX_Merge(src proto.Message)
- func (m *DatabaseRecord) XXX_Size() int
- func (m *DatabaseRecord) XXX_Unmarshal(b []byte) error
- type EnrollmentRequest
- func (*EnrollmentRequest) Descriptor() ([]byte, []int)
- func (m *EnrollmentRequest) GetVersion() uint32
- func (*EnrollmentRequest) ProtoMessage()
- func (m *EnrollmentRequest) Reset()
- func (m *EnrollmentRequest) String() string
- func (m *EnrollmentRequest) XXX_DiscardUnknown()
- func (m *EnrollmentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *EnrollmentRequest) XXX_Merge(src proto.Message)
- func (m *EnrollmentRequest) XXX_Size() int
- func (m *EnrollmentRequest) XXX_Unmarshal(b []byte) error
- type EnrollmentResponse
- func (*EnrollmentResponse) Descriptor() ([]byte, []int)
- func (m *EnrollmentResponse) GetResponse() []byte
- func (m *EnrollmentResponse) GetVersion() uint32
- func (*EnrollmentResponse) ProtoMessage()
- func (m *EnrollmentResponse) Reset()
- func (m *EnrollmentResponse) String() string
- func (m *EnrollmentResponse) XXX_DiscardUnknown()
- func (m *EnrollmentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *EnrollmentResponse) XXX_Merge(src proto.Message)
- func (m *EnrollmentResponse) XXX_Size() int
- func (m *EnrollmentResponse) XXX_Unmarshal(b []byte) error
- type HTTPClient
- type HttpError
- func (*HttpError) Descriptor() ([]byte, []int)
- func (m *HttpError) Error() string
- func (m *HttpError) GetCode() uint32
- func (m *HttpError) GetMessage() string
- func (*HttpError) ProtoMessage()
- func (m *HttpError) Reset()
- func (m *HttpError) String() string
- func (m *HttpError) XXX_DiscardUnknown()
- func (m *HttpError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *HttpError) XXX_Merge(src proto.Message)
- func (m *HttpError) XXX_Size() int
- func (m *HttpError) XXX_Unmarshal(b []byte) error
- type Protocol
- type RecordUpdater
- type VerifyPasswordRequest
- func (*VerifyPasswordRequest) Descriptor() ([]byte, []int)
- func (m *VerifyPasswordRequest) GetRequest() []byte
- func (m *VerifyPasswordRequest) GetVersion() uint32
- func (*VerifyPasswordRequest) ProtoMessage()
- func (m *VerifyPasswordRequest) Reset()
- func (m *VerifyPasswordRequest) String() string
- func (m *VerifyPasswordRequest) XXX_DiscardUnknown()
- func (m *VerifyPasswordRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *VerifyPasswordRequest) XXX_Merge(src proto.Message)
- func (m *VerifyPasswordRequest) XXX_Size() int
- func (m *VerifyPasswordRequest) XXX_Unmarshal(b []byte) error
- type VerifyPasswordResponse
- func (*VerifyPasswordResponse) Descriptor() ([]byte, []int)
- func (m *VerifyPasswordResponse) GetResponse() []byte
- func (*VerifyPasswordResponse) ProtoMessage()
- func (m *VerifyPasswordResponse) Reset()
- func (m *VerifyPasswordResponse) String() string
- func (m *VerifyPasswordResponse) XXX_DiscardUnknown()
- func (m *VerifyPasswordResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *VerifyPasswordResponse) XXX_Merge(src proto.Message)
- func (m *VerifyPasswordResponse) XXX_Size() int
- func (m *VerifyPasswordResponse) XXX_Unmarshal(b []byte) error
- type VersionedUpdateToken
- func (*VersionedUpdateToken) Descriptor() ([]byte, []int)
- func (m *VersionedUpdateToken) GetUpdateToken() []byte
- func (m *VersionedUpdateToken) GetVersion() uint32
- func (*VersionedUpdateToken) ProtoMessage()
- func (m *VersionedUpdateToken) Reset()
- func (m *VersionedUpdateToken) String() string
- func (m *VersionedUpdateToken) XXX_DiscardUnknown()
- func (m *VersionedUpdateToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *VersionedUpdateToken) XXX_Merge(src proto.Message)
- func (m *VersionedUpdateToken) XXX_Size() int
- func (m *VersionedUpdateToken) XXX_Unmarshal(b []byte) error
- type VirgilHTTPClient
Constants ¶
const (
// Version represents pureKit SDK version
Version = "v2"
)
Variables ¶
var ErrInvalidPassword = errors.New("invalid password")
ErrInvalidPassword is returned when protocol determines validation failure
Functions ¶
func MarshalRecord ¶
MarshalRecord serializes enrolment record to protobuf
func ParseVersionAndContent ¶
ParseVersionAndContent splits string into 3 parts: Prefix, version and decoded base64 content
func UnmarshalRecord ¶
UnmarshalRecord deserializes record from protobuf
Types ¶
type APIClient ¶
type APIClient struct { AppToken string URL string HTTPClient *VirgilHTTPClient // contains filtered or unexported fields }
APIClient implements API request layer
func (*APIClient) GetEnrollment ¶
func (c *APIClient) GetEnrollment(req *EnrollmentRequest) (resp *EnrollmentResponse, err error)
GetEnrollment receives random enrollment from service
func (*APIClient) VerifyPassword ¶
func (c *APIClient) VerifyPassword(req *VerifyPasswordRequest) (resp *VerifyPasswordResponse, err error)
VerifyPassword does not send password to server, only the part tat server provided in GetEnrollment
type Context ¶
type Context struct { AppToken string PHEClients map[uint32]*phe.Client Version uint32 UpdateToken *VersionedUpdateToken }
Context holds & validates protocol input parameters
func CreateContext ¶
func CreateContext(appToken, servicePublicKey, clientSecretKey, updateToken string) (*Context, error)
CreateContext validates input parameters and prepares them for being used in Protocol
type DatabaseRecord ¶
type DatabaseRecord struct { Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` Record []byte `protobuf:"bytes,2,opt,name=record,proto3" json:"record,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*DatabaseRecord) Descriptor ¶
func (*DatabaseRecord) Descriptor() ([]byte, []int)
func (*DatabaseRecord) GetRecord ¶
func (m *DatabaseRecord) GetRecord() []byte
func (*DatabaseRecord) GetVersion ¶
func (m *DatabaseRecord) GetVersion() uint32
func (*DatabaseRecord) ProtoMessage ¶
func (*DatabaseRecord) ProtoMessage()
func (*DatabaseRecord) Reset ¶
func (m *DatabaseRecord) Reset()
func (*DatabaseRecord) String ¶
func (m *DatabaseRecord) String() string
func (*DatabaseRecord) XXX_DiscardUnknown ¶
func (m *DatabaseRecord) XXX_DiscardUnknown()
func (*DatabaseRecord) XXX_Marshal ¶
func (m *DatabaseRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*DatabaseRecord) XXX_Merge ¶
func (m *DatabaseRecord) XXX_Merge(src proto.Message)
func (*DatabaseRecord) XXX_Size ¶
func (m *DatabaseRecord) XXX_Size() int
func (*DatabaseRecord) XXX_Unmarshal ¶
func (m *DatabaseRecord) XXX_Unmarshal(b []byte) error
type EnrollmentRequest ¶
type EnrollmentRequest struct { Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*EnrollmentRequest) Descriptor ¶
func (*EnrollmentRequest) Descriptor() ([]byte, []int)
func (*EnrollmentRequest) GetVersion ¶
func (m *EnrollmentRequest) GetVersion() uint32
func (*EnrollmentRequest) ProtoMessage ¶
func (*EnrollmentRequest) ProtoMessage()
func (*EnrollmentRequest) Reset ¶
func (m *EnrollmentRequest) Reset()
func (*EnrollmentRequest) String ¶
func (m *EnrollmentRequest) String() string
func (*EnrollmentRequest) XXX_DiscardUnknown ¶
func (m *EnrollmentRequest) XXX_DiscardUnknown()
func (*EnrollmentRequest) XXX_Marshal ¶
func (m *EnrollmentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*EnrollmentRequest) XXX_Merge ¶
func (m *EnrollmentRequest) XXX_Merge(src proto.Message)
func (*EnrollmentRequest) XXX_Size ¶
func (m *EnrollmentRequest) XXX_Size() int
func (*EnrollmentRequest) XXX_Unmarshal ¶
func (m *EnrollmentRequest) XXX_Unmarshal(b []byte) error
type EnrollmentResponse ¶
type EnrollmentResponse struct { Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` Response []byte `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*EnrollmentResponse) Descriptor ¶
func (*EnrollmentResponse) Descriptor() ([]byte, []int)
func (*EnrollmentResponse) GetResponse ¶
func (m *EnrollmentResponse) GetResponse() []byte
func (*EnrollmentResponse) GetVersion ¶
func (m *EnrollmentResponse) GetVersion() uint32
func (*EnrollmentResponse) ProtoMessage ¶
func (*EnrollmentResponse) ProtoMessage()
func (*EnrollmentResponse) Reset ¶
func (m *EnrollmentResponse) Reset()
func (*EnrollmentResponse) String ¶
func (m *EnrollmentResponse) String() string
func (*EnrollmentResponse) XXX_DiscardUnknown ¶
func (m *EnrollmentResponse) XXX_DiscardUnknown()
func (*EnrollmentResponse) XXX_Marshal ¶
func (m *EnrollmentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*EnrollmentResponse) XXX_Merge ¶
func (m *EnrollmentResponse) XXX_Merge(src proto.Message)
func (*EnrollmentResponse) XXX_Size ¶
func (m *EnrollmentResponse) XXX_Size() int
func (*EnrollmentResponse) XXX_Unmarshal ¶
func (m *EnrollmentResponse) XXX_Unmarshal(b []byte) error
type HTTPClient ¶
HTTPClient describes transport layer
type HttpError ¶
type HttpError struct { Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*HttpError) Descriptor ¶
func (*HttpError) GetMessage ¶
func (*HttpError) ProtoMessage ¶
func (*HttpError) ProtoMessage()
func (*HttpError) XXX_DiscardUnknown ¶
func (m *HttpError) XXX_DiscardUnknown()
func (*HttpError) XXX_Marshal ¶
func (*HttpError) XXX_Unmarshal ¶
type Protocol ¶
type Protocol struct { AppToken string PHEClients map[uint32]*phe.Client APIClient *APIClient CurrentVersion uint32 UpdateToken *VersionedUpdateToken // contains filtered or unexported fields }
Protocol implements PureKit client-server protocol
func NewProtocol ¶
NewProtocol initializes new protocol instance with proper Context
type RecordUpdater ¶ added in v1.0.2
type RecordUpdater struct {
// contains filtered or unexported fields
}
func NewRecordUpdater ¶ added in v1.0.2
func NewRecordUpdater(updateToken string) (*RecordUpdater, error)
NewRecordUpdater creates a new instance of RecordUpdater
func (*RecordUpdater) UpdateRecord ¶ added in v1.0.2
func (r *RecordUpdater) UpdateRecord(oldRecord []byte) (updatedRecord []byte, err error)
UpdateRecord applies update token to a record to get updated record. It returns nil record if versions match
type VerifyPasswordRequest ¶
type VerifyPasswordRequest struct { Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` Request []byte `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*VerifyPasswordRequest) Descriptor ¶
func (*VerifyPasswordRequest) Descriptor() ([]byte, []int)
func (*VerifyPasswordRequest) GetRequest ¶
func (m *VerifyPasswordRequest) GetRequest() []byte
func (*VerifyPasswordRequest) GetVersion ¶
func (m *VerifyPasswordRequest) GetVersion() uint32
func (*VerifyPasswordRequest) ProtoMessage ¶
func (*VerifyPasswordRequest) ProtoMessage()
func (*VerifyPasswordRequest) Reset ¶
func (m *VerifyPasswordRequest) Reset()
func (*VerifyPasswordRequest) String ¶
func (m *VerifyPasswordRequest) String() string
func (*VerifyPasswordRequest) XXX_DiscardUnknown ¶
func (m *VerifyPasswordRequest) XXX_DiscardUnknown()
func (*VerifyPasswordRequest) XXX_Marshal ¶
func (m *VerifyPasswordRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*VerifyPasswordRequest) XXX_Merge ¶
func (m *VerifyPasswordRequest) XXX_Merge(src proto.Message)
func (*VerifyPasswordRequest) XXX_Size ¶
func (m *VerifyPasswordRequest) XXX_Size() int
func (*VerifyPasswordRequest) XXX_Unmarshal ¶
func (m *VerifyPasswordRequest) XXX_Unmarshal(b []byte) error
type VerifyPasswordResponse ¶
type VerifyPasswordResponse struct { Response []byte `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*VerifyPasswordResponse) Descriptor ¶
func (*VerifyPasswordResponse) Descriptor() ([]byte, []int)
func (*VerifyPasswordResponse) GetResponse ¶
func (m *VerifyPasswordResponse) GetResponse() []byte
func (*VerifyPasswordResponse) ProtoMessage ¶
func (*VerifyPasswordResponse) ProtoMessage()
func (*VerifyPasswordResponse) Reset ¶
func (m *VerifyPasswordResponse) Reset()
func (*VerifyPasswordResponse) String ¶
func (m *VerifyPasswordResponse) String() string
func (*VerifyPasswordResponse) XXX_DiscardUnknown ¶
func (m *VerifyPasswordResponse) XXX_DiscardUnknown()
func (*VerifyPasswordResponse) XXX_Marshal ¶
func (m *VerifyPasswordResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*VerifyPasswordResponse) XXX_Merge ¶
func (m *VerifyPasswordResponse) XXX_Merge(src proto.Message)
func (*VerifyPasswordResponse) XXX_Size ¶
func (m *VerifyPasswordResponse) XXX_Size() int
func (*VerifyPasswordResponse) XXX_Unmarshal ¶
func (m *VerifyPasswordResponse) XXX_Unmarshal(b []byte) error
type VersionedUpdateToken ¶
type VersionedUpdateToken struct { Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` UpdateToken []byte `protobuf:"bytes,2,opt,name=update_token,json=updateToken,proto3" json:"update_token,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*VersionedUpdateToken) Descriptor ¶
func (*VersionedUpdateToken) Descriptor() ([]byte, []int)
func (*VersionedUpdateToken) GetUpdateToken ¶
func (m *VersionedUpdateToken) GetUpdateToken() []byte
func (*VersionedUpdateToken) GetVersion ¶
func (m *VersionedUpdateToken) GetVersion() uint32
func (*VersionedUpdateToken) ProtoMessage ¶
func (*VersionedUpdateToken) ProtoMessage()
func (*VersionedUpdateToken) Reset ¶
func (m *VersionedUpdateToken) Reset()
func (*VersionedUpdateToken) String ¶
func (m *VersionedUpdateToken) String() string
func (*VersionedUpdateToken) XXX_DiscardUnknown ¶
func (m *VersionedUpdateToken) XXX_DiscardUnknown()
func (*VersionedUpdateToken) XXX_Marshal ¶
func (m *VersionedUpdateToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*VersionedUpdateToken) XXX_Merge ¶
func (m *VersionedUpdateToken) XXX_Merge(src proto.Message)
func (*VersionedUpdateToken) XXX_Size ¶
func (m *VersionedUpdateToken) XXX_Size() int
func (*VersionedUpdateToken) XXX_Unmarshal ¶
func (m *VersionedUpdateToken) XXX_Unmarshal(b []byte) error
type VirgilHTTPClient ¶
type VirgilHTTPClient struct { Client HTTPClient Address string // contains filtered or unexported fields }
VirgilHTTPClient implements transport layer