zoukankan      html  css  js  c++  java
  • coturn源码解析之turn_random_tid_size()函数

    #include <stdio.h>
    #include <stdint.h>
    #include <openssl/rand.h>
    #include <stdlib.h>
    #include <math.h>
    #include <strings.h>
    static void turn_random_tid_size(void *id)
    {
        uint32_t *ar=(uint32_t*)id;
        if(!RAND_pseudo_bytes((unsigned char *)ar,12)) {
            size_t i;
            for(i=0;i<3;++i) {
                ar[i] = (uint32_t)random();
            }
        }
    }
    
    
    
    int main(){
        uint8_t id[12];
        bzero(&id,12);
        turn_random_tid_size(id);
        uint16_t temp = 0;
        for (int i=0;i<12;i++){
            temp = temp + ((int )pow(256,i))*id[i];
        }
        printf("temp:%u",temp);
        return 0;
    }

    编译:

    gcc demo.c  -lm  -lcrypto -o demo

    在coturn的ns_turn_msg.c中函数turn_random_tid_size()的作用是对传入的参数id进行12byte空间赋予随机值!

    如果第一此使用函数RAND_pseudo_bytes()赋了0随机值,则会使用random()函数对id所指的12byte空间再此进行三次随机赋值,每次对4byte空间赋值!

  • 相关阅读:
    CSS 基本语法
    Html 块
    Html 表单
    Html 创建表格
    Html 建立超链接
    Html 在网页中使用图像
    CentOS7 重启问题
    Java 多线程——多线程的引入
    c++ 自然排序-window文件排序
    MFC更改图标
  • 原文地址:https://www.cnblogs.com/iuyy/p/13446432.html
Copyright © 2011-2022 走看看