forked from TrueCloudLab/frostfs-api-go
object: Add public key header type
Object can contain public key header. It will be used for object verification. This header can contain owner's public key or be the part of x509 chain verification in couple with verification header.
This commit is contained in:
parent
f0097d6c24
commit
50d3649acf
3 changed files with 13 additions and 0 deletions
|
@ -67,6 +67,8 @@ const (
|
||||||
IntegrityHdr
|
IntegrityHdr
|
||||||
// StorageGroupHdr is a storage group header type.
|
// StorageGroupHdr is a storage group header type.
|
||||||
StorageGroupHdr
|
StorageGroupHdr
|
||||||
|
// PublicKeyHdr is a public key header type.
|
||||||
|
PublicKeyHdr
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -140,6 +142,8 @@ func (m Header) typeOf(t isHeader_Value) (ok bool) {
|
||||||
_, ok = m.Value.(*Header_Integrity)
|
_, ok = m.Value.(*Header_Integrity)
|
||||||
case *Header_StorageGroup:
|
case *Header_StorageGroup:
|
||||||
_, ok = m.Value.(*Header_StorageGroup)
|
_, ok = m.Value.(*Header_StorageGroup)
|
||||||
|
case *Header_PublicKey:
|
||||||
|
_, ok = m.Value.(*Header_PublicKey)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -168,6 +172,8 @@ func HeaderType(t headerType) Pred {
|
||||||
return func(h *Header) bool { _, ok := h.Value.(*Header_Integrity); return ok }
|
return func(h *Header) bool { _, ok := h.Value.(*Header_Integrity); return ok }
|
||||||
case StorageGroupHdr:
|
case StorageGroupHdr:
|
||||||
return func(h *Header) bool { _, ok := h.Value.(*Header_StorageGroup); return ok }
|
return func(h *Header) bool { _, ok := h.Value.(*Header_StorageGroup); return ok }
|
||||||
|
case PublicKeyHdr:
|
||||||
|
return func(h *Header) bool { _, ok := h.Value.(*Header_PublicKey); return ok }
|
||||||
default:
|
default:
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -45,6 +45,8 @@ message Header {
|
||||||
IntegrityHeader Integrity = 9;
|
IntegrityHeader Integrity = 9;
|
||||||
// StorageGroup contains meta information for the data audit
|
// StorageGroup contains meta information for the data audit
|
||||||
storagegroup.StorageGroup StorageGroup = 10;
|
storagegroup.StorageGroup StorageGroup = 10;
|
||||||
|
// PublicKey of owner of the object. Key is used for verification and can be based on NeoID or x509 cert.
|
||||||
|
PublicKey PublicKey = 11;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,3 +124,8 @@ message Object {
|
||||||
// Payload is an object's payload
|
// Payload is an object's payload
|
||||||
bytes Payload = 3;
|
bytes Payload = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message PublicKey {
|
||||||
|
// Value contains marshaled ecdsa public key
|
||||||
|
bytes Value = 1;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue