Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Side by Side Diff: tokenserver/api/admin/v1/admin.pb.go

Issue 2785973002: token-server: Add protos for new API for generating service account tokens. (Closed)
Patch Set: more nits Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Code generated by protoc-gen-go. DO NOT EDIT. 1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: github.com/luci/luci-go/tokenserver/api/admin/v1/admin.proto 2 // source: github.com/luci/luci-go/tokenserver/api/admin/v1/admin.proto
3 3
4 /* 4 /*
5 Package admin is a generated protocol buffer package. 5 Package admin is a generated protocol buffer package.
6 6
7 It is generated from these files: 7 It is generated from these files:
8 github.com/luci/luci-go/tokenserver/api/admin/v1/admin.proto 8 github.com/luci/luci-go/tokenserver/api/admin/v1/admin.proto
9 github.com/luci/luci-go/tokenserver/api/admin/v1/certificate_authorities .proto 9 github.com/luci/luci-go/tokenserver/api/admin/v1/certificate_authorities .proto
10 github.com/luci/luci-go/tokenserver/api/admin/v1/config.proto 10 github.com/luci/luci-go/tokenserver/api/admin/v1/config.proto
11 11
12 It has these top-level messages: 12 It has these top-level messages:
13 ImportedConfigs 13 ImportedConfigs
14 InspectMachineTokenRequest 14 InspectMachineTokenRequest
15 InspectMachineTokenResponse 15 InspectMachineTokenResponse
16 InspectDelegationTokenRequest 16 InspectDelegationTokenRequest
17 InspectDelegationTokenResponse 17 InspectDelegationTokenResponse
18 InspectOAuthTokenGrantRequest
19 InspectOAuthTokenGrantResponse
18 FetchCRLRequest 20 FetchCRLRequest
19 FetchCRLResponse 21 FetchCRLResponse
20 ListCAsResponse 22 ListCAsResponse
21 GetCAStatusRequest 23 GetCAStatusRequest
22 GetCAStatusResponse 24 GetCAStatusResponse
23 IsRevokedCertRequest 25 IsRevokedCertRequest
24 IsRevokedCertResponse 26 IsRevokedCertResponse
25 CheckCertificateRequest 27 CheckCertificateRequest
26 CheckCertificateResponse 28 CheckCertificateResponse
27 CRLStatus 29 CRLStatus
28 TokenServerConfig 30 TokenServerConfig
29 CertificateAuthorityConfig 31 CertificateAuthorityConfig
30 DomainConfig 32 DomainConfig
31 DelegationPermissions 33 DelegationPermissions
32 DelegationRule 34 DelegationRule
35 ServiceAccountsPermissions
36 ServiceAccountRule
33 */ 37 */
34 package admin 38 package admin
35 39
36 import prpc "github.com/luci/luci-go/grpc/prpc" 40 import prpc "github.com/luci/luci-go/grpc/prpc"
37 41
38 import proto "github.com/golang/protobuf/proto" 42 import proto "github.com/golang/protobuf/proto"
39 import fmt "fmt" 43 import fmt "fmt"
40 import math "math" 44 import math "math"
41 import google_protobuf "github.com/golang/protobuf/ptypes/empty" 45 import google_protobuf "github.com/golang/protobuf/ptypes/empty"
42 import messages "github.com/luci/luci-go/server/auth/delegation/messages" 46 import messages "github.com/luci/luci-go/server/auth/delegation/messages"
43 import tokenserver "github.com/luci/luci-go/tokenserver/api" 47 import tokenserver "github.com/luci/luci-go/tokenserver/api"
48 import tokenserver1 "github.com/luci/luci-go/tokenserver/api"
44 49
45 import ( 50 import (
46 context "golang.org/x/net/context" 51 context "golang.org/x/net/context"
47 grpc "google.golang.org/grpc" 52 grpc "google.golang.org/grpc"
48 ) 53 )
49 54
50 // Reference imports to suppress errors if they are not otherwise used. 55 // Reference imports to suppress errors if they are not otherwise used.
51 var _ = proto.Marshal 56 var _ = proto.Marshal
52 var _ = fmt.Errorf 57 var _ = fmt.Errorf
53 var _ = math.Inf 58 var _ = math.Inf
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 return nil 398 return nil
394 } 399 }
395 400
396 func (m *InspectDelegationTokenResponse) GetSubtoken() *messages.Subtoken { 401 func (m *InspectDelegationTokenResponse) GetSubtoken() *messages.Subtoken {
397 if m != nil { 402 if m != nil {
398 return m.Subtoken 403 return m.Subtoken
399 } 404 }
400 return nil 405 return nil
401 } 406 }
402 407
408 // InspectOAuthTokenGrantRequest is body of InspectOAuthTokenGrant RPC call.
409 type InspectOAuthTokenGrantRequest struct {
410 // The token body.
411 Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"`
412 }
413
414 func (m *InspectOAuthTokenGrantRequest) Reset() { *m = Inspec tOAuthTokenGrantRequest{} }
415 func (m *InspectOAuthTokenGrantRequest) String() string { return prot o.CompactTextString(m) }
416 func (*InspectOAuthTokenGrantRequest) ProtoMessage() {}
417 func (*InspectOAuthTokenGrantRequest) Descriptor() ([]byte, []int) { return file Descriptor0, []int{5} }
418
419 func (m *InspectOAuthTokenGrantRequest) GetToken() string {
420 if m != nil {
421 return m.Token
422 }
423 return ""
424 }
425
426 // InspectOAuthTokenGrantResponse is return value of InspectOAuthTokenGrant RPC.
427 type InspectOAuthTokenGrantResponse struct {
428 // True if the token is valid.
429 //
430 // A token is valid if its signature is correct and it hasn't expired ye t.
431 Valid bool `protobuf:"varint,1,opt,name=valid" json:"valid,omitempty"`
432 // Human readable summary of why token is invalid.
433 //
434 // Summarizes the rest of the fields of this struct. Set only if 'valid' is
435 // false.
436 InvalidityReason string `protobuf:"bytes,2,opt,name=invalidity_reason,js on=invalidityReason" json:"invalidity_reason,omitempty"`
437 // True if the token signature was verified.
438 //
439 // It means the token was generated by the token server and its body is not
440 // a garbage. Note that a token can be correctly signed, but invalid (if it
441 // has expired).
442 //
443 // If 'signed' is false, the fields below may (or may not) be a garbage.
444 //
445 // The token server uses private keys managed by Google Cloud Platform, they
446 // are constantly being rotated and "old" signatures become invalid over time
447 // (when corresponding keys are rotated out of existence).
448 //
449 // If 'signed' is false, use the rest of the response only as FYI, possi bly
450 // invalid or even maliciously constructed.
451 Signed bool `protobuf:"varint,3,opt,name=signed" json:"signed,omitempty" `
452 // True if the token signature was verified and token hasn't expired yet .
453 //
454 // We use "non_" prefix to make default 'false' value safer.
455 NonExpired bool `protobuf:"varint,4,opt,name=non_expired,json=nonExpired " json:"non_expired,omitempty"`
456 // ID of a token server private key used to sign the token.
457 SigningKeyId string `protobuf:"bytes,5,opt,name=signing_key_id,json=sign ingKeyId" json:"signing_key_id,omitempty"`
458 // The deserialized token body.
459 //
460 // May be empty if token was malformed and couldn't be deserialized.
461 TokenBody *tokenserver1.OAuthTokenGrantBody `protobuf:"bytes,6,opt,name= token_body,json=tokenBody" json:"token_body,omitempty"`
462 }
463
464 func (m *InspectOAuthTokenGrantResponse) Reset() { *m = Inspe ctOAuthTokenGrantResponse{} }
465 func (m *InspectOAuthTokenGrantResponse) String() string { return pro to.CompactTextString(m) }
466 func (*InspectOAuthTokenGrantResponse) ProtoMessage() {}
467 func (*InspectOAuthTokenGrantResponse) Descriptor() ([]byte, []int) { return fil eDescriptor0, []int{6} }
468
469 func (m *InspectOAuthTokenGrantResponse) GetValid() bool {
470 if m != nil {
471 return m.Valid
472 }
473 return false
474 }
475
476 func (m *InspectOAuthTokenGrantResponse) GetInvalidityReason() string {
477 if m != nil {
478 return m.InvalidityReason
479 }
480 return ""
481 }
482
483 func (m *InspectOAuthTokenGrantResponse) GetSigned() bool {
484 if m != nil {
485 return m.Signed
486 }
487 return false
488 }
489
490 func (m *InspectOAuthTokenGrantResponse) GetNonExpired() bool {
491 if m != nil {
492 return m.NonExpired
493 }
494 return false
495 }
496
497 func (m *InspectOAuthTokenGrantResponse) GetSigningKeyId() string {
498 if m != nil {
499 return m.SigningKeyId
500 }
501 return ""
502 }
503
504 func (m *InspectOAuthTokenGrantResponse) GetTokenBody() *tokenserver1.OAuthToken GrantBody {
505 if m != nil {
506 return m.TokenBody
507 }
508 return nil
509 }
510
403 func init() { 511 func init() {
404 proto.RegisterType((*ImportedConfigs)(nil), "tokenserver.admin.ImportedC onfigs") 512 proto.RegisterType((*ImportedConfigs)(nil), "tokenserver.admin.ImportedC onfigs")
405 proto.RegisterType((*InspectMachineTokenRequest)(nil), "tokenserver.admi n.InspectMachineTokenRequest") 513 proto.RegisterType((*InspectMachineTokenRequest)(nil), "tokenserver.admi n.InspectMachineTokenRequest")
406 proto.RegisterType((*InspectMachineTokenResponse)(nil), "tokenserver.adm in.InspectMachineTokenResponse") 514 proto.RegisterType((*InspectMachineTokenResponse)(nil), "tokenserver.adm in.InspectMachineTokenResponse")
407 proto.RegisterType((*InspectDelegationTokenRequest)(nil), "tokenserver.a dmin.InspectDelegationTokenRequest") 515 proto.RegisterType((*InspectDelegationTokenRequest)(nil), "tokenserver.a dmin.InspectDelegationTokenRequest")
408 proto.RegisterType((*InspectDelegationTokenResponse)(nil), "tokenserver. admin.InspectDelegationTokenResponse") 516 proto.RegisterType((*InspectDelegationTokenResponse)(nil), "tokenserver. admin.InspectDelegationTokenResponse")
517 proto.RegisterType((*InspectOAuthTokenGrantRequest)(nil), "tokenserver.a dmin.InspectOAuthTokenGrantRequest")
518 proto.RegisterType((*InspectOAuthTokenGrantResponse)(nil), "tokenserver. admin.InspectOAuthTokenGrantResponse")
409 } 519 }
410 520
411 // Reference imports to suppress errors if they are not otherwise used. 521 // Reference imports to suppress errors if they are not otherwise used.
412 var _ context.Context 522 var _ context.Context
413 var _ grpc.ClientConn 523 var _ grpc.ClientConn
414 524
415 // This is a compile-time assertion to ensure that this generated file 525 // This is a compile-time assertion to ensure that this generated file
416 // is compatible with the grpc package it is being compiled against. 526 // is compatible with the grpc package it is being compiled against.
417 const _ = grpc.SupportPackageIsVersion4 527 const _ = grpc.SupportPackageIsVersion4
418 528
419 // Client API for Admin service 529 // Client API for Admin service
420 530
421 type AdminClient interface { 531 type AdminClient interface {
422 » // ImportCAConfigs makes the server read CA configs from luci-config. 532 » // ImportCAConfigs makes the server read 'tokenserver.cfg'.
423 » //
424 » // This reads 'tokenserver.cfg' file.
425 » //
426 » // Note that regularly configs are read in background each 5 min.
427 » // ImportCAConfigs can be used to force config reread immediately. It wi ll
428 » // block until the configs are read.
429 ImportCAConfigs(ctx context.Context, in *google_protobuf.Empty, opts ... grpc.CallOption) (*ImportedConfigs, error) 533 ImportCAConfigs(ctx context.Context, in *google_protobuf.Empty, opts ... grpc.CallOption) (*ImportedConfigs, error)
430 » // ImportDelegationConfigs makes the server read 'delegation.cfg' config . 534 » // ImportDelegationConfigs makes the server read 'delegation.cfg'.
431 » //
432 » // Note that regularly configs are read in background each 5 min.
433 » // ImportDelegationConfigs can be used to force config reread immediatel y. It
434 » // will block until the configs are read.
435 ImportDelegationConfigs(ctx context.Context, in *google_protobuf.Empty, opts ...grpc.CallOption) (*ImportedConfigs, error) 535 ImportDelegationConfigs(ctx context.Context, in *google_protobuf.Empty, opts ...grpc.CallOption) (*ImportedConfigs, error)
536 // ImportServiceAccountsConfigs makes the server read 'service_accounts. cfg'.
537 ImportServiceAccountsConfigs(ctx context.Context, in *google_protobuf.Em pty, opts ...grpc.CallOption) (*ImportedConfigs, error)
436 // InspectMachineToken decodes a machine token and verifies it is valid. 538 // InspectMachineToken decodes a machine token and verifies it is valid.
437 // 539 //
438 // It verifies the token was signed by a private key of the token server and 540 // It verifies the token was signed by a private key of the token server and
439 // checks token's expiration time and revocation status. 541 // checks token's expiration time and revocation status.
440 // 542 //
441 // It tries to give as much information about the token and its status a s 543 // It tries to give as much information about the token and its status a s
442 // possible (e.g. it checks for revocation status even if token is alrea dy 544 // possible (e.g. it checks for revocation status even if token is alrea dy
443 // expired). 545 // expired).
444 // 546 //
445 // Administrators can use this call to debug issues with tokens. 547 // Administrators can use this call to debug issues with tokens.
(...skipping 12 matching lines...) Expand all
458 // possible (e.g. attempts to decode the body even if the signing key ha s been 560 // possible (e.g. attempts to decode the body even if the signing key ha s been
459 // rotated already). 561 // rotated already).
460 // 562 //
461 // Administrators can use this call to debug issues with tokens. 563 // Administrators can use this call to debug issues with tokens.
462 // 564 //
463 // Returns: 565 // Returns:
464 // InspectDelegationTokenResponse for tokens of supported kind. 566 // InspectDelegationTokenResponse for tokens of supported kind.
465 // grpc.InvalidArgument error for unsupported token kind. 567 // grpc.InvalidArgument error for unsupported token kind.
466 // grpc.Internal error for transient errors. 568 // grpc.Internal error for transient errors.
467 InspectDelegationToken(ctx context.Context, in *InspectDelegationTokenRe quest, opts ...grpc.CallOption) (*InspectDelegationTokenResponse, error) 569 InspectDelegationToken(ctx context.Context, in *InspectDelegationTokenRe quest, opts ...grpc.CallOption) (*InspectDelegationTokenResponse, error)
570 // InspectOAuthTokenGrant decodes OAuth token grant and verifies it is v alid.
571 //
572 // It verifies the token was signed by a private key of the token server and
573 // checks token's expiration time.
574 //
575 // It tries to give as much information about the token and its status a s
576 // possible (e.g. attempts to decode the body even if the signing key ha s been
577 // rotated already).
578 //
579 // Administrators can use this call to debug issues with tokens.
580 //
581 // Returns:
582 // InspectOAuthTokenGrantResponse for tokens of supported kind.
583 // grpc.InvalidArgument error for unsupported token kind.
584 // grpc.Internal error for transient errors.
585 InspectOAuthTokenGrant(ctx context.Context, in *InspectOAuthTokenGrantRe quest, opts ...grpc.CallOption) (*InspectOAuthTokenGrantResponse, error)
468 } 586 }
469 type adminPRPCClient struct { 587 type adminPRPCClient struct {
470 client *prpc.Client 588 client *prpc.Client
471 } 589 }
472 590
473 func NewAdminPRPCClient(client *prpc.Client) AdminClient { 591 func NewAdminPRPCClient(client *prpc.Client) AdminClient {
474 return &adminPRPCClient{client} 592 return &adminPRPCClient{client}
475 } 593 }
476 594
477 func (c *adminPRPCClient) ImportCAConfigs(ctx context.Context, in *google_protob uf.Empty, opts ...grpc.CallOption) (*ImportedConfigs, error) { 595 func (c *adminPRPCClient) ImportCAConfigs(ctx context.Context, in *google_protob uf.Empty, opts ...grpc.CallOption) (*ImportedConfigs, error) {
478 out := new(ImportedConfigs) 596 out := new(ImportedConfigs)
479 err := c.client.Call(ctx, "tokenserver.admin.Admin", "ImportCAConfigs", in, out, opts...) 597 err := c.client.Call(ctx, "tokenserver.admin.Admin", "ImportCAConfigs", in, out, opts...)
480 if err != nil { 598 if err != nil {
481 return nil, err 599 return nil, err
482 } 600 }
483 return out, nil 601 return out, nil
484 } 602 }
485 603
486 func (c *adminPRPCClient) ImportDelegationConfigs(ctx context.Context, in *googl e_protobuf.Empty, opts ...grpc.CallOption) (*ImportedConfigs, error) { 604 func (c *adminPRPCClient) ImportDelegationConfigs(ctx context.Context, in *googl e_protobuf.Empty, opts ...grpc.CallOption) (*ImportedConfigs, error) {
487 out := new(ImportedConfigs) 605 out := new(ImportedConfigs)
488 err := c.client.Call(ctx, "tokenserver.admin.Admin", "ImportDelegationCo nfigs", in, out, opts...) 606 err := c.client.Call(ctx, "tokenserver.admin.Admin", "ImportDelegationCo nfigs", in, out, opts...)
489 if err != nil { 607 if err != nil {
490 return nil, err 608 return nil, err
491 } 609 }
492 return out, nil 610 return out, nil
493 } 611 }
494 612
613 func (c *adminPRPCClient) ImportServiceAccountsConfigs(ctx context.Context, in * google_protobuf.Empty, opts ...grpc.CallOption) (*ImportedConfigs, error) {
614 out := new(ImportedConfigs)
615 err := c.client.Call(ctx, "tokenserver.admin.Admin", "ImportServiceAccou ntsConfigs", in, out, opts...)
616 if err != nil {
617 return nil, err
618 }
619 return out, nil
620 }
621
495 func (c *adminPRPCClient) InspectMachineToken(ctx context.Context, in *InspectMa chineTokenRequest, opts ...grpc.CallOption) (*InspectMachineTokenResponse, error ) { 622 func (c *adminPRPCClient) InspectMachineToken(ctx context.Context, in *InspectMa chineTokenRequest, opts ...grpc.CallOption) (*InspectMachineTokenResponse, error ) {
496 out := new(InspectMachineTokenResponse) 623 out := new(InspectMachineTokenResponse)
497 err := c.client.Call(ctx, "tokenserver.admin.Admin", "InspectMachineToke n", in, out, opts...) 624 err := c.client.Call(ctx, "tokenserver.admin.Admin", "InspectMachineToke n", in, out, opts...)
498 if err != nil { 625 if err != nil {
499 return nil, err 626 return nil, err
500 } 627 }
501 return out, nil 628 return out, nil
502 } 629 }
503 630
504 func (c *adminPRPCClient) InspectDelegationToken(ctx context.Context, in *Inspec tDelegationTokenRequest, opts ...grpc.CallOption) (*InspectDelegationTokenRespon se, error) { 631 func (c *adminPRPCClient) InspectDelegationToken(ctx context.Context, in *Inspec tDelegationTokenRequest, opts ...grpc.CallOption) (*InspectDelegationTokenRespon se, error) {
505 out := new(InspectDelegationTokenResponse) 632 out := new(InspectDelegationTokenResponse)
506 err := c.client.Call(ctx, "tokenserver.admin.Admin", "InspectDelegationT oken", in, out, opts...) 633 err := c.client.Call(ctx, "tokenserver.admin.Admin", "InspectDelegationT oken", in, out, opts...)
507 if err != nil { 634 if err != nil {
508 return nil, err 635 return nil, err
509 } 636 }
510 return out, nil 637 return out, nil
511 } 638 }
512 639
640 func (c *adminPRPCClient) InspectOAuthTokenGrant(ctx context.Context, in *Inspec tOAuthTokenGrantRequest, opts ...grpc.CallOption) (*InspectOAuthTokenGrantRespon se, error) {
641 out := new(InspectOAuthTokenGrantResponse)
642 err := c.client.Call(ctx, "tokenserver.admin.Admin", "InspectOAuthTokenG rant", in, out, opts...)
643 if err != nil {
644 return nil, err
645 }
646 return out, nil
647 }
648
513 type adminClient struct { 649 type adminClient struct {
514 cc *grpc.ClientConn 650 cc *grpc.ClientConn
515 } 651 }
516 652
517 func NewAdminClient(cc *grpc.ClientConn) AdminClient { 653 func NewAdminClient(cc *grpc.ClientConn) AdminClient {
518 return &adminClient{cc} 654 return &adminClient{cc}
519 } 655 }
520 656
521 func (c *adminClient) ImportCAConfigs(ctx context.Context, in *google_protobuf.E mpty, opts ...grpc.CallOption) (*ImportedConfigs, error) { 657 func (c *adminClient) ImportCAConfigs(ctx context.Context, in *google_protobuf.E mpty, opts ...grpc.CallOption) (*ImportedConfigs, error) {
522 out := new(ImportedConfigs) 658 out := new(ImportedConfigs)
523 err := grpc.Invoke(ctx, "/tokenserver.admin.Admin/ImportCAConfigs", in, out, c.cc, opts...) 659 err := grpc.Invoke(ctx, "/tokenserver.admin.Admin/ImportCAConfigs", in, out, c.cc, opts...)
524 if err != nil { 660 if err != nil {
525 return nil, err 661 return nil, err
526 } 662 }
527 return out, nil 663 return out, nil
528 } 664 }
529 665
530 func (c *adminClient) ImportDelegationConfigs(ctx context.Context, in *google_pr otobuf.Empty, opts ...grpc.CallOption) (*ImportedConfigs, error) { 666 func (c *adminClient) ImportDelegationConfigs(ctx context.Context, in *google_pr otobuf.Empty, opts ...grpc.CallOption) (*ImportedConfigs, error) {
531 out := new(ImportedConfigs) 667 out := new(ImportedConfigs)
532 err := grpc.Invoke(ctx, "/tokenserver.admin.Admin/ImportDelegationConfig s", in, out, c.cc, opts...) 668 err := grpc.Invoke(ctx, "/tokenserver.admin.Admin/ImportDelegationConfig s", in, out, c.cc, opts...)
533 if err != nil { 669 if err != nil {
534 return nil, err 670 return nil, err
535 } 671 }
536 return out, nil 672 return out, nil
537 } 673 }
538 674
675 func (c *adminClient) ImportServiceAccountsConfigs(ctx context.Context, in *goog le_protobuf.Empty, opts ...grpc.CallOption) (*ImportedConfigs, error) {
676 out := new(ImportedConfigs)
677 err := grpc.Invoke(ctx, "/tokenserver.admin.Admin/ImportServiceAccountsC onfigs", in, out, c.cc, opts...)
678 if err != nil {
679 return nil, err
680 }
681 return out, nil
682 }
683
539 func (c *adminClient) InspectMachineToken(ctx context.Context, in *InspectMachin eTokenRequest, opts ...grpc.CallOption) (*InspectMachineTokenResponse, error) { 684 func (c *adminClient) InspectMachineToken(ctx context.Context, in *InspectMachin eTokenRequest, opts ...grpc.CallOption) (*InspectMachineTokenResponse, error) {
540 out := new(InspectMachineTokenResponse) 685 out := new(InspectMachineTokenResponse)
541 err := grpc.Invoke(ctx, "/tokenserver.admin.Admin/InspectMachineToken", in, out, c.cc, opts...) 686 err := grpc.Invoke(ctx, "/tokenserver.admin.Admin/InspectMachineToken", in, out, c.cc, opts...)
542 if err != nil { 687 if err != nil {
543 return nil, err 688 return nil, err
544 } 689 }
545 return out, nil 690 return out, nil
546 } 691 }
547 692
548 func (c *adminClient) InspectDelegationToken(ctx context.Context, in *InspectDel egationTokenRequest, opts ...grpc.CallOption) (*InspectDelegationTokenResponse, error) { 693 func (c *adminClient) InspectDelegationToken(ctx context.Context, in *InspectDel egationTokenRequest, opts ...grpc.CallOption) (*InspectDelegationTokenResponse, error) {
549 out := new(InspectDelegationTokenResponse) 694 out := new(InspectDelegationTokenResponse)
550 err := grpc.Invoke(ctx, "/tokenserver.admin.Admin/InspectDelegationToken ", in, out, c.cc, opts...) 695 err := grpc.Invoke(ctx, "/tokenserver.admin.Admin/InspectDelegationToken ", in, out, c.cc, opts...)
551 if err != nil { 696 if err != nil {
552 return nil, err 697 return nil, err
553 } 698 }
554 return out, nil 699 return out, nil
555 } 700 }
556 701
702 func (c *adminClient) InspectOAuthTokenGrant(ctx context.Context, in *InspectOAu thTokenGrantRequest, opts ...grpc.CallOption) (*InspectOAuthTokenGrantResponse, error) {
703 out := new(InspectOAuthTokenGrantResponse)
704 err := grpc.Invoke(ctx, "/tokenserver.admin.Admin/InspectOAuthTokenGrant ", in, out, c.cc, opts...)
705 if err != nil {
706 return nil, err
707 }
708 return out, nil
709 }
710
557 // Server API for Admin service 711 // Server API for Admin service
558 712
559 type AdminServer interface { 713 type AdminServer interface {
560 » // ImportCAConfigs makes the server read CA configs from luci-config. 714 » // ImportCAConfigs makes the server read 'tokenserver.cfg'.
561 » //
562 » // This reads 'tokenserver.cfg' file.
563 » //
564 » // Note that regularly configs are read in background each 5 min.
565 » // ImportCAConfigs can be used to force config reread immediately. It wi ll
566 » // block until the configs are read.
567 ImportCAConfigs(context.Context, *google_protobuf.Empty) (*ImportedConfi gs, error) 715 ImportCAConfigs(context.Context, *google_protobuf.Empty) (*ImportedConfi gs, error)
568 » // ImportDelegationConfigs makes the server read 'delegation.cfg' config . 716 » // ImportDelegationConfigs makes the server read 'delegation.cfg'.
569 » //
570 » // Note that regularly configs are read in background each 5 min.
571 » // ImportDelegationConfigs can be used to force config reread immediatel y. It
572 » // will block until the configs are read.
573 ImportDelegationConfigs(context.Context, *google_protobuf.Empty) (*Impor tedConfigs, error) 717 ImportDelegationConfigs(context.Context, *google_protobuf.Empty) (*Impor tedConfigs, error)
718 // ImportServiceAccountsConfigs makes the server read 'service_accounts. cfg'.
719 ImportServiceAccountsConfigs(context.Context, *google_protobuf.Empty) (* ImportedConfigs, error)
574 // InspectMachineToken decodes a machine token and verifies it is valid. 720 // InspectMachineToken decodes a machine token and verifies it is valid.
575 // 721 //
576 // It verifies the token was signed by a private key of the token server and 722 // It verifies the token was signed by a private key of the token server and
577 // checks token's expiration time and revocation status. 723 // checks token's expiration time and revocation status.
578 // 724 //
579 // It tries to give as much information about the token and its status a s 725 // It tries to give as much information about the token and its status a s
580 // possible (e.g. it checks for revocation status even if token is alrea dy 726 // possible (e.g. it checks for revocation status even if token is alrea dy
581 // expired). 727 // expired).
582 // 728 //
583 // Administrators can use this call to debug issues with tokens. 729 // Administrators can use this call to debug issues with tokens.
(...skipping 12 matching lines...) Expand all
596 // possible (e.g. attempts to decode the body even if the signing key ha s been 742 // possible (e.g. attempts to decode the body even if the signing key ha s been
597 // rotated already). 743 // rotated already).
598 // 744 //
599 // Administrators can use this call to debug issues with tokens. 745 // Administrators can use this call to debug issues with tokens.
600 // 746 //
601 // Returns: 747 // Returns:
602 // InspectDelegationTokenResponse for tokens of supported kind. 748 // InspectDelegationTokenResponse for tokens of supported kind.
603 // grpc.InvalidArgument error for unsupported token kind. 749 // grpc.InvalidArgument error for unsupported token kind.
604 // grpc.Internal error for transient errors. 750 // grpc.Internal error for transient errors.
605 InspectDelegationToken(context.Context, *InspectDelegationTokenRequest) (*InspectDelegationTokenResponse, error) 751 InspectDelegationToken(context.Context, *InspectDelegationTokenRequest) (*InspectDelegationTokenResponse, error)
752 // InspectOAuthTokenGrant decodes OAuth token grant and verifies it is v alid.
753 //
754 // It verifies the token was signed by a private key of the token server and
755 // checks token's expiration time.
756 //
757 // It tries to give as much information about the token and its status a s
758 // possible (e.g. attempts to decode the body even if the signing key ha s been
759 // rotated already).
760 //
761 // Administrators can use this call to debug issues with tokens.
762 //
763 // Returns:
764 // InspectOAuthTokenGrantResponse for tokens of supported kind.
765 // grpc.InvalidArgument error for unsupported token kind.
766 // grpc.Internal error for transient errors.
767 InspectOAuthTokenGrant(context.Context, *InspectOAuthTokenGrantRequest) (*InspectOAuthTokenGrantResponse, error)
606 } 768 }
607 769
608 func RegisterAdminServer(s prpc.Registrar, srv AdminServer) { 770 func RegisterAdminServer(s prpc.Registrar, srv AdminServer) {
609 s.RegisterService(&_Admin_serviceDesc, srv) 771 s.RegisterService(&_Admin_serviceDesc, srv)
610 } 772 }
611 773
612 func _Admin_ImportCAConfigs_Handler(srv interface{}, ctx context.Context, dec fu nc(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, er ror) { 774 func _Admin_ImportCAConfigs_Handler(srv interface{}, ctx context.Context, dec fu nc(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, er ror) {
613 in := new(google_protobuf.Empty) 775 in := new(google_protobuf.Empty)
614 if err := dec(in); err != nil { 776 if err := dec(in); err != nil {
615 return nil, err 777 return nil, err
(...skipping 22 matching lines...) Expand all
638 info := &grpc.UnaryServerInfo{ 800 info := &grpc.UnaryServerInfo{
639 Server: srv, 801 Server: srv,
640 FullMethod: "/tokenserver.admin.Admin/ImportDelegationConfigs", 802 FullMethod: "/tokenserver.admin.Admin/ImportDelegationConfigs",
641 } 803 }
642 handler := func(ctx context.Context, req interface{}) (interface{}, erro r) { 804 handler := func(ctx context.Context, req interface{}) (interface{}, erro r) {
643 return srv.(AdminServer).ImportDelegationConfigs(ctx, req.(*goog le_protobuf.Empty)) 805 return srv.(AdminServer).ImportDelegationConfigs(ctx, req.(*goog le_protobuf.Empty))
644 } 806 }
645 return interceptor(ctx, in, info, handler) 807 return interceptor(ctx, in, info, handler)
646 } 808 }
647 809
810 func _Admin_ImportServiceAccountsConfigs_Handler(srv interface{}, ctx context.Co ntext, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (in terface{}, error) {
811 in := new(google_protobuf.Empty)
812 if err := dec(in); err != nil {
813 return nil, err
814 }
815 if interceptor == nil {
816 return srv.(AdminServer).ImportServiceAccountsConfigs(ctx, in)
817 }
818 info := &grpc.UnaryServerInfo{
819 Server: srv,
820 FullMethod: "/tokenserver.admin.Admin/ImportServiceAccountsConfi gs",
821 }
822 handler := func(ctx context.Context, req interface{}) (interface{}, erro r) {
823 return srv.(AdminServer).ImportServiceAccountsConfigs(ctx, req.( *google_protobuf.Empty))
824 }
825 return interceptor(ctx, in, info, handler)
826 }
827
648 func _Admin_InspectMachineToken_Handler(srv interface{}, ctx context.Context, de c func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{} , error) { 828 func _Admin_InspectMachineToken_Handler(srv interface{}, ctx context.Context, de c func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{} , error) {
649 in := new(InspectMachineTokenRequest) 829 in := new(InspectMachineTokenRequest)
650 if err := dec(in); err != nil { 830 if err := dec(in); err != nil {
651 return nil, err 831 return nil, err
652 } 832 }
653 if interceptor == nil { 833 if interceptor == nil {
654 return srv.(AdminServer).InspectMachineToken(ctx, in) 834 return srv.(AdminServer).InspectMachineToken(ctx, in)
655 } 835 }
656 info := &grpc.UnaryServerInfo{ 836 info := &grpc.UnaryServerInfo{
657 Server: srv, 837 Server: srv,
(...skipping 16 matching lines...) Expand all
674 info := &grpc.UnaryServerInfo{ 854 info := &grpc.UnaryServerInfo{
675 Server: srv, 855 Server: srv,
676 FullMethod: "/tokenserver.admin.Admin/InspectDelegationToken", 856 FullMethod: "/tokenserver.admin.Admin/InspectDelegationToken",
677 } 857 }
678 handler := func(ctx context.Context, req interface{}) (interface{}, erro r) { 858 handler := func(ctx context.Context, req interface{}) (interface{}, erro r) {
679 return srv.(AdminServer).InspectDelegationToken(ctx, req.(*Inspe ctDelegationTokenRequest)) 859 return srv.(AdminServer).InspectDelegationToken(ctx, req.(*Inspe ctDelegationTokenRequest))
680 } 860 }
681 return interceptor(ctx, in, info, handler) 861 return interceptor(ctx, in, info, handler)
682 } 862 }
683 863
864 func _Admin_InspectOAuthTokenGrant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interfac e{}, error) {
865 in := new(InspectOAuthTokenGrantRequest)
866 if err := dec(in); err != nil {
867 return nil, err
868 }
869 if interceptor == nil {
870 return srv.(AdminServer).InspectOAuthTokenGrant(ctx, in)
871 }
872 info := &grpc.UnaryServerInfo{
873 Server: srv,
874 FullMethod: "/tokenserver.admin.Admin/InspectOAuthTokenGrant",
875 }
876 handler := func(ctx context.Context, req interface{}) (interface{}, erro r) {
877 return srv.(AdminServer).InspectOAuthTokenGrant(ctx, req.(*Inspe ctOAuthTokenGrantRequest))
878 }
879 return interceptor(ctx, in, info, handler)
880 }
881
684 var _Admin_serviceDesc = grpc.ServiceDesc{ 882 var _Admin_serviceDesc = grpc.ServiceDesc{
685 ServiceName: "tokenserver.admin.Admin", 883 ServiceName: "tokenserver.admin.Admin",
686 HandlerType: (*AdminServer)(nil), 884 HandlerType: (*AdminServer)(nil),
687 Methods: []grpc.MethodDesc{ 885 Methods: []grpc.MethodDesc{
688 { 886 {
689 MethodName: "ImportCAConfigs", 887 MethodName: "ImportCAConfigs",
690 Handler: _Admin_ImportCAConfigs_Handler, 888 Handler: _Admin_ImportCAConfigs_Handler,
691 }, 889 },
692 { 890 {
693 MethodName: "ImportDelegationConfigs", 891 MethodName: "ImportDelegationConfigs",
694 Handler: _Admin_ImportDelegationConfigs_Handler, 892 Handler: _Admin_ImportDelegationConfigs_Handler,
695 }, 893 },
696 { 894 {
895 MethodName: "ImportServiceAccountsConfigs",
896 Handler: _Admin_ImportServiceAccountsConfigs_Handler,
897 },
898 {
697 MethodName: "InspectMachineToken", 899 MethodName: "InspectMachineToken",
698 Handler: _Admin_InspectMachineToken_Handler, 900 Handler: _Admin_InspectMachineToken_Handler,
699 }, 901 },
700 { 902 {
701 MethodName: "InspectDelegationToken", 903 MethodName: "InspectDelegationToken",
702 Handler: _Admin_InspectDelegationToken_Handler, 904 Handler: _Admin_InspectDelegationToken_Handler,
703 }, 905 },
906 {
907 MethodName: "InspectOAuthTokenGrant",
908 Handler: _Admin_InspectOAuthTokenGrant_Handler,
909 },
704 }, 910 },
705 Streams: []grpc.StreamDesc{}, 911 Streams: []grpc.StreamDesc{},
706 Metadata: "github.com/luci/luci-go/tokenserver/api/admin/v1/admin.proto" , 912 Metadata: "github.com/luci/luci-go/tokenserver/api/admin/v1/admin.proto" ,
707 } 913 }
708 914
709 func init() { 915 func init() {
710 proto.RegisterFile("github.com/luci/luci-go/tokenserver/api/admin/v1/adm in.proto", fileDescriptor0) 916 proto.RegisterFile("github.com/luci/luci-go/tokenserver/api/admin/v1/adm in.proto", fileDescriptor0)
711 } 917 }
712 918
713 var fileDescriptor0 = []byte{ 919 var fileDescriptor0 = []byte{
714 » // 578 bytes of a gzipped FileDescriptorProto 920 » // 672 bytes of a gzipped FileDescriptorProto
715 » 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x54, 0x41, 0x4f, 0xd4, 0x40, 921 » 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x54, 0x4f, 0x4f, 0xdb, 0x4e,
716 » 0x14, 0x76, 0x41, 0xd6, 0xe5, 0x41, 0x10, 0x46, 0x82, 0xb5, 0x04, 0x25, 0x1b, 0x0f, 0x24, 0x86, 922 » 0x10, 0xfd, 0x85, 0x1f, 0x49, 0xc3, 0x82, 0x28, 0x6c, 0x11, 0x75, 0x4d, 0x69, 0xa3, 0xa8, 0x07,
717 » 0xa9, 0x60, 0x38, 0xc9, 0x05, 0x91, 0x84, 0x8d, 0x59, 0x0f, 0x15, 0xcf, 0x4d, 0xb7, 0x7d, 0x74, 923 » 0xa4, 0x8a, 0x75, 0xa1, 0xe2, 0x54, 0x24, 0x94, 0x52, 0x54, 0x50, 0x45, 0x2b, 0x19, 0x7a, 0xe9,
718 » 0x27, 0xbb, 0x9d, 0xa9, 0x9d, 0x69, 0x63, 0x0f, 0x9e, 0xfc, 0x27, 0xfe, 0x31, 0xff, 0x8a, 0xe9, 924 » 0xc5, 0x72, 0xec, 0xc1, 0x59, 0x11, 0xef, 0xba, 0xde, 0xb5, 0x55, 0x1f, 0x7a, 0xea, 0x07, 0xed,
719 » 0x4c, 0xdb, 0xed, 0xe2, 0xae, 0xc1, 0xc4, 0x83, 0x97, 0x66, 0xde, 0x37, 0xdf, 0xf7, 0xbd, 0xe9, 925 » 0x27, 0xa9, 0x54, 0x79, 0xd7, 0x0e, 0x4e, 0xe2, 0x44, 0xa9, 0xc4, 0x81, 0x8b, 0xb5, 0x3b, 0x3b,
720 » 0xbc, 0x79, 0x0f, 0xce, 0x23, 0xa6, 0xc6, 0xd9, 0x88, 0x06, 0x22, 0x76, 0xa6, 0x59, 0xc0, 0xf4, 926 » 0xef, 0xcd, 0x78, 0xfe, 0x3c, 0x74, 0x1c, 0x50, 0x39, 0x48, 0xfa, 0xc4, 0xe3, 0xa1, 0x35, 0x4c,
721 » 0xe7, 0x38, 0x12, 0x8e, 0x12, 0x13, 0xe4, 0x12, 0xd3, 0x1c, 0x53, 0xc7, 0x4f, 0x98, 0xe3, 0x87, 927 » 0x3c, 0xaa, 0x3e, 0xfb, 0x01, 0xb7, 0x24, 0xbf, 0x05, 0x26, 0x20, 0x4e, 0x21, 0xb6, 0xdc, 0x88,
722 » 0x31, 0xe3, 0x4e, 0x7e, 0x62, 0x16, 0x34, 0x49, 0x85, 0x12, 0x64, 0xa7, 0xc5, 0xa2, 0x7a, 0xc3, 928 » 0x5a, 0xae, 0x1f, 0x52, 0x66, 0xa5, 0x07, 0xfa, 0x40, 0xa2, 0x98, 0x4b, 0x8e, 0x37, 0x2b, 0x5e,
723 » 0xde, 0x8f, 0x84, 0x88, 0xa6, 0xe8, 0x68, 0xc2, 0x28, 0xbb, 0x75, 0x30, 0x4e, 0x54, 0x61, 0xf8, 929 » 0x44, 0x3d, 0x98, 0x3b, 0x01, 0xe7, 0xc1, 0x10, 0x2c, 0xe5, 0xd0, 0x4f, 0x6e, 0x2c, 0x08, 0x23,
724 » 0xf6, 0xf5, 0xb2, 0x6c, 0x75, 0xa2, 0x4c, 0x8d, 0x9d, 0x10, 0xa7, 0x18, 0xf9, 0x8a, 0x09, 0xee, 930 » 0x99, 0x69, 0x7f, 0xf3, 0x7c, 0x56, 0xb4, 0x32, 0x50, 0x22, 0x07, 0x96, 0x0f, 0x43, 0x08, 0x5c,
725 » 0xc4, 0x28, 0xa5, 0x1f, 0xa1, 0x6c, 0x61, 0x95, 0xd3, 0xdb, 0xfb, 0x9e, 0x3b, 0xf6, 0x83, 0x31, 931 » 0x49, 0x39, 0xb3, 0x42, 0x10, 0xc2, 0x0d, 0x40, 0x54, 0x6c, 0x05, 0xd3, 0xbb, 0x45, 0xf3, 0x0e,
726 » 0xe3, 0xe8, 0x69, 0xdc, 0x88, 0xfb, 0xc7, 0xf0, 0x78, 0x10, 0x27, 0x22, 0x55, 0x18, 0x5e, 0x0a, 932 » 0x5d, 0x6f, 0x40, 0x19, 0x38, 0xca, 0x5e, 0x80, 0x4f, 0x16, 0x05, 0xf3, 0x3c, 0x21, 0x0d, 0x75,
727 » 0x7e, 0xcb, 0x22, 0x49, 0x6c, 0xe8, 0xa5, 0x98, 0x33, 0xc9, 0x04, 0xb7, 0x3a, 0x87, 0x9d, 0xa3, 933 » 0x82, 0xd8, 0x65, 0x52, 0x13, 0x74, 0xf7, 0xd1, 0xe3, 0x8b, 0x30, 0xe2, 0xb1, 0x04, 0xff, 0x94,
728 » 0x75, 0xb7, 0x89, 0xfb, 0x09, 0xd8, 0x03, 0x2e, 0x13, 0x0c, 0xd4, 0xd0, 0x98, 0xdd, 0x94, 0x5e, 934 » 0xb3, 0x1b, 0x1a, 0x08, 0x6c, 0xa2, 0x76, 0x0c, 0x29, 0x15, 0x94, 0x33, 0xa3, 0xd1, 0x69, 0xec,
729 » 0x2e, 0x7e, 0xc9, 0x50, 0x2a, 0x72, 0x0e, 0xa0, 0xbd, 0x3d, 0x55, 0x24, 0xa8, 0xb5, 0x5b, 0xa7, 935 » 0xad, 0xd8, 0xa3, 0x7b, 0x37, 0x42, 0xe6, 0x05, 0x13, 0x11, 0x78, 0xf2, 0x52, 0x67, 0x73, 0x9d,
730 » 0x07, 0xb4, 0x7d, 0x31, 0x6d, 0xd5, 0x4d, 0x91, 0xa0, 0xbb, 0xae, 0xea, 0x25, 0xd9, 0x85, 0x35, 936 » 0x33, 0xda, 0xf0, 0x3d, 0x01, 0x21, 0xf1, 0x31, 0x42, 0x3a, 0x82, 0xcc, 0x22, 0x50, 0xd8, 0xf5,
731 » 0x1d, 0x58, 0x2b, 0x3a, 0xa9, 0x09, 0xfa, 0x3f, 0x57, 0x60, 0x7f, 0x61, 0x4a, 0x99, 0x08, 0x2e, 937 » 0xc3, 0x5d, 0x52, 0xad, 0x6c, 0x15, 0x75, 0x9d, 0x45, 0x60, 0xaf, 0xc8, 0xf2, 0x88, 0xb7, 0x50,
732 » 0xb5, 0x2a, 0xf7, 0xa7, 0x2c, 0xd4, 0xe9, 0x7a, 0xae, 0x09, 0xc8, 0x2b, 0xd8, 0x61, 0x5c, 0x2f, 938 » 0x53, 0x5d, 0x8c, 0x25, 0x15, 0x54, 0x5f, 0xba, 0xbf, 0x97, 0xd0, 0x4e, 0x6d, 0x48, 0x11, 0x71,
733 » 0x99, 0x2a, 0xbc, 0x14, 0x7d, 0x29, 0x6a, 0xdf, 0xed, 0xd9, 0x86, 0xab, 0x71, 0xb2, 0x07, 0x5d, 939 » 0x26, 0x14, 0x2a, 0x75, 0x87, 0xd4, 0x57, 0xe1, 0xda, 0xb6, 0xbe, 0xe0, 0xd7, 0x68, 0x93, 0x32,
734 » 0xc9, 0x22, 0x8e, 0xa1, 0xb5, 0xaa, 0x3d, 0xaa, 0x88, 0xbc, 0x80, 0x0d, 0x2e, 0xb8, 0x87, 0x5f, 940 » 0x75, 0xa4, 0x32, 0x73, 0x62, 0x70, 0x05, 0x2f, 0x79, 0x37, 0xee, 0x1e, 0x6c, 0x65, 0xc7, 0xdb,
735 » 0x13, 0x96, 0x62, 0x68, 0x3d, 0xd4, 0x9b, 0xc0, 0x05, 0xbf, 0x32, 0x48, 0x4d, 0x48, 0x31, 0x17, 941 » 0xa8, 0x25, 0x68, 0xc0, 0xc0, 0x37, 0xfe, 0x57, 0x1c, 0xc5, 0x0d, 0xbf, 0x44, 0xab, 0x8c, 0x33,
736 » 0x13, 0x0c, 0xad, 0xb5, 0x86, 0xe0, 0x1a, 0x84, 0xbc, 0x84, 0xad, 0xd2, 0x8b, 0xf1, 0xc8, 0x9b, 942 » 0x07, 0x7e, 0x44, 0x34, 0x06, 0xdf, 0x58, 0x56, 0x8f, 0x88, 0x71, 0x76, 0xa6, 0x2d, 0xa5, 0x43,
737 » 0x60, 0xe1, 0xb1, 0xd0, 0xea, 0xea, 0x33, 0x6c, 0x56, 0xe8, 0x07, 0x2c, 0x06, 0x21, 0x39, 0x84, 943 » 0x0c, 0x29, 0xbf, 0x05, 0xdf, 0x68, 0x8e, 0x1c, 0x6c, 0x6d, 0xc1, 0xaf, 0xd0, 0x7a, 0xce, 0x45,
738 » 0xcd, 0x00, 0x53, 0xe5, 0x05, 0xbe, 0xc7, 0xfd, 0x18, 0xad, 0x47, 0x9a, 0x03, 0x25, 0x76, 0xe9, 944 » 0x59, 0xe0, 0xdc, 0x42, 0xe6, 0x50, 0xdf, 0x68, 0xa9, 0x1c, 0xd6, 0x0a, 0xeb, 0x27, 0xc8, 0x2e,
739 » 0x7f, 0xf4, 0x63, 0x24, 0x43, 0x20, 0x65, 0x51, 0xbd, 0xb9, 0x0a, 0x5a, 0xbb, 0x87, 0x9d, 0xa3, 945 » 0x7c, 0xdc, 0x41, 0x6b, 0x1e, 0xc4, 0xd2, 0xf1, 0x5c, 0x87, 0xb9, 0x21, 0x18, 0x8f, 0x94, 0x0f,
740 » 0x8d, 0x3f, 0x5c, 0xf0, 0x3b, 0x11, 0x16, 0xd7, 0x0f, 0xdc, 0xed, 0x52, 0x3a, 0x87, 0x6f, 0xb6, 946 » 0xca, 0x6d, 0xa7, 0xee, 0x67, 0x37, 0x04, 0x7c, 0x89, 0x70, 0xde, 0x58, 0x67, 0x6c, 0x04, 0x8c,
741 » 0xeb, 0xd4, 0x3f, 0x83, 0x83, 0xea, 0x82, 0xdf, 0x37, 0x4f, 0x6b, 0xae, 0xac, 0x4d, 0x61, 0x3a, 947 » 0xad, 0x4e, 0x63, 0x6f, 0x75, 0x4e, 0x81, 0xdf, 0x73, 0x3f, 0x3b, 0xff, 0xcf, 0xde, 0xc8, 0xa1,
742 » 0xed, 0xc2, 0x7c, 0x5f, 0x81, 0xe7, 0xcb, 0x74, 0xff, 0x41, 0x6d, 0xce, 0xa0, 0x87, 0x3c, 0xc7, 948 » 0x63, 0xf6, 0xb5, 0x6a, 0x9f, 0xba, 0x47, 0x68, 0xb7, 0x28, 0xf0, 0x87, 0xd1, 0x6c, 0x8e, 0xb5,
743 » 0xa9, 0x48, 0x50, 0x17, 0x66, 0xe3, 0xf4, 0x19, 0xad, 0x7b, 0x88, 0xde, 0x3d, 0x70, 0x43, 0x25, 949 » 0x75, 0xd4, 0x98, 0x46, 0xb5, 0x31, 0xbf, 0x96, 0xd0, 0x8b, 0x59, 0xb8, 0x07, 0xd0, 0x9b, 0x23,
744 » 0x14, 0x7a, 0x32, 0x1b, 0x99, 0xdf, 0xed, 0x6a, 0x19, 0x99, 0xc9, 0x3e, 0x55, 0x3b, 0x6e, 0xc3, 950 » 0xd4, 0x06, 0x96, 0xc2, 0x90, 0x47, 0xa0, 0x1a, 0xb3, 0x7a, 0xf8, 0x8c, 0x94, 0x4b, 0x48, 0x26,
745 » 0x39, 0xfd, 0xb1, 0x0a, 0x6b, 0x17, 0x65, 0xb7, 0x93, 0x61, 0xdd, 0x49, 0x97, 0x17, 0x75, 0x27, 951 » 0x13, 0x1e, 0xb9, 0x62, 0x82, 0xda, 0x22, 0xe9, 0xeb, 0xdf, 0x6d, 0x29, 0x18, 0xbe, 0x83, 0x5d,
746 » 0xed, 0x51, 0x33, 0x01, 0x68, 0x3d, 0x01, 0xe8, 0x55, 0x39, 0x01, 0xec, 0x3e, 0xfd, 0x6d, 0x58, 952 » 0x15, 0x2f, 0xf6, 0xc8, 0xa7, 0x52, 0xbc, 0x2f, 0xbd, 0x44, 0x0e, 0x14, 0xdd, 0xc7, 0x7c, 0xbf,
747 » 0xd0, 0xbb, 0x5d, 0xf8, 0x19, 0x9e, 0x1a, 0x68, 0x76, 0xd6, 0x7f, 0x61, 0xab, 0xe0, 0xc9, 0x82, 953 » 0x16, 0x2e, 0xde, 0x14, 0xee, 0x01, 0x14, 0x6f, 0x7a, 0x6e, 0x9b, 0x35, 0x73, 0x7b, 0x52, 0x8e,
748 » 0x6e, 0x22, 0xc7, 0x8b, 0xa4, 0x4b, 0x1b, 0xdd, 0xa6, 0xf7, 0xa5, 0x57, 0x0f, 0xe1, 0x1b, 0xec, 954 » 0x51, 0x9f, 0xfb, 0x59, 0x51, 0xad, 0xce, 0xd8, 0x34, 0x4e, 0xfc, 0x5b, 0x3e, 0x90, 0xc5, 0xc6,
749 » 0x2d, 0x7e, 0x2a, 0xe4, 0xf5, 0x72, 0xa7, 0xc5, 0xaf, 0xd1, 0x3e, 0xf9, 0x0b, 0x85, 0x49, 0x3f, 955 » 0xe7, 0xc7, 0xc3, 0x3f, 0xcb, 0xa8, 0xd9, 0xcb, 0xb5, 0x16, 0x5f, 0x96, 0x32, 0x74, 0xda, 0x2b,
750 » 0xea, 0xea, 0x8b, 0x7a, 0xf3, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x6c, 0x3a, 0xc8, 0x7a, 0xe2, 0x05, 956 » 0x65, 0x68, 0x9b, 0x68, 0xfd, 0x25, 0xa5, 0xfe, 0x92, 0xb3, 0x5c, 0x7f, 0xcd, 0x2e, 0x99, 0x92,
751 » 0x00, 0x00, 957 » 0x6a, 0x32, 0x29, 0x61, 0x5f, 0xd1, 0x53, 0x6d, 0xba, 0x6b, 0xf4, 0x7d, 0xd0, 0x7e, 0x43, 0xcf,
958 » 0xb5, 0xe9, 0x0a, 0xe2, 0x94, 0x7a, 0xd0, 0xf3, 0x3c, 0x9e, 0x30, 0x29, 0xee, 0x83, 0x5b, 0xa2,
959 » 0x27, 0x35, 0x32, 0x87, 0xf7, 0xeb, 0xa0, 0x33, 0x15, 0xd8, 0x24, 0x8b, 0xba, 0x17, 0x43, 0xf6,
960 » 0x13, 0x6d, 0xd7, 0xef, 0x30, 0x7e, 0x33, 0x9b, 0xa9, 0x5e, 0x26, 0xcc, 0x83, 0x7f, 0x40, 0x4c,
961 » 0x85, 0x9f, 0x98, 0x94, 0x79, 0xe1, 0xeb, 0x17, 0x6d, 0x5e, 0xf8, 0x19, 0x2b, 0xd6, 0x6f, 0xa9,
962 » 0x3e, 0xbd, 0xfd, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x36, 0x69, 0x05, 0x5b, 0x3b, 0x08, 0x00, 0x00,
752 } 963 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698