diff --git a/api/blob.go b/api/blob.go index 979f1281..e246d36e 100644 --- a/api/blob.go +++ b/api/blob.go @@ -80,8 +80,8 @@ func (s *SigningService) PostSignBlob(ctx context.Context, request *proto.BlobSi var err error f := func(statusCode int, err error) { - log.Printf(`m=%s,digest=%q,hash=%q,st=%d,et=%d,err="%v"`, - methodName, request.GetDigest(), request.HashAlgorithm.String(), statusCode, timeElapsedSince(start), err) + log.Printf(`m=%s,digest=%q,hash=%q,st=%d,p=%d,et=%d,err="%v"`, + methodName, request.GetDigest(), request.HashAlgorithm.String(), statusCode, request.Priority, timeElapsedSince(start), err) } defer logWithCheckingPanic(f, &statusCode, &err) diff --git a/api/sshhost.go b/api/sshhost.go index 219d21f6..44316026 100644 --- a/api/sshhost.go +++ b/api/sshhost.go @@ -111,8 +111,8 @@ func (s *SigningService) PostHostSSHCertificate(ctx context.Context, request *pr if cert != nil { kid = cert.KeyId } - log.Printf(`m=%s,id=%q,principals=%q,st=%d,et=%d,err="%v"`, - methodName, kid, request.Principals, statusCode, timeElapsedSince(start), err) + log.Printf(`m=%s,id=%q,principals=%q,st=%d,p=%d,et=%d,err="%v"`, + methodName, kid, request.Principals, statusCode, request.Priority, timeElapsedSince(start), err) } defer logWithCheckingPanic(f, &statusCode, &err) diff --git a/api/sshuser.go b/api/sshuser.go index 5dcef38e..56775cfe 100644 --- a/api/sshuser.go +++ b/api/sshuser.go @@ -111,8 +111,8 @@ func (s *SigningService) PostUserSSHCertificate(ctx context.Context, request *pr if cert != nil { kid = cert.KeyId } - log.Printf(`m=%s,id=%q,principals=%q,st=%d,et=%d,err="%v"`, - methodName, kid, request.Principals, statusCode, timeElapsedSince(start), err) + log.Printf(`m=%s,id=%q,principals=%q,st=%d,p=%d,et=%d,err="%v"`, + methodName, kid, request.Principals, statusCode, request.Priority, timeElapsedSince(start), err) } defer logWithCheckingPanic(f, &statusCode, &err) diff --git a/api/x509cert.go b/api/x509cert.go index 8bfd0fec..fe07bb95 100644 --- a/api/x509cert.go +++ b/api/x509cert.go @@ -104,7 +104,7 @@ func (s *SigningService) PostX509Certificate(ctx context.Context, request *proto var err error f := func(statusCode int, err error) { - log.Printf(`m=%s,sub=%q,st=%d,et=%d,err="%v"`, methodName, subject, statusCode, timeElapsedSince(start), err) + log.Printf(`m=%s,sub=%q,st=%d,p=%d,et=%d,err="%v"`, methodName, subject, statusCode, request.Priority, timeElapsedSince(start), err) } defer logWithCheckingPanic(f, &statusCode, &err) diff --git a/go.mod b/go.mod index 883947cf..1ede1f01 100644 --- a/go.mod +++ b/go.mod @@ -7,9 +7,8 @@ require ( github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.4.0 github.com/miekg/pkcs11 v1.0.3 - golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad - golang.org/x/mod v0.4.0 // indirect - google.golang.org/genproto v0.0.0-20210426193834-eac7f76ac494 + golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a + google.golang.org/genproto v0.0.0-20210607140030-00d4fb20b1ae google.golang.org/grpc v1.38.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 google.golang.org/protobuf v1.26.0 diff --git a/go.sum b/go.sum index fb1042a6..88d53b51 100644 --- a/go.sum +++ b/go.sum @@ -276,6 +276,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -299,8 +300,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a h1:kr2P4QFmQr29mSLA43kwrOcgcReGTfbE9N577tCTuBc= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -324,6 +325,7 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -332,8 +334,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0 h1:8pl+sMODzuvGJkmj2W4kZihvVb5mKm8pB/X44PIQHv8= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -367,8 +369,10 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4 h1:b0LrWgu8+q7z4J+0Y3Umo5q1dL7NXBkKBWkaVkAq17E= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -384,6 +388,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -400,7 +405,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -421,9 +425,10 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4 h1:EZ2mChiOa8udjfp6rRmswTbtZN/QzUQp4ptM4rnjHvc= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -485,8 +490,9 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.2 h1:kRBLX7v7Af8W7Gdbbc908OJcdgtK8bOz9Uaj8/F1ACA= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -545,8 +551,9 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210207032614-bba0dbe2a9ea/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210426193834-eac7f76ac494 h1:KMgpo2lWy1vfrYjtxPAzR0aNWeAR1UdQykt6sj/hpBY= google.golang.org/genproto v0.0.0-20210426193834-eac7f76ac494/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210607140030-00d4fb20b1ae h1:2dB4bZ/B7RJdKuvHk3mKTzL2xwrikb+Y/QQy7WdyBPk= +google.golang.org/genproto v0.0.0-20210607140030-00d4fb20b1ae/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/proto/protogen.go b/proto/protogen.go index 9bf8b67f..37431c42 100644 --- a/proto/protogen.go +++ b/proto/protogen.go @@ -4,7 +4,7 @@ // Package proto contains proto generated code. package proto -// use protoc 3.17.0 +// use protoc 3.17.2 //go:generate protoc -I. -I../third_party/googleapis --go_out=paths=source_relative:. --go-grpc_out=paths=source_relative:. sign.proto //go:generate protoc -I. -I../third_party/googleapis --grpc-gateway_out=paths=source_relative:. --grpc-gateway_opt logtostderr=true --grpc-gateway_opt paths=source_relative --grpc-gateway_opt generate_unbound_methods=true sign.proto //go:generate mockgen -source=./sign_grpc.pb.go -destination=./mock/mock.go -package=mock diff --git a/proto/sign.pb.go b/proto/sign.pb.go index 95900cc9..539a4280 100644 --- a/proto/sign.pb.go +++ b/proto/sign.pb.go @@ -3,8 +3,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.17.0 +// protoc-gen-go v1.26.0-devel +// protoc v3.17.2 // source: sign.proto package proto @@ -80,6 +80,58 @@ func (HashAlgo) EnumDescriptor() ([]byte, []int) { return file_sign_proto_rawDescGZIP(), []int{0} } +type Priority int32 + +const ( + Priority_Unspecified_priority Priority = 0 + Priority_Low Priority = 1 + Priority_Medium Priority = 2 + Priority_High Priority = 3 +) + +// Enum value maps for Priority. +var ( + Priority_name = map[int32]string{ + 0: "Unspecified_priority", + 1: "Low", + 2: "Medium", + 3: "High", + } + Priority_value = map[string]int32{ + "Unspecified_priority": 0, + "Low": 1, + "Medium": 2, + "High": 3, + } +) + +func (x Priority) Enum() *Priority { + p := new(Priority) + *p = x + return p +} + +func (x Priority) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Priority) Descriptor() protoreflect.EnumDescriptor { + return file_sign_proto_enumTypes[1].Descriptor() +} + +func (Priority) Type() protoreflect.EnumType { + return &file_sign_proto_enumTypes[1] +} + +func (x Priority) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Priority.Descriptor instead. +func (Priority) EnumDescriptor() ([]byte, []int) { + return file_sign_proto_rawDescGZIP(), []int{1} +} + // KeyMeta identifies the private key used in crypto operations. type KeyMeta struct { state protoimpl.MessageState @@ -197,6 +249,11 @@ type SSHCertificateSigningRequest struct { CriticalOptions map[string]string `protobuf:"bytes,6,rep,name=critical_options,json=criticalOptions,proto3" json:"critical_options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Extensions field in the certificate. Extensions map[string]string `protobuf:"bytes,7,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Priority of the request as specified by client. If the server is under heavy load, it may + // decide to process higher priority requests before the lower priority requests. + // This feature is currently EXPERIMENTAL where priority value is only logged and not used for anything else. + // Specific implementation will be based on analysis of client request patterns. + Priority Priority `protobuf:"varint,10,opt,name=priority,proto3,enum=v3.Priority" json:"priority,omitempty"` } func (x *SSHCertificateSigningRequest) Reset() { @@ -280,6 +337,13 @@ func (x *SSHCertificateSigningRequest) GetExtensions() map[string]string { return nil } +func (x *SSHCertificateSigningRequest) GetPriority() Priority { + if x != nil { + return x.Priority + } + return Priority_Unspecified_priority +} + // SSHKey specifies an SSH key that can either be an: // 1. SSH public key, or // 2. SSH user/host certificate @@ -346,6 +410,11 @@ type X509CertificateSigningRequest struct { // X509 certificate ExtKeyUsage. // https://godoc.org/crypto/x509#ExtKeyUsage ExtKeyUsage []int32 `protobuf:"varint,4,rep,packed,name=ext_key_usage,json=extKeyUsage,proto3" json:"ext_key_usage,omitempty"` + // Priority of the request as specified by client. If the server is under heavy load, it may + // decide to process higher priority requests before the lower priority requests. + // This feature is currently EXPERIMENTAL where priority value is only logged and not used for anything else. + // Specific implementation will be based on analysis of client request patterns. + Priority Priority `protobuf:"varint,10,opt,name=priority,proto3,enum=v3.Priority" json:"priority,omitempty"` } func (x *X509CertificateSigningRequest) Reset() { @@ -408,6 +477,13 @@ func (x *X509CertificateSigningRequest) GetExtKeyUsage() []int32 { return nil } +func (x *X509CertificateSigningRequest) GetPriority() Priority { + if x != nil { + return x.Priority + } + return Priority_Unspecified_priority +} + // X509Certificate specifies an X509 certificate. type X509Certificate struct { state protoimpl.MessageState @@ -518,6 +594,11 @@ type BlobSigningRequest struct { // the algorithm of hash function used to generate the digest // https://golang.org/pkg/crypto/#Hash. HashAlgorithm HashAlgo `protobuf:"varint,3,opt,name=hash_algorithm,json=hashAlgorithm,proto3,enum=v3.HashAlgo" json:"hash_algorithm,omitempty"` + // Priority of the request as specified by client. If the server is under heavy load, it may + // decide to process higher priority requests before the lower priority requests. + // This feature is currently EXPERIMENTAL where priority value is only logged and not used for anything else. + // Specific implementation will be based on analysis of client request patterns. + Priority Priority `protobuf:"varint,10,opt,name=priority,proto3,enum=v3.Priority" json:"priority,omitempty"` } func (x *BlobSigningRequest) Reset() { @@ -573,6 +654,13 @@ func (x *BlobSigningRequest) GetHashAlgorithm() HashAlgo { return HashAlgo_Unspecified_Hash } +func (x *BlobSigningRequest) GetPriority() Priority { + if x != nil { + return x.Priority + } + return Priority_Unspecified_priority +} + // Signature is a base64 encoded result of signing a blob. type Signature struct { state protoimpl.MessageState @@ -634,7 +722,7 @@ var file_sign_proto_rawDesc = []byte{ 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x2b, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6b, - 0x65, 0x79, 0x73, 0x22, 0xef, 0x03, 0x0a, 0x1c, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x79, 0x73, 0x22, 0x99, 0x04, 0x0a, 0x1c, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, @@ -657,136 +745,149 @@ var file_sign_proto_rawDesc = []byte{ 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1a, 0x0a, 0x06, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x22, 0x99, 0x01, 0x0a, 0x1d, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, - 0x74, 0x61, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x63, - 0x73, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x73, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x78, 0x74, - 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0b, 0x65, 0x78, 0x74, 0x4b, 0x65, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x22, 0x25, 0x0a, - 0x0f, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x63, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x63, 0x65, 0x72, 0x74, 0x22, 0x1d, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x22, 0x89, 0x01, 0x0a, 0x12, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x67, 0x6e, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x08, 0x6b, 0x65, - 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x76, - 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x4d, 0x65, - 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0e, 0x68, 0x61, - 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, - 0x52, 0x0d, 0x68, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x22, - 0x29, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2a, 0x50, 0x0a, 0x08, 0x48, 0x61, - 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x48, 0x61, 0x73, 0x68, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, - 0x53, 0x48, 0x41, 0x32, 0x32, 0x34, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x32, - 0x35, 0x36, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x03, - 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x04, 0x32, 0xe1, 0x0a, 0x0a, - 0x07, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x6e, 0x0a, 0x26, 0x47, 0x65, 0x74, 0x58, - 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, - 0x79, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x76, 0x33, 0x2e, - 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, - 0x12, 0x16, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x78, 0x35, 0x30, 0x39, 0x2d, 0x63, - 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x65, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x58, - 0x35, 0x30, 0x39, 0x43, 0x41, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x12, 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x13, 0x2e, - 0x76, 0x33, 0x2e, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76, 0x33, 0x2f, - 0x73, 0x69, 0x67, 0x2f, 0x78, 0x35, 0x30, 0x39, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, - 0x79, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x12, - 0x86, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x76, 0x33, 0x2e, 0x58, 0x35, 0x30, - 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x76, 0x33, 0x2e, - 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x22, - 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x22, 0x2c, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, - 0x2f, 0x78, 0x35, 0x30, 0x39, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, - 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x29, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x1a, 0x42, 0x0a, 0x14, + 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x3d, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x1a, 0x0a, 0x06, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xc3, 0x01, 0x0a, 0x1d, + 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, + 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, + 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x07, 0x6b, 0x65, + 0x79, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x73, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x63, 0x73, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x75, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x4b, + 0x65, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x76, 0x33, 0x2e, 0x50, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x22, 0x25, 0x0a, 0x0f, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x63, 0x65, 0x72, 0x74, 0x22, 0x1d, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x12, 0x42, 0x6c, 0x6f, 0x62, + 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, + 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x07, 0x6b, + 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x33, + 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x61, 0x73, 0x68, + 0x41, 0x6c, 0x67, 0x6f, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x12, 0x28, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x29, 0x0a, + 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2a, 0x50, 0x0a, 0x08, 0x48, 0x61, 0x73, 0x68, + 0x41, 0x6c, 0x67, 0x6f, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x5f, 0x48, 0x61, 0x73, 0x68, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, + 0x41, 0x32, 0x32, 0x34, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x03, 0x12, 0x0a, + 0x0a, 0x06, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x04, 0x2a, 0x43, 0x0a, 0x08, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x10, 0x00, + 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x6f, 0x77, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x65, 0x64, + 0x69, 0x75, 0x6d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x69, 0x67, 0x68, 0x10, 0x03, 0x32, + 0xe1, 0x0a, 0x0a, 0x07, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x6e, 0x0a, 0x26, 0x47, + 0x65, 0x74, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, - 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x22, 0x22, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x73, 0x73, 0x68, - 0x2d, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, - 0x6b, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, - 0x65, 0x79, 0x12, 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x1a, - 0x0a, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x22, 0x2f, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x73, 0x73, 0x68, - 0x2d, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, - 0x7b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x12, 0x83, 0x01, 0x0a, - 0x16, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x53, 0x48, + 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x78, 0x35, 0x30, + 0x39, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x65, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x58, 0x35, 0x30, 0x39, 0x43, 0x41, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x12, 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, + 0x1a, 0x13, 0x2e, 0x76, 0x33, 0x2e, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, + 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x78, 0x35, 0x30, 0x39, 0x2d, 0x63, 0x65, 0x72, 0x74, + 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, 0x58, 0x35, 0x30, 0x39, 0x43, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x76, 0x33, 0x2e, + 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, + 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, + 0x76, 0x33, 0x2e, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x22, 0x2c, 0x2f, 0x76, 0x33, 0x2f, + 0x73, 0x69, 0x67, 0x2f, 0x78, 0x35, 0x30, 0x39, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, + 0x79, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x29, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x67, + 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x0c, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x22, 0x22, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, + 0x73, 0x73, 0x68, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, + 0x79, 0x73, 0x12, 0x6b, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0a, 0x2e, 0x76, 0x33, 0x2e, 0x53, - 0x53, 0x48, 0x4b, 0x65, 0x79, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x22, 0x30, 0x2f, - 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x73, 0x73, 0x68, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x2d, - 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x3a, - 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x29, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x53, 0x48, - 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, - 0x4d, 0x65, 0x74, 0x61, 0x73, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, - 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x73, 0x73, 0x68, 0x2d, 0x68, 0x6f, 0x73, 0x74, 0x2d, - 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x6b, 0x0a, 0x1f, 0x47, 0x65, 0x74, - 0x48, 0x6f, 0x73, 0x74, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x0b, 0x2e, 0x76, - 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x0a, 0x2e, 0x76, 0x33, 0x2e, 0x53, - 0x53, 0x48, 0x4b, 0x65, 0x79, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, - 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x73, 0x73, 0x68, 0x2d, 0x68, 0x6f, 0x73, 0x74, 0x2d, - 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x12, 0x83, 0x01, 0x0a, 0x16, 0x50, 0x6f, 0x73, 0x74, 0x48, - 0x6f, 0x73, 0x74, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x12, 0x20, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x0a, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x22, - 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x22, 0x30, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, - 0x2f, 0x73, 0x73, 0x68, 0x2d, 0x68, 0x6f, 0x73, 0x74, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, - 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x5e, 0x0a, 0x1b, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, - 0x73, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x33, 0x2f, 0x73, - 0x69, 0x67, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x57, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, - 0x79, 0x12, 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x0d, - 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x26, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x7d, 0x12, 0x69, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x69, 0x67, - 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x16, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x53, - 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, - 0x76, 0x33, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x32, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x27, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x62, 0x6c, - 0x6f, 0x62, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x3a, 0x01, 0x2a, - 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, - 0x68, 0x65, 0x70, 0x61, 0x72, 0x61, 0x6e, 0x6f, 0x69, 0x64, 0x73, 0x2f, 0x63, 0x72, 0x79, 0x70, - 0x6b, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, + 0x74, 0x61, 0x1a, 0x0a, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x22, 0x2f, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, + 0x73, 0x73, 0x68, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, + 0x79, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x12, + 0x83, 0x01, 0x0a, 0x16, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x53, 0x48, 0x43, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x33, 0x2e, + 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, + 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0a, 0x2e, 0x76, + 0x33, 0x2e, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, + 0x22, 0x30, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x73, 0x73, 0x68, 0x2d, 0x75, 0x73, + 0x65, 0x72, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x6b, 0x65, + 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x29, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, + 0x79, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x76, 0x33, 0x2e, + 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x73, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, + 0x12, 0x1a, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x73, 0x73, 0x68, 0x2d, 0x68, 0x6f, + 0x73, 0x74, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x6b, 0x0a, 0x1f, + 0x47, 0x65, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, + 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x0a, 0x2e, 0x76, + 0x33, 0x2e, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, + 0x12, 0x27, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x73, 0x73, 0x68, 0x2d, 0x68, 0x6f, + 0x73, 0x74, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x12, 0x83, 0x01, 0x0a, 0x16, 0x50, 0x6f, + 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x53, 0x48, 0x43, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0a, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x53, 0x48, 0x4b, + 0x65, 0x79, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x22, 0x30, 0x2f, 0x76, 0x33, 0x2f, + 0x73, 0x69, 0x67, 0x2f, 0x73, 0x73, 0x68, 0x2d, 0x68, 0x6f, 0x73, 0x74, 0x2d, 0x63, 0x65, 0x72, + 0x74, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x3a, 0x01, 0x2a, 0x12, + 0x5e, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, + 0x65, 0x74, 0x61, 0x73, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, + 0x33, 0x2f, 0x73, 0x69, 0x67, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, + 0x57, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, + 0x67, 0x4b, 0x65, 0x79, 0x12, 0x0b, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, + 0x61, 0x1a, 0x0d, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, + 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, + 0x67, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x12, 0x69, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x74, + 0x53, 0x69, 0x67, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x16, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x6c, + 0x6f, 0x62, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x0d, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, + 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x27, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x69, 0x67, + 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, + 0x3a, 0x01, 0x2a, 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x74, 0x68, 0x65, 0x70, 0x61, 0x72, 0x61, 0x6e, 0x6f, 0x69, 0x64, 0x73, 0x2f, 0x63, + 0x72, 0x79, 0x70, 0x6b, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -801,60 +902,64 @@ func file_sign_proto_rawDescGZIP() []byte { return file_sign_proto_rawDescData } -var file_sign_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_sign_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_sign_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_sign_proto_goTypes = []interface{}{ (HashAlgo)(0), // 0: v3.HashAlgo - (*KeyMeta)(nil), // 1: v3.KeyMeta - (*KeyMetas)(nil), // 2: v3.KeyMetas - (*SSHCertificateSigningRequest)(nil), // 3: v3.SSHCertificateSigningRequest - (*SSHKey)(nil), // 4: v3.SSHKey - (*X509CertificateSigningRequest)(nil), // 5: v3.X509CertificateSigningRequest - (*X509Certificate)(nil), // 6: v3.X509Certificate - (*PublicKey)(nil), // 7: v3.PublicKey - (*BlobSigningRequest)(nil), // 8: v3.BlobSigningRequest - (*Signature)(nil), // 9: v3.Signature - nil, // 10: v3.SSHCertificateSigningRequest.CriticalOptionsEntry - nil, // 11: v3.SSHCertificateSigningRequest.ExtensionsEntry - (*emptypb.Empty)(nil), // 12: google.protobuf.Empty + (Priority)(0), // 1: v3.Priority + (*KeyMeta)(nil), // 2: v3.KeyMeta + (*KeyMetas)(nil), // 3: v3.KeyMetas + (*SSHCertificateSigningRequest)(nil), // 4: v3.SSHCertificateSigningRequest + (*SSHKey)(nil), // 5: v3.SSHKey + (*X509CertificateSigningRequest)(nil), // 6: v3.X509CertificateSigningRequest + (*X509Certificate)(nil), // 7: v3.X509Certificate + (*PublicKey)(nil), // 8: v3.PublicKey + (*BlobSigningRequest)(nil), // 9: v3.BlobSigningRequest + (*Signature)(nil), // 10: v3.Signature + nil, // 11: v3.SSHCertificateSigningRequest.CriticalOptionsEntry + nil, // 12: v3.SSHCertificateSigningRequest.ExtensionsEntry + (*emptypb.Empty)(nil), // 13: google.protobuf.Empty } var file_sign_proto_depIdxs = []int32{ - 1, // 0: v3.KeyMetas.keys:type_name -> v3.KeyMeta - 1, // 1: v3.SSHCertificateSigningRequest.key_meta:type_name -> v3.KeyMeta - 10, // 2: v3.SSHCertificateSigningRequest.critical_options:type_name -> v3.SSHCertificateSigningRequest.CriticalOptionsEntry - 11, // 3: v3.SSHCertificateSigningRequest.extensions:type_name -> v3.SSHCertificateSigningRequest.ExtensionsEntry - 1, // 4: v3.X509CertificateSigningRequest.key_meta:type_name -> v3.KeyMeta - 1, // 5: v3.BlobSigningRequest.key_meta:type_name -> v3.KeyMeta - 0, // 6: v3.BlobSigningRequest.hash_algorithm:type_name -> v3.HashAlgo - 12, // 7: v3.Signing.GetX509CertificateAvailableSigningKeys:input_type -> google.protobuf.Empty - 1, // 8: v3.Signing.GetX509CACertificate:input_type -> v3.KeyMeta - 5, // 9: v3.Signing.PostX509Certificate:input_type -> v3.X509CertificateSigningRequest - 12, // 10: v3.Signing.GetUserSSHCertificateAvailableSigningKeys:input_type -> google.protobuf.Empty - 1, // 11: v3.Signing.GetUserSSHCertificateSigningKey:input_type -> v3.KeyMeta - 3, // 12: v3.Signing.PostUserSSHCertificate:input_type -> v3.SSHCertificateSigningRequest - 12, // 13: v3.Signing.GetHostSSHCertificateAvailableSigningKeys:input_type -> google.protobuf.Empty - 1, // 14: v3.Signing.GetHostSSHCertificateSigningKey:input_type -> v3.KeyMeta - 3, // 15: v3.Signing.PostHostSSHCertificate:input_type -> v3.SSHCertificateSigningRequest - 12, // 16: v3.Signing.GetBlobAvailableSigningKeys:input_type -> google.protobuf.Empty - 1, // 17: v3.Signing.GetBlobSigningKey:input_type -> v3.KeyMeta - 8, // 18: v3.Signing.PostSignBlob:input_type -> v3.BlobSigningRequest - 2, // 19: v3.Signing.GetX509CertificateAvailableSigningKeys:output_type -> v3.KeyMetas - 6, // 20: v3.Signing.GetX509CACertificate:output_type -> v3.X509Certificate - 6, // 21: v3.Signing.PostX509Certificate:output_type -> v3.X509Certificate - 2, // 22: v3.Signing.GetUserSSHCertificateAvailableSigningKeys:output_type -> v3.KeyMetas - 4, // 23: v3.Signing.GetUserSSHCertificateSigningKey:output_type -> v3.SSHKey - 4, // 24: v3.Signing.PostUserSSHCertificate:output_type -> v3.SSHKey - 2, // 25: v3.Signing.GetHostSSHCertificateAvailableSigningKeys:output_type -> v3.KeyMetas - 4, // 26: v3.Signing.GetHostSSHCertificateSigningKey:output_type -> v3.SSHKey - 4, // 27: v3.Signing.PostHostSSHCertificate:output_type -> v3.SSHKey - 2, // 28: v3.Signing.GetBlobAvailableSigningKeys:output_type -> v3.KeyMetas - 7, // 29: v3.Signing.GetBlobSigningKey:output_type -> v3.PublicKey - 9, // 30: v3.Signing.PostSignBlob:output_type -> v3.Signature - 19, // [19:31] is the sub-list for method output_type - 7, // [7:19] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 2, // 0: v3.KeyMetas.keys:type_name -> v3.KeyMeta + 2, // 1: v3.SSHCertificateSigningRequest.key_meta:type_name -> v3.KeyMeta + 11, // 2: v3.SSHCertificateSigningRequest.critical_options:type_name -> v3.SSHCertificateSigningRequest.CriticalOptionsEntry + 12, // 3: v3.SSHCertificateSigningRequest.extensions:type_name -> v3.SSHCertificateSigningRequest.ExtensionsEntry + 1, // 4: v3.SSHCertificateSigningRequest.priority:type_name -> v3.Priority + 2, // 5: v3.X509CertificateSigningRequest.key_meta:type_name -> v3.KeyMeta + 1, // 6: v3.X509CertificateSigningRequest.priority:type_name -> v3.Priority + 2, // 7: v3.BlobSigningRequest.key_meta:type_name -> v3.KeyMeta + 0, // 8: v3.BlobSigningRequest.hash_algorithm:type_name -> v3.HashAlgo + 1, // 9: v3.BlobSigningRequest.priority:type_name -> v3.Priority + 13, // 10: v3.Signing.GetX509CertificateAvailableSigningKeys:input_type -> google.protobuf.Empty + 2, // 11: v3.Signing.GetX509CACertificate:input_type -> v3.KeyMeta + 6, // 12: v3.Signing.PostX509Certificate:input_type -> v3.X509CertificateSigningRequest + 13, // 13: v3.Signing.GetUserSSHCertificateAvailableSigningKeys:input_type -> google.protobuf.Empty + 2, // 14: v3.Signing.GetUserSSHCertificateSigningKey:input_type -> v3.KeyMeta + 4, // 15: v3.Signing.PostUserSSHCertificate:input_type -> v3.SSHCertificateSigningRequest + 13, // 16: v3.Signing.GetHostSSHCertificateAvailableSigningKeys:input_type -> google.protobuf.Empty + 2, // 17: v3.Signing.GetHostSSHCertificateSigningKey:input_type -> v3.KeyMeta + 4, // 18: v3.Signing.PostHostSSHCertificate:input_type -> v3.SSHCertificateSigningRequest + 13, // 19: v3.Signing.GetBlobAvailableSigningKeys:input_type -> google.protobuf.Empty + 2, // 20: v3.Signing.GetBlobSigningKey:input_type -> v3.KeyMeta + 9, // 21: v3.Signing.PostSignBlob:input_type -> v3.BlobSigningRequest + 3, // 22: v3.Signing.GetX509CertificateAvailableSigningKeys:output_type -> v3.KeyMetas + 7, // 23: v3.Signing.GetX509CACertificate:output_type -> v3.X509Certificate + 7, // 24: v3.Signing.PostX509Certificate:output_type -> v3.X509Certificate + 3, // 25: v3.Signing.GetUserSSHCertificateAvailableSigningKeys:output_type -> v3.KeyMetas + 5, // 26: v3.Signing.GetUserSSHCertificateSigningKey:output_type -> v3.SSHKey + 5, // 27: v3.Signing.PostUserSSHCertificate:output_type -> v3.SSHKey + 3, // 28: v3.Signing.GetHostSSHCertificateAvailableSigningKeys:output_type -> v3.KeyMetas + 5, // 29: v3.Signing.GetHostSSHCertificateSigningKey:output_type -> v3.SSHKey + 5, // 30: v3.Signing.PostHostSSHCertificate:output_type -> v3.SSHKey + 3, // 31: v3.Signing.GetBlobAvailableSigningKeys:output_type -> v3.KeyMetas + 8, // 32: v3.Signing.GetBlobSigningKey:output_type -> v3.PublicKey + 10, // 33: v3.Signing.PostSignBlob:output_type -> v3.Signature + 22, // [22:34] is the sub-list for method output_type + 10, // [10:22] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_sign_proto_init() } @@ -977,7 +1082,7 @@ func file_sign_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sign_proto_rawDesc, - NumEnums: 1, + NumEnums: 2, NumMessages: 11, NumExtensions: 0, NumServices: 1, diff --git a/proto/sign.proto b/proto/sign.proto index 36acbbb3..947c3e06 100644 --- a/proto/sign.proto +++ b/proto/sign.proto @@ -20,6 +20,23 @@ message KeyMetas { repeated KeyMeta keys = 1; } + +enum HashAlgo { + Unspecified_Hash = 0; + SHA224 = 1; + SHA256 = 2; + SHA384 = 3; + SHA512 = 4; +} + + +enum Priority { + Unspecified_priority = 0; + Low = 1; + Medium = 2; + High = 3; +} + // SSHCertificateSigningRequest specifies the info used for signing an SSH certificate. message SSHCertificateSigningRequest { // Identifies the signing key in the HSM used for signing the certificate. @@ -36,6 +53,11 @@ message SSHCertificateSigningRequest { map critical_options = 6; // Extensions field in the certificate. map extensions = 7; + // Priority of the request as specified by client. If the server is under heavy load, it may + // decide to process higher priority requests before the lower priority requests. + // This feature is currently EXPERIMENTAL where priority value is only logged and not used for anything else. + // Specific implementation will be based on analysis of client request patterns. + Priority priority = 10; } // SSHKey specifies an SSH key that can either be an: @@ -57,6 +79,11 @@ message X509CertificateSigningRequest { // X509 certificate ExtKeyUsage. // https://godoc.org/crypto/x509#ExtKeyUsage repeated int32 ext_key_usage = 4; + // Priority of the request as specified by client. If the server is under heavy load, it may + // decide to process higher priority requests before the lower priority requests. + // This feature is currently EXPERIMENTAL where priority value is only logged and not used for anything else. + // Specific implementation will be based on analysis of client request patterns. + Priority priority = 10; } // X509Certificate specifies an X509 certificate. @@ -71,14 +98,6 @@ message PublicKey { string key = 1; } -enum HashAlgo { - Unspecified_Hash = 0; - SHA224 = 1; - SHA256 = 2; - SHA384 = 3; - SHA512 = 4; -} - message BlobSigningRequest { // Identifies the signing key in the PKCS#11 device used for signing the blob. KeyMeta key_meta = 1; @@ -87,6 +106,11 @@ message BlobSigningRequest { // the algorithm of hash function used to generate the digest // https://golang.org/pkg/crypto/#Hash. HashAlgo hash_algorithm = 3; + // Priority of the request as specified by client. If the server is under heavy load, it may + // decide to process higher priority requests before the lower priority requests. + // This feature is currently EXPERIMENTAL where priority value is only logged and not used for anything else. + // Specific implementation will be based on analysis of client request patterns. + Priority priority = 10; } // Signature is a base64 encoded result of signing a blob.