abusemesh

package
v0.0.0-...-5025be6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 13, 2019 License: MIT Imports: 5 Imported by: 5

Documentation

Overview

Package abusemesh is a generated protocol buffer package.

It is generated from these files:

abuse-mesh-common.proto
abuse-mesh.proto

It has these top-level messages:

IPAddress
IPRange
UUID
Neighbor
Node
ContactDetails
PGPEntity
PGPSignature
Report
ReportConfirmation
AbuseDetectionMethod
Evidence
DelistRequest
DelistAcceptance
DelistAcceptanceMethod
GetNodeRequest
OfferSignatureRequest
NegotiateNeighborshipRequest
TableEventStreamRequest
OfferSignatureResponse
NegotiateNeighborshipResponse
TableEvent

Index

Constants

View Source
const AbuseMeshProtocolVersion = "0.0.1"

AbuseMeshProtocolVersion is the semantic version of the AbuseMesh protocol for which these stubs are generated

Variables

View Source
var AbuseDetectionMethodType_name = map[int32]string{
	0: "ABUSE_DETECTION_MANUAL",
}
View Source
var AbuseDetectionMethodType_value = map[string]int32{
	"ABUSE_DETECTION_MANUAL": 0,
}
View Source
var AbuseType_name = map[int32]string{
	0: "ABUSE_SPAM",
	1: "ABUSE_PHISHING",
	2: "ABUSE_DOS",
	3: "ABUSE_COPYRIGHT_INFRINGEMENT",
	4: "ABUSE_ILLEGAL_CONTENT",
	5: "ABUSE_UNSANCTIONED_HACKING",
	6: "ABUSE_VIRUS_DISTRIBUTION",
}
View Source
var AbuseType_value = map[string]int32{
	"ABUSE_SPAM":                   0,
	"ABUSE_PHISHING":               1,
	"ABUSE_DOS":                    2,
	"ABUSE_COPYRIGHT_INFRINGEMENT": 3,
	"ABUSE_ILLEGAL_CONTENT":        4,
	"ABUSE_UNSANCTIONED_HACKING":   5,
	"ABUSE_VIRUS_DISTRIBUTION":     6,
}
View Source
var DelistAcceptanceMethodType_name = map[int32]string{
	0: "DELIST_ACCEPTANCE_MANUAL",
}
View Source
var DelistAcceptanceMethodType_value = map[string]int32{
	"DELIST_ACCEPTANCE_MANUAL": 0,
}
View Source
var EvidenceType_name = map[int32]string{
	0: "EVIDENCE_URL",
	1: "EVIDENCE_LOG",
	2: "EVIDENCE_IMAGE",
	3: "EVIDENCE_PCAP",
}
View Source
var EvidenceType_value = map[string]int32{
	"EVIDENCE_URL":   0,
	"EVIDENCE_LOG":   1,
	"EVIDENCE_IMAGE": 2,
	"EVIDENCE_PCAP":  3,
}
View Source
var IPAddressFamily_name = map[int32]string{
	0: "IPFAMILY_IPV4",
	1: "IPFAMILY_IPV6",
}
View Source
var IPAddressFamily_value = map[string]int32{
	"IPFAMILY_IPV4": 0,
	"IPFAMILY_IPV6": 1,
}
View Source
var TableEventType_name = map[int32]string{
	0: "TABLE_UPDATE_NEW",
	1: "TABLE_UPDATE_EDIT",
	2: "TABLE_UPDATE_DELETE",
}
View Source
var TableEventType_value = map[string]int32{
	"TABLE_UPDATE_NEW":    0,
	"TABLE_UPDATE_EDIT":   1,
	"TABLE_UPDATE_DELETE": 2,
}

Functions

func RegisterAbuseMeshServer

func RegisterAbuseMeshServer(s *grpc.Server, srv AbuseMeshServer)

Types

type AbuseDetectionMethod

type AbuseDetectionMethod struct {
	// Types that are valid to be assigned to DetectionMethod:
	//	*AbuseDetectionMethod_UnstandardizedDetectionMethod
	//	*AbuseDetectionMethod_DetectionMethodType
	DetectionMethod isAbuseDetectionMethod_DetectionMethod `protobuf_oneof:"detection_method"`
}

func (*AbuseDetectionMethod) Descriptor

func (*AbuseDetectionMethod) Descriptor() ([]byte, []int)

func (*AbuseDetectionMethod) GetDetectionMethod

func (m *AbuseDetectionMethod) GetDetectionMethod() isAbuseDetectionMethod_DetectionMethod

func (*AbuseDetectionMethod) GetDetectionMethodType

func (m *AbuseDetectionMethod) GetDetectionMethodType() AbuseDetectionMethodType

func (*AbuseDetectionMethod) GetUnstandardizedDetectionMethod

func (m *AbuseDetectionMethod) GetUnstandardizedDetectionMethod() string

func (*AbuseDetectionMethod) ProtoMessage

func (*AbuseDetectionMethod) ProtoMessage()

func (*AbuseDetectionMethod) Reset

func (m *AbuseDetectionMethod) Reset()

func (*AbuseDetectionMethod) String

func (m *AbuseDetectionMethod) String() string

func (*AbuseDetectionMethod) XXX_OneofFuncs

func (*AbuseDetectionMethod) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type AbuseDetectionMethodType

type AbuseDetectionMethodType int32
const (
	// TODO add standardized detection method types
	AbuseDetectionMethodType_ABUSE_DETECTION_MANUAL AbuseDetectionMethodType = 0
)

func (AbuseDetectionMethodType) EnumDescriptor

func (AbuseDetectionMethodType) EnumDescriptor() ([]byte, []int)

func (AbuseDetectionMethodType) String

func (x AbuseDetectionMethodType) String() string

type AbuseDetectionMethod_DetectionMethodType

type AbuseDetectionMethod_DetectionMethodType struct {
	DetectionMethodType AbuseDetectionMethodType `protobuf:"varint,2,opt,name=detection_method_type,json=detectionMethodType,enum=abusemesh.AbuseDetectionMethodType,oneof"`
}

type AbuseDetectionMethod_UnstandardizedDetectionMethod

type AbuseDetectionMethod_UnstandardizedDetectionMethod struct {
	UnstandardizedDetectionMethod string `protobuf:"bytes,1,opt,name=unstandardized_detection_method,json=unstandardizedDetectionMethod,oneof"`
}

type AbuseMeshClient

type AbuseMeshClient interface {
	// Returns the Node data of the current node
	GetNode(ctx context.Context, in *GetNodeRequest, opts ...grpc.CallOption) (*Node, error)
	// With this call a client offers a signature of the identity to the server
	// This allows the server to increase its credibility
	OfferSignature(ctx context.Context, in *OfferSignatureRequest, opts ...grpc.CallOption) (*OfferSignatureResponse, error)
	// This call can be used by a client to request to a neighbor of this node
	NegotiateNeighborship(ctx context.Context, in *NegotiateNeighborshipRequest, opts ...grpc.CallOption) (*NegotiateNeighborshipResponse, error)
	// Opens a stream on which all table events of a node are published
	TableEventStream(ctx context.Context, in *TableEventStreamRequest, opts ...grpc.CallOption) (AbuseMesh_TableEventStreamClient, error)
}

func NewAbuseMeshClient

func NewAbuseMeshClient(cc *grpc.ClientConn) AbuseMeshClient

type AbuseMeshServer

type AbuseMeshServer interface {
	// Returns the Node data of the current node
	GetNode(context.Context, *GetNodeRequest) (*Node, error)
	// With this call a client offers a signature of the identity to the server
	// This allows the server to increase its credibility
	OfferSignature(context.Context, *OfferSignatureRequest) (*OfferSignatureResponse, error)
	// This call can be used by a client to request to a neighbor of this node
	NegotiateNeighborship(context.Context, *NegotiateNeighborshipRequest) (*NegotiateNeighborshipResponse, error)
	// Opens a stream on which all table events of a node are published
	TableEventStream(*TableEventStreamRequest, AbuseMesh_TableEventStreamServer) error
}

type AbuseMesh_TableEventStreamClient

type AbuseMesh_TableEventStreamClient interface {
	Recv() (*TableEvent, error)
	grpc.ClientStream
}

type AbuseMesh_TableEventStreamServer

type AbuseMesh_TableEventStreamServer interface {
	Send(*TableEvent) error
	grpc.ServerStream
}

type AbuseType

type AbuseType int32

NOTE: This list is not complete and probably never will be This list must be moderated with the following guidelines:

  1. General categories, details and variations can be managed with metadata. This keeps the list stable
  2. Only generally considered abuse, this list should contain acts which are almost unanimously labeled abuse. Very disputable acts like port scanning(at the time of writing this) should be be part of the standard until a great majority of the the community labels it as abuse. However just because one or a few geo political entities allow a act doesn't mean it is not belong on this list
const (
	// A abuse report of spam
	AbuseType_ABUSE_SPAM AbuseType = 0
	// A abuse report of phishing
	AbuseType_ABUSE_PHISHING AbuseType = 1
	// A abuse report of a denial of service attack vector
	AbuseType_ABUSE_DOS AbuseType = 2
	// A abuse report of copyright infringement of any form
	AbuseType_ABUSE_COPYRIGHT_INFRINGEMENT AbuseType = 3
	// A abuse report of content which is against the law in most places
	// e.g. Child Pornography, Hate speech
	// NOTE: This category is not meant for unwanted political content, fake news and other undesirable content which is not illegal
	AbuseType_ABUSE_ILLEGAL_CONTENT AbuseType = 4
	// A abuse report of origin of a hacking attempts which were not requested, promoted or sanctioned by the victim
	AbuseType_ABUSE_UNSANCTIONED_HACKING AbuseType = 5
	// A abuse report of a location on the internet from where computer viruses are distributed
	AbuseType_ABUSE_VIRUS_DISTRIBUTION AbuseType = 6
)

func (AbuseType) EnumDescriptor

func (AbuseType) EnumDescriptor() ([]byte, []int)

func (AbuseType) String

func (x AbuseType) String() string

type ContactDetails

type ContactDetails struct {
	OrganizationName string                   `protobuf:"bytes,1,opt,name=organization_name,json=organizationName" json:"organization_name,omitempty"`
	EmailAddress     string                   `protobuf:"bytes,2,opt,name=email_address,json=emailAddress" json:"email_address,omitempty"`
	PhoneNumber      string                   `protobuf:"bytes,3,opt,name=phone_number,json=phoneNumber" json:"phone_number,omitempty"`
	PhysicalAddress  string                   `protobuf:"bytes,4,opt,name=physical_address,json=physicalAddress" json:"physical_address,omitempty"`
	ContactPersons   []*ContactDetails_Person `protobuf:"bytes,5,rep,name=contact_persons,json=contactPersons" json:"contact_persons,omitempty"`
}

func (*ContactDetails) Descriptor

func (*ContactDetails) Descriptor() ([]byte, []int)

func (*ContactDetails) GetContactPersons

func (m *ContactDetails) GetContactPersons() []*ContactDetails_Person

func (*ContactDetails) GetEmailAddress

func (m *ContactDetails) GetEmailAddress() string

func (*ContactDetails) GetOrganizationName

func (m *ContactDetails) GetOrganizationName() string

func (*ContactDetails) GetPhoneNumber

func (m *ContactDetails) GetPhoneNumber() string

func (*ContactDetails) GetPhysicalAddress

func (m *ContactDetails) GetPhysicalAddress() string

func (*ContactDetails) ProtoMessage

func (*ContactDetails) ProtoMessage()

func (*ContactDetails) Reset

func (m *ContactDetails) Reset()

func (*ContactDetails) String

func (m *ContactDetails) String() string

type ContactDetails_Person

type ContactDetails_Person struct {
	FirstName    string `protobuf:"bytes,6,opt,name=first_name,json=firstName" json:"first_name,omitempty"`
	MiddleName   string `protobuf:"bytes,7,opt,name=middle_name,json=middleName" json:"middle_name,omitempty"`
	LastName     string `protobuf:"bytes,8,opt,name=last_name,json=lastName" json:"last_name,omitempty"`
	JobTitle     string `protobuf:"bytes,9,opt,name=job_title,json=jobTitle" json:"job_title,omitempty"`
	EmailAddress string `protobuf:"bytes,10,opt,name=email_address,json=emailAddress" json:"email_address,omitempty"`
	PhoneNumber  string `protobuf:"bytes,11,opt,name=phone_number,json=phoneNumber" json:"phone_number,omitempty"`
}

func (*ContactDetails_Person) Descriptor

func (*ContactDetails_Person) Descriptor() ([]byte, []int)

func (*ContactDetails_Person) GetEmailAddress

func (m *ContactDetails_Person) GetEmailAddress() string

func (*ContactDetails_Person) GetFirstName

func (m *ContactDetails_Person) GetFirstName() string

func (*ContactDetails_Person) GetJobTitle

func (m *ContactDetails_Person) GetJobTitle() string

func (*ContactDetails_Person) GetLastName

func (m *ContactDetails_Person) GetLastName() string

func (*ContactDetails_Person) GetMiddleName

func (m *ContactDetails_Person) GetMiddleName() string

func (*ContactDetails_Person) GetPhoneNumber

func (m *ContactDetails_Person) GetPhoneNumber() string

func (*ContactDetails_Person) ProtoMessage

func (*ContactDetails_Person) ProtoMessage()

func (*ContactDetails_Person) Reset

func (m *ContactDetails_Person) Reset()

func (*ContactDetails_Person) String

func (m *ContactDetails_Person) String() string

type DelistAcceptance

type DelistAcceptance struct {
	// The id of the delist acceptance
	Uuid *UUID `protobuf:"bytes,1,opt,name=uuid" json:"uuid,omitempty"`
	// The id of the delist request
	DelistRequest *UUID `protobuf:"bytes,2,opt,name=delist_request,json=delistRequest" json:"delist_request,omitempty"`
	// The node which accepted the delisting request
	Node *Node `protobuf:"bytes,3,opt,name=node" json:"node,omitempty"`
	// The signature that proves the node it the author of the delist acceptance and that the delist acceptance has not been modified
	Signature *PGPSignature `protobuf:"bytes,4,opt,name=signature" json:"signature,omitempty"`
	// A human readable description which may explain why the delist request was accepted
	Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
	// A key value map of evidence which proves a report is incorrect or resolved
	// e.g. http request and response to a url which now returns a 404 in case of copyright infringement
	Evidence map[string]*Evidence `` /* 136-byte string literal not displayed */
	// The method which was used to accept this method
	// e.g. manual(human check)
	// e.g. automated copyright check tool
	AcceptanceMethod *DelistAcceptanceMethod `protobuf:"bytes,7,opt,name=acceptance_method,json=acceptanceMethod" json:"acceptance_method,omitempty"`
	// A map containing extra details about the acceptance method
	// e.g. what is the name, version and source code of a scanner
	// e.g. Which human checked the delist request
	// TODO maybe this should be standardized as well at some point
	AcceptanceMethodMetadata map[string]string `` /* 202-byte string literal not displayed */
}

func (*DelistAcceptance) Descriptor

func (*DelistAcceptance) Descriptor() ([]byte, []int)

func (*DelistAcceptance) GetAcceptanceMethod

func (m *DelistAcceptance) GetAcceptanceMethod() *DelistAcceptanceMethod

func (*DelistAcceptance) GetAcceptanceMethodMetadata

func (m *DelistAcceptance) GetAcceptanceMethodMetadata() map[string]string

func (*DelistAcceptance) GetDelistRequest

func (m *DelistAcceptance) GetDelistRequest() *UUID

func (*DelistAcceptance) GetDescription

func (m *DelistAcceptance) GetDescription() string

func (*DelistAcceptance) GetEvidence

func (m *DelistAcceptance) GetEvidence() map[string]*Evidence

func (*DelistAcceptance) GetNode

func (m *DelistAcceptance) GetNode() *Node

func (*DelistAcceptance) GetSignature

func (m *DelistAcceptance) GetSignature() *PGPSignature

func (*DelistAcceptance) GetUuid

func (m *DelistAcceptance) GetUuid() *UUID

func (*DelistAcceptance) ProtoMessage

func (*DelistAcceptance) ProtoMessage()

func (*DelistAcceptance) Reset

func (m *DelistAcceptance) Reset()

func (*DelistAcceptance) String

func (m *DelistAcceptance) String() string

type DelistAcceptanceMethod

type DelistAcceptanceMethod struct {
	// Types that are valid to be assigned to AcceptanceMethod:
	//	*DelistAcceptanceMethod_UnstandardizedAcceptanceMethodType
	//	*DelistAcceptanceMethod_MethodType
	AcceptanceMethod isDelistAcceptanceMethod_AcceptanceMethod `protobuf_oneof:"acceptance_method"`
}

func (*DelistAcceptanceMethod) Descriptor

func (*DelistAcceptanceMethod) Descriptor() ([]byte, []int)

func (*DelistAcceptanceMethod) GetAcceptanceMethod

func (m *DelistAcceptanceMethod) GetAcceptanceMethod() isDelistAcceptanceMethod_AcceptanceMethod

func (*DelistAcceptanceMethod) GetMethodType

func (*DelistAcceptanceMethod) GetUnstandardizedAcceptanceMethodType

func (m *DelistAcceptanceMethod) GetUnstandardizedAcceptanceMethodType() string

func (*DelistAcceptanceMethod) ProtoMessage

func (*DelistAcceptanceMethod) ProtoMessage()

func (*DelistAcceptanceMethod) Reset

func (m *DelistAcceptanceMethod) Reset()

func (*DelistAcceptanceMethod) String

func (m *DelistAcceptanceMethod) String() string

func (*DelistAcceptanceMethod) XXX_OneofFuncs

func (*DelistAcceptanceMethod) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type DelistAcceptanceMethodType

type DelistAcceptanceMethodType int32
const (
	// TODO add standardized acceptance methods
	DelistAcceptanceMethodType_DELIST_ACCEPTANCE_MANUAL DelistAcceptanceMethodType = 0
)

func (DelistAcceptanceMethodType) EnumDescriptor

func (DelistAcceptanceMethodType) EnumDescriptor() ([]byte, []int)

func (DelistAcceptanceMethodType) String

type DelistAcceptanceMethod_MethodType

type DelistAcceptanceMethod_MethodType struct {
	MethodType DelistAcceptanceMethodType `protobuf:"varint,2,opt,name=method_type,json=methodType,enum=abusemesh.DelistAcceptanceMethodType,oneof"`
}

type DelistAcceptanceMethod_UnstandardizedAcceptanceMethodType

type DelistAcceptanceMethod_UnstandardizedAcceptanceMethodType struct {
	UnstandardizedAcceptanceMethodType string `protobuf:"bytes,1,opt,name=unstandardized_acceptance_method_type,json=unstandardizedAcceptanceMethodType,oneof"`
}

type DelistRequest

type DelistRequest struct {
	// The id of the delist request
	Uuid *UUID `protobuf:"bytes,1,opt,name=uuid" json:"uuid,omitempty"`
	// The report to be delisted
	Report *UUID `protobuf:"bytes,2,opt,name=report" json:"report,omitempty"`
	// The node which requested the delisting
	Node *Node `protobuf:"bytes,3,opt,name=node" json:"node,omitempty"`
	// The signature that proves the requester it the author of the delist request and that the delist request has not been modified
	Signature *PGPSignature `protobuf:"bytes,4,opt,name=signature" json:"signature,omitempty"`
	// A human readable description which may explain why a report is incorrect or has been resolved
	Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
	// A key value map of evidence which proves a report is incorrect or resolved
	// e.g. a letter of consent when appealing a scanning abuse report
	// e.g. a link to a court case
	Evidence map[string]*Evidence `` /* 136-byte string literal not displayed */
	// A map containing extra details
	// e.g. when reporting a DOS attack the type of DOS attack can be a metadata field
	// TODO maybe this should be standardized as well at some point
	Metadata map[string]string `` /* 136-byte string literal not displayed */
}

func (*DelistRequest) Descriptor

func (*DelistRequest) Descriptor() ([]byte, []int)

func (*DelistRequest) GetDescription

func (m *DelistRequest) GetDescription() string

func (*DelistRequest) GetEvidence

func (m *DelistRequest) GetEvidence() map[string]*Evidence

func (*DelistRequest) GetMetadata

func (m *DelistRequest) GetMetadata() map[string]string

func (*DelistRequest) GetNode

func (m *DelistRequest) GetNode() *Node

func (*DelistRequest) GetReport

func (m *DelistRequest) GetReport() *UUID

func (*DelistRequest) GetSignature

func (m *DelistRequest) GetSignature() *PGPSignature

func (*DelistRequest) GetUuid

func (m *DelistRequest) GetUuid() *UUID

func (*DelistRequest) ProtoMessage

func (*DelistRequest) ProtoMessage()

func (*DelistRequest) Reset

func (m *DelistRequest) Reset()

func (*DelistRequest) String

func (m *DelistRequest) String() string

type Evidence

type Evidence struct {
	// Types that are valid to be assigned to EvidenceType:
	//	*Evidence_UnstandardizedEvidenceType
	//	*Evidence_Type
	EvidenceType isEvidence_EvidenceType `protobuf_oneof:"evidence_type"`
	EvidenceData []byte                  `protobuf:"bytes,3,opt,name=evidence_data,json=evidenceData,proto3" json:"evidence_data,omitempty"`
}

func (*Evidence) Descriptor

func (*Evidence) Descriptor() ([]byte, []int)

func (*Evidence) GetEvidenceData

func (m *Evidence) GetEvidenceData() []byte

func (*Evidence) GetEvidenceType

func (m *Evidence) GetEvidenceType() isEvidence_EvidenceType

func (*Evidence) GetType

func (m *Evidence) GetType() EvidenceType

func (*Evidence) GetUnstandardizedEvidenceType

func (m *Evidence) GetUnstandardizedEvidenceType() string

func (*Evidence) ProtoMessage

func (*Evidence) ProtoMessage()

func (*Evidence) Reset

func (m *Evidence) Reset()

func (*Evidence) String

func (m *Evidence) String() string

func (*Evidence) XXX_OneofFuncs

func (*Evidence) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type EvidenceType

type EvidenceType int32
const (
	// TODO add all evidence types
	EvidenceType_EVIDENCE_URL   EvidenceType = 0
	EvidenceType_EVIDENCE_LOG   EvidenceType = 1
	EvidenceType_EVIDENCE_IMAGE EvidenceType = 2
	EvidenceType_EVIDENCE_PCAP  EvidenceType = 3
)

func (EvidenceType) EnumDescriptor

func (EvidenceType) EnumDescriptor() ([]byte, []int)

func (EvidenceType) String

func (x EvidenceType) String() string

type Evidence_Type

type Evidence_Type struct {
	Type EvidenceType `protobuf:"varint,2,opt,name=type,enum=abusemesh.EvidenceType,oneof"`
}

type Evidence_UnstandardizedEvidenceType

type Evidence_UnstandardizedEvidenceType struct {
	UnstandardizedEvidenceType string `protobuf:"bytes,1,opt,name=unstandardized_evidence_type,json=unstandardizedEvidenceType,oneof"`
}

type GetNodeRequest

type GetNodeRequest struct {
}

func (*GetNodeRequest) Descriptor

func (*GetNodeRequest) Descriptor() ([]byte, []int)

func (*GetNodeRequest) ProtoMessage

func (*GetNodeRequest) ProtoMessage()

func (*GetNodeRequest) Reset

func (m *GetNodeRequest) Reset()

func (*GetNodeRequest) String

func (m *GetNodeRequest) String() string

type IPAddress

type IPAddress struct {
	AddressFamily IPAddressFamily `protobuf:"varint,1,opt,name=address_family,json=addressFamily,enum=abusemesh.IPAddressFamily" json:"address_family,omitempty"`
	Address       string          `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"`
}

func (*IPAddress) Descriptor

func (*IPAddress) Descriptor() ([]byte, []int)

func (*IPAddress) GetAddress

func (m *IPAddress) GetAddress() string

func (*IPAddress) GetAddressFamily

func (m *IPAddress) GetAddressFamily() IPAddressFamily

func (*IPAddress) ProtoMessage

func (*IPAddress) ProtoMessage()

func (*IPAddress) Reset

func (m *IPAddress) Reset()

func (*IPAddress) String

func (m *IPAddress) String() string

type IPAddressFamily

type IPAddressFamily int32
const (
	IPAddressFamily_IPFAMILY_IPV4 IPAddressFamily = 0
	IPAddressFamily_IPFAMILY_IPV6 IPAddressFamily = 1
)

func (IPAddressFamily) EnumDescriptor

func (IPAddressFamily) EnumDescriptor() ([]byte, []int)

func (IPAddressFamily) String

func (x IPAddressFamily) String() string

type IPRange

type IPRange struct {
	Address *IPAddress `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Prefix  int32      `protobuf:"varint,2,opt,name=prefix" json:"prefix,omitempty"`
}

func (*IPRange) Descriptor

func (*IPRange) Descriptor() ([]byte, []int)

func (*IPRange) GetAddress

func (m *IPRange) GetAddress() *IPAddress

func (*IPRange) GetPrefix

func (m *IPRange) GetPrefix() int32

func (*IPRange) ProtoMessage

func (*IPRange) ProtoMessage()

func (*IPRange) Reset

func (m *IPRange) Reset()

func (*IPRange) String

func (m *IPRange) String() string

type NegotiateNeighborshipRequest

type NegotiateNeighborshipRequest struct {
}

func (*NegotiateNeighborshipRequest) Descriptor

func (*NegotiateNeighborshipRequest) Descriptor() ([]byte, []int)

func (*NegotiateNeighborshipRequest) ProtoMessage

func (*NegotiateNeighborshipRequest) ProtoMessage()

func (*NegotiateNeighborshipRequest) Reset

func (m *NegotiateNeighborshipRequest) Reset()

func (*NegotiateNeighborshipRequest) String

type NegotiateNeighborshipResponse

type NegotiateNeighborshipResponse struct {
	// The identifier for this session
	SessionId *UUID `protobuf:"bytes,1,opt,name=session_id,json=sessionId" json:"session_id,omitempty"`
	// The amount of events a server has sent to the client
	EventCounter uint64 `protobuf:"varint,2,opt,name=event_counter,json=eventCounter" json:"event_counter,omitempty"`
}

func (*NegotiateNeighborshipResponse) Descriptor

func (*NegotiateNeighborshipResponse) Descriptor() ([]byte, []int)

func (*NegotiateNeighborshipResponse) GetEventCounter

func (m *NegotiateNeighborshipResponse) GetEventCounter() uint64

func (*NegotiateNeighborshipResponse) GetSessionId

func (m *NegotiateNeighborshipResponse) GetSessionId() *UUID

func (*NegotiateNeighborshipResponse) ProtoMessage

func (*NegotiateNeighborshipResponse) ProtoMessage()

func (*NegotiateNeighborshipResponse) Reset

func (m *NegotiateNeighborshipResponse) Reset()

func (*NegotiateNeighborshipResponse) String

type Neighbor

type Neighbor struct {
	// The id of the neighbor message
	Id *UUID `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
	// The id of the client node
	ClientNode *UUID `protobuf:"bytes,2,opt,name=client_node,json=clientNode" json:"client_node,omitempty"`
	// The id of the server node
	ServerNode *UUID `protobuf:"bytes,3,opt,name=server_node,json=serverNode" json:"server_node,omitempty"`
	// A signature of the client node which confirms the validity and integrity
	ClientSignature *PGPSignature `protobuf:"bytes,4,opt,name=client_signature,json=clientSignature" json:"client_signature,omitempty"`
}

A Neighbor is a node to which another node is directly connected.

func (*Neighbor) Descriptor

func (*Neighbor) Descriptor() ([]byte, []int)

func (*Neighbor) GetClientNode

func (m *Neighbor) GetClientNode() *UUID

func (*Neighbor) GetClientSignature

func (m *Neighbor) GetClientSignature() *PGPSignature

func (*Neighbor) GetId

func (m *Neighbor) GetId() *UUID

func (*Neighbor) GetServerNode

func (m *Neighbor) GetServerNode() *UUID

func (*Neighbor) ProtoMessage

func (*Neighbor) ProtoMessage()

func (*Neighbor) Reset

func (m *Neighbor) Reset()

func (*Neighbor) String

func (m *Neighbor) String() string

type Node

type Node struct {
	// The ID of the node
	Uuid *UUID `protobuf:"bytes,1,opt,name=uuid" json:"uuid,omitempty"`
	// The semantic version of the AbuseMesh protocol in use by the node
	ProtocolVersion string `protobuf:"bytes,2,opt,name=protocol_version,json=protocolVersion" json:"protocol_version,omitempty"`
	// The IP address on which the node is reachable
	IpAddress *IPAddress `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress" json:"ip_address,omitempty"`
	// Details about how to contact the the company and/of administrators of a node
	ContactDetails *ContactDetails `protobuf:"bytes,4,opt,name=contact_details,json=contactDetails" json:"contact_details,omitempty"`
	// The number of the autonomous system for which this node claims to have authority
	ASN int32 `protobuf:"varint,5,opt,name=ASN" json:"ASN,omitempty"`
	// The PGP entity which the node uses to sign its messages
	PgpEntity *PGPEntity `protobuf:"bytes,6,opt,name=pgp_entity,json=pgpEntity" json:"pgp_entity,omitempty"`
}

A node is a application which speaks the AbuseMesh protocol

func (*Node) Descriptor

func (*Node) Descriptor() ([]byte, []int)

func (*Node) GetASN

func (m *Node) GetASN() int32

func (*Node) GetContactDetails

func (m *Node) GetContactDetails() *ContactDetails

func (*Node) GetIpAddress

func (m *Node) GetIpAddress() *IPAddress

func (*Node) GetPgpEntity

func (m *Node) GetPgpEntity() *PGPEntity

func (*Node) GetProtocolVersion

func (m *Node) GetProtocolVersion() string

func (*Node) GetUuid

func (m *Node) GetUuid() *UUID

func (*Node) ProtoMessage

func (*Node) ProtoMessage()

func (*Node) Reset

func (m *Node) Reset()

func (*Node) String

func (m *Node) String() string

type OfferSignatureRequest

type OfferSignatureRequest struct {
	Signature *PGPSignature `protobuf:"bytes,1,opt,name=signature" json:"signature,omitempty"`
}

func (*OfferSignatureRequest) Descriptor

func (*OfferSignatureRequest) Descriptor() ([]byte, []int)

func (*OfferSignatureRequest) GetSignature

func (m *OfferSignatureRequest) GetSignature() *PGPSignature

func (*OfferSignatureRequest) ProtoMessage

func (*OfferSignatureRequest) ProtoMessage()

func (*OfferSignatureRequest) Reset

func (m *OfferSignatureRequest) Reset()

func (*OfferSignatureRequest) String

func (m *OfferSignatureRequest) String() string

type OfferSignatureResponse

type OfferSignatureResponse struct {
}

func (*OfferSignatureResponse) Descriptor

func (*OfferSignatureResponse) Descriptor() ([]byte, []int)

func (*OfferSignatureResponse) ProtoMessage

func (*OfferSignatureResponse) ProtoMessage()

func (*OfferSignatureResponse) Reset

func (m *OfferSignatureResponse) Reset()

func (*OfferSignatureResponse) String

func (m *OfferSignatureResponse) String() string

type PGPEntity

type PGPEntity struct {
	// The PGP packets of this pgp entity: the public key, userids, signatures and subkeys in binary format
	PgpPackets []byte `protobuf:"bytes,1,opt,name=pgp_packets,json=pgpPackets,proto3" json:"pgp_packets,omitempty"`
}

func (*PGPEntity) Descriptor

func (*PGPEntity) Descriptor() ([]byte, []int)

func (*PGPEntity) GetPgpPackets

func (m *PGPEntity) GetPgpPackets() []byte

func (*PGPEntity) ProtoMessage

func (*PGPEntity) ProtoMessage()

func (*PGPEntity) Reset

func (m *PGPEntity) Reset()

func (*PGPEntity) String

func (m *PGPEntity) String() string

type PGPSignature

type PGPSignature struct {
	// A PGP detached signature packet of data
	Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (*PGPSignature) Descriptor

func (*PGPSignature) Descriptor() ([]byte, []int)

func (*PGPSignature) GetSignature

func (m *PGPSignature) GetSignature() []byte

func (*PGPSignature) ProtoMessage

func (*PGPSignature) ProtoMessage()

func (*PGPSignature) Reset

func (m *PGPSignature) Reset()

func (*PGPSignature) String

func (m *PGPSignature) String() string

type Report

type Report struct {
	// The id of the report
	Uuid *UUID `protobuf:"bytes,1,opt,name=uuid" json:"uuid,omitempty"`
	// The id of the node which created the report
	Reporter *UUID `protobuf:"bytes,2,opt,name=reporter" json:"reporter,omitempty"`
	// The id of the node which claims ownership over the AS where the abuse originated
	Suspect *UUID `protobuf:"bytes,3,opt,name=suspect" json:"suspect,omitempty"`
	// The signature that proves the reporter it the author of the report and that the report has no been modified
	Signature *PGPSignature `protobuf:"bytes,4,opt,name=signature" json:"signature,omitempty"`
	// The type of abuse this report specifies
	//
	// Types that are valid to be assigned to ReportAbuseType:
	//	*Report_UnstandardizedAbuseType
	//	*Report_AbuseType
	ReportAbuseType isReport_ReportAbuseType `protobuf_oneof:"report_abuse_type"`
	// A human readable description to give context
	// WARNING: this field should not be used for evidence, metadata or other machine data.
	Description string `protobuf:"bytes,7,opt,name=description" json:"description,omitempty"`
	// Types that are valid to be assigned to AbuseOrigin:
	//	*Report_Email
	//	*Report_DomainName
	//	*Report_Url
	//	*Report_Ip
	//	*Report_IpRange
	AbuseOrigin isReport_AbuseOrigin `protobuf_oneof:"abuse_origin"`
	// A key value map of evidence of abuse
	// e.g. when reporting spam, the recieved email can be included
	// e.g. for illegal scanning a log can be included
	// e.g. when reporting a DoS attack a anonymised PCAP can be included
	Evidence map[string]*Evidence `` /* 137-byte string literal not displayed */
	// A map containing extra details about the abuse type
	// e.g. when reporting a DoS attack the type of DOS attack can be a metadata field
	// TODO maybe this should be standardized as well at some point
	AbuseTypeMetadata map[string]string `` /* 182-byte string literal not displayed */
	// How was the abuse detected
	// e.g. spam filter
	// e.g. DDoS detector
	// e.g. human entry
	DetectionMethod *AbuseDetectionMethod `protobuf:"bytes,15,opt,name=detection_method,json=detectionMethod" json:"detection_method,omitempty"`
	// A map containing extra details about the detection method
	// e.g. which software version was used to detect the abuse
	// e.g. who created this report manually
	// TODO maybe this should be standardized as well at some point
	DetectionMethodMetadata map[string]string `` /* 200-byte string literal not displayed */
}

func (*Report) Descriptor

func (*Report) Descriptor() ([]byte, []int)

func (*Report) GetAbuseOrigin

func (m *Report) GetAbuseOrigin() isReport_AbuseOrigin

func (*Report) GetAbuseType

func (m *Report) GetAbuseType() AbuseType

func (*Report) GetAbuseTypeMetadata

func (m *Report) GetAbuseTypeMetadata() map[string]string

func (*Report) GetDescription

func (m *Report) GetDescription() string

func (*Report) GetDetectionMethod

func (m *Report) GetDetectionMethod() *AbuseDetectionMethod

func (*Report) GetDetectionMethodMetadata

func (m *Report) GetDetectionMethodMetadata() map[string]string

func (*Report) GetDomainName

func (m *Report) GetDomainName() string

func (*Report) GetEmail

func (m *Report) GetEmail() string

func (*Report) GetEvidence

func (m *Report) GetEvidence() map[string]*Evidence

func (*Report) GetIp

func (m *Report) GetIp() *IPAddress

func (*Report) GetIpRange

func (m *Report) GetIpRange() *IPRange

func (*Report) GetReportAbuseType

func (m *Report) GetReportAbuseType() isReport_ReportAbuseType

func (*Report) GetReporter

func (m *Report) GetReporter() *UUID

func (*Report) GetSignature

func (m *Report) GetSignature() *PGPSignature

func (*Report) GetSuspect

func (m *Report) GetSuspect() *UUID

func (*Report) GetUnstandardizedAbuseType

func (m *Report) GetUnstandardizedAbuseType() string

func (*Report) GetUrl

func (m *Report) GetUrl() string

func (*Report) GetUuid

func (m *Report) GetUuid() *UUID

func (*Report) ProtoMessage

func (*Report) ProtoMessage()

func (*Report) Reset

func (m *Report) Reset()

func (*Report) String

func (m *Report) String() string

func (*Report) XXX_OneofFuncs

func (*Report) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type ReportConfirmation

type ReportConfirmation struct {
	// The id of the report confirmation
	Uuid *UUID `protobuf:"bytes,1,opt,name=uuid" json:"uuid,omitempty"`
	// The id of node that created the confirmation
	Node *UUID `protobuf:"bytes,2,opt,name=node" json:"node,omitempty"`
	// The id of the report that is confirmed by this message
	Report *UUID `protobuf:"bytes,3,opt,name=report" json:"report,omitempty"`
	// The signature that proves the reporter it the author of the report and that the report has not been modified
	Signature *PGPSignature `protobuf:"bytes,4,opt,name=signature" json:"signature,omitempty"`
	// A human readable description of the confirmation
	// WARNING: this field should not be used for evidence or other machine data.
	Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
	// A key value map of evidence of abuse which should be indepently gathered
	// e.g. when reporting copyright infringement a http request and response can be added
	// e.g. when reporting a DoS attack a anonymised PCAP can be included
	Evidence map[string]*Evidence `` /* 136-byte string literal not displayed */
	// How was the abuse detected
	// e.g. spam filter
	// e.g. DDoS detector
	// e.g. human entry
	DetectionMethod *AbuseDetectionMethod `protobuf:"bytes,7,opt,name=detection_method,json=detectionMethod" json:"detection_method,omitempty"`
	// A map containing extra details about the detection method
	// e.g. which software version was used to detect the abuse
	// e.g. who created this report manually
	// TODO maybe this should be standardized as well at some point
	DetectionMethodMetadata map[string]string `` /* 199-byte string literal not displayed */
}

A report confirmation can be created by a node which claims to have checked the report indepenantly and confirms the abuse report A report confirmation therefor must also provide evidence

func (*ReportConfirmation) Descriptor

func (*ReportConfirmation) Descriptor() ([]byte, []int)

func (*ReportConfirmation) GetDescription

func (m *ReportConfirmation) GetDescription() string

func (*ReportConfirmation) GetDetectionMethod

func (m *ReportConfirmation) GetDetectionMethod() *AbuseDetectionMethod

func (*ReportConfirmation) GetDetectionMethodMetadata

func (m *ReportConfirmation) GetDetectionMethodMetadata() map[string]string

func (*ReportConfirmation) GetEvidence

func (m *ReportConfirmation) GetEvidence() map[string]*Evidence

func (*ReportConfirmation) GetNode

func (m *ReportConfirmation) GetNode() *UUID

func (*ReportConfirmation) GetReport

func (m *ReportConfirmation) GetReport() *UUID

func (*ReportConfirmation) GetSignature

func (m *ReportConfirmation) GetSignature() *PGPSignature

func (*ReportConfirmation) GetUuid

func (m *ReportConfirmation) GetUuid() *UUID

func (*ReportConfirmation) ProtoMessage

func (*ReportConfirmation) ProtoMessage()

func (*ReportConfirmation) Reset

func (m *ReportConfirmation) Reset()

func (*ReportConfirmation) String

func (m *ReportConfirmation) String() string

type Report_AbuseType

type Report_AbuseType struct {
	AbuseType AbuseType `protobuf:"varint,6,opt,name=abuse_type,json=abuseType,enum=abusemesh.AbuseType,oneof"`
}

type Report_DomainName

type Report_DomainName struct {
	DomainName string `protobuf:"bytes,9,opt,name=domain_name,json=domainName,oneof"`
}

type Report_Email

type Report_Email struct {
	Email string `protobuf:"bytes,8,opt,name=email,oneof"`
}

type Report_Ip

type Report_Ip struct {
	Ip *IPAddress `protobuf:"bytes,11,opt,name=ip,oneof"`
}

type Report_IpRange

type Report_IpRange struct {
	IpRange *IPRange `protobuf:"bytes,12,opt,name=ip_range,json=ipRange,oneof"`
}

type Report_UnstandardizedAbuseType

type Report_UnstandardizedAbuseType struct {
	UnstandardizedAbuseType string `protobuf:"bytes,5,opt,name=unstandardized_abuse_type,json=unstandardizedAbuseType,oneof"`
}

type Report_Url

type Report_Url struct {
	Url string `protobuf:"bytes,10,opt,name=url,oneof"`
}

type TableEvent

type TableEvent struct {
	// The unique id of this event
	EventId *UUID `protobuf:"bytes,1,opt,name=event_id,json=eventId" json:"event_id,omitempty"`
	// The id of the event before this one regarding the same entity
	// Is only set when `update_type` is EDIT or DELETE
	PreviousEvent *UUID `protobuf:"bytes,2,opt,name=previous_event,json=previousEvent" json:"previous_event,omitempty"`
	// The signature of `uuid` and `previous_event` signed with the same key as the entity
	EventSignature *PGPSignature  `protobuf:"bytes,3,opt,name=event_signature,json=eventSignature" json:"event_signature,omitempty"`
	UpdateType     TableEventType `protobuf:"varint,4,opt,name=update_type,json=updateType,enum=abusemesh.TableEventType" json:"update_type,omitempty"`
	// Types that are valid to be assigned to TableEntity:
	//	*TableEvent_Node
	//	*TableEvent_Neighbor
	//	*TableEvent_Report
	//	*TableEvent_ReportConfirmation
	//	*TableEvent_DelistRequests
	//	*TableEvent_DelistAcceptance
	TableEntity isTableEvent_TableEntity `protobuf_oneof:"table_entity"`
	// The event number of this event for the session between the server and client
	EventNumber uint64 `protobuf:"varint,11,opt,name=event_number,json=eventNumber" json:"event_number,omitempty"`
}

func (*TableEvent) Descriptor

func (*TableEvent) Descriptor() ([]byte, []int)

func (*TableEvent) GetDelistAcceptance

func (m *TableEvent) GetDelistAcceptance() *DelistAcceptance

func (*TableEvent) GetDelistRequests

func (m *TableEvent) GetDelistRequests() *DelistRequest

func (*TableEvent) GetEventId

func (m *TableEvent) GetEventId() *UUID

func (*TableEvent) GetEventNumber

func (m *TableEvent) GetEventNumber() uint64

func (*TableEvent) GetEventSignature

func (m *TableEvent) GetEventSignature() *PGPSignature

func (*TableEvent) GetNeighbor

func (m *TableEvent) GetNeighbor() *Neighbor

func (*TableEvent) GetNode

func (m *TableEvent) GetNode() *Node

func (*TableEvent) GetPreviousEvent

func (m *TableEvent) GetPreviousEvent() *UUID

func (*TableEvent) GetReport

func (m *TableEvent) GetReport() *Report

func (*TableEvent) GetReportConfirmation

func (m *TableEvent) GetReportConfirmation() *ReportConfirmation

func (*TableEvent) GetTableEntity

func (m *TableEvent) GetTableEntity() isTableEvent_TableEntity

func (*TableEvent) GetUpdateType

func (m *TableEvent) GetUpdateType() TableEventType

func (*TableEvent) ProtoMessage

func (*TableEvent) ProtoMessage()

func (*TableEvent) Reset

func (m *TableEvent) Reset()

func (*TableEvent) String

func (m *TableEvent) String() string

func (*TableEvent) XXX_OneofFuncs

func (*TableEvent) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type TableEventStreamRequest

type TableEventStreamRequest struct {
	// The id of the session for which a client want to get the event stream
	SessionId *UUID `protobuf:"bytes,1,opt,name=session_id,json=sessionId" json:"session_id,omitempty"`
	// The event offset in the session the client requests
	Offset uint64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"`
}

func (*TableEventStreamRequest) Descriptor

func (*TableEventStreamRequest) Descriptor() ([]byte, []int)

func (*TableEventStreamRequest) GetOffset

func (m *TableEventStreamRequest) GetOffset() uint64

func (*TableEventStreamRequest) GetSessionId

func (m *TableEventStreamRequest) GetSessionId() *UUID

func (*TableEventStreamRequest) ProtoMessage

func (*TableEventStreamRequest) ProtoMessage()

func (*TableEventStreamRequest) Reset

func (m *TableEventStreamRequest) Reset()

func (*TableEventStreamRequest) String

func (m *TableEventStreamRequest) String() string

type TableEventType

type TableEventType int32

The type of update to a table

const (
	// A new entity is added to the table
	TableEventType_TABLE_UPDATE_NEW TableEventType = 0
	// A existing entity was changed in the table
	TableEventType_TABLE_UPDATE_EDIT TableEventType = 1
	// A entity was deleted from the table
	TableEventType_TABLE_UPDATE_DELETE TableEventType = 2
)

func (TableEventType) EnumDescriptor

func (TableEventType) EnumDescriptor() ([]byte, []int)

func (TableEventType) String

func (x TableEventType) String() string

type TableEvent_DelistAcceptance

type TableEvent_DelistAcceptance struct {
	DelistAcceptance *DelistAcceptance `protobuf:"bytes,10,opt,name=delist_acceptance,json=delistAcceptance,oneof"`
}

type TableEvent_DelistRequests

type TableEvent_DelistRequests struct {
	DelistRequests *DelistRequest `protobuf:"bytes,9,opt,name=delist_requests,json=delistRequests,oneof"`
}

type TableEvent_Neighbor

type TableEvent_Neighbor struct {
	Neighbor *Neighbor `protobuf:"bytes,6,opt,name=neighbor,oneof"`
}

type TableEvent_Node

type TableEvent_Node struct {
	Node *Node `protobuf:"bytes,5,opt,name=node,oneof"`
}

type TableEvent_Report

type TableEvent_Report struct {
	Report *Report `protobuf:"bytes,7,opt,name=report,oneof"`
}

type TableEvent_ReportConfirmation

type TableEvent_ReportConfirmation struct {
	ReportConfirmation *ReportConfirmation `protobuf:"bytes,8,opt,name=report_confirmation,json=reportConfirmation,oneof"`
}

type UUID

type UUID struct {
	Uuid string `protobuf:"bytes,1,opt,name=uuid" json:"uuid,omitempty"`
}

UUID (Universally unique identifier)

func (*UUID) Descriptor

func (*UUID) Descriptor() ([]byte, []int)

func (*UUID) GetUuid

func (m *UUID) GetUuid() string

func (*UUID) ProtoMessage

func (*UUID) ProtoMessage()

func (*UUID) Reset

func (m *UUID) Reset()

func (*UUID) String

func (m *UUID) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL