Hi all.

We use protobuf in our product, and I have a question regarding 
incorporating it with signatures.
If I have 2 hosts (let's assume they can be different platforms, OS, etc.) 
- hostA and hostB and the following scenario:

A creates message M, sends B the message M, as well as the output of 
proto.Marshal <https://godoc.org/github.com/golang/protobuf/proto#Marshal> 
on M (the bytes) - denoted as Ma
1) A sends a message M to B via gRPC
2) B receives the message, and calls proto.Marshal 
<https://godoc.org/github.com/golang/protobuf/proto#Marshal> on M, denoted 
Mb.
3) B checks whether Ma is equal to Mb.

Is Ma equal to Mb?

I'm asking the question because I wish to sign messages in the following 
way:
Defining a message M:
message M {
field1 ... 
fiedl2 ...
...
bytes signature = n;
}

And then the sender would:
1) Nullify the signature
2) call proto.Marshal 
<https://godoc.org/github.com/golang/protobuf/proto#Marshal>
3) Hash the bytes
4) Sign the hash
5) Put the signature into M.signature
6) Send M over the wire

The receiver would:
1) Backup the signature
2) Nullify the signature field
3) Call proto.Unmarshal 
<https://godoc.org/github.com/golang/protobuf/proto#Unmarshal> on M
4) hash the bytes
5) Verify the signature


Would that work or not?


Many thanks in advance, Yacov.

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to