diff --git a/README.md b/README.md index 42f1cb4..01285a0 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ cmake . make ``` - + ## 使用 - **用命令行安装证书到redis** @@ -30,4 +30,100 @@ - **用命令行从redis卸载证书** ```bash ./uninstallCertificate -f <证书文件路径> - ``` \ No newline at end of file + ``` + +## 通信接口 + +- **证书下发和更新** + + 1. 可以通过这个接口将用户的证书安装的MIR上,以便用户签名的Interest和Data在流经MIR的时候被正确验证; + 2. 同时支持设置证书的有效期,在有效期结束之后,证书会被自动移除。 + + ```json + // 请求 + { + "code": 1, + "data": { + // 字符串类型 + "certStr": "证书的base64编码字符串", + + // long型整数,表示整数有效期,单位为ms,如果期望证书不过期,一直可用,可以传递-1 + "lifetime": 1000, + + // 是否强制更新 => 指定强制更新,则证书已存在的情况下,会覆盖同名的旧的证书记录 + "forceUpdate": false + } + } + + // 回复 + { + "code": 0, // 0 => 安装成功, -1 => 证书格式错误, -2 => 存在同名证书,且未覆盖 + "errMsg": "", // 如果有错误展示错误描述,没有错误则为空字符串 + } + ``` + +- **证书撤销** + + 1. 通过这个接口,可以撤销MIR上正在生效的某个证书,撤销之后,对应秘钥签名的Interest和Data将无法通过MIR的验证。 + + ```json + // 请求 + { + "code": 2, + "data": { + // 字符串类型 + "certStr": "证书的base64编码字符串" + } + } + + // 回复 + { + "code": 0, // 0 => 撤销成功, -1 => 证书格式错误, -2 => 没有对应的条目 + "errMsg": "" // 如果有错误展示错误描述,没有错误则为空字符串 + } + ``` + +- **查询证书有效期** + + 1. 通过这个接口,可以查询指定证书在MIR上的有效期。 + + ```json + // 请求 + { + "code": 3, + "data": { + // 字符串类型 + "certStr": "证书的base64编码字符串" + } + } + + // 回复 + { + "code": 0, // 0 => 成功,-2 => 没有对应的条目 + "errMsg": "", // 如果有错误展示错误描述,没有错误则为空字符串 + "data": 5000 // >=0的值 => 表示当前剩余存活期, -1 => 表示没有设置存活期,持久保存 + } + ``` + +- **查询证书** + + 1. 这个接口可以判断指定的证书在MIR上是否已经安装,并且是有效的; + + ```json + // 请求 + { + "code": 4, + "data": { + // 字符串类型 + "certStr": "证书的base64编码字符串" + } + } + + // 回复 + { + "code": 0, // 0 => 存在,-1 => 没有对应的条目 + "errMsg": "" // 如果有错误展示错误描述,没有错误则为空字符串 + } + ``` + + \ No newline at end of file diff --git a/utils/RedisUtil.cpp b/utils/RedisUtil.cpp index 1da3d27..cf7476a 100644 --- a/utils/RedisUtil.cpp +++ b/utils/RedisUtil.cpp @@ -99,7 +99,7 @@ int RedisUtil::setLifeTime(const std::string &key, long lifetime) { * @param key * @return * -2 => 返回-2表示key对应的条目不存在(可能是本来就没有这个条目,或者本来有一个条目,但是因为设置了存活期,其存活期已到,被移除了) - * -1 => 返回-1表示key对应的条目存在,但是没有设置过存活期,是持久保存的 + * -1 => 返回-1表示key对应的条目存在,但是没有设置过存活期,是持久保存的 * >= 0 => 返回大于等于0的值表示key对应的条目存在,且其剩余的存活时间为返回的值,单位为毫秒 */ long RedisUtil::getRemainingTime(const std::string &key) {