parent
db5ae44821
commit
6907210542
@ -0,0 +1,34 @@
|
|||||||
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
|
NAME=openim-rpc-aesKey
|
||||||
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
build:
|
||||||
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH}; go build -ldflags="-w -s" -o ${BINARY_NAME}
|
||||||
|
|
||||||
|
run:
|
||||||
|
@go run ./
|
||||||
|
|
||||||
|
gotool:
|
||||||
|
go fmt ./
|
||||||
|
go vet ./
|
||||||
|
|
||||||
|
install:build
|
||||||
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi
|
@ -0,0 +1,32 @@
|
|||||||
|
# Copyright © 2023 OpenIM. All rights reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /Open-IM-Server/bin
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install apt-transport-https && apt-get install procps\
|
||||||
|
&&apt-get install net-tools
|
||||||
|
#Non-interactive operation
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
RUN apt-get install -y vim curl tzdata gawk
|
||||||
|
#Time zone adjusted to East eighth District
|
||||||
|
RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && dpkg-reconfigure -f noninteractive tzdata
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
|
COPY ./openim-rpc-aesKey ./
|
||||||
|
|
||||||
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config"]
|
||||||
|
|
||||||
|
CMD ["./openim-rpc-aesKey", "--port", "10160"]
|
@ -0,0 +1,33 @@
|
|||||||
|
// Copyright © 2023 OpenIM. All rights reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/internal/rpc/auth"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/cmd"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
aesKeyCmd := cmd.NewRpcCmd("aesKey")
|
||||||
|
aesKeyCmd.AddPortFlag()
|
||||||
|
aesKeyCmd.AddPrometheusPortFlag()
|
||||||
|
if err := aesKeyCmd.Exec(); err != nil {
|
||||||
|
panic(err.Error())
|
||||||
|
}
|
||||||
|
if err := aesKeyCmd.StartSvr(config.Config.RpcRegisterName.OpenImAesKeyName, auth.Start); err != nil {
|
||||||
|
panic(err.Error())
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package api
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/aes_key"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/rpcclient"
|
||||||
|
"github.com/OpenIMSDK/tools/a2r"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
type AesKeyApi rpcclient.AesKey
|
||||||
|
|
||||||
|
func NewAesKeyApi(client rpcclient.AesKey) AesKeyApi {
|
||||||
|
return AesKeyApi(client)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *AesKeyApi) GetKey(c *gin.Context) {
|
||||||
|
a2r.Call(aes_key.AesKeyClient.GetAesKey, a.Client, c)
|
||||||
|
}
|
||||||
|
func (a *AesKeyApi) GetAllKey(c *gin.Context) {
|
||||||
|
a2r.Call(aes_key.AesKeyClient.GetAllAesKey, a.Client, c)
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package api
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
func IsEncipher(c *gin.Context) {
|
||||||
|
c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": config.Config.Encipher})
|
||||||
|
}
|
@ -0,0 +1,92 @@
|
|||||||
|
package aes_key
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
utils "github.com/OpenIMSDK/Open-IM-Server/pkg/aes_utils"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/controller"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/relation"
|
||||||
|
relationTb "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/aes_key"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/rpcclient"
|
||||||
|
"github.com/OpenIMSDK/tools/discoveryregistry"
|
||||||
|
"google.golang.org/grpc"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error {
|
||||||
|
db, err := relation.NewGormDB()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := db.AutoMigrate(&relationTb.AesKeyModel{}); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
//redis, err := cache.NewRedis()
|
||||||
|
//if err != nil {
|
||||||
|
// return err
|
||||||
|
//}
|
||||||
|
//friendDB := relation.NewFriendGorm(db)
|
||||||
|
userRpcClient := rpcclient.NewAesKeyRpcClient(client)
|
||||||
|
conversationRpcClient := rpcclient.NewConversationRpcClient(client)
|
||||||
|
aesKeydatabase := controller.NewAesKeyDatabase(relation.NewAesKeyGorm(db))
|
||||||
|
aes_key.RegisterAesKeyServer(server, &keyServer{
|
||||||
|
AesKeyDatabase: aesKeydatabase,
|
||||||
|
//FriendDatabase: controller.NewFriendDatabase(
|
||||||
|
// friendDB,
|
||||||
|
// relation.NewFriendRequestGorm(db),
|
||||||
|
// cache.NewFriendCacheRedis(redis, friendDB, cache.GetDefaultOpt()),
|
||||||
|
// tx.NewGorm(db),
|
||||||
|
//),
|
||||||
|
//GroupDatabase: nil,
|
||||||
|
User: userRpcClient,
|
||||||
|
conversationRpcClient: conversationRpcClient,
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type keyServer struct {
|
||||||
|
AesKeyDatabase controller.AesKeyDatabase
|
||||||
|
FriendDatabase controller.FriendDatabase
|
||||||
|
GroupDatabase controller.GroupDatabase
|
||||||
|
User rpcclient.AesKeyRpcClient
|
||||||
|
conversationRpcClient rpcclient.ConversationRpcClient
|
||||||
|
}
|
||||||
|
|
||||||
|
func (k keyServer) GetAesKey(ctx context.Context, req *aes_key.GetAesKeyReq) (*aes_key.GetAesKeyResp, error) {
|
||||||
|
key, err := k.AesKeyDatabase.GetAesKey(ctx, req.UId, req.SId, req.SType)
|
||||||
|
if err != nil {
|
||||||
|
aesKey := utils.GenerateAesKey(utils.Get2StringHash(req.UId, req.SId))
|
||||||
|
model := relationTb.AesKeyModel{
|
||||||
|
UserID: req.UId,
|
||||||
|
ConversationID: req.SId,
|
||||||
|
AesKey: aesKey,
|
||||||
|
ConversationType: req.SType,
|
||||||
|
}
|
||||||
|
err1 := k.AesKeyDatabase.InstallAesKey(ctx, model)
|
||||||
|
if err1 != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
model.UserID = req.SId
|
||||||
|
model.ConversationID = req.UId
|
||||||
|
err1 = k.AesKeyDatabase.InstallAesKey(ctx, model)
|
||||||
|
if err1 != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &aes_key.GetAesKeyResp{Key: aesKey}, nil
|
||||||
|
}
|
||||||
|
return &aes_key.GetAesKeyResp{Key: key.AesKey}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (k keyServer) GetAllAesKey(ctx context.Context, req *aes_key.GetAllAesKeyReq) (*aes_key.GetAllAesKeyResp, error) {
|
||||||
|
key, err := k.AesKeyDatabase.GetAllAesKey(ctx, req.UId)
|
||||||
|
if err != nil {
|
||||||
|
return &aes_key.GetAllAesKeyResp{}, err
|
||||||
|
}
|
||||||
|
resp := &aes_key.GetAllAesKeyResp{Keys: make(map[string]string)}
|
||||||
|
for i := range key {
|
||||||
|
resp.Keys[key[i].ConversationID] = key[i].AesKey
|
||||||
|
}
|
||||||
|
return resp, nil
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
relationTb "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation"
|
||||||
|
)
|
||||||
|
|
||||||
|
type aesKeyDatabase struct {
|
||||||
|
aesKeyDB relationTb.AesKeyModelInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
type AesKeyDatabase interface {
|
||||||
|
//生成AesKey
|
||||||
|
InstallAesKey(ctx context.Context, aesKey relationTb.AesKeyModel) error
|
||||||
|
GetAesKey(ctx context.Context, userId, cid string, cType int32) (aesKey *relationTb.AesKeyModel, err error)
|
||||||
|
GetAllAesKey(ctx context.Context, userId string) (aesKey []*relationTb.AesKeyModel, err error)
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewAesKeyDatabase(aesKey relationTb.AesKeyModelInterface) AesKeyDatabase {
|
||||||
|
return &aesKeyDatabase{
|
||||||
|
aesKeyDB: aesKey,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *aesKeyDatabase) InstallAesKey(ctx context.Context, aesKey relationTb.AesKeyModel) error {
|
||||||
|
err := a.aesKeyDB.Install(ctx, aesKey)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (a *aesKeyDatabase) GetAesKey(ctx context.Context, userId, cid string, cType int32) (aesKey *relationTb.AesKeyModel, err error) {
|
||||||
|
return a.aesKeyDB.GetAesKey(ctx, userId, cid, cType)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *aesKeyDatabase) GetAllAesKey(ctx context.Context, userId string) (aesKey []*relationTb.AesKeyModel, err error) {
|
||||||
|
return a.aesKeyDB.GetAllAesKey(ctx, userId)
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package relation
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation"
|
||||||
|
"github.com/OpenIMSDK/tools/utils"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
type AesKeyGorm struct {
|
||||||
|
*MetaDB
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewAesKeyGorm(db *gorm.DB) relation.AesKeyModelInterface {
|
||||||
|
return &AesKeyGorm{NewMetaDB(db, &relation.AesKeyModel{})}
|
||||||
|
}
|
||||||
|
func (a AesKeyGorm) Install(ctx context.Context, aesKey relation.AesKeyModel) (err error) {
|
||||||
|
return utils.Wrap(a.db(ctx).Create(&aesKey).Error, "")
|
||||||
|
}
|
||||||
|
func (a AesKeyGorm) GetAesKey(ctx context.Context, userId, cid string, cType int32) (aesKey *relation.AesKeyModel, err error) {
|
||||||
|
return aesKey, utils.Wrap(a.db(ctx).Where("user_id = ? and conversation_id=? and conversation_type =?", userId, cid, cType).Find(&aesKey).Error, "")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a AesKeyGorm) GetAllAesKey(ctx context.Context, userId string) (aesKey []*relation.AesKeyModel, err error) {
|
||||||
|
return aesKey, utils.Wrap(a.db(ctx).Where("user_id = ?", userId).Find(aesKey).Error, "")
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package relation
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
AesKeyModelTableName = "aes-keys"
|
||||||
|
)
|
||||||
|
|
||||||
|
type AesKeyModel struct {
|
||||||
|
UserID string `gorm:"column:user_id;size:64"`
|
||||||
|
ConversationID string `gorm:"column:conversation_id;uniqueIndex:idx_key" json:"conversationID"`
|
||||||
|
AesKey string `gorm:"column:conversation_id" json:"aesKey"`
|
||||||
|
ConversationType int32 `gorm:"column:conversation_type;uniqueIndex:idx_key" json:"conversationType"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (AesKeyModel) TableName() string {
|
||||||
|
return AesKeyModelTableName
|
||||||
|
}
|
||||||
|
|
||||||
|
type AesKeyModelInterface interface {
|
||||||
|
Install(ctx context.Context, aesKey AesKeyModel) (err error)
|
||||||
|
GetAesKey(ctx context.Context, userId, cid string, cType int32) (aesKey *AesKeyModel, err error)
|
||||||
|
GetAllAesKey(ctx context.Context, userId string) (aesKey []*AesKeyModel, err error)
|
||||||
|
}
|
@ -0,0 +1,494 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.29.1
|
||||||
|
// protoc v4.22.0
|
||||||
|
// source: aes_key/aes_key.proto
|
||||||
|
|
||||||
|
package aes_key
|
||||||
|
|
||||||
|
import (
|
||||||
|
context "context"
|
||||||
|
grpc "google.golang.org/grpc"
|
||||||
|
codes "google.golang.org/grpc/codes"
|
||||||
|
status "google.golang.org/grpc/status"
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
reflect "reflect"
|
||||||
|
sync "sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
type GetAesKeyReq struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
SId string `protobuf:"bytes,1,opt,name=sId,proto3" json:"sId"`
|
||||||
|
UId string `protobuf:"bytes,2,opt,name=uId,proto3" json:"uId"`
|
||||||
|
SType int32 `protobuf:"varint,3,opt,name=sType,proto3" json:"sType"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAesKeyReq) Reset() {
|
||||||
|
*x = GetAesKeyReq{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_aes_key_aes_key_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAesKeyReq) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*GetAesKeyReq) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *GetAesKeyReq) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_aes_key_aes_key_proto_msgTypes[0]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use GetAesKeyReq.ProtoReflect.Descriptor instead.
|
||||||
|
func (*GetAesKeyReq) Descriptor() ([]byte, []int) {
|
||||||
|
return file_aes_key_aes_key_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAesKeyReq) GetSId() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.SId
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAesKeyReq) GetUId() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.UId
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAesKeyReq) GetSType() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.SType
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetAllAesKeyReq struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
UId string `protobuf:"bytes,1,opt,name=uId,proto3" json:"uId"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAllAesKeyReq) Reset() {
|
||||||
|
*x = GetAllAesKeyReq{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_aes_key_aes_key_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAllAesKeyReq) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*GetAllAesKeyReq) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *GetAllAesKeyReq) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_aes_key_aes_key_proto_msgTypes[1]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use GetAllAesKeyReq.ProtoReflect.Descriptor instead.
|
||||||
|
func (*GetAllAesKeyReq) Descriptor() ([]byte, []int) {
|
||||||
|
return file_aes_key_aes_key_proto_rawDescGZIP(), []int{1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAllAesKeyReq) GetUId() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.UId
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetAesKeyResp struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAesKeyResp) Reset() {
|
||||||
|
*x = GetAesKeyResp{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_aes_key_aes_key_proto_msgTypes[2]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAesKeyResp) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*GetAesKeyResp) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *GetAesKeyResp) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_aes_key_aes_key_proto_msgTypes[2]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use GetAesKeyResp.ProtoReflect.Descriptor instead.
|
||||||
|
func (*GetAesKeyResp) Descriptor() ([]byte, []int) {
|
||||||
|
return file_aes_key_aes_key_proto_rawDescGZIP(), []int{2}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAesKeyResp) GetKey() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Key
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetAllAesKeyResp struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Keys map[string]string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAllAesKeyResp) Reset() {
|
||||||
|
*x = GetAllAesKeyResp{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_aes_key_aes_key_proto_msgTypes[3]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAllAesKeyResp) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*GetAllAesKeyResp) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *GetAllAesKeyResp) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_aes_key_aes_key_proto_msgTypes[3]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use GetAllAesKeyResp.ProtoReflect.Descriptor instead.
|
||||||
|
func (*GetAllAesKeyResp) Descriptor() ([]byte, []int) {
|
||||||
|
return file_aes_key_aes_key_proto_rawDescGZIP(), []int{3}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetAllAesKeyResp) GetKeys() map[string]string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Keys
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_aes_key_aes_key_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
var file_aes_key_aes_key_proto_rawDesc = []byte{
|
||||||
|
0x0a, 0x15, 0x61, 0x65, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x2f, 0x61, 0x65, 0x73, 0x5f, 0x6b, 0x65,
|
||||||
|
0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
|
||||||
|
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x22, 0x48, 0x0a, 0x0c, 0x47, 0x65,
|
||||||
|
0x74, 0x41, 0x65, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x49,
|
||||||
|
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03,
|
||||||
|
0x75, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x49, 0x64, 0x12, 0x14,
|
||||||
|
0x0a, 0x05, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73,
|
||||||
|
0x54, 0x79, 0x70, 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x41, 0x65,
|
||||||
|
0x73, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x49, 0x64, 0x18, 0x01,
|
||||||
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x49, 0x64, 0x22, 0x21, 0x0a, 0x0d, 0x47, 0x65, 0x74,
|
||||||
|
0x41, 0x65, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
|
||||||
|
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x8e, 0x01, 0x0a,
|
||||||
|
0x10, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x41, 0x65, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73,
|
||||||
|
0x70, 0x12, 0x41, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||||
|
0x2d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x61,
|
||||||
|
0x75, 0x74, 0x68, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x41, 0x65, 0x73, 0x4b, 0x65, 0x79,
|
||||||
|
0x52, 0x65, 0x73, 0x70, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
|
||||||
|
0x6b, 0x65, 0x79, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x4b, 0x65, 0x79, 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, 0x32, 0xb1, 0x01,
|
||||||
|
0x0a, 0x06, 0x41, 0x65, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x09, 0x67, 0x65, 0x74, 0x41,
|
||||||
|
0x65, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
|
||||||
|
0x72, 0x76, 0x65, 0x72, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x65, 0x73,
|
||||||
|
0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
|
||||||
|
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x65,
|
||||||
|
0x73, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x57, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x41,
|
||||||
|
0x6c, 0x6c, 0x41, 0x65, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49,
|
||||||
|
0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x47, 0x65, 0x74,
|
||||||
|
0x41, 0x6c, 0x6c, 0x41, 0x65, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x4f,
|
||||||
|
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x61, 0x75, 0x74, 0x68,
|
||||||
|
0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x41, 0x65, 0x73, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73,
|
||||||
|
0x70, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
|
||||||
|
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x44, 0x4b, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
|
||||||
|
0x6f, 0x6c, 0x2f, 0x61, 0x65, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||||
|
0x6f, 0x33,
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
file_aes_key_aes_key_proto_rawDescOnce sync.Once
|
||||||
|
file_aes_key_aes_key_proto_rawDescData = file_aes_key_aes_key_proto_rawDesc
|
||||||
|
)
|
||||||
|
|
||||||
|
func file_aes_key_aes_key_proto_rawDescGZIP() []byte {
|
||||||
|
file_aes_key_aes_key_proto_rawDescOnce.Do(func() {
|
||||||
|
file_aes_key_aes_key_proto_rawDescData = protoimpl.X.CompressGZIP(file_aes_key_aes_key_proto_rawDescData)
|
||||||
|
})
|
||||||
|
return file_aes_key_aes_key_proto_rawDescData
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_aes_key_aes_key_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
|
||||||
|
var file_aes_key_aes_key_proto_goTypes = []interface{}{
|
||||||
|
(*GetAesKeyReq)(nil), // 0: OpenIMServer.auth.GetAesKeyReq
|
||||||
|
(*GetAllAesKeyReq)(nil), // 1: OpenIMServer.auth.GetAllAesKeyReq
|
||||||
|
(*GetAesKeyResp)(nil), // 2: OpenIMServer.auth.GetAesKeyResp
|
||||||
|
(*GetAllAesKeyResp)(nil), // 3: OpenIMServer.auth.GetAllAesKeyResp
|
||||||
|
nil, // 4: OpenIMServer.auth.GetAllAesKeyResp.KeysEntry
|
||||||
|
}
|
||||||
|
var file_aes_key_aes_key_proto_depIdxs = []int32{
|
||||||
|
4, // 0: OpenIMServer.auth.GetAllAesKeyResp.keys:type_name -> OpenIMServer.auth.GetAllAesKeyResp.KeysEntry
|
||||||
|
0, // 1: OpenIMServer.auth.AesKey.getAesKey:input_type -> OpenIMServer.auth.GetAesKeyReq
|
||||||
|
1, // 2: OpenIMServer.auth.AesKey.getAllAesKey:input_type -> OpenIMServer.auth.GetAllAesKeyReq
|
||||||
|
2, // 3: OpenIMServer.auth.AesKey.getAesKey:output_type -> OpenIMServer.auth.GetAesKeyResp
|
||||||
|
3, // 4: OpenIMServer.auth.AesKey.getAllAesKey:output_type -> OpenIMServer.auth.GetAllAesKeyResp
|
||||||
|
3, // [3:5] is the sub-list for method output_type
|
||||||
|
1, // [1:3] is the sub-list for method input_type
|
||||||
|
1, // [1:1] is the sub-list for extension type_name
|
||||||
|
1, // [1:1] is the sub-list for extension extendee
|
||||||
|
0, // [0:1] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_aes_key_aes_key_proto_init() }
|
||||||
|
func file_aes_key_aes_key_proto_init() {
|
||||||
|
if File_aes_key_aes_key_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !protoimpl.UnsafeEnabled {
|
||||||
|
file_aes_key_aes_key_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*GetAesKeyReq); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_aes_key_aes_key_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*GetAllAesKeyReq); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_aes_key_aes_key_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*GetAesKeyResp); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_aes_key_aes_key_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*GetAllAesKeyResp); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: file_aes_key_aes_key_proto_rawDesc,
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 5,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 1,
|
||||||
|
},
|
||||||
|
GoTypes: file_aes_key_aes_key_proto_goTypes,
|
||||||
|
DependencyIndexes: file_aes_key_aes_key_proto_depIdxs,
|
||||||
|
MessageInfos: file_aes_key_aes_key_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_aes_key_aes_key_proto = out.File
|
||||||
|
file_aes_key_aes_key_proto_rawDesc = nil
|
||||||
|
file_aes_key_aes_key_proto_goTypes = nil
|
||||||
|
file_aes_key_aes_key_proto_depIdxs = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
|
var _ context.Context
|
||||||
|
var _ grpc.ClientConnInterface
|
||||||
|
|
||||||
|
// This is a compile-time assertion to ensure that this generated file
|
||||||
|
// is compatible with the grpc package it is being compiled against.
|
||||||
|
const _ = grpc.SupportPackageIsVersion6
|
||||||
|
|
||||||
|
// AesKeyClient is the client API for AesKey service.
|
||||||
|
//
|
||||||
|
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
|
||||||
|
type AesKeyClient interface {
|
||||||
|
GetAesKey(ctx context.Context, in *GetAesKeyReq, opts ...grpc.CallOption) (*GetAesKeyResp, error)
|
||||||
|
GetAllAesKey(ctx context.Context, in *GetAllAesKeyReq, opts ...grpc.CallOption) (*GetAllAesKeyResp, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
type aesKeyClient struct {
|
||||||
|
cc grpc.ClientConnInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewAesKeyClient(cc grpc.ClientConnInterface) AesKeyClient {
|
||||||
|
return &aesKeyClient{cc}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *aesKeyClient) GetAesKey(ctx context.Context, in *GetAesKeyReq, opts ...grpc.CallOption) (*GetAesKeyResp, error) {
|
||||||
|
out := new(GetAesKeyResp)
|
||||||
|
err := c.cc.Invoke(ctx, "/OpenIMServer.auth.AesKey/getAesKey", in, out, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *aesKeyClient) GetAllAesKey(ctx context.Context, in *GetAllAesKeyReq, opts ...grpc.CallOption) (*GetAllAesKeyResp, error) {
|
||||||
|
out := new(GetAllAesKeyResp)
|
||||||
|
err := c.cc.Invoke(ctx, "/OpenIMServer.auth.AesKey/getAllAesKey", in, out, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// AesKeyServer is the server API for AesKey service.
|
||||||
|
type AesKeyServer interface {
|
||||||
|
GetAesKey(context.Context, *GetAesKeyReq) (*GetAesKeyResp, error)
|
||||||
|
GetAllAesKey(context.Context, *GetAllAesKeyReq) (*GetAllAesKeyResp, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnimplementedAesKeyServer can be embedded to have forward compatible implementations.
|
||||||
|
type UnimplementedAesKeyServer struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*UnimplementedAesKeyServer) GetAesKey(context.Context, *GetAesKeyReq) (*GetAesKeyResp, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method GetAesKey not implemented")
|
||||||
|
}
|
||||||
|
func (*UnimplementedAesKeyServer) GetAllAesKey(context.Context, *GetAllAesKeyReq) (*GetAllAesKeyResp, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method GetAllAesKey not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterAesKeyServer(s *grpc.Server, srv AesKeyServer) {
|
||||||
|
s.RegisterService(&_AesKey_serviceDesc, srv)
|
||||||
|
}
|
||||||
|
|
||||||
|
func _AesKey_GetAesKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(GetAesKeyReq)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(AesKeyServer).GetAesKey(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: "/OpenIMServer.auth.AesKey/GetAesKey",
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(AesKeyServer).GetAesKey(ctx, req.(*GetAesKeyReq))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
func _AesKey_GetAllAesKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(GetAllAesKeyReq)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(AesKeyServer).GetAllAesKey(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: "/OpenIMServer.auth.AesKey/GetAllAesKey",
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(AesKeyServer).GetAllAesKey(ctx, req.(*GetAllAesKeyReq))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _AesKey_serviceDesc = grpc.ServiceDesc{
|
||||||
|
ServiceName: "OpenIMServer.auth.AesKey",
|
||||||
|
HandlerType: (*AesKeyServer)(nil),
|
||||||
|
Methods: []grpc.MethodDesc{
|
||||||
|
{
|
||||||
|
MethodName: "getAesKey",
|
||||||
|
Handler: _AesKey_GetAesKey_Handler,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
MethodName: "getAllAesKey",
|
||||||
|
Handler: _AesKey_GetAllAesKey_Handler,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Streams: []grpc.StreamDesc{},
|
||||||
|
Metadata: "aes_key/aes_key.proto",
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package OpenIMServer.auth;
|
||||||
|
option go_package = "github.com/OpenIMSDK/protocol/aes_key";
|
||||||
|
|
||||||
|
// protoc --go_out=plugins=grpc:./aes_key --go_opt=module=github.com/OpenIMSDK/protocol/aes_key aes_key/aes_key.proto
|
||||||
|
message GetAesKeyReq {
|
||||||
|
string sId = 1;
|
||||||
|
string uId = 2;
|
||||||
|
int32 sType = 3;
|
||||||
|
}
|
||||||
|
message GetAllAesKeyReq {
|
||||||
|
string uId = 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
message GetAesKeyResp {
|
||||||
|
string key = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GetAllAesKeyResp {
|
||||||
|
map<string, string> keys = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
service AesKey{
|
||||||
|
rpc getAesKey(GetAesKeyReq) returns(GetAesKeyResp);
|
||||||
|
rpc getAllAesKey(GetAllAesKeyReq) returns(GetAllAesKeyResp);
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
package rpcclient
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/aes_key"
|
||||||
|
"github.com/OpenIMSDK/tools/discoveryregistry"
|
||||||
|
"google.golang.org/grpc"
|
||||||
|
)
|
||||||
|
|
||||||
|
type AesKey struct {
|
||||||
|
conn grpc.ClientConnInterface
|
||||||
|
Client aes_key.AesKeyClient
|
||||||
|
discov discoveryregistry.SvcDiscoveryRegistry
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewAesKey(discov discoveryregistry.SvcDiscoveryRegistry) *AesKey {
|
||||||
|
conn, err := discov.GetConn(context.Background(), "aesKey")
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
client := aes_key.NewAesKeyClient(conn)
|
||||||
|
return &AesKey{discov: discov, conn: conn, Client: client}
|
||||||
|
}
|
||||||
|
|
||||||
|
type AesKeyRpcClient AesKey
|
||||||
|
|
||||||
|
func NewAesKeyRpcClient(discov discoveryregistry.SvcDiscoveryRegistry) AesKeyRpcClient {
|
||||||
|
return AesKeyRpcClient(*NewAesKey(discov))
|
||||||
|
}
|
||||||
|
func (a *AesKeyRpcClient) GetKey(ctx context.Context, sId string, sType int32) (*aes_key.GetAesKeyResp, error) {
|
||||||
|
key, err := a.Client.GetAesKey(ctx, &aes_key.GetAesKeyReq{SId: sId, SType: sType})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return key, nil
|
||||||
|
}
|
||||||
|
func (a *AesKeyRpcClient) GetAllKey(ctx context.Context, uId string) (*aes_key.GetAllAesKeyResp, error) {
|
||||||
|
key, err := a.Client.GetAllAesKey(ctx, &aes_key.GetAllAesKeyReq{UId: uId})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return key, nil
|
||||||
|
}
|
Loading…
Reference in new issue