> In gRPC-Go, you can provide your own implementation of the 
TransportCredentials interface

That's exactly what I'm looking for. There is an example or other project 
you can think of on how they implemented the interface? Thanks.

On Wednesday, August 19, 2020 at 6:26:26 PM UTC+1 Easwar Swaminathan wrote:

> Hi Marco,
> I do not know enough the Noise protocol. But from what I understand, you 
> are trying to perform mutual authentication and encryption.
>
> In gRPC-Go, you can provide your own implementation of the 
> TransportCredentials interface: 
> https://godoc.org/google.golang.org/grpc/credentials#TransportCredentials 
> which 
> implements the Noise protocol. There should be corresponding APIs in the 
> other languages supported by gRPC as well. Using this approach lets your 
> application deal with application level data instead of transport level 
> data.
>
> Thanks
> Easwar
>
> On Monday, August 17, 2020 at 3:27:37 PM UTC-7 Marco Argentieri wrote:
>
>> Hello! I want to be able to use the Noise Protocol 
>> <https://noiseprotocol.org/> to securely perform mutual authentication 
>> and end to end encrypt the messages exchanged. 
>>
>> The naive way of doing this at the application layer would be to have all 
>> the methods to have the same message containing a bytes field with the 
>> serialized actual protobuf message, like:
>>
>> ```
>> service Trade { 
>>   rpc SecureMethod(SignedMessage) returns(SignedMessage)
>> }
>>
>> message SignedMessage {
>>   uint32 lenght = 1;
>>   bytes payload = 2:
>> }
>> ```
>>
>> Then grpc server would decrypt the given payload and deserialize the 
>> bytes to a defines protobuf message. (Just not sure if this naive method 
>> could work with streaming replys)
>>
>> But, would be way nicer if a three act ECDH key exchnage for subsequent 
>> symmetric encryption could be done at grpc level (maybe using Credentials 
>> plugin API?)
>> I would like to keep using existing protobuf definition and do not do any 
>> additional encrypting/decrypting and subsequent 
>> serialization/deserialization at application level.
>>
>> Any help on where/what to touch would be much appreciated.
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/1b01955d-3ea8-4a1e-9395-44a3b14f1b05n%40googlegroups.com.

Reply via email to