func CheckKey()

in interprocess/cryptdata/client/client.go [180:265]


func CheckKey(keyId string, jsonFlag bool) (output string, errCode int32, err error) {
	var client *agentClient
	errCode = cryptdata.ERR_OTHER_CODE
	defer func() {
		if err != nil && errCode == 0 {
			errCode = cryptdata.ERR_OTHER_CODE
		}
	}()
	client, err = newClient()
	if err != nil {
		log.GetLogger().Error("Create client failed: ", err)
		return
	}
	defer func() {
		client.Conn.Close()
		client.Cancel()
	}()
	req := &pb.CheckKeyReq{
		KeyPairId: keyId,
	}
	var resp *pb.CheckKeyResp
	resp, err = client.Client.CheckKey(client.Ctx, req)
	if err != nil {
		log.GetLogger().Error("Client request DecryptText failed: ", err)
		return
	}
	errCode = resp.Status.StatusCode
	if resp.Status.StatusCode != 0 {
		err = errors.New(resp.Status.ErrMessage)
		log.GetLogger().Errorf("CheckKey failed, keyPairId[%s], StatusCode[%d], errMsg[%s]: ", keyId, resp.Status.StatusCode, resp.Status.ErrMessage)
		return
	}
	if keyId != "" {
		keyInfo := cryptdata.KeyInfo{
			Id:               resp.KeyInfos[0].KeyPairId,
			PublicKey:        resp.KeyInfos[0].PublicKey,
			CreatedTimestamp: resp.KeyInfos[0].CreatedTimestamp,
			ExpiredTimestamp: resp.KeyInfos[0].ExpiredTimestamp,
		}
		if jsonFlag {
			var content []byte
			if content, err = json.MarshalIndent(keyInfo, "", "\t"); err != nil {
				return
			} else {
				output = string(content)
			}
		} else {
			output = fmt.Sprintf("%s\n%s", keyInfo.Id, keyInfo.PublicKey)
		}
	} else {
		if jsonFlag {
			keyInfos := cryptdata.KeyInfos{}
			for _, k := range resp.KeyInfos {
				keyInfos = append(keyInfos, cryptdata.KeyInfo{
					Id:               k.KeyPairId,
					PublicKey:        k.PublicKey,
					CreatedTimestamp: k.CreatedTimestamp,
					ExpiredTimestamp: k.ExpiredTimestamp,
				})
			}
			var content []byte
			if content, err = json.MarshalIndent(keyInfos, "", "\t"); err != nil {
				return
			} else {
				output = string(content)
			}
		} else {
			buf := bytes.NewBufferString("")
			tbl := table.New("Id", "CreateTime", "RemainingTime")
			now := time.Now().Unix()
			tbl.WithWriter(buf)
			for _, k := range resp.KeyInfos {
				remainTime := k.ExpiredTimestamp - now
				if remainTime <= 0 {
					continue
				} else {
					tbl.AddRow(k.KeyPairId, k.CreatedTimestamp, remainTime)
				}
			}
			tbl.Print()
			output = buf.String()
		}
	}
	log.GetLogger().Infof("CheckKey success, keyPairId[%s]: ", keyId)
	return
}