云通信-腾讯云,TLS独立模式公私钥生成

概述
TLS后台API我们提供了6个包供开发者下载,内容分别是windows下64位预编译文件包、windows下32位预编译文件包、linux下64位预编译文件包、linux下32位预编译文件包、zip格式的源代码文件和tar.gz格式的源代码文件。
linux平台
工具使用
工具的主要作用是在本地手动生成公私钥,手动生成sig和验证sig。
进入预编译文件包的tools目录,可以看到下面的几个文件,
├── genkey.sh 生成公私钥的批处理文件
├── openssl.cnf openssl配置文件,默认不要修改
├── openssl openssl工具可执行文件文件
└── tls_licence_tools 生成sig和校验sig的工具
生成公私钥
进入tools目录,执行下面的命令,
./genkey.sh
输出
read EC key
writing EC key
表示生成公私钥成功,公私钥分别为当前目录下的 public.pem 和 ec_key.pem。下面是演示的截图,

生成sig和校验sig
首先不带参数执行 tls_licence_tools,即执行下面的命令
./tls_licence_tools
输出
current version: 1.7
Usage:
get sig: ./tls_licence_tools 1 pri_key_file sig_file expire sdkappid acctype appid3rd identifier
get sig e.g.: ./tls_licence_tools 1 ec_key.pem sig 3600 1104620500 107 1104620500 group_root
verify sig: ./tls_licence_tools 2 pub_key_file sig_file sdkappid acctype appid3rd identifier
verify sig e.g.: ./tls_licence_tools 2 public.pem sig 1104620500 107 1104620500 group_root
下面是演示截图,

输出实际上是参数模板和示例。
执行类似于下面的命令可以生成 sig,
./tls_licence_tools 1 ec_key.pem sig 3600 1104620500 107 1104620500 group_root
执行类似于下面的命令可以校验 sig,
./tls_licence_tools 2 public.pem sig 1104620500 107 1104620500 group_root
下面演示截图,

下面解释下参数模板中参数的意义,
pri_key_file:私钥文件的路径
pub_key_file:公钥文件的路径
sig_file:sig 文件的路径,如果是生成 sig,那么会将 sig 写入这个文件,如果是校验 sig,那么会从这个文件读取 sig 的内容
expire:sig 的有效期
sdkappid:创建应用时页面上分配的 sdkappid
acctype:账号集成管理页面上配置之后显示的 accounttype
appid3rd:独立模式下与 sdkappid 一样,集成模式下第三方开放平台账号的 appid
identifier:用户标识,即用户 id
C++接口
首先包含include/tls_sig_api目录下的tls_signature.h。头文件中包含的接口,tls_gen_signature_ex和tls_check_signature_ex,前者是生成sig的接口,后者是校验sig的接口,详细的参数和返回值说明请参考头文件tls_signature.h。
然后是链接静态库,在lib目录下有下列目录,
├── jni
├── jsoncpp
├── openssl
└── tls_sig_api
需要链接的静态库是libjsoncpp.a、openssl目录下的libcrypto.a和libtlsignature.a。另外还需要链接系统的-ldl和-lz,典型的编译配置如下,
假设我们的代码的目录结构如下,
demo目录结构
|—include
|—lib
|—src
Makefile和demo.cpp源文件在 src 中,典型的工程配置如下
CFLAGS= -I../include/tls_sig_api -Wall -fPIC
LIBS= ../lib/jsoncpp/libjsoncpp.a ../lib/openssl/libcrypto.a -ldl -lz
g++ -o demo demo.cpp (CFLAGS)(CFLAGS) (LIBS)
下面的截图是我们开发时编译tls_licence_tools的命令行,由于是我们这边的开发环境,链接库的路径可以按照开发者自己的实际情况给出,

【特别注意】
如果程序有多线程调用TLS后台API的用法,请在程序初始化时和结束时分别调用下面的接口,
int multi_thread_setup(void);
void multi_thread_cleanup(void);
Java接口
目前java接口使用jni的方式实现。Java目录下tls_sigcheck.class,是由tls_sigcheck.java编译得到,如果有jdk兼容性问题,开发者可自行重新编译此文件,编译命令为,
javac -encoding utf-8 tls_sigcheck.java
请注意接口的包路径为com.tls.sigcheck,典型的使用方法是example目录下java版本demo的组织方式,
├── com
│ └── tls
│ └── sigcheck
│ └── tls_sigcheck.class
├── Demo.class
├── Demo.java
├── ec_key.pem
├── public.pem
└── README
之前提到java接口目前使用的jni的方式,所以Demo.java调用了载入so的语句,
demo.loadJniLib(“/home/jnisigcheck.so”);
开发者根据自己的存放jnisigcheck.so实际路径进行修改,预编译的jnisigcheck.so存放在lib/jni目录下。
demo的使用方式请参考example/java/README。下面是演示截图,

Java原生接口
1. 依赖的jar文件:
Java原生接口都封装在5个jar包中。在tls_sig_api/java_native/jar目录下:
├── bcpkix-jdk15on-152.jar
├── bcprov-jdk15on-152.jar
├── commons-codec-1.10.jar
├── Demo.java
├── gson-2.3.1.jar
├── json.jar
├── tls_sigature.java
└── tls_signature.jar
2. API说明
tls_signature.jar中含有tls_sigature.java这个源码文件,这个文件也是API的接口文件。里面有详细的接口说明,请开发者参考。
【特别注意】
接口中的publicBase64Key和privateBase64Key两个参数基本对应TLS官方网站公私钥生成页面上生成的公私钥。对于公钥:直接取公钥文件中的所有内容赋值给publicBase64Key参数即可;对于私钥,需要用tls api的tools目录下:openssl命令行工具一点额外的格式转换:
示例:./openssl pkcs8 -topk8 -in ec_key.pem -outform PEM -out p8_priv.pem -nocrypt
在tools目录下执行:openssl pkcs8 -topk8 -in ec_key.pem -outform PEM -out p8_priv.pem -nocrypt
格式转换后的,从p8_priv.pem取出所有的文件内容赋值给privateBase64Key参数就可以进行加密了。
PHP接口
php实现的方式较为简单,就是调用命令行工具生成sig,工具是bin/signature,php的调用方式如下,

云通信-腾讯云,TLS独立模式公私钥生成相关推荐

  1. 联通与阿里云、腾讯云合作 引发“云震荡”

    中国联通官方微博先后发布消息称,与腾讯.阿里达成业务合作,涉及云计算.网络安全等方面.中国联通表示,此次合作是入股的互联网企业在业务领域开展的首项重大业务合作. 混改后的联通第一个业务举动是关于云计算 ...

  2. 如何购买腾讯云服务器?腾讯云服务器购买教程

    如何购买腾讯云服务器?腾讯云服务器购买教程 如何购买腾讯云服务器?腾讯云服务器如何购买?腾讯云服务器购买有三种方式,一种是直接在活动上买,一种是通过快速配置,最后一种是自定义购买,快速配置没什么意思, ...

  3. 竞品分析:阿里云 VS 腾讯云,AT的短兵相接

    竞品分析:阿里云 VS 腾讯云,AT的短兵相接 本文是阿里云和腾讯云的竞品分析报告,文章重点分析了这两款云服务产品的行业情况.产品策略.产品结构.商业模式等4个方面,梳理了发展趋势,与大家分享. 一. ...

  4. 阿里云、腾讯云的新战场:金融云

    ​ 配图来自Canva 近日支付宝母公司蚂蚁集团官宣谋求A+H两地上市的消息,彻底引爆了资本市场的激情,带动相关概念股接连涨停. 蚂蚁集团仅仅作出上市姿态,就掀起了如此巨大的风波,实在令人惊叹.不过这 ...

  5. 五年200亿,浪潮云跟阿里云、腾讯云的玩法不一样!

    [听杨姐说] 8月28日,浪潮云开始有了自己独特的LOGO. 在杨姐看来,独立的品牌和LOGO意味着,浪潮云的地位在浪潮集团内部又上升了一个台阶,甚至未来可能已被树立为又一个被孵化出的.未来具有&qu ...

  6. 阿里云PK腾讯云,云计算的寡头对决即将到来

    阿里云PK腾讯云,云计算的寡头对决即将到来 文/路北 云计算的广泛普及要归功于创始者亚马逊,是它最早尝试将闲置的服务器资源对外出租并获利.如今,占据亚马逊总营收不足10%的云服务已经提供了集团将近过半 ...

  7. 《2017 云计算评测报告》:带你了解 AWS、阿里云、腾讯云等八家云计算服务提供商的综合用户体验情况...

     报告电子版至听云官方博客下载:http://blog.tingyun.com/web/article/detail/1352 评测说明 评测目标:同一应用(网站)在不同云上的用户访问体验,以及对云资 ...

  8. 第二十八期:阿里云VS腾讯云 谁才是中国未来的云计算之王?

    阿里云早在 2009 年就已经开始布局云计算领域,具有先发优势.据统计,40% 的中国 500 强企业.近一半中国上市公司.80% 中国科技类公司是阿里云的客户.而腾讯云基于腾讯自身在游戏.视频.社交 ...

  9. 【2020】六家云厂商价格比较:AWS、阿里云、Azure、Google Cloud、华为云、腾讯云

    [2020]六家云厂商价格比较:AWS.阿里云.Azure.Google Cloud.华为云.腾讯云 https://zhuanlan.zhihu.com/p/148856264 去年8月,我们选择了 ...

  10. 【2020新版】六家云厂商价格比较:AWS、阿里云、Azure、Google Cloud、华为云、腾讯云

    [2020新版]六家云厂商价格比较:AWS.阿里云.Azure.Google Cloud.华为云.腾讯云 去年8月,我们选择了国内外六家云厂商做了份资源价格报告,将近一年过去了,我们上个新. 做事呢, ...

最新文章

  1. 各种机器学习方法的优缺点
  2. 神经网络php代码,慢慢研究
  3. 目录:SpringBoot学习目录
  4. 信息化应以电子商务为鉴——企业成长的经济共同体道路
  5. 逆袭之旅.DAY08东软实训.多态~
  6. 2022年计算机考研学校,2022计算机考研院校推荐
  7. 明了 | MongoDB 外键的基本使用
  8. navicate将远程数据库导入到本地数据库
  9. 【guava】GuavaCache缓存失效的时候做一些操作 RemovalListener
  10. Kubernates和Docker
  11. linux内存管理之malloc
  12. hdu4616_Game_树形DP
  13. 经典机器学习系列(四)【神经网络详解】
  14. VC++动态链接库编程之MFC规则DLL
  15. A题 血管机器人的订购与生物学习#2022年五一数学建模
  16. 【逆向JS】调用网易云音乐搜歌功能并爬取评论Python/Java
  17. ERROR! MySQL is not running, but PID file exists
  18. 数显之家快讯:【SHIO世硕心语】2021,新的一年写给自己的5句话!
  19. win10用html文件做壁纸,利用win10自带工具制作动态壁纸的简单方法
  20. 计算机组成原理页表长度,清华计算机组成原理习题课课件习题课1-7.ppt

热门文章

  1. 激光雷达是什么?为什么移动机器人必不可少?
  2. 洛谷3823 [NOI2017] 蚯蚓排队 【哈希】
  3. bp神经网络回归预测模型(python实现)_神经网络实现连续型变量的回归预测(python)...
  4. 036多级节点实现层叠展开与收缩的功能
  5. gradlew.bat命令一直下载downloading github项目无法运行gradle
  6. 东方时尚驾校-科目三-雪铁龙-考试技巧
  7. java中替换的快捷键是什么_idea替换快捷键,批量处理对象的操作
  8. 计算机软件专业硕士,软件工程硕士与计算机硕士区别
  9. 桥本分数式c语言,《算法设计与分析教案(新格式)》.doc
  10. 什么是DNS云解析?云解析有哪些特点?