Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
054009a6
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
1 年多 前同步成功
通知
10
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
054009a6
编写于
25年前
作者:
B
Bodo Möller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated C++ SSL demos.
Submitted (a month ago) by: Wade Scholine
上级
71f08093
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
54 addition
and
18 deletion
+54
-18
CHANGES
CHANGES
+1
-1
demos/ssl/cli.cpp
demos/ssl/cli.cpp
+13
-3
demos/ssl/serv.cpp
demos/ssl/serv.cpp
+40
-14
未找到文件。
CHANGES
浏览文件 @
054009a6
...
...
@@ -6,7 +6,7 @@
Changes between 0.9.3 and 0.9.3a [?] [xx May? 1999]
*) Updated some demos.
[Sean O Riordain]
[Sean O Riordain
, Wade Scholine
]
*) Add missing BIO_free at exit of pkcs12 application.
[Wu Zhigang]
...
...
This diff is collapsed.
Click to expand it.
demos/ssl/cli.cpp
浏览文件 @
054009a6
/* cli.cpp - Minimal ssleay client for Unix
30.9.1996, Sampo Kellomaki <sampo@iki.fi> */
/* mangled to work with SSLeay-0.9.0b and OpenSSL 0.9.2b
Simplified to be even more minimal
12/98 - 4/99 Wade Scholine <wades@mail.cybg.com> */
#include <stdio.h>
#include <memory.h>
#include <errno.h>
...
...
@@ -17,6 +21,7 @@
#include <openssl/ssl.h>
#include <openssl/err.h>
#define CHK_NULL(x) if ((x)==NULL) exit (1)
#define CHK_ERR(err,s) if ((err)==-1) { perror(s); exit(1); }
#define CHK_SSL(err) if ((err)==-1) { ERR_print_errors_fp(stderr); exit(2); }
...
...
@@ -31,9 +36,14 @@ void main ()
X509
*
server_cert
;
char
*
str
;
char
buf
[
4096
];
SSL_METHOD
*
meth
;
SSLeay_add_ssl_algorithms
();
meth
=
SSLv2_client_method
();
SSL_load_error_strings
();
ctx
=
SSL_CTX_new
();
CHK_NULL
(
ctx
);
ctx
=
SSL_CTX_new
(
meth
);
CHK_NULL
(
ctx
);
CHK_SSL
(
err
);
/* ----------------------------------------------- */
/* Create a socket and connect to server using normal socket calls. */
...
...
@@ -67,12 +77,12 @@ void main ()
server_cert
=
SSL_get_peer_certificate
(
ssl
);
CHK_NULL
(
server_cert
);
printf
(
"Server certificate:
\n
"
);
str
=
X509_NAME_oneline
(
X509_get_subject_name
(
server_cert
));
str
=
X509_NAME_oneline
(
X509_get_subject_name
(
server_cert
)
,
0
,
0
);
CHK_NULL
(
str
);
printf
(
"
\t
subject: %s
\n
"
,
str
);
Free
(
str
);
str
=
X509_NAME_oneline
(
X509_get_issuer_name
(
server_cert
));
str
=
X509_NAME_oneline
(
X509_get_issuer_name
(
server_cert
)
,
0
,
0
);
CHK_NULL
(
str
);
printf
(
"
\t
issuer: %s
\n
"
,
str
);
Free
(
str
);
...
...
This diff is collapsed.
Click to expand it.
demos/ssl/serv.cpp
浏览文件 @
054009a6
/* serv.cpp - Minimal ssleay server for Unix
30.9.1996, Sampo Kellomaki <sampo@iki.fi> */
/* mangled to work with SSLeay-0.9.0b and OpenSSL 0.9.2b
Simplified to be even more minimal
12/98 - 4/99 Wade Scholine <wades@mail.cybg.com> */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <memory.h>
#include <errno.h>
#include <sys/types.h>
...
...
@@ -17,9 +24,13 @@
#include <openssl/ssl.h>
#include <openssl/err.h>
#define HOME "/usr/users/sampo/sibs/tim/"
#define CERTF HOME "plain-cert.pem"
#define KEYF HOME "plain-key.pem"
/* define HOME to be dir for key and cert files... */
#define HOME "./"
/* Make these what you want for cert & key files */
#define CERTF HOME "foo-cert.pem"
#define KEYF HOME "foo-cert.pem"
#define CHK_NULL(x) if ((x)==NULL) exit (1)
#define CHK_ERR(err,s) if ((err)==-1) { perror(s); exit(1); }
...
...
@@ -32,24 +43,39 @@ void main ()
int
sd
;
struct
sockaddr_in
sa_serv
;
struct
sockaddr_in
sa_cli
;
in
t
client_len
;
size_
t
client_len
;
SSL_CTX
*
ctx
;
SSL
*
ssl
;
X509
*
client_cert
;
char
*
str
;
char
buf
[
4096
];
SSL_METHOD
*
meth
;
/* SSL preliminaries. We keep the certificate and key with the context. */
SSL_load_error_strings
();
ctx
=
SSL_CTX_new
();
CHK_NULL
(
ctx
);
err
=
SSL_CTX_use_RSAPrivateKey_file
(
ctx
,
KEYF
,
SSL_FILETYPE_PEM
);
CHK_SSL
(
err
);
err
=
SSL_CTX_use_certificate_file
(
ctx
,
CERTF
,
SSL_FILETYPE_PEM
);
CHK_SSL
(
err
);
SSLeay_add_ssl_algorithms
(
);
meth
=
SSLv23_server_method
();
ctx
=
SSL_CTX_new
(
meth
);
if
(
!
ctx
)
{
ERR_print_errors_fp
(
stderr
);
exit
(
2
);
}
if
(
SSL_CTX_use_certificate_file
(
ctx
,
CERTF
,
SSL_FILETYPE_PEM
)
<=
0
)
{
ERR_print_errors_fp
(
stderr
);
exit
(
3
);
}
if
(
SSL_CTX_use_PrivateKey_file
(
ctx
,
KEYF
,
SSL_FILETYPE_PEM
)
<=
0
)
{
ERR_print_errors_fp
(
stderr
);
exit
(
4
);
}
if
(
!
SSL_CTX_check_private_key
(
ctx
))
{
fprintf
(
stderr
,
"Private key does not match the certificate public key
\n
"
);
exit
(
5
);
}
/* ----------------------------------------------- */
/* Prepare TCP socket for receiving connections */
...
...
@@ -92,12 +118,12 @@ void main ()
if
(
client_cert
!=
NULL
)
{
printf
(
"Client certificate:
\n
"
);
str
=
X509_NAME_oneline
(
X509_get_subject_name
(
client_cert
));
str
=
X509_NAME_oneline
(
X509_get_subject_name
(
client_cert
)
,
0
,
0
);
CHK_NULL
(
str
);
printf
(
"
\t
subject: %s
\n
"
,
str
);
Free
(
str
);
str
=
X509_NAME_oneline
(
X509_get_issuer_name
(
client_cert
));
str
=
X509_NAME_oneline
(
X509_get_issuer_name
(
client_cert
)
,
0
,
0
);
CHK_NULL
(
str
);
printf
(
"
\t
issuer: %s
\n
"
,
str
);
Free
(
str
);
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部