// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: noise.proto

package pb

import (
	time "time"

	proto "github.com/gogo/protobuf/proto"
)

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package

// NoiseProtocol represents the handshake pattern and cipher suite.
type NoiseProtocol int32

const (
	NoiseProtocol_NOISE_UNSET                       NoiseProtocol = 0
	NoiseProtocol_NOISE_IK_25519_CHACHAPOLY_BLAKE2B NoiseProtocol = 1
	NoiseProtocol_NOISE_IK_25519_AESGCM_BLAKE2B     NoiseProtocol = 2
)

var NoiseProtocol_name = map[int32]string{
	0: "NOISE_UNSET",
	1: "NOISE_IK_25519_CHACHAPOLY_BLAKE2B",
	2: "NOISE_IK_25519_AESGCM_BLAKE2B",
}

var NoiseProtocol_value = map[string]int32{
	"NOISE_UNSET":                       0,
	"NOISE_IK_25519_CHACHAPOLY_BLAKE2B": 1,
	"NOISE_IK_25519_AESGCM_BLAKE2B":     2,
}

func (x NoiseProtocol) String() string {
	return proto.EnumName(NoiseProtocol_name, int32(x))
}

// NoiseInfo represents the information an initiator needs to connect over Noise
// to a specific peer.
type NoiseInfo struct {
	Proto                NoiseProtocol `protobuf:"varint,1,opt,name=proto,proto3,enum=noise.NoiseProtocol" json:"proto,omitempty"`
	PublicKey            []byte        `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *NoiseInfo) Reset()         { *m = NoiseInfo{} }
func (m *NoiseInfo) String() string { return proto.CompactTextString(m) }
func (*NoiseInfo) ProtoMessage()    {}

func (m *NoiseInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_NoiseInfo.Unmarshal(m, b)
}
func (m *NoiseInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_NoiseInfo.Marshal(b, m, deterministic)
}
func (m *NoiseInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NoiseInfo.Merge(m, src)
}
func (m *NoiseInfo) XXX_Size() int {
	return xxx_messageInfo_NoiseInfo.Size(m)
}
func (m *NoiseInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_NoiseInfo.DiscardUnknown(m)
}

var xxx_messageInfo_NoiseInfo proto.InternalMessageInfo

func (m *NoiseInfo) GetProto() NoiseProtocol {
	if m != nil {
		return m.Proto
	}
	return NoiseProtocol_NOISE_UNSET
}

func (m *NoiseInfo) GetPublicKey() []byte {
	if m != nil {
		return m.PublicKey
	}
	return nil
}

// NoiseKeyAttestation is a structure that shows the given Noise public key
// belongs to a specific node id. The Noise public key (and signing timestamp)
// are signed by the leaf key of the node's cert chain, where the node's cert
// chain is validated to belong to the given node id.
// Note that a NoiseSessionAttestation is preferred to a NoiseKeyAttestation
// if possible, and required if you are interested in channel binding.
// NoiseKeyAttestation, on the other hand, doubles as a more secure form of
// NoiseInfo.
type NoiseKeyAttestation struct {
	NodeCertchain []byte        `protobuf:"bytes,2,opt,name=node_certchain,json=nodeCertchain,proto3" json:"node_certchain,omitempty"`
	NoiseProto    NoiseProtocol `protobuf:"varint,3,opt,name=noise_proto,json=noiseProto,proto3,enum=noise.NoiseProtocol" json:"noise_proto,omitempty"`
	// these two values are part of the signature.
	NoisePublicKey []byte    `protobuf:"bytes,4,opt,name=noise_public_key,json=noisePublicKey,proto3" json:"noise_public_key,omitempty"`
	Timestamp      time.Time `protobuf:"bytes,5,opt,name=timestamp,proto3,stdtime" json:"timestamp"`
	Signature      []byte    `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`
	// signers should fill this in, validators should ignore this field
	// and just use the node id computed by the cert chain.
	DeprecatedNodeId     NodeID   `protobuf:"bytes,1,opt,name=deprecated_node_id,json=deprecatedNodeId,proto3,customtype=NodeID" json:"deprecated_node_id"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NoiseKeyAttestation) Reset()         { *m = NoiseKeyAttestation{} }
func (m *NoiseKeyAttestation) String() string { return proto.CompactTextString(m) }
func (*NoiseKeyAttestation) ProtoMessage()    {}

func (m *NoiseKeyAttestation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_NoiseKeyAttestation.Unmarshal(m, b)
}
func (m *NoiseKeyAttestation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_NoiseKeyAttestation.Marshal(b, m, deterministic)
}
func (m *NoiseKeyAttestation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NoiseKeyAttestation.Merge(m, src)
}
func (m *NoiseKeyAttestation) XXX_Size() int {
	return xxx_messageInfo_NoiseKeyAttestation.Size(m)
}
func (m *NoiseKeyAttestation) XXX_DiscardUnknown() {
	xxx_messageInfo_NoiseKeyAttestation.DiscardUnknown(m)
}

var xxx_messageInfo_NoiseKeyAttestation proto.InternalMessageInfo

func (m *NoiseKeyAttestation) GetNodeCertchain() []byte {
	if m != nil {
		return m.NodeCertchain
	}
	return nil
}

func (m *NoiseKeyAttestation) GetNoiseProto() NoiseProtocol {
	if m != nil {
		return m.NoiseProto
	}
	return NoiseProtocol_NOISE_UNSET
}

func (m *NoiseKeyAttestation) GetNoisePublicKey() []byte {
	if m != nil {
		return m.NoisePublicKey
	}
	return nil
}

func (m *NoiseKeyAttestation) GetTimestamp() time.Time {
	if m != nil {
		return m.Timestamp
	}
	return time.Time{}
}

func (m *NoiseKeyAttestation) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

// NoiseSessionAttestation is a structure that shows the given Noise session
// handshake hash is in use by a specific node id. The handshake hash is signed
// by the leaf key of the node's cert chain, where the node's cert chain is
// validated to belong to the given node id.
type NoiseSessionAttestation struct {
	NodeCertchain      []byte `protobuf:"bytes,2,opt,name=node_certchain,json=nodeCertchain,proto3" json:"node_certchain,omitempty"`
	NoiseHandshakeHash []byte `protobuf:"bytes,3,opt,name=noise_handshake_hash,json=noiseHandshakeHash,proto3" json:"noise_handshake_hash,omitempty"`
	Signature          []byte `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`
	// signers should fill this in, validators should ignore this field
	// and just use the node id computed by the cert chain.
	DeprecatedNodeId     NodeID   `protobuf:"bytes,1,opt,name=deprecated_node_id,json=deprecatedNodeId,proto3,customtype=NodeID" json:"deprecated_node_id"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NoiseSessionAttestation) Reset()         { *m = NoiseSessionAttestation{} }
func (m *NoiseSessionAttestation) String() string { return proto.CompactTextString(m) }
func (*NoiseSessionAttestation) ProtoMessage()    {}

func (m *NoiseSessionAttestation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_NoiseSessionAttestation.Unmarshal(m, b)
}
func (m *NoiseSessionAttestation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_NoiseSessionAttestation.Marshal(b, m, deterministic)
}
func (m *NoiseSessionAttestation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NoiseSessionAttestation.Merge(m, src)
}
func (m *NoiseSessionAttestation) XXX_Size() int {
	return xxx_messageInfo_NoiseSessionAttestation.Size(m)
}
func (m *NoiseSessionAttestation) XXX_DiscardUnknown() {
	xxx_messageInfo_NoiseSessionAttestation.DiscardUnknown(m)
}

var xxx_messageInfo_NoiseSessionAttestation proto.InternalMessageInfo

func (m *NoiseSessionAttestation) GetNodeCertchain() []byte {
	if m != nil {
		return m.NodeCertchain
	}
	return nil
}

func (m *NoiseSessionAttestation) GetNoiseHandshakeHash() []byte {
	if m != nil {
		return m.NoiseHandshakeHash
	}
	return nil
}

func (m *NoiseSessionAttestation) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}
