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
}