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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
