C 中的 SSL 密码帮助
SSL Cipher help in C
我正在尝试在 tcp/ip 之上使用 SSL 向使用 C 的站点发送 HTTPS 请求。我无权访问 curl 或其他标准库。假装我根本无法加载任何库。
我需要设置 SSL 配置文件密码。当我在 linux 框上成功使用 curl 与服务器通信时,我看到:SSL Connection using ECDHE-RSA-AES128-SHA
如果我设置密码的选项是:
- SSL_kRSA(RSA 密钥交换)
- SSL_kEDH(tmp DH 密钥没有 DH 证书)
- SSL_aRSA(使用 RSA 验证)
- SSL-aDSS(使用 DSS 进行身份验证)
- SSL_DES (DES)
- SSL_3DES (3DES)
- SSL_RC4 (RC4)
- SSL_RC2 (RC2)
- SSL_AES (AES)
- SSL_MD5 (MD5)
- SSL_SHA1 (SHA1)
- SSL_SHA256 (SHA256)
- SSL_SHA384 (SHA384)
- SSL_RSA([SSL_kRSA|SSL_aRSA]RSA)
- SSL_DSS([SSL_aDSS] 使用 DSS 进行身份验证)
我可以通过以下方式设置多项内容:
SSL_RSA | SSL_AES
协议为 TLSv1.2
我的密码应该是什么样的?
"Pretend like i can't load any libraries at all." 如果是这样,您将需要实现密码本身加上 SSL 处理层 ^_^。
假设您正在使用 OpenSSL 并使用 socket_fd 建立了 TCP,您需要使用 SSL_CTX_new (SSLv23_client_method())
创建一个 SSL_CTX。通常,要设置密码列表,您可以使用 SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!eNULL:@STRENGTH")
,请参阅 http://openssl.org/docs/apps/ciphers.html 了解所有可用选项,您可以指定特定的密码。
然后使用 SSL_new(ctx)
和 SSL_set_fd (ssl, socket_fd)
创建 SSL 会话,然后使用 SSL_connect(...)
、SSL_read(...)/SSL_write(...)
与服务器通信。
完成后,SSL_shutdown(...)
和SSL_Free(...)
,SSL_CTX_Free(...)
。
我正在尝试在 tcp/ip 之上使用 SSL 向使用 C 的站点发送 HTTPS 请求。我无权访问 curl 或其他标准库。假装我根本无法加载任何库。
我需要设置 SSL 配置文件密码。当我在 linux 框上成功使用 curl 与服务器通信时,我看到:SSL Connection using ECDHE-RSA-AES128-SHA
如果我设置密码的选项是:
- SSL_kRSA(RSA 密钥交换)
- SSL_kEDH(tmp DH 密钥没有 DH 证书)
- SSL_aRSA(使用 RSA 验证)
- SSL-aDSS(使用 DSS 进行身份验证)
- SSL_DES (DES)
- SSL_3DES (3DES)
- SSL_RC4 (RC4)
- SSL_RC2 (RC2)
- SSL_AES (AES)
- SSL_MD5 (MD5)
- SSL_SHA1 (SHA1)
- SSL_SHA256 (SHA256)
- SSL_SHA384 (SHA384)
- SSL_RSA([SSL_kRSA|SSL_aRSA]RSA)
- SSL_DSS([SSL_aDSS] 使用 DSS 进行身份验证)
我可以通过以下方式设置多项内容:
SSL_RSA | SSL_AES
协议为 TLSv1.2
我的密码应该是什么样的?
"Pretend like i can't load any libraries at all." 如果是这样,您将需要实现密码本身加上 SSL 处理层 ^_^。
假设您正在使用 OpenSSL 并使用 socket_fd 建立了 TCP,您需要使用 SSL_CTX_new (SSLv23_client_method())
创建一个 SSL_CTX。通常,要设置密码列表,您可以使用 SSL_CTX_set_cipher_list(ctx, "HIGH:!aNULL:!eNULL:@STRENGTH")
,请参阅 http://openssl.org/docs/apps/ciphers.html 了解所有可用选项,您可以指定特定的密码。
然后使用 SSL_new(ctx)
和 SSL_set_fd (ssl, socket_fd)
创建 SSL 会话,然后使用 SSL_connect(...)
、SSL_read(...)/SSL_write(...)
与服务器通信。
完成后,SSL_shutdown(...)
和SSL_Free(...)
,SSL_CTX_Free(...)
。