OpenSSL和Rand_bytes

时间:2014-04-22 18:43:10

标签: macos gcc openssl

我的问题是关于通过GCC在Mac上使用OpenSSL。

    #include <stdio.h>
    #include <openssl/rand.h>

    int main()
    {
     unsigned char key[128];
     Rand_bytes(key,128);
     return 0;
    }

我有以下代码,我正在尝试使用GCC进行编译。这是我进入命令行的内容

    gcc -o ossl ossl.c -lcrypto -lssl

但是我收到以下错误。

  

架构x86_64的未定义符号:    “_Rand_bytes”,引自:        _main在cc2hf0Ij.o中   ld:找不到架构x86_64的符号   collect2:ld返回1退出状态

在使用openssl时我没有经验。我为什么收到Undefined symbols for architecture x86_64

1 个答案:

答案 0 :(得分:1)

int main()
{
    unsigned char key[128];
    Rand_bytes(key,128);
    return 0;
}

尝试RAND_bytes

int main()
{
    unsigned char key[128];
    int rc = RAND_bytes(key,sizeof(key));
    if(rc != 1)
        /* Handle failure */

    ...
    OPENSSL_cleanse(key,sizeof(key));
    return 0;
}

OpenSSL文档位于RAND_bytes(3)