| syntax = "proto3"; |
| |
| package moby.filesync.v1; |
| |
| option go_package = "auth"; |
| |
| service Auth{ |
| rpc Credentials(CredentialsRequest) returns (CredentialsResponse); |
| rpc FetchToken(FetchTokenRequest) returns (FetchTokenResponse); |
| rpc GetTokenAuthority(GetTokenAuthorityRequest) returns (GetTokenAuthorityResponse); |
| rpc VerifyTokenAuthority(VerifyTokenAuthorityRequest) returns (VerifyTokenAuthorityResponse); |
| } |
| |
| message CredentialsRequest { |
| string Host = 1; |
| } |
| |
| message CredentialsResponse { |
| string Username = 1; |
| string Secret = 2; |
| } |
| |
| message FetchTokenRequest { |
| string ClientID = 1; |
| string Host = 2; |
| string Realm = 3; |
| string Service = 4; |
| repeated string Scopes = 5; |
| } |
| |
| message FetchTokenResponse { |
| string Token = 1; |
| int64 ExpiresIn = 2; // seconds |
| int64 IssuedAt = 3; // timestamp |
| } |
| |
| message GetTokenAuthorityRequest { |
| string Host = 1; |
| bytes Salt = 2; |
| } |
| |
| message GetTokenAuthorityResponse { |
| bytes PublicKey = 1; |
| } |
| |
| message VerifyTokenAuthorityRequest { |
| string Host = 1; |
| bytes Payload = 2; |
| bytes Salt = 3; |
| } |
| |
| message VerifyTokenAuthorityResponse { |
| bytes Signed = 1; |
| } |