Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Achou.Wang
accel-ppp
提交
be2b604a
A
accel-ppp
项目概览
Achou.Wang
/
accel-ppp
通知
6
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
accel-ppp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
be2b604a
编写于
10月 29, 2018
作者:
X
xebd
提交者:
GitHub
10月 29, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #57 from themiron/sstp
sstp: fix build w/o openssl & with 1.1.0-1.1.0g
上级
363ac4b5
2d409319
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
21 addition
and
6 deletion
+21
-6
accel-pppd/ctrl/sstp/sstp.c
accel-pppd/ctrl/sstp/sstp.c
+21
-6
未找到文件。
accel-pppd/ctrl/sstp/sstp.c
浏览文件 @
be2b604a
...
...
@@ -1492,10 +1492,15 @@ static int sstp_recv_msg_call_connected(struct sstp_conn_t *conn, struct sstp_ct
struct
{
struct
sstp_ctrl_hdr
hdr
;
struct
sstp_attrib_crypto_binding
attr
;
}
__attribute__
((
packed
))
buf
,
*
msg
=
(
void
*
)
hdr
;
uint8_t
md
[
EVP_MAX_MD_SIZE
],
hash
,
*
ptr
;
}
__attribute__
((
packed
))
*
msg
=
(
void
*
)
hdr
;
uint8_t
hash
;
unsigned
int
len
;
#ifdef CRYPTO_OPENSSL
typeof
(
*
msg
)
buf
;
uint8_t
md
[
EVP_MAX_MD_SIZE
],
*
ptr
;
const
EVP_MD
*
evp
;
unsigned
int
len
,
mdlen
;
unsigned
int
mdlen
;
#endif
if
(
conf_verbose
)
log_ppp_info2
(
"recv [SSTP SSTP_MSG_CALL_CONNECTED]
\n
"
);
...
...
@@ -1533,7 +1538,9 @@ static int sstp_recv_msg_call_connected(struct sstp_conn_t *conn, struct sstp_ct
log_ppp_error
(
"sstp: invalid SHA256 Cert Hash"
);
return
sstp_abort
(
conn
,
0
);
}
#ifdef CRYPTO_OPENSSL
evp
=
EVP_sha256
();
#endif
}
else
if
(
hash
&
CERT_HASH_PROTOCOL_SHA1
)
{
len
=
SHA_DIGEST_LENGTH
;
if
(
conf_hash_sha1
.
len
==
len
&&
...
...
@@ -1541,13 +1548,16 @@ static int sstp_recv_msg_call_connected(struct sstp_conn_t *conn, struct sstp_ct
log_ppp_error
(
"sstp: invalid SHA1 Cert Hash"
);
return
sstp_abort
(
conn
,
0
);
}
#ifdef CRYPTO_OPENSSL
evp
=
EVP_sha1
();
#endif
}
else
{
log_ppp_error
(
"sstp: invalid Hash Protocol 0x%02x
\n
"
,
msg
->
attr
.
hash_protocol_bitmask
);
return
sstp_abort
(
conn
,
0
);
}
#ifdef CRYPTO_OPENSSL
if
(
conn
->
hlak_key
)
{
ptr
=
mempcpy
(
md
,
SSTP_CMK_SEED
,
SSTP_CMK_SEED_SIZE
);
*
ptr
++
=
len
;
...
...
@@ -1565,6 +1575,7 @@ static int sstp_recv_msg_call_connected(struct sstp_conn_t *conn, struct sstp_ct
return
sstp_abort
(
conn
,
0
);
}
}
#endif
conn
->
sstp_state
=
STATE_SERVER_CALL_CONNECTED
;
...
...
@@ -2328,15 +2339,17 @@ static int ssl_servername(SSL *ssl, int *al, void *arg)
}
#endif
#if !defined(SSL_OP_NO_RENGOTIATION) && defined(SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS)
#ifndef SSL_OP_NO_RENEGOTIATION
#if OPENSSL_VERSION_NUMBER < 0x10100000L && defined(SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS)
static
void
ssl_info_cb
(
const
SSL
*
ssl
,
int
where
,
int
ret
)
{
if
(
(
where
&
SSL_CB_HANDSHAKE_DONE
)
!=
0
)
{
if
(
where
&
SSL_CB_HANDSHAKE_DONE
)
{
/* disable renegotiation (CVE-2009-3555) */
ssl
->
s3
->
flags
|=
SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS
;
}
}
#endif
#endif
static
void
ssl_load_config
(
struct
sstp_serv_t
*
serv
,
const
char
*
servername
)
{
...
...
@@ -2487,8 +2500,10 @@ static void ssl_load_config(struct sstp_serv_t *serv, const char *servername)
log_warn
(
"sstp: SSL server name check error: %s
\n
"
,
ERR_error_string
(
ERR_get_error
(),
NULL
));
#endif
#if !defined(SSL_OP_NO_RENGOTIATION) && defined(SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS)
#ifndef SSL_OP_NO_RENEGOTIATION
#if OPENSSL_VERSION_NUMBER < 0x10100000L && defined(SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS)
SSL_CTX_set_info_callback
(
ssl_ctx
,
ssl_info_cb
);
#endif
#endif
}
else
{
/* legacy option, to be removed */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录