标签:libsrtp get srtp packet janus rtp key policy
说明
libsrtp主要是是用来加密rtp/rtcp的;也可以加密任何文本,注意前面的rtp_协议的字节是不加密的;和AES加密没有什么过程区别
源码编译
cd /home/fengyuzaitu
wget https://github.com/cisco/libsrtp/archive/master.zip .
unzip master.zip
cd libsrtp-master
./configure
make
make runtest
make install
参考源码中的文档:libsrtp.pdf
1.7 Example Code
例子非常实用,但是没有错误的检查。假设发送的数据流中***c已经正确的被赋值,并且可以使用 get_rtp_packet和send_srtp_packet().
get_rtp_packet将RTP包保存到缓存中,返回具体的长度,最后一个将缓存中的数据发送出去。srtp_protect负责数据的加密
srtp_t session;
srtp_policy_t policy;
uint8_t key[30];
// initialize libSRTP
srtp_init();
// set policy to describe a policy for an SRTP stream
crypto_policy_set_rtp_default(&policy.rtp);
crypto_policy_set_rtcp_default(&policy.rtcp);
policy.***c = ***c;
policy.key = key;
policy.next = NULL;
// set key to random value
crypto_get_random(key, 30);
// allocate and initialize the SRTP session
srtp_create(&session, policy);
// main loop: get rtp packets, send srtp packets
while (1) {
char rtp_buffer[2048];
unsigned len;
len = get_rtp_packet(rtp_buffer);
srtp_protect(session, rtp_buffer, &len);
send_srtp_packet(rtp_buffer, len);
}
标签:libsrtp,get,srtp,packet,janus,rtp,key,policy
来源: https://blog.51cto.com/fengyuzaitu/2458254
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。