renumber fields, add timestamp
This commit is contained in:
parent
92b92c190d
commit
4fd76850da
@ -2,43 +2,54 @@ syntax = "proto3";
|
||||
|
||||
option go_package = "mfer";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
message MFFile {
|
||||
enum Version {
|
||||
NONE = 0;
|
||||
ONE = 1; // only one for now
|
||||
}
|
||||
Version version = 1;
|
||||
bytes innerMessage = 2;
|
||||
|
||||
// required mffile root attributes 1xx
|
||||
Version version = 101;
|
||||
bytes innerMessage = 102;
|
||||
// these are used solely to detect corruption/truncation
|
||||
// and not for cryptographic integrity.
|
||||
uint64 size = 3;
|
||||
bytes sha256 = 4;
|
||||
uint64 size = 103;
|
||||
bytes sha256 = 104;
|
||||
|
||||
// 2xx for optional manifest root attributes
|
||||
// think we might use gosignify instead of gpg:
|
||||
// github.com/frankbraun/gosignify
|
||||
|
||||
//detached signature, ascii or binary
|
||||
optional bytes signature = 5;
|
||||
optional bytes signature = 201;
|
||||
//full GPG key id
|
||||
optional bytes signer = 6;
|
||||
optional bytes signer = 202;
|
||||
//full GPG signing public key, ascii or binary
|
||||
optional bytes signingPubKey = 7;
|
||||
optional bytes signingPubKey = 203;
|
||||
}
|
||||
|
||||
message MFFilePath {
|
||||
string path = 1;
|
||||
uint64 size = 2;
|
||||
// when verifying, count(hashes) must be > 0.
|
||||
optional repeated MFFileChecksum hashes = 201;
|
||||
optional string mimeType = 101;
|
||||
optional string mtime = 102;
|
||||
optional string ctime = 103;
|
||||
optional string atime = 104;
|
||||
|
||||
// required attributes:
|
||||
string path = 101;
|
||||
uint64 size = 102;
|
||||
|
||||
// gotta have at least one:
|
||||
repeated MFFileChecksum hashes = 201;
|
||||
|
||||
// optional per-file metadata
|
||||
optional string mimeType = 301;
|
||||
optional string mtime = 302;
|
||||
optional string ctime = 303;
|
||||
optional string atime = 304;
|
||||
|
||||
}
|
||||
|
||||
message MFFileChecksum {
|
||||
// 1.0 golang implementation must write a multihash here
|
||||
// it's ok to only ever use/verify sha256 multihash
|
||||
bytes multiHash = 1;
|
||||
}
|
||||
|
||||
@ -47,7 +58,13 @@ message MFFileInner {
|
||||
NONE = 0;
|
||||
ONE = 1; // only one for now
|
||||
}
|
||||
Version version = 1;
|
||||
uint64 count = 2;
|
||||
repeated MFFilePath files = 3;
|
||||
Version version = 101;
|
||||
|
||||
// required manifest attributes:
|
||||
uint64 fileCount = 102;
|
||||
repeated MFFilePath files = 103;
|
||||
|
||||
// optional manifest attributes 2xx:
|
||||
optional google.protobuf.Timestamp createdAt = 201;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user