github.com/mre-fog/trillianxx@v1.1.2-0.20180615153820-ae375a99d36a/trillian.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // source: trillian.proto
     3  
     4  package trillian
     5  
     6  import proto "github.com/golang/protobuf/proto"
     7  import fmt "fmt"
     8  import math "math"
     9  import keyspb "github.com/google/trillian/crypto/keyspb"
    10  import sigpb "github.com/google/trillian/crypto/sigpb"
    11  import google_protobuf2 "github.com/golang/protobuf/ptypes/any"
    12  import google_protobuf3 "github.com/golang/protobuf/ptypes/duration"
    13  import google_protobuf1 "github.com/golang/protobuf/ptypes/timestamp"
    14  
    15  // Reference imports to suppress errors if they are not otherwise used.
    16  var _ = proto.Marshal
    17  var _ = fmt.Errorf
    18  var _ = math.Inf
    19  
    20  // LogRootFormat specifies the fields that are covered by the
    21  // SignedLogRoot signature, as well as their ordering and formats.
    22  type LogRootFormat int32
    23  
    24  const (
    25  	LogRootFormat_LOG_ROOT_FORMAT_UNKNOWN LogRootFormat = 0
    26  	LogRootFormat_LOG_ROOT_FORMAT_V1      LogRootFormat = 1
    27  )
    28  
    29  var LogRootFormat_name = map[int32]string{
    30  	0: "LOG_ROOT_FORMAT_UNKNOWN",
    31  	1: "LOG_ROOT_FORMAT_V1",
    32  }
    33  var LogRootFormat_value = map[string]int32{
    34  	"LOG_ROOT_FORMAT_UNKNOWN": 0,
    35  	"LOG_ROOT_FORMAT_V1":      1,
    36  }
    37  
    38  func (x LogRootFormat) String() string {
    39  	return proto.EnumName(LogRootFormat_name, int32(x))
    40  }
    41  func (LogRootFormat) EnumDescriptor() ([]byte, []int) { return fileDescriptor3, []int{0} }
    42  
    43  // MapRootFormat specifies the fields that are covered by the
    44  // SignedMapRoot signature, as well as their ordering and formats.
    45  type MapRootFormat int32
    46  
    47  const (
    48  	MapRootFormat_MAP_ROOT_FORMAT_UNKNOWN MapRootFormat = 0
    49  	MapRootFormat_MAP_ROOT_FORMAT_V1      MapRootFormat = 1
    50  )
    51  
    52  var MapRootFormat_name = map[int32]string{
    53  	0: "MAP_ROOT_FORMAT_UNKNOWN",
    54  	1: "MAP_ROOT_FORMAT_V1",
    55  }
    56  var MapRootFormat_value = map[string]int32{
    57  	"MAP_ROOT_FORMAT_UNKNOWN": 0,
    58  	"MAP_ROOT_FORMAT_V1":      1,
    59  }
    60  
    61  func (x MapRootFormat) String() string {
    62  	return proto.EnumName(MapRootFormat_name, int32(x))
    63  }
    64  func (MapRootFormat) EnumDescriptor() ([]byte, []int) { return fileDescriptor3, []int{1} }
    65  
    66  // Defines the way empty / node / leaf hashes are constructed incorporating
    67  // preimage protection, which can be application specific.
    68  type HashStrategy int32
    69  
    70  const (
    71  	// Hash strategy cannot be determined. Included to enable detection of
    72  	// mismatched proto versions being used. Represents an invalid value.
    73  	HashStrategy_UNKNOWN_HASH_STRATEGY HashStrategy = 0
    74  	// Certificate Transparency strategy: leaf hash prefix = 0x00, node prefix =
    75  	// 0x01, empty hash is digest([]byte{}), as defined in the specification.
    76  	HashStrategy_RFC6962_SHA256 HashStrategy = 1
    77  	// Sparse Merkle Tree strategy:  leaf hash prefix = 0x00, node prefix = 0x01,
    78  	// empty branch is recursively computed from empty leaf nodes.
    79  	// NOT secure in a multi tree environment. For testing only.
    80  	HashStrategy_TEST_MAP_HASHER HashStrategy = 2
    81  	// Append-only log strategy where leaf nodes are defined as the ObjectHash.
    82  	// All other properties are equal to RFC6962_SHA256.
    83  	HashStrategy_OBJECT_RFC6962_SHA256 HashStrategy = 3
    84  	// The CONIKS sparse tree hasher with SHA512_256 as the hash algorithm.
    85  	HashStrategy_CONIKS_SHA512_256 HashStrategy = 4
    86  )
    87  
    88  var HashStrategy_name = map[int32]string{
    89  	0: "UNKNOWN_HASH_STRATEGY",
    90  	1: "RFC6962_SHA256",
    91  	2: "TEST_MAP_HASHER",
    92  	3: "OBJECT_RFC6962_SHA256",
    93  	4: "CONIKS_SHA512_256",
    94  }
    95  var HashStrategy_value = map[string]int32{
    96  	"UNKNOWN_HASH_STRATEGY": 0,
    97  	"RFC6962_SHA256":        1,
    98  	"TEST_MAP_HASHER":       2,
    99  	"OBJECT_RFC6962_SHA256": 3,
   100  	"CONIKS_SHA512_256":     4,
   101  }
   102  
   103  func (x HashStrategy) String() string {
   104  	return proto.EnumName(HashStrategy_name, int32(x))
   105  }
   106  func (HashStrategy) EnumDescriptor() ([]byte, []int) { return fileDescriptor3, []int{2} }
   107  
   108  // State of the tree.
   109  type TreeState int32
   110  
   111  const (
   112  	// Tree state cannot be determined. Included to enable detection of
   113  	// mismatched proto versions being used. Represents an invalid value.
   114  	TreeState_UNKNOWN_TREE_STATE TreeState = 0
   115  	// Active trees are able to respond to both read and write requests.
   116  	TreeState_ACTIVE TreeState = 1
   117  	// Frozen trees are only able to respond to read requests, writing to a frozen
   118  	// tree is forbidden. Trees should not be frozen when there are entries
   119  	// in the queue that have not yet been integrated. See the DRAINING
   120  	// state for this case.
   121  	TreeState_FROZEN TreeState = 2
   122  	// Deprecated: now tracked in Tree.deleted.
   123  	TreeState_DEPRECATED_SOFT_DELETED TreeState = 3
   124  	// Deprecated: now tracked in Tree.deleted.
   125  	TreeState_DEPRECATED_HARD_DELETED TreeState = 4
   126  	// A tree that is draining will continue to integrate queued entries.
   127  	// No new entries should be accepted.
   128  	TreeState_DRAINING TreeState = 5
   129  )
   130  
   131  var TreeState_name = map[int32]string{
   132  	0: "UNKNOWN_TREE_STATE",
   133  	1: "ACTIVE",
   134  	2: "FROZEN",
   135  	3: "DEPRECATED_SOFT_DELETED",
   136  	4: "DEPRECATED_HARD_DELETED",
   137  	5: "DRAINING",
   138  }
   139  var TreeState_value = map[string]int32{
   140  	"UNKNOWN_TREE_STATE":      0,
   141  	"ACTIVE":                  1,
   142  	"FROZEN":                  2,
   143  	"DEPRECATED_SOFT_DELETED": 3,
   144  	"DEPRECATED_HARD_DELETED": 4,
   145  	"DRAINING":                5,
   146  }
   147  
   148  func (x TreeState) String() string {
   149  	return proto.EnumName(TreeState_name, int32(x))
   150  }
   151  func (TreeState) EnumDescriptor() ([]byte, []int) { return fileDescriptor3, []int{3} }
   152  
   153  // Type of the tree.
   154  type TreeType int32
   155  
   156  const (
   157  	// Tree type cannot be determined. Included to enable detection of mismatched
   158  	// proto versions being used. Represents an invalid value.
   159  	TreeType_UNKNOWN_TREE_TYPE TreeType = 0
   160  	// Tree represents a verifiable log.
   161  	TreeType_LOG TreeType = 1
   162  	// Tree represents a verifiable map.
   163  	TreeType_MAP TreeType = 2
   164  	// Tree represents a verifiable pre-ordered log, i.e., a log whose entries are
   165  	// placed according to sequence numbers assigned outside of Trillian.
   166  	TreeType_PREORDERED_LOG TreeType = 3
   167  )
   168  
   169  var TreeType_name = map[int32]string{
   170  	0: "UNKNOWN_TREE_TYPE",
   171  	1: "LOG",
   172  	2: "MAP",
   173  	3: "PREORDERED_LOG",
   174  }
   175  var TreeType_value = map[string]int32{
   176  	"UNKNOWN_TREE_TYPE": 0,
   177  	"LOG":               1,
   178  	"MAP":               2,
   179  	"PREORDERED_LOG":    3,
   180  }
   181  
   182  func (x TreeType) String() string {
   183  	return proto.EnumName(TreeType_name, int32(x))
   184  }
   185  func (TreeType) EnumDescriptor() ([]byte, []int) { return fileDescriptor3, []int{4} }
   186  
   187  // Represents a tree, which may be either a verifiable log or map.
   188  // Readonly attributes are assigned at tree creation, after which they may not
   189  // be modified.
   190  //
   191  // Note: Many APIs within the rest of the code require these objects to
   192  // be provided. For safety they should be obtained via Admin API calls and
   193  // not created dynamically.
   194  type Tree struct {
   195  	// ID of the tree.
   196  	// Readonly.
   197  	TreeId int64 `protobuf:"varint,1,opt,name=tree_id,json=treeId" json:"tree_id,omitempty"`
   198  	// State of the tree.
   199  	// Trees are ACTIVE after creation. At any point the tree may transition
   200  	// between ACTIVE, DRAINING and FROZEN states.
   201  	TreeState TreeState `protobuf:"varint,2,opt,name=tree_state,json=treeState,enum=trillian.TreeState" json:"tree_state,omitempty"`
   202  	// Type of the tree.
   203  	// Readonly after Tree creation. Exception: Can be switched from
   204  	// PREORDERED_LOG to LOG if the Tree is and remains in the FROZEN state.
   205  	TreeType TreeType `protobuf:"varint,3,opt,name=tree_type,json=treeType,enum=trillian.TreeType" json:"tree_type,omitempty"`
   206  	// Hash strategy to be used by the tree.
   207  	// Readonly.
   208  	HashStrategy HashStrategy `protobuf:"varint,4,opt,name=hash_strategy,json=hashStrategy,enum=trillian.HashStrategy" json:"hash_strategy,omitempty"`
   209  	// Hash algorithm to be used by the tree.
   210  	// Readonly.
   211  	HashAlgorithm sigpb.DigitallySigned_HashAlgorithm `protobuf:"varint,5,opt,name=hash_algorithm,json=hashAlgorithm,enum=sigpb.DigitallySigned_HashAlgorithm" json:"hash_algorithm,omitempty"`
   212  	// Signature algorithm to be used by the tree.
   213  	// Readonly.
   214  	SignatureAlgorithm sigpb.DigitallySigned_SignatureAlgorithm `protobuf:"varint,6,opt,name=signature_algorithm,json=signatureAlgorithm,enum=sigpb.DigitallySigned_SignatureAlgorithm" json:"signature_algorithm,omitempty"`
   215  	// Display name of the tree.
   216  	// Optional.
   217  	DisplayName string `protobuf:"bytes,8,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
   218  	// Description of the tree,
   219  	// Optional.
   220  	Description string `protobuf:"bytes,9,opt,name=description" json:"description,omitempty"`
   221  	// Identifies the private key used for signing tree heads and entry
   222  	// timestamps.
   223  	// This can be any type of message to accommodate different key management
   224  	// systems, e.g. PEM files, HSMs, etc.
   225  	// Private keys are write-only: they're never returned by RPCs.
   226  	// The private_key message can be changed after a tree is created, but the
   227  	// underlying key must remain the same - this is to enable migrating a key
   228  	// from one provider to another.
   229  	PrivateKey *google_protobuf2.Any `protobuf:"bytes,12,opt,name=private_key,json=privateKey" json:"private_key,omitempty"`
   230  	// Storage-specific settings.
   231  	// Varies according to the storage implementation backing Trillian.
   232  	StorageSettings *google_protobuf2.Any `protobuf:"bytes,13,opt,name=storage_settings,json=storageSettings" json:"storage_settings,omitempty"`
   233  	// The public key used for verifying tree heads and entry timestamps.
   234  	// Readonly.
   235  	PublicKey *keyspb.PublicKey `protobuf:"bytes,14,opt,name=public_key,json=publicKey" json:"public_key,omitempty"`
   236  	// Interval after which a new signed root is produced even if there have been
   237  	// no submission.  If zero, this behavior is disabled.
   238  	MaxRootDuration *google_protobuf3.Duration `protobuf:"bytes,15,opt,name=max_root_duration,json=maxRootDuration" json:"max_root_duration,omitempty"`
   239  	// Time of tree creation.
   240  	// Readonly.
   241  	CreateTime *google_protobuf1.Timestamp `protobuf:"bytes,16,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
   242  	// Time of last tree update.
   243  	// Readonly (automatically assigned on updates).
   244  	UpdateTime *google_protobuf1.Timestamp `protobuf:"bytes,17,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
   245  	// If true, the tree has been deleted.
   246  	// Deleted trees may be undeleted during a certain time window, after which
   247  	// they're permanently deleted (and unrecoverable).
   248  	// Readonly.
   249  	Deleted bool `protobuf:"varint,19,opt,name=deleted" json:"deleted,omitempty"`
   250  	// Time of tree deletion, if any.
   251  	// Readonly.
   252  	DeleteTime *google_protobuf1.Timestamp `protobuf:"bytes,20,opt,name=delete_time,json=deleteTime" json:"delete_time,omitempty"`
   253  }
   254  
   255  func (m *Tree) Reset()                    { *m = Tree{} }
   256  func (m *Tree) String() string            { return proto.CompactTextString(m) }
   257  func (*Tree) ProtoMessage()               {}
   258  func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{0} }
   259  
   260  func (m *Tree) GetTreeId() int64 {
   261  	if m != nil {
   262  		return m.TreeId
   263  	}
   264  	return 0
   265  }
   266  
   267  func (m *Tree) GetTreeState() TreeState {
   268  	if m != nil {
   269  		return m.TreeState
   270  	}
   271  	return TreeState_UNKNOWN_TREE_STATE
   272  }
   273  
   274  func (m *Tree) GetTreeType() TreeType {
   275  	if m != nil {
   276  		return m.TreeType
   277  	}
   278  	return TreeType_UNKNOWN_TREE_TYPE
   279  }
   280  
   281  func (m *Tree) GetHashStrategy() HashStrategy {
   282  	if m != nil {
   283  		return m.HashStrategy
   284  	}
   285  	return HashStrategy_UNKNOWN_HASH_STRATEGY
   286  }
   287  
   288  func (m *Tree) GetHashAlgorithm() sigpb.DigitallySigned_HashAlgorithm {
   289  	if m != nil {
   290  		return m.HashAlgorithm
   291  	}
   292  	return sigpb.DigitallySigned_NONE
   293  }
   294  
   295  func (m *Tree) GetSignatureAlgorithm() sigpb.DigitallySigned_SignatureAlgorithm {
   296  	if m != nil {
   297  		return m.SignatureAlgorithm
   298  	}
   299  	return sigpb.DigitallySigned_ANONYMOUS
   300  }
   301  
   302  func (m *Tree) GetDisplayName() string {
   303  	if m != nil {
   304  		return m.DisplayName
   305  	}
   306  	return ""
   307  }
   308  
   309  func (m *Tree) GetDescription() string {
   310  	if m != nil {
   311  		return m.Description
   312  	}
   313  	return ""
   314  }
   315  
   316  func (m *Tree) GetPrivateKey() *google_protobuf2.Any {
   317  	if m != nil {
   318  		return m.PrivateKey
   319  	}
   320  	return nil
   321  }
   322  
   323  func (m *Tree) GetStorageSettings() *google_protobuf2.Any {
   324  	if m != nil {
   325  		return m.StorageSettings
   326  	}
   327  	return nil
   328  }
   329  
   330  func (m *Tree) GetPublicKey() *keyspb.PublicKey {
   331  	if m != nil {
   332  		return m.PublicKey
   333  	}
   334  	return nil
   335  }
   336  
   337  func (m *Tree) GetMaxRootDuration() *google_protobuf3.Duration {
   338  	if m != nil {
   339  		return m.MaxRootDuration
   340  	}
   341  	return nil
   342  }
   343  
   344  func (m *Tree) GetCreateTime() *google_protobuf1.Timestamp {
   345  	if m != nil {
   346  		return m.CreateTime
   347  	}
   348  	return nil
   349  }
   350  
   351  func (m *Tree) GetUpdateTime() *google_protobuf1.Timestamp {
   352  	if m != nil {
   353  		return m.UpdateTime
   354  	}
   355  	return nil
   356  }
   357  
   358  func (m *Tree) GetDeleted() bool {
   359  	if m != nil {
   360  		return m.Deleted
   361  	}
   362  	return false
   363  }
   364  
   365  func (m *Tree) GetDeleteTime() *google_protobuf1.Timestamp {
   366  	if m != nil {
   367  		return m.DeleteTime
   368  	}
   369  	return nil
   370  }
   371  
   372  type SignedEntryTimestamp struct {
   373  	TimestampNanos int64                  `protobuf:"varint,1,opt,name=timestamp_nanos,json=timestampNanos" json:"timestamp_nanos,omitempty"`
   374  	LogId          int64                  `protobuf:"varint,2,opt,name=log_id,json=logId" json:"log_id,omitempty"`
   375  	Signature      *sigpb.DigitallySigned `protobuf:"bytes,3,opt,name=signature" json:"signature,omitempty"`
   376  }
   377  
   378  func (m *SignedEntryTimestamp) Reset()                    { *m = SignedEntryTimestamp{} }
   379  func (m *SignedEntryTimestamp) String() string            { return proto.CompactTextString(m) }
   380  func (*SignedEntryTimestamp) ProtoMessage()               {}
   381  func (*SignedEntryTimestamp) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{1} }
   382  
   383  func (m *SignedEntryTimestamp) GetTimestampNanos() int64 {
   384  	if m != nil {
   385  		return m.TimestampNanos
   386  	}
   387  	return 0
   388  }
   389  
   390  func (m *SignedEntryTimestamp) GetLogId() int64 {
   391  	if m != nil {
   392  		return m.LogId
   393  	}
   394  	return 0
   395  }
   396  
   397  func (m *SignedEntryTimestamp) GetSignature() *sigpb.DigitallySigned {
   398  	if m != nil {
   399  		return m.Signature
   400  	}
   401  	return nil
   402  }
   403  
   404  // SignedLogRoot represents a commitment by a Log to a particular tree.
   405  type SignedLogRoot struct {
   406  	// Deprecated: TimestampNanos moved to LogRoot.
   407  	TimestampNanos int64 `protobuf:"varint,1,opt,name=timestamp_nanos,json=timestampNanos" json:"timestamp_nanos,omitempty"`
   408  	// Deprecated: RootHash moved to LogRoot.
   409  	RootHash []byte `protobuf:"bytes,2,opt,name=root_hash,json=rootHash,proto3" json:"root_hash,omitempty"`
   410  	// Deprecated: TreeSize moved to LogRoot.
   411  	TreeSize int64 `protobuf:"varint,3,opt,name=tree_size,json=treeSize" json:"tree_size,omitempty"`
   412  	// Deprecated: TreeRevision moved to LogRoot.
   413  	TreeRevision int64 `protobuf:"varint,6,opt,name=tree_revision,json=treeRevision" json:"tree_revision,omitempty"`
   414  	// key_hint is a hint to identify the public key for signature verification.
   415  	// key_hint is not authenticated and may be incorrect or missing, in which
   416  	// case all known public keys may be used to verify the signature.
   417  	// When directly communicating with a Trillian gRPC server, the key_hint will
   418  	// typically contain the LogID encoded as a big-endian 64-bit integer;
   419  	// however, in other contexts the key_hint is likely to have different
   420  	// contents (e.g. it could be a GUID, a URL + TreeID, or it could be
   421  	// derived from the public key itself).
   422  	KeyHint []byte `protobuf:"bytes,7,opt,name=key_hint,json=keyHint,proto3" json:"key_hint,omitempty"`
   423  	// log_root holds the TLS-serialization of the following structure (described
   424  	// in RFC5246 notation): Clients should validate log_root_signature with
   425  	// VerifySignedLogRoot before deserializing log_root.
   426  	// enum { v1(1), (65535)} Version;
   427  	// struct {
   428  	//   uint64 tree_size;
   429  	//   opaque root_hash<0..128>;
   430  	//   uint64 timestamp_nanos;
   431  	//   uint64 revision;
   432  	//   opaque metadata<0..65535>;
   433  	// } LogRootV1;
   434  	// struct {
   435  	//   Version version;
   436  	//   select(version) {
   437  	//     case v1: LogRootV1;
   438  	//   }
   439  	// } LogRoot;
   440  	LogRoot []byte `protobuf:"bytes,8,opt,name=log_root,json=logRoot,proto3" json:"log_root,omitempty"`
   441  	// log_root_signature is the raw signature over log_root.
   442  	LogRootSignature []byte `protobuf:"bytes,9,opt,name=log_root_signature,json=logRootSignature,proto3" json:"log_root_signature,omitempty"`
   443  }
   444  
   445  func (m *SignedLogRoot) Reset()                    { *m = SignedLogRoot{} }
   446  func (m *SignedLogRoot) String() string            { return proto.CompactTextString(m) }
   447  func (*SignedLogRoot) ProtoMessage()               {}
   448  func (*SignedLogRoot) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{2} }
   449  
   450  func (m *SignedLogRoot) GetTimestampNanos() int64 {
   451  	if m != nil {
   452  		return m.TimestampNanos
   453  	}
   454  	return 0
   455  }
   456  
   457  func (m *SignedLogRoot) GetRootHash() []byte {
   458  	if m != nil {
   459  		return m.RootHash
   460  	}
   461  	return nil
   462  }
   463  
   464  func (m *SignedLogRoot) GetTreeSize() int64 {
   465  	if m != nil {
   466  		return m.TreeSize
   467  	}
   468  	return 0
   469  }
   470  
   471  func (m *SignedLogRoot) GetTreeRevision() int64 {
   472  	if m != nil {
   473  		return m.TreeRevision
   474  	}
   475  	return 0
   476  }
   477  
   478  func (m *SignedLogRoot) GetKeyHint() []byte {
   479  	if m != nil {
   480  		return m.KeyHint
   481  	}
   482  	return nil
   483  }
   484  
   485  func (m *SignedLogRoot) GetLogRoot() []byte {
   486  	if m != nil {
   487  		return m.LogRoot
   488  	}
   489  	return nil
   490  }
   491  
   492  func (m *SignedLogRoot) GetLogRootSignature() []byte {
   493  	if m != nil {
   494  		return m.LogRootSignature
   495  	}
   496  	return nil
   497  }
   498  
   499  // SignedMapRoot represents a commitment by a Map to a particular tree.
   500  type SignedMapRoot struct {
   501  	// map_root holds the TLS-serialization of the following structure (described
   502  	// in RFC5246 notation): Clients should validate signature with
   503  	// VerifySignedMapRoot before deserializing map_root.
   504  	// enum { v1(1), (65535)} Version;
   505  	// struct {
   506  	//   opaque root_hash<0..128>;
   507  	//   uint64 timestamp_nanos;
   508  	//   uint64 revision;
   509  	//   opaque metadata<0..65535>;
   510  	// } MapRootV1;
   511  	// struct {
   512  	//   Version version;
   513  	//   select(version) {
   514  	//     case v1: MapRootV1;
   515  	//   }
   516  	// } MapRoot;
   517  	MapRoot []byte `protobuf:"bytes,9,opt,name=map_root,json=mapRoot,proto3" json:"map_root,omitempty"`
   518  	// Signature is the raw signature over MapRoot.
   519  	Signature []byte `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`
   520  }
   521  
   522  func (m *SignedMapRoot) Reset()                    { *m = SignedMapRoot{} }
   523  func (m *SignedMapRoot) String() string            { return proto.CompactTextString(m) }
   524  func (*SignedMapRoot) ProtoMessage()               {}
   525  func (*SignedMapRoot) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{3} }
   526  
   527  func (m *SignedMapRoot) GetMapRoot() []byte {
   528  	if m != nil {
   529  		return m.MapRoot
   530  	}
   531  	return nil
   532  }
   533  
   534  func (m *SignedMapRoot) GetSignature() []byte {
   535  	if m != nil {
   536  		return m.Signature
   537  	}
   538  	return nil
   539  }
   540  
   541  func init() {
   542  	proto.RegisterType((*Tree)(nil), "trillian.Tree")
   543  	proto.RegisterType((*SignedEntryTimestamp)(nil), "trillian.SignedEntryTimestamp")
   544  	proto.RegisterType((*SignedLogRoot)(nil), "trillian.SignedLogRoot")
   545  	proto.RegisterType((*SignedMapRoot)(nil), "trillian.SignedMapRoot")
   546  	proto.RegisterEnum("trillian.LogRootFormat", LogRootFormat_name, LogRootFormat_value)
   547  	proto.RegisterEnum("trillian.MapRootFormat", MapRootFormat_name, MapRootFormat_value)
   548  	proto.RegisterEnum("trillian.HashStrategy", HashStrategy_name, HashStrategy_value)
   549  	proto.RegisterEnum("trillian.TreeState", TreeState_name, TreeState_value)
   550  	proto.RegisterEnum("trillian.TreeType", TreeType_name, TreeType_value)
   551  }
   552  
   553  func init() { proto.RegisterFile("trillian.proto", fileDescriptor3) }
   554  
   555  var fileDescriptor3 = []byte{
   556  	// 1097 bytes of a gzipped FileDescriptorProto
   557  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0xdb, 0x6f, 0xdb, 0x36,
   558  	0x17, 0xaf, 0x6c, 0xc5, 0x96, 0xe9, 0x4b, 0x18, 0xa6, 0x17, 0xd9, 0xfd, 0xf0, 0xd5, 0xcb, 0x06,
   559  	0x2c, 0x2b, 0x06, 0x67, 0xf5, 0xd6, 0x02, 0x43, 0x1f, 0x06, 0x35, 0x56, 0x62, 0x3b, 0x89, 0x6d,
   560  	0x50, 0x5a, 0x87, 0xe6, 0x85, 0x90, 0x6d, 0x4e, 0x16, 0xa2, 0x1b, 0x24, 0xba, 0xa8, 0xfa, 0x3c,
   561  	0x60, 0x18, 0xb6, 0x3f, 0x7a, 0x20, 0x45, 0xd9, 0x89, 0xb3, 0xae, 0x7b, 0x49, 0x78, 0xce, 0xef,
   562  	0xc2, 0x23, 0xf2, 0x1c, 0xc9, 0xa0, 0xc5, 0x12, 0xcf, 0xf7, 0x3d, 0x27, 0xec, 0xc5, 0x49, 0xc4,
   563  	0x22, 0xa4, 0x15, 0x71, 0xa7, 0xb3, 0x48, 0xb2, 0x98, 0x45, 0x27, 0x37, 0x34, 0x4b, 0xe3, 0xb9,
   564  	0xfc, 0x97, 0xb3, 0x3a, 0xba, 0xc4, 0x52, 0xcf, 0x8d, 0xe7, 0xf9, 0x5f, 0x89, 0xb4, 0xdd, 0x28,
   565  	0x72, 0x7d, 0x7a, 0x22, 0xa2, 0xf9, 0xfa, 0xd7, 0x13, 0x27, 0xcc, 0x24, 0xf4, 0xff, 0x5d, 0x68,
   566  	0xb9, 0x4e, 0x1c, 0xe6, 0x45, 0x72, 0xeb, 0xce, 0xb3, 0x5d, 0x9c, 0x79, 0x01, 0x4d, 0x99, 0x13,
   567  	0xc4, 0x39, 0xe1, 0xe8, 0x8f, 0x2a, 0x50, 0xed, 0x84, 0x52, 0xf4, 0x04, 0x54, 0x59, 0x42, 0x29,
   568  	0xf1, 0x96, 0xba, 0xd2, 0x55, 0x8e, 0xcb, 0xb8, 0xc2, 0xc3, 0xd1, 0x12, 0xf5, 0x01, 0x10, 0x40,
   569  	0xca, 0x1c, 0x46, 0xf5, 0x52, 0x57, 0x39, 0x6e, 0xf5, 0x0f, 0x7b, 0x9b, 0x47, 0xe4, 0x62, 0x8b,
   570  	0x43, 0xb8, 0xc6, 0x8a, 0x25, 0x3a, 0x01, 0x22, 0x20, 0x2c, 0x8b, 0xa9, 0x5e, 0x16, 0x12, 0x74,
   571  	0x57, 0x62, 0x67, 0x31, 0xc5, 0x1a, 0x93, 0x2b, 0xf4, 0x1a, 0x34, 0x57, 0x4e, 0xba, 0x22, 0x29,
   572  	0x4b, 0x1c, 0x46, 0xdd, 0x4c, 0x57, 0x85, 0xe8, 0xf1, 0x56, 0x34, 0x74, 0xd2, 0x95, 0x25, 0x51,
   573  	0xdc, 0x58, 0xdd, 0x8a, 0xd0, 0x05, 0x68, 0x09, 0xb1, 0xe3, 0xbb, 0x51, 0xe2, 0xb1, 0x55, 0xa0,
   574  	0xef, 0x09, 0xf5, 0x57, 0xbd, 0xfc, 0x14, 0x07, 0x9e, 0xeb, 0x31, 0xc7, 0xf7, 0x33, 0xcb, 0x73,
   575  	0x43, 0xba, 0x14, 0x56, 0x46, 0xc1, 0xc5, 0x62, 0xe3, 0x4d, 0x88, 0xae, 0xc1, 0x61, 0xea, 0xb9,
   576  	0xa1, 0xc3, 0xd6, 0x09, 0xbd, 0xe5, 0x58, 0x11, 0x8e, 0xdf, 0x7c, 0xc2, 0xd1, 0x2a, 0x14, 0x5b,
   577  	0x5b, 0x94, 0xde, 0xcb, 0xa1, 0x2f, 0x40, 0x63, 0xe9, 0xa5, 0xb1, 0xef, 0x64, 0x24, 0x74, 0x02,
   578  	0xaa, 0x6b, 0x5d, 0xe5, 0xb8, 0x86, 0xeb, 0x32, 0x37, 0x71, 0x02, 0x8a, 0xba, 0xa0, 0xbe, 0xa4,
   579  	0xe9, 0x22, 0xf1, 0x62, 0x7e, 0x8b, 0x7a, 0x4d, 0x32, 0xb6, 0x29, 0xf4, 0x12, 0xd4, 0xe3, 0xc4,
   580  	0x7b, 0xef, 0x30, 0x4a, 0x6e, 0x68, 0xa6, 0x37, 0xba, 0xca, 0x71, 0xbd, 0xff, 0xb0, 0x97, 0x5f,
   581  	0x74, 0xaf, 0xb8, 0xe8, 0x9e, 0x11, 0x66, 0x18, 0x48, 0xe2, 0x05, 0xcd, 0xd0, 0x4f, 0x00, 0xa6,
   582  	0x2c, 0x4a, 0x1c, 0x97, 0x92, 0x94, 0x32, 0xe6, 0x85, 0x6e, 0xaa, 0x37, 0xff, 0x45, 0xbb, 0x2f,
   583  	0xd9, 0x96, 0x24, 0xa3, 0xef, 0x00, 0x88, 0xd7, 0x73, 0xdf, 0x5b, 0x88, 0x6d, 0x5b, 0x42, 0x7a,
   584  	0xd0, 0x93, 0x2d, 0x3c, 0x13, 0xc8, 0x05, 0xcd, 0x70, 0x2d, 0x2e, 0x96, 0xc8, 0x04, 0x07, 0x81,
   585  	0xf3, 0x81, 0x24, 0x51, 0xc4, 0x48, 0xd1, 0x97, 0xfa, 0xbe, 0x10, 0xb6, 0xef, 0xed, 0x39, 0x90,
   586  	0x04, 0xbc, 0x1f, 0x38, 0x1f, 0x70, 0x14, 0xb1, 0x22, 0x81, 0x5e, 0x83, 0xfa, 0x22, 0xa1, 0xfc,
   587  	0x79, 0x79, 0xf3, 0xea, 0x50, 0x18, 0x74, 0xee, 0x19, 0xd8, 0x45, 0x67, 0x63, 0x90, 0xd3, 0x79,
   588  	0x82, 0x8b, 0xd7, 0xf1, 0x72, 0x23, 0x3e, 0xf8, 0xbc, 0x38, 0xa7, 0x0b, 0xb1, 0x0e, 0xaa, 0x4b,
   589  	0xea, 0x53, 0x46, 0x97, 0xfa, 0x61, 0x57, 0x39, 0xd6, 0x70, 0x11, 0x72, 0xdb, 0x7c, 0x99, 0xdb,
   590  	0x3e, 0xfc, 0xbc, 0x6d, 0x4e, 0xe7, 0x89, 0xb1, 0xaa, 0x21, 0x78, 0x38, 0x56, 0xb5, 0x2a, 0xd4,
   591  	0xc6, 0xaa, 0x06, 0x60, 0x7d, 0xac, 0x6a, 0x75, 0xd8, 0x38, 0xfa, 0x4b, 0x01, 0x0f, 0xf3, 0x86,
   592  	0x32, 0x43, 0x96, 0x64, 0x1b, 0x31, 0xfa, 0x1a, 0xec, 0x6f, 0xe6, 0x96, 0x84, 0x4e, 0x18, 0xa5,
   593  	0x72, 0x46, 0x5b, 0x9b, 0xf4, 0x84, 0x67, 0xd1, 0x23, 0x50, 0xf1, 0x23, 0x97, 0xcf, 0x70, 0x49,
   594  	0xe0, 0x7b, 0x7e, 0xe4, 0x8e, 0x96, 0xe8, 0x07, 0x50, 0xdb, 0x74, 0xa3, 0x18, 0xc7, 0x7a, 0xff,
   595  	0xf1, 0x3f, 0x77, 0x32, 0xde, 0x12, 0x8f, 0x7e, 0x2f, 0x81, 0x66, 0x9e, 0xbd, 0x8c, 0x5c, 0x7e,
   596  	0x23, 0xff, 0xbd, 0x8e, 0xa7, 0xa0, 0x26, 0x6e, 0x9d, 0x8f, 0x96, 0x28, 0xa5, 0x81, 0x35, 0x9e,
   597  	0xe0, 0x93, 0xc7, 0xc1, 0xfc, 0x85, 0xe2, 0x7d, 0xcc, 0xab, 0x29, 0xe7, 0x2f, 0x02, 0xcb, 0xfb,
   598  	0x48, 0xd1, 0x97, 0xa0, 0x29, 0xc0, 0x84, 0xbe, 0xf7, 0x52, 0xde, 0x2f, 0x15, 0x41, 0x68, 0xf0,
   599  	0x24, 0x96, 0x39, 0xd4, 0x06, 0xda, 0x0d, 0xcd, 0xc8, 0xca, 0x0b, 0x99, 0x5e, 0x15, 0xee, 0xd5,
   600  	0x1b, 0x9a, 0x0d, 0xbd, 0x90, 0x71, 0x88, 0x9f, 0x00, 0xdf, 0x4c, 0x8c, 0x57, 0x03, 0x57, 0x7d,
   601  	0x59, 0xfd, 0xb7, 0x00, 0x15, 0x10, 0xd9, 0x1e, 0x47, 0x4d, 0x90, 0xa0, 0x24, 0x6d, 0x06, 0x79,
   602  	0xac, 0x6a, 0x2a, 0xdc, 0x1b, 0xab, 0xda, 0x1e, 0xac, 0x1c, 0x25, 0xc5, 0x41, 0x5c, 0x39, 0xb1,
   603  	0xb0, 0x6a, 0x03, 0x2d, 0x70, 0xe2, 0x7c, 0x97, 0xdc, 0xa0, 0x1a, 0x48, 0xe8, 0x7f, 0xb7, 0xcf,
   604  	0x5a, 0x15, 0xd8, 0x36, 0x31, 0x56, 0x35, 0x05, 0x96, 0xc6, 0xaa, 0x56, 0x82, 0xe5, 0xb1, 0xaa,
   605  	0x95, 0xa1, 0x9a, 0xef, 0x30, 0x56, 0xb5, 0x0a, 0xac, 0x6e, 0x5a, 0x42, 0x83, 0xb5, 0xe7, 0x03,
   606  	0xd0, 0x94, 0xc7, 0x7e, 0x16, 0x25, 0x81, 0xc3, 0xd0, 0x53, 0xf0, 0xe4, 0x72, 0x7a, 0x4e, 0xf0,
   607  	0x74, 0x6a, 0x93, 0xb3, 0x29, 0xbe, 0x32, 0x6c, 0xf2, 0xf3, 0xe4, 0x62, 0x32, 0xfd, 0x65, 0x02,
   608  	0x1f, 0xa0, 0xc7, 0x00, 0xed, 0x82, 0x6f, 0x5f, 0x40, 0x85, 0xbb, 0xc8, 0x9a, 0xb7, 0x2e, 0x57,
   609  	0xc6, 0xec, 0xd3, 0x2e, 0xbb, 0xa0, 0x70, 0xf9, 0x4d, 0x01, 0x8d, 0xdb, 0xef, 0x5f, 0xd4, 0x06,
   610  	0x8f, 0xa4, 0x8a, 0x0c, 0x0d, 0x6b, 0x48, 0x2c, 0x1b, 0x1b, 0xb6, 0x79, 0xfe, 0x0e, 0x3e, 0x40,
   611  	0x08, 0xb4, 0xf0, 0xd9, 0xe9, 0xab, 0x1f, 0x5f, 0xf5, 0x89, 0x35, 0x34, 0xfa, 0x2f, 0x5f, 0x41,
   612  	0x05, 0x1d, 0x82, 0x7d, 0xdb, 0xb4, 0x6c, 0xc2, 0xcd, 0x39, 0xdf, 0xc4, 0xb0, 0xc4, 0x3d, 0xa6,
   613  	0x6f, 0xc6, 0xe6, 0xa9, 0x4d, 0x76, 0xf8, 0x65, 0xf4, 0x08, 0x1c, 0x9c, 0x4e, 0x27, 0xa3, 0x0b,
   614  	0x8b, 0xa7, 0x5e, 0xbe, 0xe8, 0x13, 0x9e, 0x56, 0x9f, 0xff, 0xa9, 0x80, 0xda, 0xe6, 0x73, 0xc3,
   615  	0x8b, 0x2d, 0x6a, 0xb0, 0xb1, 0x69, 0x12, 0xcb, 0x36, 0x6c, 0x13, 0x3e, 0x40, 0x00, 0x54, 0x8c,
   616  	0x53, 0x7b, 0xf4, 0xd6, 0x84, 0x0a, 0x5f, 0x9f, 0xe1, 0xe9, 0xb5, 0x39, 0x81, 0x25, 0xf4, 0x0c,
   617  	0x3c, 0x19, 0x98, 0x33, 0x6c, 0x9e, 0x1a, 0xb6, 0x39, 0x20, 0xd6, 0xf4, 0xcc, 0x26, 0x03, 0xf3,
   618  	0xd2, 0xb4, 0xcd, 0x01, 0x2c, 0x77, 0x4a, 0x9a, 0xb2, 0x43, 0x18, 0x1a, 0x78, 0xb0, 0x21, 0xa8,
   619  	0x82, 0xd0, 0x00, 0xda, 0x00, 0x1b, 0xa3, 0xc9, 0x68, 0x72, 0x0e, 0xf7, 0x9e, 0x9f, 0x03, 0xad,
   620  	0xf8, 0x90, 0xf1, 0x82, 0xef, 0xd4, 0x62, 0xbf, 0x9b, 0xf1, 0x52, 0xaa, 0xa0, 0x7c, 0x39, 0x3d,
   621  	0x87, 0x0a, 0x5f, 0x5c, 0x19, 0x33, 0x58, 0xe2, 0xa7, 0x33, 0xc3, 0xe6, 0x14, 0x0f, 0x4c, 0x6c,
   622  	0x0e, 0x08, 0x07, 0xcb, 0x6f, 0x86, 0xa0, 0xbd, 0x88, 0x82, 0xe2, 0xdd, 0x71, 0xf7, 0xb7, 0xc3,
   623  	0x9b, 0xa6, 0x2d, 0xe3, 0x19, 0x0f, 0x67, 0xca, 0x75, 0xc7, 0xf5, 0xd8, 0x6a, 0x3d, 0xef, 0x2d,
   624  	0xa2, 0xe0, 0x44, 0x7e, 0xdc, 0x0b, 0xc9, 0xbc, 0x22, 0x34, 0xdf, 0xff, 0x1d, 0x00, 0x00, 0xff,
   625  	0xff, 0x19, 0x4e, 0xf0, 0x51, 0x81, 0x08, 0x00, 0x00,
   626  }