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

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

Powered by Google App Engine
This is Rietveld 408576698