Documentation
¶
Overview ¶
Wire protocol commands.
Wire protocol commands.
Index ¶
- Constants
- func HybridKeySize(scheme nike.Scheme) int
- type Cert
- type CertStatus
- type Command
- type Commands
- type Consensus
- type Consensus2
- type Disconnect
- type GetConsensus
- type GetConsensus2
- type GetVote
- type Message
- type MessageACK
- type MessageEmpty
- type NoOp
- type PostDescriptor
- type PostDescriptorStatus
- type PostReplicaDescriptor
- type PostReplicaDescriptorStatus
- type ReplicaMessage
- type ReplicaMessageReply
- type ReplicaRead
- type ReplicaReadReply
- type ReplicaWrite
- type ReplicaWriteReply
- type RetrieveMessage
- type Reveal
- type RevealStatus
- type SendPacket
- type SendRetrievePacket
- type SendRetrievePacketReply
- type Sig
- type SigStatus
- type Vote
- type VoteStatus
Constants ¶
const ( // ConsensusOk signifies that the GetConsensus request has completed // successfully. ConsensusOk = 0 // ConsensusNotFound signifies that the document document corresponding // to the epoch in the GetConsensus was not found, but retrying later // may be successful. ConsensusNotFound = 1 // ConsensusGone signifies that the document corresponding to the epoch // in the GetConsensus was not found, and that retrying later will // not be successful. ConsensusGone = 2 // DescriptorOk signifies that the PostDescriptor request has completed // succcessfully. DescriptorOk = 0 // DescriptorInvalid signifies that the PostDescriptor request has failed // due to an unspecified error. DescriptorInvalid = 1 // DescriptorConflict signifies that the PostDescriptor request has // failed due to the uploaded descriptor conflicting with a previously // uploaded descriptor. DescriptorConflict = 2 // DescriptorForbidden signifies that the PostDescriptor request has // failed due to an authentication error. DescriptorForbidden = 3 // VoteOk signifies that the vote was accepted by the peer. VoteOk = 0 // VoteTooLate signifies that the vote was too late. VoteTooLate = 1 // VoteTooEarly signifies that the vote was too late. VoteTooEarly = 2 // VoteNotAuthorized signifies that the voting entity's key is not authorized. VoteNotAuthorized = 3 // VoteNotSigned signifies that the vote payload failed signature verification. VoteNotSigned = 4 // VoteMalformed signifies that the vote payload was invalid. VoteMalformed = 5 // VoteAlreadyReceived signifies that the vote from that peer was already received. VoteAlreadyReceived = 6 // VoteNotFound signifies that the vote was not found. VoteNotFound = 7 // RevealOk signifies that the reveal was accepted by the peer. RevealOk = 8 // RevealTooEarly signifies that the peer is breaking protocol. RevealTooEarly = 9 // RevealNotAuthorized signifies that the revealing entity's key is not authorized. RevealNotAuthorized = 10 // RevealNotSigned signifies that the reveal payload failed signature verification. RevealNotSigned = 11 // RevealAlreadyReceived signifies that the reveal from that peer was already received. RevealAlreadyReceived = 12 // RevealTooLate signifies that the reveal from that peer arrived too late. RevealTooLate = 13 // CertOk signifies that the certificate was accepted by the peer. CertOk = 14 // CertTooEarly signifies that the peer is breaking protocol. CertTooEarly = 15 // CertNotAuthorized signifies that the certifying entity's key is not CertNotAuthorized = 16 // CertNotSigned signifies that the certficiate payload failed signature verification. CertNotSigned = 17 // CertAlreadyReceived signifies that the certificate from that peer was already received. CertAlreadyReceived = 18 // CertTooLate signifies that the certificate from that peer arrived too late. CertTooLate = 19 // SigOK signifies that the signature was accepted by the peer. SigOk = 20 // SigNotAuthorized signifies that the entity's key is not authorized. SigNotAuthorized = 21 // SigNotSigned signifies that the signature command failed signature verification. SigNotSigned = 22 // SigTooEarly signifies that the peer is breaking protocol. SigTooEarly = 23 // SigTooLate signifies that the signature from that peer arrived too late. SigTooLate = 24 // SigAlreadyReceived signifies that the signature from that peer was already received. SigAlreadyReceived = 25 // SigInvalid signifies that the signature failed to deserialiez. SigInvalid = 26 )
Variables ¶
This section is empty.
Functions ¶
func HybridKeySize ¶ added in v0.0.44
Types ¶
type CertStatus ¶
type CertStatus struct {
ErrorCode uint8
}
CertStatus is a resonse status for a Cert command.
func (*CertStatus) Length ¶ added in v0.0.44
func (c *CertStatus) Length() int
func (*CertStatus) ToBytes ¶
func (c *CertStatus) ToBytes() []byte
ToBytes serializes the CertStatus and returns the resulting slice.
type Command ¶
type Command interface { // ToBytes serializes the command and returns the resulting slice. ToBytes() []byte // Length returns the length in bytes of the given command. Length() int }
Command is the common interface exposed by all message command structures.
type Commands ¶
type Commands struct { MaxMessageLenServerToClient int MaxMessageLenClientToServer int // contains filtered or unexported fields }
Commands encapsulates all of the wire protocol commands so that it can pass around a sphinx geometry where needed.
func NewMixnetCommands ¶ added in v0.0.44
NewMixnetCommands creates a Commands instance suitale to be used by mixnet nodes.
func NewPKICommands ¶
NewPKICommands creates a Commands instance suitale to be used by PKI nodes.
func NewStorageReplicaCommands ¶ added in v0.0.44
NewStorageReplicaCommands creates a Commands instance suitale to be used by storage replica nodes.
func (*Commands) FromBytes ¶
FromBytes de-serializes the command in the buffer b, returning a Command or an error.
func (*Commands) MaxCommandSize ¶ added in v0.0.44
type Consensus2 ¶ added in v0.0.46
type Consensus2 struct { Cmds *Commands ErrorCode uint8 ChunkNum uint32 ChunkTotal uint32 Payload []byte }
Consensus2 is used to send a PKI document in compressed binary chunks.
func (*Consensus2) Length ¶ added in v0.0.46
func (c *Consensus2) Length() int
func (*Consensus2) ToBytes ¶ added in v0.0.46
func (c *Consensus2) ToBytes() []byte
ToBytes serializes the Consensus and returns the resulting byte slice.
type Disconnect ¶
type Disconnect struct {
Cmds *Commands
}
Disconnect is a de-serialized disconnect command.
func (*Disconnect) Length ¶ added in v0.0.44
func (c *Disconnect) Length() int
func (*Disconnect) ToBytes ¶
func (c *Disconnect) ToBytes() []byte
ToBytes serializes the Disconnect and returns the resulting slice.
type GetConsensus ¶
type GetConsensus struct { Epoch uint64 Cmds *Commands MixnetTransmission bool // if GetConsensus is sent over the mixnet, if true we need to pad the message }
GetConsensus is a de-serialized get_consensus command.
func (*GetConsensus) Length ¶ added in v0.0.44
func (c *GetConsensus) Length() int
func (*GetConsensus) ToBytes ¶
func (c *GetConsensus) ToBytes() []byte
ToBytes serializes the GetConsensus and returns the resulting byte slice.
type GetConsensus2 ¶ added in v0.0.46
func (*GetConsensus2) Length ¶ added in v0.0.46
func (c *GetConsensus2) Length() int
func (*GetConsensus2) ToBytes ¶ added in v0.0.46
func (c *GetConsensus2) ToBytes() []byte
ToBytes serializes the GetConsensus and returns the resulting byte slice.
type Message ¶
type Message struct { Geo *geo.Geometry Cmds *Commands QueueSizeHint uint8 Sequence uint32 Payload []byte }
Message is a de-serialized message command containing a message.
type MessageACK ¶
type MessageACK struct { Geo *geo.Geometry Cmds *Commands QueueSizeHint uint8 Sequence uint32 ID [constants.SURBIDLength]byte Payload []byte }
MessageACK is a de-serialized message command containing an ACK.
func (*MessageACK) Length ¶ added in v0.0.44
func (c *MessageACK) Length() int
func (*MessageACK) ToBytes ¶
func (c *MessageACK) ToBytes() []byte
ToBytes serializes the MessageACK and returns the resulting slice.
type MessageEmpty ¶
MessageEmpty is a de-serialized message command signifying a empty queue.
func (*MessageEmpty) Length ¶ added in v0.0.44
func (c *MessageEmpty) Length() int
func (*MessageEmpty) ToBytes ¶
func (c *MessageEmpty) ToBytes() []byte
ToBytes serializes the MessageEmpty and returns the resulting slice.
type PostDescriptor ¶
PostDescriptor is a de-serialized post_descriptor command.
func (*PostDescriptor) Length ¶ added in v0.0.44
func (c *PostDescriptor) Length() int
func (*PostDescriptor) ToBytes ¶
func (c *PostDescriptor) ToBytes() []byte
ToBytes serializes the PostDescriptor and returns the resulting byte slice.
type PostDescriptorStatus ¶
type PostDescriptorStatus struct {
ErrorCode uint8
}
PostDescriptorStatus is a de-serialized post_descriptor_status command.
func (*PostDescriptorStatus) Length ¶ added in v0.0.44
func (c *PostDescriptorStatus) Length() int
func (*PostDescriptorStatus) ToBytes ¶
func (c *PostDescriptorStatus) ToBytes() []byte
ToBytes serializes the PostDescriptorStatus and returns the resulting byte slice.
type PostReplicaDescriptor ¶ added in v0.0.44
PostReplicaDescriptor is a de-serialized post_descriptor command.
func (*PostReplicaDescriptor) Length ¶ added in v0.0.44
func (c *PostReplicaDescriptor) Length() int
func (*PostReplicaDescriptor) ToBytes ¶ added in v0.0.44
func (c *PostReplicaDescriptor) ToBytes() []byte
ToBytes serializes the PostReplicaDescriptor and returns the resulting byte slice.
type PostReplicaDescriptorStatus ¶ added in v0.0.44
type PostReplicaDescriptorStatus struct {
ErrorCode uint8
}
PostReplicaDescriptorStatus is a de-serialized post_replica_descriptor_status command.
func (*PostReplicaDescriptorStatus) Length ¶ added in v0.0.44
func (c *PostReplicaDescriptorStatus) Length() int
func (*PostReplicaDescriptorStatus) ToBytes ¶ added in v0.0.44
func (c *PostReplicaDescriptorStatus) ToBytes() []byte
ToBytes serializes the PostReplicaDescriptorStatus and returns the resulting byte slice.
type ReplicaMessage ¶ added in v0.0.44
type ReplicaMessage struct { Cmds *Commands Geo *geo.Geometry Scheme nike.Scheme SenderEPubKey []byte DEK *[32]byte Ciphertext []byte }
ReplicaMessage used over wire protocol from couriers to replicas, one replica at a time.
func (*ReplicaMessage) Length ¶ added in v0.0.44
func (c *ReplicaMessage) Length() int
func (*ReplicaMessage) ToBytes ¶ added in v0.0.44
func (c *ReplicaMessage) ToBytes() []byte
type ReplicaMessageReply ¶ added in v0.0.44
type ReplicaMessageReply struct { Cmds *Commands ErrorCode uint8 EnvelopeHash *[32]byte EnvelopeReply []byte }
ReplicaMessageReply is sent by replicas to couriers as a reply to the ReplicaMessage command.
func (*ReplicaMessageReply) Length ¶ added in v0.0.44
func (c *ReplicaMessageReply) Length() int
func (*ReplicaMessageReply) ToBytes ¶ added in v0.0.44
func (c *ReplicaMessageReply) ToBytes() []byte
type ReplicaRead ¶ added in v0.0.44
ReplicaRead isn't used directly on the wire protocol but is embedded inside the ReplicaMessage which of course are sent by the couriers to the replicas.
func (*ReplicaRead) Length ¶ added in v0.0.44
func (c *ReplicaRead) Length() int
func (*ReplicaRead) ToBytes ¶ added in v0.0.44
func (c *ReplicaRead) ToBytes() []byte
type ReplicaReadReply ¶ added in v0.0.44
type ReplicaReadReply struct { Cmds *Commands Geo *geo.Geometry ErrorCode uint8 BoxID *[32]byte Signature *[32]byte Payload []byte }
ReplicaReadReply isn't used directly on the wire protocol but is embedded inside the ReplicaMessageReply which of course are sent by the replicas to the couriers. Therefore the ReplicaReadReply command is never padded because it is always encapsulated by the ReplicaMessageReply which is padded.
func (*ReplicaReadReply) Length ¶ added in v0.0.44
func (c *ReplicaReadReply) Length() int
func (*ReplicaReadReply) ToBytes ¶ added in v0.0.44
func (c *ReplicaReadReply) ToBytes() []byte
type ReplicaWrite ¶ added in v0.0.44
ReplicaWrite has two distinct uses. Firstly, it is to be used directly on the wire for replication between replicas. Secondly, it can be embedded inside a ReplicaMessage which of course are sent from couriers to replicas.
func (*ReplicaWrite) Length ¶ added in v0.0.44
func (c *ReplicaWrite) Length() int
func (*ReplicaWrite) ToBytes ¶ added in v0.0.44
func (c *ReplicaWrite) ToBytes() []byte
type ReplicaWriteReply ¶ added in v0.0.44
ReplicaWriteReply can facilitate replication between replicas as the reply to the ReplicaWrite command. Otherwise it is embedded in a ReplicaMessageReply and sent from replicas to couriers.
func (*ReplicaWriteReply) Length ¶ added in v0.0.44
func (c *ReplicaWriteReply) Length() int
func (*ReplicaWriteReply) ToBytes ¶ added in v0.0.44
func (c *ReplicaWriteReply) ToBytes() []byte
type RetrieveMessage ¶
RetrieveMessage is a de-serialized retrieve_message command.
func (*RetrieveMessage) Length ¶ added in v0.0.44
func (c *RetrieveMessage) Length() int
func (*RetrieveMessage) ToBytes ¶
func (c *RetrieveMessage) ToBytes() []byte
ToBytes serializes the RetrieveMessage and returns the resulting slice.
type RevealStatus ¶
type RevealStatus struct {
ErrorCode uint8
}
RevealStatus is a de-serialized revealStatus command.
func (*RevealStatus) Length ¶ added in v0.0.44
func (c *RevealStatus) Length() int
func (*RevealStatus) ToBytes ¶
func (r *RevealStatus) ToBytes() []byte
ToBytes serializes the RevealStatus and returns the resulting byte slice.
type SendPacket ¶
SendPacket is a de-serialized send_packet command.
func (*SendPacket) Length ¶ added in v0.0.44
func (c *SendPacket) Length() int
func (*SendPacket) ToBytes ¶
func (c *SendPacket) ToBytes() []byte
ToBytes serializes the SendPacket and returns the resulting slice.
type SendRetrievePacket ¶ added in v0.0.36
SendRetrievePacket is a command that sends a message or decoy and also retrieves a new message or decoy.
func (*SendRetrievePacket) Length ¶ added in v0.0.44
func (c *SendRetrievePacket) Length() int
func (*SendRetrievePacket) ToBytes ¶ added in v0.0.36
func (c *SendRetrievePacket) ToBytes() []byte
type SendRetrievePacketReply ¶ added in v0.0.36
type SendRetrievePacketReply struct { Cmds *Commands Geo *geo.Geometry SURBID [constants.SURBIDLength]byte Payload []byte }
SendRetrievePacketReply is the reply command for a previously sent `SendRetrievePacket`
func (*SendRetrievePacketReply) Length ¶ added in v0.0.44
func (c *SendRetrievePacketReply) Length() int
func (*SendRetrievePacketReply) ToBytes ¶ added in v0.0.36
func (c *SendRetrievePacketReply) ToBytes() []byte
type SigStatus ¶
type SigStatus struct {
ErrorCode uint8
}
SigStatus is a resonse status for a Sig command.
type VoteStatus ¶
type VoteStatus struct {
ErrorCode uint8
}
VoteStatus is a resonse status for a Vote command.
func (*VoteStatus) Length ¶ added in v0.0.44
func (c *VoteStatus) Length() int
func (*VoteStatus) ToBytes ¶
func (c *VoteStatus) ToBytes() []byte
ToBytes serializes the VoteStatus and returns the resulting slice.