Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
41a15c4f
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
接近 2 年 前同步成功
通知
12
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看板
提交
41a15c4f
编写于
3月 31, 2005
作者:
B
Ben Laurie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Give everything prototypes (well, everything that's actually used).
上级
fea4280a
变更
65
隐藏空白更改
内联
并排
Showing
65 changed file
with
464 addition
and
359 deletion
+464
-359
CHANGES
CHANGES
+5
-0
apps/progs.h
apps/progs.h
+1
-1
apps/s_apps.h
apps/s_apps.h
+1
-1
apps/s_socket.c
apps/s_socket.c
+1
-1
apps/sess_id.c
apps/sess_id.c
+1
-1
apps/x509.c
apps/x509.c
+1
-2
crypto/asn1/a_d2i_fp.c
crypto/asn1/a_d2i_fp.c
+10
-8
crypto/asn1/a_digest.c
crypto/asn1/a_digest.c
+3
-2
crypto/asn1/a_dup.c
crypto/asn1/a_dup.c
+2
-1
crypto/asn1/a_hdr.c
crypto/asn1/a_hdr.c
+2
-2
crypto/asn1/a_i2d_fp.c
crypto/asn1/a_i2d_fp.c
+4
-2
crypto/asn1/a_meth.c
crypto/asn1/a_meth.c
+8
-8
crypto/asn1/a_set.c
crypto/asn1/a_set.c
+6
-3
crypto/asn1/a_sign.c
crypto/asn1/a_sign.c
+3
-3
crypto/asn1/a_verify.c
crypto/asn1/a_verify.c
+3
-2
crypto/asn1/asn1.h
crypto/asn1/asn1.h
+59
-21
crypto/asn1/asn1_gen.c
crypto/asn1/asn1_gen.c
+4
-2
crypto/asn1/asn1_mac.h
crypto/asn1/asn1_mac.h
+2
-2
crypto/asn1/asn_pack.c
crypto/asn1/asn_pack.c
+10
-7
crypto/asn1/n_pkey.c
crypto/asn1/n_pkey.c
+17
-6
crypto/asn1/p5_pbe.c
crypto/asn1/p5_pbe.c
+2
-1
crypto/asn1/p5_pbev2.c
crypto/asn1/p5_pbev2.c
+2
-2
crypto/asn1/x_pkey.c
crypto/asn1/x_pkey.c
+2
-2
crypto/asn1/x_x509.c
crypto/asn1/x_x509.c
+7
-5
crypto/bio/bss_conn.c
crypto/bio/bss_conn.c
+2
-2
crypto/dh/dh.h
crypto/dh/dh.h
+3
-11
crypto/dsa/dsa.h
crypto/dsa/dsa.h
+3
-6
crypto/ec/ec.h
crypto/ec/ec.h
+3
-6
crypto/engine/eng_ctrl.c
crypto/engine/eng_ctrl.c
+2
-1
crypto/engine/enginetest.c
crypto/engine/enginetest.c
+1
-1
crypto/err/err.c
crypto/err/err.c
+1
-1
crypto/evp/evp.h
crypto/evp/evp.h
+18
-5
crypto/evp/evp_pkey.c
crypto/evp/evp_pkey.c
+2
-2
crypto/lhash/lhash.c
crypto/lhash/lhash.c
+1
-1
crypto/ocsp/ocsp.h
crypto/ocsp/ocsp.h
+10
-14
crypto/ocsp/ocsp_ext.c
crypto/ocsp/ocsp_ext.c
+22
-14
crypto/pem/pem.h
crypto/pem/pem.h
+60
-25
crypto/pem/pem_all.c
crypto/pem/pem_all.c
+6
-6
crypto/pem/pem_info.c
crypto/pem/pem_info.c
+9
-8
crypto/pem/pem_lib.c
crypto/pem/pem_lib.c
+10
-9
crypto/pem/pem_oth.c
crypto/pem/pem_oth.c
+5
-3
crypto/pkcs7/pk7_mime.c
crypto/pkcs7/pk7_mime.c
+0
-3
crypto/rsa/rsa.h
crypto/rsa/rsa.h
+13
-5
crypto/rsa/rsa_asn1.c
crypto/rsa/rsa_asn1.c
+4
-4
crypto/stack/safestack.h
crypto/stack/safestack.h
+1
-1
crypto/txt_db/txt_db.c
crypto/txt_db/txt_db.c
+5
-5
crypto/txt_db/txt_db.h
crypto/txt_db/txt_db.h
+2
-2
crypto/ui/ui.h
crypto/ui/ui.h
+1
-1
crypto/ui/ui_lib.c
crypto/ui/ui_lib.c
+1
-1
crypto/x509/x509.h
crypto/x509/x509.h
+9
-8
crypto/x509/x509_vfy.c
crypto/x509/x509_vfy.c
+4
-4
crypto/x509/x_all.c
crypto/x509/x_all.c
+43
-68
engines/vendor_defns/aep.h
engines/vendor_defns/aep.h
+4
-4
engines/vendor_defns/sureware.h
engines/vendor_defns/sureware.h
+1
-1
ssl/bio_ssl.c
ssl/bio_ssl.c
+2
-2
ssl/s23_lib.c
ssl/s23_lib.c
+1
-1
ssl/s2_lib.c
ssl/s2_lib.c
+3
-3
ssl/s3_lib.c
ssl/s3_lib.c
+3
-3
ssl/ssl.h
ssl/ssl.h
+12
-16
ssl/ssl_asn1.c
ssl/ssl_asn1.c
+6
-6
ssl/ssl_err.c
ssl/ssl_err.c
+2
-1
ssl/ssl_lib.c
ssl/ssl_lib.c
+16
-10
ssl/ssl_locl.h
ssl/ssl_locl.h
+6
-5
ssl/t1_lib.c
ssl/t1_lib.c
+1
-1
test/Makefile
test/Makefile
+10
-4
未找到文件。
CHANGES
浏览文件 @
41a15c4f
...
@@ -4,6 +4,11 @@
...
@@ -4,6 +4,11 @@
Changes between 0.9.7e and 0.9.8 [xx XXX xxxx]
Changes between 0.9.7e and 0.9.8 [xx XXX xxxx]
*) Compile clean with "-Wall -Wmissing-prototypes
-Wstrict-prototypes -Wmissing-declarations -Werror". Currently
DEBUG_SAFESTACK must also be set.
[Ben Laurie]
*) Change ./Configure so that certain algorithms can be disabled by default.
*) Change ./Configure so that certain algorithms can be disabled by default.
The new counterpiece to "no-xxx" is "enable-xxx".
The new counterpiece to "no-xxx" is "enable-xxx".
...
...
apps/progs.h
浏览文件 @
41a15c4f
...
@@ -49,7 +49,7 @@ extern int ocsp_main(int argc,char *argv[]);
...
@@ -49,7 +49,7 @@ extern int ocsp_main(int argc,char *argv[]);
typedef
struct
{
typedef
struct
{
int
type
;
int
type
;
char
*
name
;
char
*
name
;
int
(
*
func
)();
int
(
*
func
)(
int
argc
,
char
*
argv
[]
);
}
FUNCTION
;
}
FUNCTION
;
FUNCTION
functions
[]
=
{
FUNCTION
functions
[]
=
{
...
...
apps/s_apps.h
浏览文件 @
41a15c4f
...
@@ -148,7 +148,7 @@ typedef fd_mask fd_set;
...
@@ -148,7 +148,7 @@ typedef fd_mask fd_set;
#define PORT_STR "4433"
#define PORT_STR "4433"
#define PROTOCOL "tcp"
#define PROTOCOL "tcp"
int
do_server
(
int
port
,
int
*
ret
,
int
(
*
cb
)
(),
char
*
context
);
int
do_server
(
int
port
,
int
*
ret
,
int
(
*
cb
)
(
char
*
hostname
,
int
s
,
unsigned
char
*
context
),
char
*
context
);
#ifdef HEADER_X509_H
#ifdef HEADER_X509_H
int
MS_CALLBACK
verify_callback
(
int
ok
,
X509_STORE_CTX
*
ctx
);
int
MS_CALLBACK
verify_callback
(
int
ok
,
X509_STORE_CTX
*
ctx
);
#endif
#endif
...
...
apps/s_socket.c
浏览文件 @
41a15c4f
...
@@ -270,7 +270,7 @@ static int init_client_ip(int *sock, unsigned char ip[4], int port)
...
@@ -270,7 +270,7 @@ static int init_client_ip(int *sock, unsigned char ip[4], int port)
return
(
1
);
return
(
1
);
}
}
int
do_server
(
int
port
,
int
*
ret
,
int
(
*
cb
)(),
char
*
context
)
int
do_server
(
int
port
,
int
*
ret
,
int
(
*
cb
)(
char
*
hostname
,
int
s
,
unsigned
char
*
context
),
char
*
context
)
{
{
int
sock
;
int
sock
;
char
*
name
;
char
*
name
;
...
...
apps/sess_id.c
浏览文件 @
41a15c4f
...
@@ -241,7 +241,7 @@ bad:
...
@@ -241,7 +241,7 @@ bad:
if
(
!
noout
&&
!
cert
)
if
(
!
noout
&&
!
cert
)
{
{
if
(
outformat
==
FORMAT_ASN1
)
if
(
outformat
==
FORMAT_ASN1
)
i
=
(
int
)
i2d_SSL_SESSION_bio
(
out
,
x
);
i
=
i2d_SSL_SESSION_bio
(
out
,
x
);
else
if
(
outformat
==
FORMAT_PEM
)
else
if
(
outformat
==
FORMAT_PEM
)
i
=
PEM_write_bio_SSL_SESSION
(
out
,
x
);
i
=
PEM_write_bio_SSL_SESSION
(
out
,
x
);
else
{
else
{
...
...
apps/x509.c
浏览文件 @
41a15c4f
...
@@ -1038,8 +1038,7 @@ bad:
...
@@ -1038,8 +1038,7 @@ bad:
ah
.
data
=
(
char
*
)
x
;
ah
.
data
=
(
char
*
)
x
;
ah
.
meth
=
X509_asn1_meth
();
ah
.
meth
=
X509_asn1_meth
();
/* no macro for this one yet */
i
=
ASN1_i2d_bio_of
(
ASN1_HEADER
,
i2d_ASN1_HEADER
,
out
,
&
ah
);
i
=
ASN1_i2d_bio
(
i2d_ASN1_HEADER
,
out
,(
unsigned
char
*
)
&
ah
);
}
}
else
{
else
{
BIO_printf
(
bio_err
,
"bad output format specified for outfile
\n
"
);
BIO_printf
(
bio_err
,
"bad output format specified for outfile
\n
"
);
...
...
crypto/asn1/a_d2i_fp.c
浏览文件 @
41a15c4f
...
@@ -66,11 +66,12 @@ static int asn1_d2i_read_bio(BIO *in, BUF_MEM **pb);
...
@@ -66,11 +66,12 @@ static int asn1_d2i_read_bio(BIO *in, BUF_MEM **pb);
#ifndef NO_OLD_ASN1
#ifndef NO_OLD_ASN1
#ifndef OPENSSL_NO_FP_API
#ifndef OPENSSL_NO_FP_API
char
*
ASN1_d2i_fp
(
char
*
(
*
xnew
)(),
char
*
(
*
d2i
)(),
FILE
*
in
,
void
*
ASN1_d2i_fp
(
void
*
(
*
xnew
)(
void
),
unsigned
char
**
x
)
void
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
FILE
*
in
,
void
**
x
)
{
{
BIO
*
b
;
BIO
*
b
;
char
*
ret
;
void
*
ret
;
if
((
b
=
BIO_new
(
BIO_s_file
()))
==
NULL
)
if
((
b
=
BIO_new
(
BIO_s_file
()))
==
NULL
)
{
{
...
@@ -84,18 +85,19 @@ char *ASN1_d2i_fp(char *(*xnew)(), char *(*d2i)(), FILE *in,
...
@@ -84,18 +85,19 @@ char *ASN1_d2i_fp(char *(*xnew)(), char *(*d2i)(), FILE *in,
}
}
#endif
#endif
char
*
ASN1_d2i_bio
(
char
*
(
*
xnew
)(),
char
*
(
*
d2i
)(),
BIO
*
in
,
char
*
ASN1_d2i_bio
(
void
*
(
*
xnew
)(
void
),
unsigned
char
**
x
)
void
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
BIO
*
in
,
void
**
x
)
{
{
BUF_MEM
*
b
=
NULL
;
BUF_MEM
*
b
=
NULL
;
unsigned
char
*
p
;
const
unsigned
char
*
p
;
char
*
ret
=
NULL
;
void
*
ret
=
NULL
;
int
len
;
int
len
;
len
=
asn1_d2i_read_bio
(
in
,
&
b
);
len
=
asn1_d2i_read_bio
(
in
,
&
b
);
if
(
len
<
0
)
goto
err
;
if
(
len
<
0
)
goto
err
;
p
=
(
unsigned
char
*
)
b
->
data
;
p
=
b
->
data
;
ret
=
d2i
(
x
,
&
p
,
len
);
ret
=
d2i
(
x
,
&
p
,
len
);
err:
err:
if
(
b
!=
NULL
)
BUF_MEM_free
(
b
);
if
(
b
!=
NULL
)
BUF_MEM_free
(
b
);
...
...
crypto/asn1/a_digest.c
浏览文件 @
41a15c4f
...
@@ -72,8 +72,9 @@
...
@@ -72,8 +72,9 @@
#ifndef NO_ASN1_OLD
#ifndef NO_ASN1_OLD
int
ASN1_digest
(
int
(
*
i2d
)(),
const
EVP_MD
*
type
,
char
*
data
,
int
ASN1_digest
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
unsigned
char
*
md
,
unsigned
int
*
len
)
const
EVP_MD
*
type
,
char
*
data
,
unsigned
char
*
md
,
unsigned
int
*
len
)
{
{
int
i
;
int
i
;
unsigned
char
*
str
,
*
p
;
unsigned
char
*
str
,
*
p
;
...
...
crypto/asn1/a_dup.c
浏览文件 @
41a15c4f
...
@@ -62,7 +62,8 @@
...
@@ -62,7 +62,8 @@
#ifndef NO_OLD_ASN1
#ifndef NO_OLD_ASN1
char
*
ASN1_dup
(
int
(
*
i2d
)(),
char
*
(
*
d2i
)(),
char
*
x
)
void
*
ASN1_dup
(
int
(
*
i2d
)(
char
*
,
void
*
),
char
*
(
*
d2i
)(
void
*
,
unsigned
char
**
,
long
),
char
*
x
)
{
{
unsigned
char
*
b
,
*
p
;
unsigned
char
*
b
,
*
p
;
long
i
;
long
i
;
...
...
crypto/asn1/a_hdr.c
浏览文件 @
41a15c4f
...
@@ -83,10 +83,10 @@ ASN1_HEADER *d2i_ASN1_HEADER(ASN1_HEADER **a, const unsigned char **pp,
...
@@ -83,10 +83,10 @@ ASN1_HEADER *d2i_ASN1_HEADER(ASN1_HEADER **a, const unsigned char **pp,
M_ASN1_D2I_Init
();
M_ASN1_D2I_Init
();
M_ASN1_D2I_start_sequence
();
M_ASN1_D2I_start_sequence
();
M_ASN1_D2I_get
(
ret
->
header
,
d2i_ASN1_OCTET_STRING
);
M_ASN1_D2I_get
(
ASN1_OCTET_STRING
,
ret
->
header
,
d2i_ASN1_OCTET_STRING
);
if
(
ret
->
meth
!=
NULL
)
if
(
ret
->
meth
!=
NULL
)
{
{
M_ASN1_D2I_get
(
ret
->
data
,
ret
->
meth
->
d2i
);
M_ASN1_D2I_get
(
void
,
ret
->
data
,
ret
->
meth
->
d2i
);
}
}
else
else
{
{
...
...
crypto/asn1/a_i2d_fp.c
浏览文件 @
41a15c4f
...
@@ -64,7 +64,8 @@
...
@@ -64,7 +64,8 @@
#ifndef NO_OLD_ASN1
#ifndef NO_OLD_ASN1
#ifndef OPENSSL_NO_FP_API
#ifndef OPENSSL_NO_FP_API
int
ASN1_i2d_fp
(
int
(
*
i2d
)(),
FILE
*
out
,
unsigned
char
*
x
)
int
ASN1_i2d_fp
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
FILE
*
out
,
void
*
x
)
{
{
BIO
*
b
;
BIO
*
b
;
int
ret
;
int
ret
;
...
@@ -81,7 +82,8 @@ int ASN1_i2d_fp(int (*i2d)(), FILE *out, unsigned char *x)
...
@@ -81,7 +82,8 @@ int ASN1_i2d_fp(int (*i2d)(), FILE *out, unsigned char *x)
}
}
#endif
#endif
int
ASN1_i2d_bio
(
int
(
*
i2d
)(),
BIO
*
out
,
unsigned
char
*
x
)
int
ASN1_i2d_bio
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
BIO
*
out
,
unsigned
char
*
x
)
{
{
char
*
b
;
char
*
b
;
unsigned
char
*
p
;
unsigned
char
*
p
;
...
...
crypto/asn1/a_meth.c
浏览文件 @
41a15c4f
...
@@ -62,16 +62,16 @@
...
@@ -62,16 +62,16 @@
#include <openssl/asn1.h>
#include <openssl/asn1.h>
static
ASN1_METHOD
ia5string_meth
=
{
static
ASN1_METHOD
ia5string_meth
=
{
(
int
(
*
)(
))
i2d_ASN1_IA5STRING
,
(
I2D_OF
(
void
))
i2d_ASN1_IA5STRING
,
(
char
*
(
*
)(
))
d2i_ASN1_IA5STRING
,
(
D2I_OF
(
void
))
d2i_ASN1_IA5STRING
,
(
char
*
(
*
)())
ASN1_STRING_new
,
(
void
*
(
*
)(
void
))
ASN1_STRING_new
,
(
void
(
*
)(
))
ASN1_STRING_free
};
(
void
(
*
)(
void
*
))
ASN1_STRING_free
};
static
ASN1_METHOD
bit_string_meth
=
{
static
ASN1_METHOD
bit_string_meth
=
{
(
int
(
*
)(
))
i2d_ASN1_BIT_STRING
,
(
I2D_OF
(
void
))
i2d_ASN1_BIT_STRING
,
(
char
*
(
*
)(
))
d2i_ASN1_BIT_STRING
,
(
D2I_OF
(
void
))
d2i_ASN1_BIT_STRING
,
(
char
*
(
*
)())
ASN1_STRING_new
,
(
void
*
(
*
)(
void
))
ASN1_STRING_new
,
(
void
(
*
)(
))
ASN1_STRING_free
};
(
void
(
*
)(
void
*
))
ASN1_STRING_free
};
ASN1_METHOD
*
ASN1_IA5STRING_asn1_meth
(
void
)
ASN1_METHOD
*
ASN1_IA5STRING_asn1_meth
(
void
)
{
{
...
...
crypto/asn1/a_set.c
浏览文件 @
41a15c4f
...
@@ -85,7 +85,7 @@ static int SetBlobCmp(const void *elem1, const void *elem2 )
...
@@ -85,7 +85,7 @@ static int SetBlobCmp(const void *elem1, const void *elem2 )
}
}
/* int is_set: if TRUE, then sort the contents (i.e. it isn't a SEQUENCE) */
/* int is_set: if TRUE, then sort the contents (i.e. it isn't a SEQUENCE) */
int
i2d_ASN1_SET
(
STACK
*
a
,
unsigned
char
**
pp
,
int
(
*
func
)(),
int
ex_tag
,
int
i2d_ASN1_SET
(
STACK
*
a
,
unsigned
char
**
pp
,
int
(
*
func
)(
void
*
,
unsigned
char
**
),
int
ex_tag
,
int
ex_class
,
int
is_set
)
int
ex_class
,
int
is_set
)
{
{
int
ret
=
0
,
r
;
int
ret
=
0
,
r
;
...
@@ -163,7 +163,8 @@ SetBlob
...
@@ -163,7 +163,8 @@ SetBlob
}
}
STACK
*
d2i_ASN1_SET
(
STACK
**
a
,
const
unsigned
char
**
pp
,
long
length
,
STACK
*
d2i_ASN1_SET
(
STACK
**
a
,
const
unsigned
char
**
pp
,
long
length
,
char
*
(
*
func
)(),
void
(
*
free_func
)(
void
*
),
int
ex_tag
,
int
ex_class
)
char
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
void
(
*
free_func
)(
void
*
),
int
ex_tag
,
int
ex_class
)
{
{
ASN1_const_CTX
c
;
ASN1_const_CTX
c
;
STACK
*
ret
=
NULL
;
STACK
*
ret
=
NULL
;
...
@@ -210,7 +211,9 @@ STACK *d2i_ASN1_SET(STACK **a, const unsigned char **pp, long length,
...
@@ -210,7 +211,9 @@ STACK *d2i_ASN1_SET(STACK **a, const unsigned char **pp, long length,
char
*
s
;
char
*
s
;
if
(
M_ASN1_D2I_end_sequence
())
break
;
if
(
M_ASN1_D2I_end_sequence
())
break
;
if
((
s
=
func
(
NULL
,
&
c
.
p
,
c
.
slen
,
c
.
max
-
c
.
p
))
==
NULL
)
/* XXX: This was called with 4 arguments, incorrectly, it seems
if ((s=func(NULL,&c.p,c.slen,c.max-c.p)) == NULL) */
if
((
s
=
d2i
(
NULL
,
&
c
.
p
,
c
.
slen
))
==
NULL
)
{
{
ASN1err
(
ASN1_F_D2I_ASN1_SET
,
ASN1_R_ERROR_PARSING_SET_ELEMENT
);
ASN1err
(
ASN1_F_D2I_ASN1_SET
,
ASN1_R_ERROR_PARSING_SET_ELEMENT
);
asn1_add_error
(
*
pp
,(
int
)(
c
.
q
-
*
pp
));
asn1_add_error
(
*
pp
,(
int
)(
c
.
q
-
*
pp
));
...
...
crypto/asn1/a_sign.c
浏览文件 @
41a15c4f
...
@@ -126,9 +126,9 @@
...
@@ -126,9 +126,9 @@
#ifndef NO_ASN1_OLD
#ifndef NO_ASN1_OLD
int
ASN1_sign
(
int
(
*
i2d
)(
),
X509_ALGOR
*
algor1
,
X509_ALGOR
*
algor2
,
int
ASN1_sign
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
X509_ALGOR
*
algor1
,
ASN1_BIT_STRING
*
signature
,
char
*
data
,
EVP_PKEY
*
pkey
,
X509_ALGOR
*
algor2
,
ASN1_BIT_STRING
*
signature
,
char
*
data
,
const
EVP_MD
*
type
)
EVP_PKEY
*
pkey
,
const
EVP_MD
*
type
)
{
{
EVP_MD_CTX
ctx
;
EVP_MD_CTX
ctx
;
unsigned
char
*
p
,
*
buf_in
=
NULL
,
*
buf_out
=
NULL
;
unsigned
char
*
p
,
*
buf_in
=
NULL
,
*
buf_out
=
NULL
;
...
...
crypto/asn1/a_verify.c
浏览文件 @
41a15c4f
...
@@ -73,8 +73,9 @@
...
@@ -73,8 +73,9 @@
#ifndef NO_ASN1_OLD
#ifndef NO_ASN1_OLD
int
ASN1_verify
(
int
(
*
i2d
)(),
X509_ALGOR
*
a
,
ASN1_BIT_STRING
*
signature
,
int
ASN1_verify
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
char
*
data
,
EVP_PKEY
*
pkey
)
X509_ALGOR
*
a
,
ASN1_BIT_STRING
*
signature
,
char
*
data
,
EVP_PKEY
*
pkey
)
{
{
EVP_MD_CTX
ctx
;
EVP_MD_CTX
ctx
;
const
EVP_MD
*
type
;
const
EVP_MD
*
type
;
...
...
crypto/asn1/asn1.h
浏览文件 @
41a15c4f
...
@@ -317,6 +317,10 @@ typedef struct ASN1_VALUE_st ASN1_VALUE;
...
@@ -317,6 +317,10 @@ typedef struct ASN1_VALUE_st ASN1_VALUE;
type *name##_new(void); \
type *name##_new(void); \
void name##_free(type *a);
void name##_free(type *a);
#define D2I_OF(type) type *(*)(type **,const unsigned char **,long)
#define I2D_OF(type) int (*)(type *,unsigned char **)
#define I2D_OF_const(type) int (*)(const type *,unsigned char **)
/* The following macros and typedefs allow an ASN1_ITEM
/* The following macros and typedefs allow an ASN1_ITEM
* to be embedded in a structure and referenced. Since
* to be embedded in a structure and referenced. Since
* the ASN1_ITEM pointers need to be globally accessible
* the ASN1_ITEM pointers need to be globally accessible
...
@@ -508,17 +512,17 @@ DECLARE_ASN1_SET_OF(ASN1_TYPE)
...
@@ -508,17 +512,17 @@ DECLARE_ASN1_SET_OF(ASN1_TYPE)
typedef
struct
asn1_method_st
typedef
struct
asn1_method_st
{
{
int
(
*
i2d
)();
int
(
*
i2d
)(
void
*
,
unsigned
char
**
);
char
*
(
*
d2i
)(
);
void
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
);
char
*
(
*
create
)(
);
void
*
(
*
create
)(
void
);
void
(
*
destroy
)();
void
(
*
destroy
)(
void
*
);
}
ASN1_METHOD
;
}
ASN1_METHOD
;
/* This is used when parsing some Netscape objects */
/* This is used when parsing some Netscape objects */
typedef
struct
asn1_header_st
typedef
struct
asn1_header_st
{
{
ASN1_OCTET_STRING
*
header
;
ASN1_OCTET_STRING
*
header
;
char
*
data
;
void
*
data
;
ASN1_METHOD
*
meth
;
ASN1_METHOD
*
meth
;
}
ASN1_HEADER
;
}
ASN1_HEADER
;
...
@@ -831,11 +835,13 @@ ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s,time_t t);
...
@@ -831,11 +835,13 @@ ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s,time_t t);
int
ASN1_TIME_check
(
ASN1_TIME
*
t
);
int
ASN1_TIME_check
(
ASN1_TIME
*
t
);
ASN1_GENERALIZEDTIME
*
ASN1_TIME_to_generalizedtime
(
ASN1_TIME
*
t
,
ASN1_GENERALIZEDTIME
**
out
);
ASN1_GENERALIZEDTIME
*
ASN1_TIME_to_generalizedtime
(
ASN1_TIME
*
t
,
ASN1_GENERALIZEDTIME
**
out
);
int
i2d_ASN1_SET
(
STACK
*
a
,
unsigned
char
**
pp
,
int
i2d_ASN1_SET
(
STACK
*
a
,
unsigned
char
**
pp
,
int
(
*
func
)(),
int
ex_tag
,
int
ex_class
,
int
is_set
);
int
(
*
func
)(
void
*
,
unsigned
char
**
),
int
ex_tag
,
int
ex_class
,
STACK
*
d2i_ASN1_SET
(
STACK
**
a
,
const
unsigned
char
**
pp
,
long
length
,
int
is_set
);
char
*
(
*
func
)(),
void
(
*
free_func
)(
void
*
),
STACK
*
d2i_ASN1_SET
(
STACK
**
a
,
const
unsigned
char
**
pp
,
long
length
,
int
ex_tag
,
int
ex_class
);
char
*
(
*
func
)(
void
**
,
const
unsigned
char
**
,
long
),
void
(
*
free_func
)(
void
*
),
int
ex_tag
,
int
ex_class
);
#ifndef OPENSSL_NO_BIO
#ifndef OPENSSL_NO_BIO
int
i2a_ASN1_INTEGER
(
BIO
*
bp
,
ASN1_INTEGER
*
a
);
int
i2a_ASN1_INTEGER
(
BIO
*
bp
,
ASN1_INTEGER
*
a
);
...
@@ -889,14 +895,28 @@ int ASN1_put_eoc(unsigned char **pp);
...
@@ -889,14 +895,28 @@ int ASN1_put_eoc(unsigned char **pp);
int
ASN1_object_size
(
int
constructed
,
int
length
,
int
tag
);
int
ASN1_object_size
(
int
constructed
,
int
length
,
int
tag
);
/* Used to implement other functions */
/* Used to implement other functions */
char
*
ASN1_dup
(
int
(
*
i2d
)(),
char
*
(
*
d2i
)(),
char
*
x
);
void
*
ASN1_dup
(
int
(
*
i2d
)(
char
*
,
void
*
),
char
*
(
*
d2i
)(
void
*
,
unsigned
char
**
,
long
),
char
*
x
);
#define ASN1_dup_of(type,i2d,d2i,x) \
((type *(*)(I2D_OF(type),D2I_OF(type),type *))ASN1_dup)(i2d,d2i,x)
#define ASN1_dup_of_const(type,i2d,d2i,x) \
((type *(*)(I2D_OF_const(type),D2I_OF(type),type *))ASN1_dup)(i2d,d2i,x)
void
*
ASN1_item_dup
(
const
ASN1_ITEM
*
it
,
void
*
x
);
void
*
ASN1_item_dup
(
const
ASN1_ITEM
*
it
,
void
*
x
);
#ifndef OPENSSL_NO_FP_API
#ifndef OPENSSL_NO_FP_API
char
*
ASN1_d2i_fp
(
char
*
(
*
xnew
)(),
char
*
(
*
d2i
)(),
FILE
*
fp
,
unsigned
char
**
x
);
void
*
ASN1_d2i_fp
(
void
*
(
*
xnew
)(
void
),
void
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
FILE
*
in
,
void
**
x
);
#define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \
((type *(*)(type *(*)(void),D2I_OF(type),FILE *,type **))ASN1_d2i_fp)(xnew,d2i,in,x)
void
*
ASN1_item_d2i_fp
(
const
ASN1_ITEM
*
it
,
FILE
*
in
,
void
*
x
);
void
*
ASN1_item_d2i_fp
(
const
ASN1_ITEM
*
it
,
FILE
*
in
,
void
*
x
);
int
ASN1_i2d_fp
(
int
(
*
i2d
)(),
FILE
*
out
,
unsigned
char
*
x
);
int
ASN1_i2d_fp
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
FILE
*
out
,
void
*
x
);
#define ASN1_i2d_fp_of(type,i2d,out,x) \
((int (*)(I2D_OF(type),FILE *,type *))ASN1_i2d_fp)(i2d,out,x)
#define ASN1_i2d_fp_of_const(type,i2d,out,x) \
((int (*)(I2D_OF_const(type),FILE *,type *))ASN1_i2d_fp)(i2d,out,x)
int
ASN1_item_i2d_fp
(
const
ASN1_ITEM
*
it
,
FILE
*
out
,
void
*
x
);
int
ASN1_item_i2d_fp
(
const
ASN1_ITEM
*
it
,
FILE
*
out
,
void
*
x
);
int
ASN1_STRING_print_ex_fp
(
FILE
*
fp
,
ASN1_STRING
*
str
,
unsigned
long
flags
);
int
ASN1_STRING_print_ex_fp
(
FILE
*
fp
,
ASN1_STRING
*
str
,
unsigned
long
flags
);
#endif
#endif
...
@@ -904,9 +924,21 @@ int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);
...
@@ -904,9 +924,21 @@ int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);
int
ASN1_STRING_to_UTF8
(
unsigned
char
**
out
,
ASN1_STRING
*
in
);
int
ASN1_STRING_to_UTF8
(
unsigned
char
**
out
,
ASN1_STRING
*
in
);
#ifndef OPENSSL_NO_BIO
#ifndef OPENSSL_NO_BIO
char
*
ASN1_d2i_bio
(
char
*
(
*
xnew
)(),
char
*
(
*
d2i
)(),
BIO
*
bp
,
unsigned
char
**
x
);
char
*
ASN1_d2i_bio
(
void
*
(
*
xnew
)(
void
),
void
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
BIO
*
in
,
void
**
x
);
#define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \
((type *(*)(type *(*)(void),D2I_OF(type),BIO *,type **))ASN1_d2i_bio)(xnew,d2i,in,x)
char
*
ASN1_d2i_bio
(
void
*
(
*
xnew
)(
void
),
void
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
BIO
*
in
,
void
**
x
);
void
*
ASN1_item_d2i_bio
(
const
ASN1_ITEM
*
it
,
BIO
*
in
,
void
*
x
);
void
*
ASN1_item_d2i_bio
(
const
ASN1_ITEM
*
it
,
BIO
*
in
,
void
*
x
);
int
ASN1_i2d_bio
(
int
(
*
i2d
)(),
BIO
*
out
,
unsigned
char
*
x
);
int
ASN1_i2d_bio
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
BIO
*
out
,
unsigned
char
*
x
);
#define ASN1_i2d_bio_of(type,i2d,out,x) \
((int (*)(I2D_OF(type),BIO *,type *))ASN1_i2d_bio)(i2d,out,x)
#define ASN1_i2d_bio_of_const(type,i2d,out,x) \
((int (*)(I2D_OF_const(type),BIO *,type *))ASN1_i2d_bio)(i2d,out,x)
int
ASN1_item_i2d_bio
(
const
ASN1_ITEM
*
it
,
BIO
*
out
,
void
*
x
);
int
ASN1_item_i2d_bio
(
const
ASN1_ITEM
*
it
,
BIO
*
out
,
void
*
x
);
int
ASN1_UTCTIME_print
(
BIO
*
fp
,
ASN1_UTCTIME
*
a
);
int
ASN1_UTCTIME_print
(
BIO
*
fp
,
ASN1_UTCTIME
*
a
);
int
ASN1_GENERALIZEDTIME_print
(
BIO
*
fp
,
ASN1_GENERALIZEDTIME
*
a
);
int
ASN1_GENERALIZEDTIME_print
(
BIO
*
fp
,
ASN1_GENERALIZEDTIME
*
a
);
...
@@ -941,13 +973,19 @@ int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num,
...
@@ -941,13 +973,19 @@ int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num,
int
ASN1_TYPE_get_int_octetstring
(
ASN1_TYPE
*
a
,
long
*
num
,
int
ASN1_TYPE_get_int_octetstring
(
ASN1_TYPE
*
a
,
long
*
num
,
unsigned
char
*
data
,
int
max_len
);
unsigned
char
*
data
,
int
max_len
);
STACK
*
ASN1_seq_unpack
(
const
unsigned
char
*
buf
,
int
len
,
char
*
(
*
d2i
)(),
STACK
*
ASN1_seq_unpack
(
const
unsigned
char
*
buf
,
int
len
,
void
(
*
free_func
)(
void
*
)
);
char
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
unsigned
char
*
ASN1_seq_pack
(
STACK
*
safes
,
int
(
*
i2d
)(),
unsigned
char
**
buf
,
void
(
*
free_func
)(
void
*
));
int
*
len
);
unsigned
char
*
ASN1_seq_pack
(
STACK
*
safes
,
void
*
ASN1_unpack_string
(
ASN1_STRING
*
oct
,
char
*
(
*
d2i
)());
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
unsigned
char
**
buf
,
int
*
len
);
void
*
ASN1_unpack_string
(
ASN1_STRING
*
oct
,
void
*
(
*
d2i
)(
void
*
,
const
unsigned
char
**
,
long
));
void
*
ASN1_item_unpack
(
ASN1_STRING
*
oct
,
const
ASN1_ITEM
*
it
);
void
*
ASN1_item_unpack
(
ASN1_STRING
*
oct
,
const
ASN1_ITEM
*
it
);
ASN1_STRING
*
ASN1_pack_string
(
void
*
obj
,
int
(
*
i2d
)(),
ASN1_OCTET_STRING
**
oct
);
ASN1_STRING
*
ASN1_pack_string
(
void
*
obj
,
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
ASN1_OCTET_STRING
**
oct
);
#define ASN1_pack_string_of(type,obj,i2d,oct) \
((ASN1_STRING *(*)(type *,I2D_OF(type),ASN1_OCTET_STRING **))ASN1_pack_string)(obj,i2d,oct)
ASN1_STRING
*
ASN1_item_pack
(
void
*
obj
,
const
ASN1_ITEM
*
it
,
ASN1_OCTET_STRING
**
oct
);
ASN1_STRING
*
ASN1_item_pack
(
void
*
obj
,
const
ASN1_ITEM
*
it
,
ASN1_OCTET_STRING
**
oct
);
void
ASN1_STRING_set_default_mask
(
unsigned
long
mask
);
void
ASN1_STRING_set_default_mask
(
unsigned
long
mask
);
...
...
crypto/asn1/asn1_gen.c
浏览文件 @
41a15c4f
...
@@ -471,10 +471,12 @@ static ASN1_TYPE *asn1_multi(int utype, const char *section, X509V3_CTX *cnf)
...
@@ -471,10 +471,12 @@ static ASN1_TYPE *asn1_multi(int utype, const char *section, X509V3_CTX *cnf)
is_set
=
0
;
is_set
=
0
;
derlen
=
i2d_ASN1_SET
((
STACK
*
)
sk
,
NULL
,
i2d_ASN1_TYPE
,
utype
,
V_ASN1_UNIVERSAL
,
is_set
);
derlen
=
i2d_ASN1_SET_OF_ASN1_TYPE
(
sk
,
NULL
,
i2d_ASN1_TYPE
,
utype
,
V_ASN1_UNIVERSAL
,
is_set
);
der
=
OPENSSL_malloc
(
derlen
);
der
=
OPENSSL_malloc
(
derlen
);
p
=
der
;
p
=
der
;
i2d_ASN1_SET
((
STACK
*
)
sk
,
&
p
,
i2d_ASN1_TYPE
,
utype
,
V_ASN1_UNIVERSAL
,
is_set
);
i2d_ASN1_SET_OF_ASN1_TYPE
(
sk
,
&
p
,
i2d_ASN1_TYPE
,
utype
,
V_ASN1_UNIVERSAL
,
is_set
);
if
(
!
(
ret
=
ASN1_TYPE_new
()))
if
(
!
(
ret
=
ASN1_TYPE_new
()))
goto
bad
;
goto
bad
;
...
...
crypto/asn1/asn1_mac.h
浏览文件 @
41a15c4f
...
@@ -126,9 +126,9 @@ err:\
...
@@ -126,9 +126,9 @@ err:\
(c.eos=ASN1_const_check_infinite_end(&c.p,c.slen)))
(c.eos=ASN1_const_check_infinite_end(&c.p,c.slen)))
/* Don't use this with d2i_ASN1_BOOLEAN() */
/* Don't use this with d2i_ASN1_BOOLEAN() */
#define M_ASN1_D2I_get(b,func) \
#define M_ASN1_D2I_get(
type,
b,func) \
c.q=c.p; \
c.q=c.p; \
if (
func
(&(b),&c.p,c.slen) == NULL) \
if (
((D2I_OF(type))func)
(&(b),&c.p,c.slen) == NULL) \
{c.line=__LINE__; goto err; } \
{c.line=__LINE__; goto err; } \
c.slen-=(c.p-c.q);
c.slen-=(c.p-c.q);
...
...
crypto/asn1/asn_pack.c
浏览文件 @
41a15c4f
...
@@ -66,8 +66,9 @@
...
@@ -66,8 +66,9 @@
/* Turn an ASN1 encoded SEQUENCE OF into a STACK of structures */
/* Turn an ASN1 encoded SEQUENCE OF into a STACK of structures */
STACK
*
ASN1_seq_unpack
(
const
unsigned
char
*
buf
,
int
len
,
char
*
(
*
d2i
)(),
STACK
*
ASN1_seq_unpack
(
const
unsigned
char
*
buf
,
int
len
,
void
(
*
free_func
)(
void
*
))
char
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
void
(
*
free_func
)(
void
*
))
{
{
STACK
*
sk
;
STACK
*
sk
;
const
unsigned
char
*
pbuf
;
const
unsigned
char
*
pbuf
;
...
@@ -82,8 +83,8 @@ STACK *ASN1_seq_unpack(const unsigned char *buf, int len, char *(*d2i)(),
...
@@ -82,8 +83,8 @@ STACK *ASN1_seq_unpack(const unsigned char *buf, int len, char *(*d2i)(),
* OPENSSL_malloc'ed buffer
* OPENSSL_malloc'ed buffer
*/
*/
unsigned
char
*
ASN1_seq_pack
(
STACK
*
safes
,
int
(
*
i2d
)(
),
unsigned
char
**
buf
,
unsigned
char
*
ASN1_seq_pack
(
STACK
*
safes
,
int
(
*
i2d
)(
void
*
,
unsigned
char
**
)
,
int
*
len
)
unsigned
char
**
buf
,
int
*
len
)
{
{
int
safelen
;
int
safelen
;
unsigned
char
*
safe
,
*
p
;
unsigned
char
*
safe
,
*
p
;
...
@@ -106,9 +107,10 @@ unsigned char *ASN1_seq_pack(STACK *safes, int (*i2d)(), unsigned char **buf,
...
@@ -106,9 +107,10 @@ unsigned char *ASN1_seq_pack(STACK *safes, int (*i2d)(), unsigned char **buf,
/* Extract an ASN1 object from an ASN1_STRING */
/* Extract an ASN1 object from an ASN1_STRING */
void
*
ASN1_unpack_string
(
ASN1_STRING
*
oct
,
char
*
(
*
d2i
)())
void
*
ASN1_unpack_string
(
ASN1_STRING
*
oct
,
void
*
(
*
d2i
)(
void
*
,
const
unsigned
char
**
,
long
))
{
{
unsigned
char
*
p
;
const
unsigned
char
*
p
;
char
*
ret
;
char
*
ret
;
p
=
oct
->
data
;
p
=
oct
->
data
;
...
@@ -119,7 +121,8 @@ void *ASN1_unpack_string (ASN1_STRING *oct, char *(*d2i)())
...
@@ -119,7 +121,8 @@ void *ASN1_unpack_string (ASN1_STRING *oct, char *(*d2i)())
/* Pack an ASN1 object into an ASN1_STRING */
/* Pack an ASN1 object into an ASN1_STRING */
ASN1_STRING
*
ASN1_pack_string
(
void
*
obj
,
int
(
*
i2d
)(),
ASN1_STRING
**
oct
)
ASN1_STRING
*
ASN1_pack_string
(
void
*
obj
,
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
ASN1_STRING
**
oct
)
{
{
unsigned
char
*
p
;
unsigned
char
*
p
;
ASN1_STRING
*
octmp
;
ASN1_STRING
*
octmp
;
...
...
crypto/asn1/n_pkey.c
浏览文件 @
41a15c4f
...
@@ -107,14 +107,20 @@ DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY,NETSCAPE_PKEY)
...
@@ -107,14 +107,20 @@ DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY,NETSCAPE_PKEY)
IMPLEMENT_ASN1_FUNCTIONS_const
(
NETSCAPE_PKEY
)
IMPLEMENT_ASN1_FUNCTIONS_const
(
NETSCAPE_PKEY
)
static
RSA
*
d2i_RSA_NET_2
(
RSA
**
a
,
ASN1_OCTET_STRING
*
os
,
static
RSA
*
d2i_RSA_NET_2
(
RSA
**
a
,
ASN1_OCTET_STRING
*
os
,
int
(
*
cb
)(),
int
sgckey
);
int
(
*
cb
)(
char
*
buf
,
int
len
,
const
char
*
prompt
,
int
verify
),
int
sgckey
);
int
i2d_Netscape_RSA
(
const
RSA
*
a
,
unsigned
char
**
pp
,
int
(
*
cb
)())
int
i2d_Netscape_RSA
(
const
RSA
*
a
,
unsigned
char
**
pp
,
int
(
*
cb
)(
char
*
buf
,
int
len
,
const
char
*
prompt
,
int
verify
))
{
{
return
i2d_RSA_NET
(
a
,
pp
,
cb
,
0
);
return
i2d_RSA_NET
(
a
,
pp
,
cb
,
0
);
}
}
int
i2d_RSA_NET
(
const
RSA
*
a
,
unsigned
char
**
pp
,
int
(
*
cb
)(),
int
sgckey
)
int
i2d_RSA_NET
(
const
RSA
*
a
,
unsigned
char
**
pp
,
int
(
*
cb
)(
char
*
buf
,
int
len
,
const
char
*
prompt
,
int
verify
),
int
sgckey
)
{
{
int
i
,
j
,
ret
=
0
;
int
i
,
j
,
ret
=
0
;
int
rsalen
,
pkeylen
,
olen
;
int
rsalen
,
pkeylen
,
olen
;
...
@@ -224,12 +230,16 @@ err:
...
@@ -224,12 +230,16 @@ err:
}
}
RSA
*
d2i_Netscape_RSA
(
RSA
**
a
,
const
unsigned
char
**
pp
,
long
length
,
int
(
*
cb
)())
RSA
*
d2i_Netscape_RSA
(
RSA
**
a
,
const
unsigned
char
**
pp
,
long
length
,
int
(
*
cb
)(
char
*
buf
,
int
len
,
const
char
*
prompt
,
int
verify
))
{
{
return
d2i_RSA_NET
(
a
,
pp
,
length
,
cb
,
0
);
return
d2i_RSA_NET
(
a
,
pp
,
length
,
cb
,
0
);
}
}
RSA
*
d2i_RSA_NET
(
RSA
**
a
,
const
unsigned
char
**
pp
,
long
length
,
int
(
*
cb
)(),
int
sgckey
)
RSA
*
d2i_RSA_NET
(
RSA
**
a
,
const
unsigned
char
**
pp
,
long
length
,
int
(
*
cb
)(
char
*
buf
,
int
len
,
const
char
*
prompt
,
int
verify
),
int
sgckey
)
{
{
RSA
*
ret
=
NULL
;
RSA
*
ret
=
NULL
;
const
unsigned
char
*
p
,
*
kp
;
const
unsigned
char
*
p
,
*
kp
;
...
@@ -269,7 +279,8 @@ RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, int (*cb)(), in
...
@@ -269,7 +279,8 @@ RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, int (*cb)(), in
}
}
static
RSA
*
d2i_RSA_NET_2
(
RSA
**
a
,
ASN1_OCTET_STRING
*
os
,
static
RSA
*
d2i_RSA_NET_2
(
RSA
**
a
,
ASN1_OCTET_STRING
*
os
,
int
(
*
cb
)(),
int
sgckey
)
int
(
*
cb
)(
char
*
buf
,
int
len
,
const
char
*
prompt
,
int
verify
),
int
sgckey
)
{
{
NETSCAPE_PKEY
*
pkey
=
NULL
;
NETSCAPE_PKEY
*
pkey
=
NULL
;
RSA
*
ret
=
NULL
;
RSA
*
ret
=
NULL
;
...
...
crypto/asn1/p5_pbe.c
浏览文件 @
41a15c4f
...
@@ -106,7 +106,8 @@ X509_ALGOR *PKCS5_pbe_set(int alg, int iter, unsigned char *salt,
...
@@ -106,7 +106,8 @@ X509_ALGOR *PKCS5_pbe_set(int alg, int iter, unsigned char *salt,
}
}
astype
->
type
=
V_ASN1_SEQUENCE
;
astype
->
type
=
V_ASN1_SEQUENCE
;
if
(
!
ASN1_pack_string
(
pbe
,
i2d_PBEPARAM
,
&
astype
->
value
.
sequence
))
{
if
(
!
ASN1_pack_string_of
(
PBEPARAM
,
pbe
,
i2d_PBEPARAM
,
&
astype
->
value
.
sequence
))
{
ASN1err
(
ASN1_F_ASN1_PBE_SET
,
ERR_R_MALLOC_FAILURE
);
ASN1err
(
ASN1_F_ASN1_PBE_SET
,
ERR_R_MALLOC_FAILURE
);
goto
err
;
goto
err
;
}
}
...
...
crypto/asn1/p5_pbev2.c
浏览文件 @
41a15c4f
...
@@ -164,7 +164,7 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
...
@@ -164,7 +164,7 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
if
(
!
(
pbe2
->
keyfunc
->
parameter
=
ASN1_TYPE_new
()))
goto
merr
;
if
(
!
(
pbe2
->
keyfunc
->
parameter
=
ASN1_TYPE_new
()))
goto
merr
;
if
(
!
ASN1_pack_string
(
kdf
,
i2d_PBKDF2PARAM
,
if
(
!
ASN1_pack_string
_of
(
PBKDF2PARAM
,
kdf
,
i2d_PBKDF2PARAM
,
&
pbe2
->
keyfunc
->
parameter
->
value
.
sequence
))
goto
merr
;
&
pbe2
->
keyfunc
->
parameter
->
value
.
sequence
))
goto
merr
;
pbe2
->
keyfunc
->
parameter
->
type
=
V_ASN1_SEQUENCE
;
pbe2
->
keyfunc
->
parameter
->
type
=
V_ASN1_SEQUENCE
;
...
@@ -180,7 +180,7 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
...
@@ -180,7 +180,7 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
/* Encode PBE2PARAM into parameter */
/* Encode PBE2PARAM into parameter */
if
(
!
ASN1_pack_string
(
pbe2
,
i2d_PBE2PARAM
,
if
(
!
ASN1_pack_string
_of
(
PBE2PARAM
,
pbe2
,
i2d_PBE2PARAM
,
&
ret
->
parameter
->
value
.
sequence
))
goto
merr
;
&
ret
->
parameter
->
value
.
sequence
))
goto
merr
;
ret
->
parameter
->
type
=
V_ASN1_SEQUENCE
;
ret
->
parameter
->
type
=
V_ASN1_SEQUENCE
;
...
...
crypto/asn1/x_pkey.c
浏览文件 @
41a15c4f
...
@@ -76,8 +76,8 @@ X509_PKEY *d2i_X509_PKEY(X509_PKEY **a, const unsigned char **pp, long length)
...
@@ -76,8 +76,8 @@ X509_PKEY *d2i_X509_PKEY(X509_PKEY **a, const unsigned char **pp, long length)
M_ASN1_D2I_Init
();
M_ASN1_D2I_Init
();
M_ASN1_D2I_start_sequence
();
M_ASN1_D2I_start_sequence
();
M_ASN1_D2I_get
(
ret
->
enc_algor
,
d2i_X509_ALGOR
);
M_ASN1_D2I_get
(
X509_ALGOR
,
ret
->
enc_algor
,
d2i_X509_ALGOR
);
M_ASN1_D2I_get
(
ret
->
enc_pkey
,
d2i_ASN1_OCTET_STRING
);
M_ASN1_D2I_get
(
ASN1_OCTET_STRING
,
ret
->
enc_pkey
,
d2i_ASN1_OCTET_STRING
);
ret
->
cipher
.
cipher
=
EVP_get_cipherbyname
(
ret
->
cipher
.
cipher
=
EVP_get_cipherbyname
(
OBJ_nid2ln
(
OBJ_obj2nid
(
ret
->
enc_algor
->
algorithm
)));
OBJ_nid2ln
(
OBJ_obj2nid
(
ret
->
enc_algor
->
algorithm
)));
...
...
crypto/asn1/x_x509.c
浏览文件 @
41a15c4f
...
@@ -128,11 +128,13 @@ ASN1_SEQUENCE_ref(X509, x509_cb, CRYPTO_LOCK_X509) = {
...
@@ -128,11 +128,13 @@ ASN1_SEQUENCE_ref(X509, x509_cb, CRYPTO_LOCK_X509) = {
IMPLEMENT_ASN1_FUNCTIONS
(
X509
)
IMPLEMENT_ASN1_FUNCTIONS
(
X509
)
IMPLEMENT_ASN1_DUP_FUNCTION
(
X509
)
IMPLEMENT_ASN1_DUP_FUNCTION
(
X509
)
static
ASN1_METHOD
meth
=
{
static
ASN1_METHOD
meth
=
(
int
(
*
)())
i2d_X509
,
{
(
char
*
(
*
)())
d2i_X509
,
(
I2D_OF
(
void
))
i2d_X509
,
(
char
*
(
*
)())
X509_new
,
(
D2I_OF
(
void
))
d2i_X509
,
(
void
(
*
)())
X509_free
};
(
void
*
(
*
)(
void
))
X509_new
,
(
void
(
*
)(
void
*
))
X509_free
};
ASN1_METHOD
*
X509_asn1_meth
(
void
)
ASN1_METHOD
*
X509_asn1_meth
(
void
)
{
{
...
...
crypto/bio/bss_conn.c
浏览文件 @
41a15c4f
...
@@ -590,9 +590,9 @@ static long conn_ctrl(BIO *b, int cmd, long num, void *ptr)
...
@@ -590,9 +590,9 @@ static long conn_ctrl(BIO *b, int cmd, long num, void *ptr)
break
;
break
;
case
BIO_CTRL_GET_CALLBACK
:
case
BIO_CTRL_GET_CALLBACK
:
{
{
int
(
**
fptr
)();
int
(
**
fptr
)(
const
BIO
*
bio
,
int
state
,
int
ret
);
fptr
=
(
int
(
**
)())
ptr
;
fptr
=
(
int
(
**
)(
const
BIO
*
bio
,
int
state
,
int
ret
))
ptr
;
*
fptr
=
data
->
info_callback
;
*
fptr
=
data
->
info_callback
;
}
}
break
;
break
;
...
...
crypto/dh/dh.h
浏览文件 @
41a15c4f
...
@@ -142,21 +142,13 @@ struct dh_st
...
@@ -142,21 +142,13 @@ struct dh_st
this for backward compatibility: */
this for backward compatibility: */
#define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME
#define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME
#define DHparams_dup(x) (DH *)ASN1_dup((int (*)())i2d_DHparams, \
#define DHparams_dup(x) ASN1_dup_of_const(DH,i2d_DHparams,d2i_DHparams,x)
(char *(*)())d2i_DHparams,(char *)(x))
#define d2i_DHparams_fp(fp,x) (DH *)ASN1_d2i_fp((char *(*)())DH_new, \
#define d2i_DHparams_fp(fp,x) (DH *)ASN1_d2i_fp((char *(*)())DH_new, \
(char *(*)())d2i_DHparams,(fp),(unsigned char **)(x))
(char *(*)())d2i_DHparams,(fp),(unsigned char **)(x))
#define i2d_DHparams_fp(fp,x) ASN1_i2d_fp(i2d_DHparams,(fp), \
#define i2d_DHparams_fp(fp,x) ASN1_i2d_fp(i2d_DHparams,(fp), \
(unsigned char *)(x))
(unsigned char *)(x))
#define d2i_DHparams_bio(bp,x) (DH *)ASN1_d2i_bio((char *(*)())DH_new, \
#define d2i_DHparams_bio(bp,x) ASN1_d2i_bio_of(DH,DH_new,d2i_DHparams,bp,x)
(char *(*)())d2i_DHparams,(bp),(unsigned char **)(x))
#define i2d_DHparams_bio(bp,x) ASN1_i2d_bio_of_const(DH,i2d_DHparams,bp,x)
#ifdef __cplusplus
#define i2d_DHparams_bio(bp,x) ASN1_i2d_bio((int (*)())i2d_DHparams,(bp), \
(unsigned char *)(x))
#else
#define i2d_DHparams_bio(bp,x) ASN1_i2d_bio(i2d_DHparams,(bp), \
(unsigned char *)(x))
#endif
const
DH_METHOD
*
DH_OpenSSL
(
void
);
const
DH_METHOD
*
DH_OpenSSL
(
void
);
...
...
crypto/dsa/dsa.h
浏览文件 @
41a15c4f
...
@@ -154,16 +154,13 @@ struct dsa_st
...
@@ -154,16 +154,13 @@ struct dsa_st
ENGINE
*
engine
;
ENGINE
*
engine
;
};
};
#define DSAparams_dup(x) (DSA *)ASN1_dup((int (*)())i2d_DSAparams, \
#define DSAparams_dup(x) ASN1_dup_of_const(DSA,i2d_DSAparams,d2i_DSAparams,x)
(char *(*)())d2i_DSAparams,(char *)(x))
#define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \
#define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \
(char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x))
(char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x))
#define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), \
#define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), \
(unsigned char *)(x))
(unsigned char *)(x))
#define d2i_DSAparams_bio(bp,x) (DSA *)ASN1_d2i_bio((char *(*)())DSA_new, \
#define d2i_DSAparams_bio(bp,x) ASN1_d2i_bio_of(DSA,DSA_new,d2i_DSAparams,bp,x)
(char *(*)())d2i_DSAparams,(bp),(unsigned char **)(x))
#define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio_of_const(DSA,i2d_DSAparams,bp,x)
#define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio(i2d_DSAparams,(bp), \
(unsigned char *)(x))
DSA_SIG
*
DSA_SIG_new
(
void
);
DSA_SIG
*
DSA_SIG_new
(
void
);
...
...
crypto/ec/ec.h
浏览文件 @
41a15c4f
...
@@ -277,10 +277,8 @@ typedef struct ecpk_parameters_st ECPKPARAMETERS;
...
@@ -277,10 +277,8 @@ typedef struct ecpk_parameters_st ECPKPARAMETERS;
EC_GROUP
*
d2i_ECPKParameters
(
EC_GROUP
**
,
const
unsigned
char
**
in
,
long
len
);
EC_GROUP
*
d2i_ECPKParameters
(
EC_GROUP
**
,
const
unsigned
char
**
in
,
long
len
);
int
i2d_ECPKParameters
(
const
EC_GROUP
*
,
unsigned
char
**
out
);
int
i2d_ECPKParameters
(
const
EC_GROUP
*
,
unsigned
char
**
out
);
#define d2i_ECPKParameters_bio(bp,x) (EC_GROUP *)ASN1_d2i_bio(NULL, \
#define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x)
(char *(*)())d2i_ECPKParameters,(bp),(unsigned char **)(x))
#define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x)
#define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio(i2d_ECPKParameters,(bp), \
(unsigned char *)(x))
#define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \
#define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \
(char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x))
(char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x))
#define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \
#define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \
...
@@ -351,8 +349,7 @@ int ECParameters_print_fp(FILE *fp, const EC_KEY *x);
...
@@ -351,8 +349,7 @@ int ECParameters_print_fp(FILE *fp, const EC_KEY *x);
int
EC_KEY_print_fp
(
FILE
*
fp
,
const
EC_KEY
*
x
,
int
off
);
int
EC_KEY_print_fp
(
FILE
*
fp
,
const
EC_KEY
*
x
,
int
off
);
#endif
#endif
#define ECParameters_dup(x) (EC_KEY *)ASN1_dup((int (*)())i2d_ECParameters,\
#define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x)
(char *(*)())d2i_ECParameters,(char *)(x))
/* BEGIN ERROR CODES */
/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
/* The following lines are auto generated by the script mkerr.pl. Any changes
...
...
crypto/engine/eng_ctrl.c
浏览文件 @
41a15c4f
...
@@ -100,7 +100,8 @@ static int int_ctrl_cmd_by_num(const ENGINE_CMD_DEFN *defn, unsigned int num)
...
@@ -100,7 +100,8 @@ static int int_ctrl_cmd_by_num(const ENGINE_CMD_DEFN *defn, unsigned int num)
return
-
1
;
return
-
1
;
}
}
static
int
int_ctrl_helper
(
ENGINE
*
e
,
int
cmd
,
long
i
,
void
*
p
,
void
(
*
f
)())
static
int
int_ctrl_helper
(
ENGINE
*
e
,
int
cmd
,
long
i
,
void
*
p
,
void
(
*
f
)(
void
))
{
{
int
idx
;
int
idx
;
char
*
s
=
(
char
*
)
p
;
char
*
s
=
(
char
*
)
p
;
...
...
crypto/engine/enginetest.c
浏览文件 @
41a15c4f
...
@@ -72,7 +72,7 @@ int main(int argc, char *argv[])
...
@@ -72,7 +72,7 @@ int main(int argc, char *argv[])
#include <openssl/engine.h>
#include <openssl/engine.h>
#include <openssl/err.h>
#include <openssl/err.h>
static
void
display_engine_list
()
static
void
display_engine_list
(
void
)
{
{
ENGINE
*
h
;
ENGINE
*
h
;
int
loop
;
int
loop
;
...
...
crypto/err/err.c
浏览文件 @
41a15c4f
...
@@ -541,7 +541,7 @@ static ERR_STRING_DATA SYS_str_reasons[NUM_SYS_STR_REASONS + 1];
...
@@ -541,7 +541,7 @@ static ERR_STRING_DATA SYS_str_reasons[NUM_SYS_STR_REASONS + 1];
* will be returned for SYSerr(), which always gets an errno
* will be returned for SYSerr(), which always gets an errno
* value and never one of those 'standard' reason codes. */
* value and never one of those 'standard' reason codes. */
static
void
build_SYS_str_reasons
()
static
void
build_SYS_str_reasons
(
void
)
{
{
/* OPENSSL_malloc cannot be used here, use static storage instead */
/* OPENSSL_malloc cannot be used here, use static storage instead */
static
char
strerror_tab
[
NUM_SYS_STR_REASONS
][
LEN_SYS_STR_REASON
];
static
char
strerror_tab
[
NUM_SYS_STR_REASONS
][
LEN_SYS_STR_REASON
];
...
...
crypto/evp/evp.h
浏览文件 @
41a15c4f
...
@@ -233,20 +233,31 @@ struct env_md_st
...
@@ -233,20 +233,31 @@ struct env_md_st
int
(
*
cleanup
)(
EVP_MD_CTX
*
ctx
);
int
(
*
cleanup
)(
EVP_MD_CTX
*
ctx
);
/* FIXME: prototype these some day */
/* FIXME: prototype these some day */
int
(
*
sign
)();
int
(
*
sign
)(
int
type
,
const
unsigned
char
*
m
,
unsigned
int
m_length
,
int
(
*
verify
)();
unsigned
char
*
sigret
,
unsigned
int
*
siglen
,
void
*
key
);
int
(
*
verify
)(
int
type
,
const
unsigned
char
*
m
,
unsigned
int
m_length
,
const
unsigned
char
*
sigbuf
,
unsigned
int
siglen
,
void
*
key
);
int
required_pkey_type
[
5
];
/*EVP_PKEY_xxx */
int
required_pkey_type
[
5
];
/*EVP_PKEY_xxx */
int
block_size
;
int
block_size
;
int
ctx_size
;
/* how big does the ctx->md_data need to be */
int
ctx_size
;
/* how big does the ctx->md_data need to be */
}
/* EVP_MD */
;
}
/* EVP_MD */
;
typedef
int
evp_sign_method
(
int
type
,
const
unsigned
char
*
m
,
unsigned
int
m_length
,
unsigned
char
*
sigret
,
unsigned
int
*
siglen
,
void
*
key
);
typedef
int
evp_verify_method
(
int
type
,
const
unsigned
char
*
m
,
unsigned
int
m_length
,
const
unsigned
char
*
sigbuf
,
unsigned
int
siglen
,
void
*
key
);
#define EVP_MD_FLAG_ONESHOT 0x0001
/* digest can only handle a single
#define EVP_MD_FLAG_ONESHOT 0x0001
/* digest can only handle a single
* block */
* block */
#define EVP_PKEY_NULL_method NULL,NULL,{0,0,0,0}
#define EVP_PKEY_NULL_method NULL,NULL,{0,0,0,0}
#ifndef OPENSSL_NO_DSA
#ifndef OPENSSL_NO_DSA
#define EVP_PKEY_DSA_method DSA_sign,DSA_verify, \
#define EVP_PKEY_DSA_method (evp_sign_method *)DSA_sign, \
(evp_verify_method *)DSA_verify, \
{EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3, \
{EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3, \
EVP_PKEY_DSA4,0}
EVP_PKEY_DSA4,0}
#else
#else
...
@@ -254,14 +265,16 @@ struct env_md_st
...
@@ -254,14 +265,16 @@ struct env_md_st
#endif
#endif
#ifndef OPENSSL_NO_ECDSA
#ifndef OPENSSL_NO_ECDSA
#define EVP_PKEY_ECDSA_method ECDSA_sign,ECDSA_verify, \
#define EVP_PKEY_ECDSA_method (evp_sign_method *)ECDSA_sign, \
(evp_verify_method *)ECDSA_verify, \
{EVP_PKEY_EC,0,0,0}
{EVP_PKEY_EC,0,0,0}
#else
#else
#define EVP_PKEY_ECDSA_method EVP_PKEY_NULL_method
#define EVP_PKEY_ECDSA_method EVP_PKEY_NULL_method
#endif
#endif
#ifndef OPENSSL_NO_RSA
#ifndef OPENSSL_NO_RSA
#define EVP_PKEY_RSA_method RSA_sign,RSA_verify, \
#define EVP_PKEY_RSA_method (evp_sign_method *)RSA_sign, \
(evp_verify_method *)RSA_verify, \
{EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0}
{EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0}
#define EVP_PKEY_RSA_ASN1_OCTET_STRING_method \
#define EVP_PKEY_RSA_ASN1_OCTET_STRING_method \
RSA_sign_ASN1_OCTET_STRING, \
RSA_sign_ASN1_OCTET_STRING, \
...
...
crypto/evp/evp_pkey.c
浏览文件 @
41a15c4f
...
@@ -360,7 +360,7 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken)
...
@@ -360,7 +360,7 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken)
p8
->
pkeyalg
->
algorithm
=
OBJ_nid2obj
(
NID_rsaEncryption
);
p8
->
pkeyalg
->
algorithm
=
OBJ_nid2obj
(
NID_rsaEncryption
);
p8
->
pkeyalg
->
parameter
->
type
=
V_ASN1_NULL
;
p8
->
pkeyalg
->
parameter
->
type
=
V_ASN1_NULL
;
if
(
!
ASN1_pack_string
((
char
*
)
pkey
,
i2d_PrivateKey
,
if
(
!
ASN1_pack_string
_of
(
EVP_PKEY
,
pkey
,
i2d_PrivateKey
,
&
p8
->
pkey
->
value
.
octet_string
))
{
&
p8
->
pkey
->
value
.
octet_string
))
{
EVPerr
(
EVP_F_EVP_PKEY2PKCS8
,
ERR_R_MALLOC_FAILURE
);
EVPerr
(
EVP_F_EVP_PKEY2PKCS8
,
ERR_R_MALLOC_FAILURE
);
PKCS8_PRIV_KEY_INFO_free
(
p8
);
PKCS8_PRIV_KEY_INFO_free
(
p8
);
...
@@ -458,7 +458,7 @@ static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
...
@@ -458,7 +458,7 @@ static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
case
PKCS8_OK
:
case
PKCS8_OK
:
case
PKCS8_NO_OCTET
:
case
PKCS8_NO_OCTET
:
if
(
!
ASN1_pack_string
((
char
*
)
prkey
,
i2d_ASN1_INTEGER
,
if
(
!
ASN1_pack_string
_of
(
ASN1_INTEGER
,
prkey
,
i2d_ASN1_INTEGER
,
&
p8
->
pkey
->
value
.
octet_string
))
{
&
p8
->
pkey
->
value
.
octet_string
))
{
EVPerr
(
EVP_F_EVP_PKEY2PKCS8
,
ERR_R_MALLOC_FAILURE
);
EVPerr
(
EVP_F_EVP_PKEY2PKCS8
,
ERR_R_MALLOC_FAILURE
);
goto
err
;
goto
err
;
...
...
crypto/lhash/lhash.c
浏览文件 @
41a15c4f
...
@@ -401,7 +401,7 @@ static LHASH_NODE **getrn(LHASH *lh, const void *data, unsigned long *rhash)
...
@@ -401,7 +401,7 @@ static LHASH_NODE **getrn(LHASH *lh, const void *data, unsigned long *rhash)
{
{
LHASH_NODE
**
ret
,
*
n1
;
LHASH_NODE
**
ret
,
*
n1
;
unsigned
long
hash
,
nn
;
unsigned
long
hash
,
nn
;
int
(
*
cf
)()
;
LHASH_COMP_FN_TYPE
cf
;
hash
=
(
*
(
lh
->
hash
))(
data
);
hash
=
(
*
(
lh
->
hash
))(
data
);
lh
->
num_hash_calls
++
;
lh
->
num_hash_calls
++
;
...
...
crypto/ocsp/ocsp.h
浏览文件 @
41a15c4f
...
@@ -349,13 +349,9 @@ typedef struct ocsp_service_locator_st
...
@@ -349,13 +349,9 @@ typedef struct ocsp_service_locator_st
#define PEM_STRING_OCSP_REQUEST "OCSP REQUEST"
#define PEM_STRING_OCSP_REQUEST "OCSP REQUEST"
#define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE"
#define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE"
#define d2i_OCSP_REQUEST_bio(bp,p) (OCSP_REQUEST*)ASN1_d2i_bio((char*(*)()) \
#define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p)
OCSP_REQUEST_new,(char *(*)())d2i_OCSP_REQUEST, (bp),\
(unsigned char **)(p))
#define d2i_OCSP_RESPONSE_bio(bp,p) (OCSP_RESPONSE*)ASN1_d2i_bio((char*(*)())\
#define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p)
OCSP_REQUEST_new,(char *(*)())d2i_OCSP_RESPONSE, (bp),\
(unsigned char **)(p))
#define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \
#define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \
(char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,bp,(char **)x,cb,NULL)
(char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,bp,(char **)x,cb,NULL)
...
@@ -371,11 +367,9 @@ typedef struct ocsp_service_locator_st
...
@@ -371,11 +367,9 @@ typedef struct ocsp_service_locator_st
PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\
PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\
bp,(char *)o, NULL,NULL,0,NULL,NULL)
bp,(char *)o, NULL,NULL,0,NULL,NULL)
#define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio(i2d_OCSP_RESPONSE,bp,\
#define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o)
(unsigned char *)o)
#define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio(i2d_OCSP_REQUEST,bp,\
#define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o)
(unsigned char *)o)
#define OCSP_REQUEST_sign(o,pkey,md) \
#define OCSP_REQUEST_sign(o,pkey,md) \
ASN1_item_sign(ASN1_ITEM_rptr(OCSP_REQINFO),\
ASN1_item_sign(ASN1_ITEM_rptr(OCSP_REQINFO),\
...
@@ -396,8 +390,7 @@ typedef struct ocsp_service_locator_st
...
@@ -396,8 +390,7 @@ typedef struct ocsp_service_locator_st
#define ASN1_BIT_STRING_digest(data,type,md,len) \
#define ASN1_BIT_STRING_digest(data,type,md,len) \
ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len)
ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len)
#define OCSP_CERTID_dup(cid) (OCSP_CERTID*)ASN1_dup((int(*)())i2d_OCSP_CERTID,\
#define OCSP_CERTID_dup(cid) ASN1_dup_of(OCSP_CERTID,i2d_OCSP_CERTID,d2i_OCSP_CERTID,cid)
(char *(*)())d2i_OCSP_CERTID,(char *)(cid))
#define OCSP_CERTSTATUS_dup(cs)\
#define OCSP_CERTSTATUS_dup(cs)\
(OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\
(OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\
...
@@ -473,8 +466,11 @@ int OCSP_basic_sign(OCSP_BASICRESP *brsp,
...
@@ -473,8 +466,11 @@ int OCSP_basic_sign(OCSP_BASICRESP *brsp,
X509
*
signer
,
EVP_PKEY
*
key
,
const
EVP_MD
*
dgst
,
X509
*
signer
,
EVP_PKEY
*
key
,
const
EVP_MD
*
dgst
,
STACK_OF
(
X509
)
*
certs
,
unsigned
long
flags
);
STACK_OF
(
X509
)
*
certs
,
unsigned
long
flags
);
ASN1_STRING
*
ASN1_STRING_encode
(
ASN1_STRING
*
s
,
int
(
*
i2d
)(),
ASN1_STRING
*
ASN1_STRING_encode
(
ASN1_STRING
*
s
,
char
*
data
,
STACK_OF
(
ASN1_OBJECT
)
*
sk
);
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
void
*
data
,
STACK_OF
(
ASN1_OBJECT
)
*
sk
);
#define ASN1_STRING_encode_of(type,s,i2d,data,sk) \
((ASN1_STRING *(*)(ASN1_STRING *,I2D_OF(type),type *,STACK_OF(ASN1_OBJECT) *))ASN1_STRING_encode)(s,i2d,data,sk)
X509_EXTENSION
*
OCSP_crlID_new
(
char
*
url
,
long
*
n
,
char
*
tim
);
X509_EXTENSION
*
OCSP_crlID_new
(
char
*
url
,
long
*
n
,
char
*
tim
);
...
...
crypto/ocsp/ocsp_ext.c
浏览文件 @
41a15c4f
...
@@ -265,8 +265,9 @@ int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc)
...
@@ -265,8 +265,9 @@ int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc)
/* also CRL Entry Extensions */
/* also CRL Entry Extensions */
ASN1_STRING
*
ASN1_STRING_encode
(
ASN1_STRING
*
s
,
int
(
*
i2d
)(),
ASN1_STRING
*
ASN1_STRING_encode
(
ASN1_STRING
*
s
,
char
*
data
,
STACK_OF
(
ASN1_OBJECT
)
*
sk
)
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
void
*
data
,
STACK_OF
(
ASN1_OBJECT
)
*
sk
)
{
{
int
i
;
int
i
;
unsigned
char
*
p
,
*
b
=
NULL
;
unsigned
char
*
p
,
*
b
=
NULL
;
...
@@ -274,18 +275,23 @@ ASN1_STRING *ASN1_STRING_encode(ASN1_STRING *s, int (*i2d)(),
...
@@ -274,18 +275,23 @@ ASN1_STRING *ASN1_STRING_encode(ASN1_STRING *s, int (*i2d)(),
if
(
data
)
if
(
data
)
{
{
if
((
i
=
i2d
(
data
,
NULL
))
<=
0
)
goto
err
;
if
((
i
=
i2d
(
data
,
NULL
))
<=
0
)
goto
err
;
if
(
!
(
b
=
p
=
(
unsigned
char
*
)
OPENSSL_malloc
((
unsigned
int
)
i
)))
if
(
!
(
b
=
p
=
OPENSSL_malloc
((
unsigned
int
)
i
)))
goto
err
;
goto
err
;
if
(
i2d
(
data
,
&
p
)
<=
0
)
goto
err
;
if
(
i2d
(
data
,
&
p
)
<=
0
)
goto
err
;
}
}
else
if
(
sk
)
else
if
(
sk
)
{
{
if
((
i
=
i2d_ASN1_SET_OF_ASN1_OBJECT
(
sk
,
NULL
,
i2d
,
V_ASN1_SEQUENCE
,
if
((
i
=
i2d_ASN1_SET_OF_ASN1_OBJECT
(
sk
,
NULL
,
V_ASN1_UNIVERSAL
,
IS_SEQUENCE
))
<=
0
)
goto
err
;
(
I2D_OF
(
ASN1_OBJECT
))
i2d
,
if
(
!
(
b
=
p
=
(
unsigned
char
*
)
OPENSSL_malloc
((
unsigned
int
)
i
)))
V_ASN1_SEQUENCE
,
V_ASN1_UNIVERSAL
,
IS_SEQUENCE
))
<=
0
)
goto
err
;
if
(
!
(
b
=
p
=
OPENSSL_malloc
((
unsigned
int
)
i
)))
goto
err
;
goto
err
;
if
(
i2d_ASN1_SET_OF_ASN1_OBJECT
(
sk
,
&
p
,
i2d
,
V_ASN1_SEQUENCE
,
if
(
i2d_ASN1_SET_OF_ASN1_OBJECT
(
sk
,
&
p
,(
I2D_OF
(
ASN1_OBJECT
))
i2d
,
V_ASN1_UNIVERSAL
,
IS_SEQUENCE
)
<=
0
)
goto
err
;
V_ASN1_SEQUENCE
,
V_ASN1_UNIVERSAL
,
IS_SEQUENCE
)
<=
0
)
goto
err
;
}
}
else
else
{
{
...
@@ -439,7 +445,8 @@ X509_EXTENSION *OCSP_crlID_new(char *url, long *n, char *tim)
...
@@ -439,7 +445,8 @@ X509_EXTENSION *OCSP_crlID_new(char *url, long *n, char *tim)
}
}
if
(
!
(
x
=
X509_EXTENSION_new
()))
goto
err
;
if
(
!
(
x
=
X509_EXTENSION_new
()))
goto
err
;
if
(
!
(
x
->
object
=
OBJ_nid2obj
(
NID_id_pkix_OCSP_CrlID
)))
goto
err
;
if
(
!
(
x
->
object
=
OBJ_nid2obj
(
NID_id_pkix_OCSP_CrlID
)))
goto
err
;
if
(
!
(
ASN1_STRING_encode
(
x
->
value
,
i2d_OCSP_CRLID
,(
char
*
)
cid
,
NULL
)))
if
(
!
(
ASN1_STRING_encode_of
(
OCSP_CRLID
,
x
->
value
,
i2d_OCSP_CRLID
,
cid
,
NULL
)))
goto
err
;
goto
err
;
OCSP_CRLID_free
(
cid
);
OCSP_CRLID_free
(
cid
);
return
x
;
return
x
;
...
@@ -467,7 +474,8 @@ X509_EXTENSION *OCSP_accept_responses_new(char **oids)
...
@@ -467,7 +474,8 @@ X509_EXTENSION *OCSP_accept_responses_new(char **oids)
if
(
!
(
x
=
X509_EXTENSION_new
()))
goto
err
;
if
(
!
(
x
=
X509_EXTENSION_new
()))
goto
err
;
if
(
!
(
x
->
object
=
OBJ_nid2obj
(
NID_id_pkix_OCSP_acceptableResponses
)))
if
(
!
(
x
->
object
=
OBJ_nid2obj
(
NID_id_pkix_OCSP_acceptableResponses
)))
goto
err
;
goto
err
;
if
(
!
(
ASN1_STRING_encode
(
x
->
value
,
i2d_ASN1_OBJECT
,
NULL
,
sk
)))
if
(
!
(
ASN1_STRING_encode_of
(
ASN1_OBJECT
,
x
->
value
,
i2d_ASN1_OBJECT
,
NULL
,
sk
)))
goto
err
;
goto
err
;
sk_ASN1_OBJECT_pop_free
(
sk
,
ASN1_OBJECT_free
);
sk_ASN1_OBJECT_pop_free
(
sk
,
ASN1_OBJECT_free
);
return
x
;
return
x
;
...
@@ -487,8 +495,8 @@ X509_EXTENSION *OCSP_archive_cutoff_new(char* tim)
...
@@ -487,8 +495,8 @@ X509_EXTENSION *OCSP_archive_cutoff_new(char* tim)
if
(
!
(
ASN1_GENERALIZEDTIME_set_string
(
gt
,
tim
)))
goto
err
;
if
(
!
(
ASN1_GENERALIZEDTIME_set_string
(
gt
,
tim
)))
goto
err
;
if
(
!
(
x
=
X509_EXTENSION_new
()))
goto
err
;
if
(
!
(
x
=
X509_EXTENSION_new
()))
goto
err
;
if
(
!
(
x
->
object
=
OBJ_nid2obj
(
NID_id_pkix_OCSP_archiveCutoff
)))
goto
err
;
if
(
!
(
x
->
object
=
OBJ_nid2obj
(
NID_id_pkix_OCSP_archiveCutoff
)))
goto
err
;
if
(
!
(
ASN1_STRING_encode
(
x
->
value
,
i2d_ASN1_GENERALIZEDTIME
,
if
(
!
(
ASN1_STRING_encode
_of
(
ASN1_GENERALIZEDTIME
,
x
->
value
,
(
char
*
)
gt
,
NULL
)))
goto
err
;
i2d_ASN1_GENERALIZEDTIME
,
gt
,
NULL
)))
goto
err
;
ASN1_GENERALIZEDTIME_free
(
gt
);
ASN1_GENERALIZEDTIME_free
(
gt
);
return
x
;
return
x
;
err:
err:
...
@@ -526,8 +534,8 @@ X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME* issuer, char **urls)
...
@@ -526,8 +534,8 @@ X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME* issuer, char **urls)
if
(
!
(
x
=
X509_EXTENSION_new
()))
goto
err
;
if
(
!
(
x
=
X509_EXTENSION_new
()))
goto
err
;
if
(
!
(
x
->
object
=
OBJ_nid2obj
(
NID_id_pkix_OCSP_serviceLocator
)))
if
(
!
(
x
->
object
=
OBJ_nid2obj
(
NID_id_pkix_OCSP_serviceLocator
)))
goto
err
;
goto
err
;
if
(
!
(
ASN1_STRING_encode
(
x
->
value
,
i2d_OCSP_SERVICELOC
,
if
(
!
(
ASN1_STRING_encode
_of
(
OCSP_SERVICELOC
,
x
->
value
,
(
char
*
)
sloc
,
NULL
)))
goto
err
;
i2d_OCSP_SERVICELOC
,
sloc
,
NULL
)))
goto
err
;
OCSP_SERVICELOC_free
(
sloc
);
OCSP_SERVICELOC_free
(
sloc
);
return
x
;
return
x
;
err:
err:
...
...
crypto/pem/pem.h
浏览文件 @
41a15c4f
...
@@ -220,15 +220,19 @@ typedef struct pem_ctx_st
...
@@ -220,15 +220,19 @@ typedef struct pem_ctx_st
#define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \
#define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \
type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\
type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\
{ \
{ \
return((type *)PEM_ASN1_read((char *(*)())d2i_##asn1, str,fp,(char **)x,\
return(((type *(*)(D2I_OF(type),char *,FILE *,type **,pem_password_cb *,void *))PEM_ASN1_read)(d2i_##asn1, str,fp,x,cb,u)); \
cb,u)); \
} \
} \
#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \
#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \
int PEM_write_##name(FILE *fp, type *x) \
int PEM_write_##name(FILE *fp, type *x) \
{ \
{ \
return(PEM_ASN1_write((int (*)())i2d_##asn1,str,fp, (char *)x, \
return(((int (*)(I2D_OF(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))PEM_ASN1_write)(i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL)); \
NULL,NULL,0,NULL,NULL)); \
}
#define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \
int PEM_write_##name(FILE *fp, type *x) \
{ \
return(((int (*)(I2D_OF_const(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))PEM_ASN1_write)(i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL)); \
}
}
#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \
#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \
...
@@ -236,8 +240,15 @@ int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \
...
@@ -236,8 +240,15 @@ int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \
unsigned char *kstr, int klen, pem_password_cb *cb, \
unsigned char *kstr, int klen, pem_password_cb *cb, \
void *u) \
void *u) \
{ \
{ \
return(PEM_ASN1_write((int (*)())i2d_##asn1,str,fp, \
return(((int (*)(I2D_OF(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))PEM_ASN1_write)(i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u)); \
(char *)x,enc,kstr,klen,cb,u)); \
}
#define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \
int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \
unsigned char *kstr, int klen, pem_password_cb *cb, \
void *u) \
{ \
return(((int (*)(I2D_OF_const(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))PEM_ASN1_write)(i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u)); \
}
}
#endif
#endif
...
@@ -245,33 +256,51 @@ int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \
...
@@ -245,33 +256,51 @@ int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \
#define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
#define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\
type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\
{ \
{ \
return((type *)PEM_ASN1_read_bio((char *(*)())d2i_##asn1, str,bp,\
return(((type *(*)(D2I_OF(type),const char *,BIO *,type **,pem_password_cb *,void *))PEM_ASN1_read_bio)(d2i_##asn1, str,bp,x,cb,u)); \
(char **)x,cb,u)); \
}
}
#define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
#define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
int PEM_write_bio_##name(BIO *bp, type *x) \
int PEM_write_bio_##name(BIO *bp, type *x) \
{ \
{ \
return(PEM_ASN1_write_bio((int (*)())i2d_##asn1,str,bp, (char *)x, \
return(((int (*)(I2D_OF(type),const char *,BIO *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))PEM_ASN1_write_bio)(i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL)); \
NULL,NULL,0,NULL,NULL)); \
}
#define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \
int PEM_write_bio_##name(BIO *bp, type *x) \
{ \
return(((int (*)(I2D_OF_const(type),const char *,BIO *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))PEM_ASN1_write_bio)(i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL)); \
}
}
#define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
#define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \
unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \
{ \
{ \
return(PEM_ASN1_write_bio((int (*)())i2d_##asn1,str,bp, \
return(((int (*)(I2D_OF(type),const char *,BIO *,type *,const EVP_CIPHER *,unsigned char *,int,pem_password_cb *,void *))PEM_ASN1_write_bio)(i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u)); \
(char *)x,enc,kstr,klen,cb,u)); \
}
#define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \
int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \
{ \
return(((int (*)(I2D_OF_const(type),const char *,BIO *,type *,const EVP_CIPHER *,unsigned char *,int,pem_password_cb *,void *))PEM_ASN1_write_bio)(i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u)); \
}
}
#define IMPLEMENT_PEM_write(name, type, str, asn1) \
#define IMPLEMENT_PEM_write(name, type, str, asn1) \
IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
IMPLEMENT_PEM_write_fp(name, type, str, asn1)
IMPLEMENT_PEM_write_fp(name, type, str, asn1)
#define IMPLEMENT_PEM_write_const(name, type, str, asn1) \
IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \
IMPLEMENT_PEM_write_fp_const(name, type, str, asn1)
#define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \
#define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \
IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
#define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \
IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \
IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1)
#define IMPLEMENT_PEM_read(name, type, str, asn1) \
#define IMPLEMENT_PEM_read(name, type, str, asn1) \
IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
IMPLEMENT_PEM_read_fp(name, type, str, asn1)
IMPLEMENT_PEM_read_fp(name, type, str, asn1)
...
@@ -280,6 +309,10 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
...
@@ -280,6 +309,10 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
IMPLEMENT_PEM_read(name, type, str, asn1) \
IMPLEMENT_PEM_read(name, type, str, asn1) \
IMPLEMENT_PEM_write(name, type, str, asn1)
IMPLEMENT_PEM_write(name, type, str, asn1)
#define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \
IMPLEMENT_PEM_read(name, type, str, asn1) \
IMPLEMENT_PEM_write_const(name, type, str, asn1)
#define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \
#define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \
IMPLEMENT_PEM_read(name, type, str, asn1) \
IMPLEMENT_PEM_read(name, type, str, asn1) \
IMPLEMENT_PEM_write_cb(name, type, str, asn1)
IMPLEMENT_PEM_write_cb(name, type, str, asn1)
...
@@ -410,9 +443,6 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
...
@@ -410,9 +443,6 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
(char *(*)())d2i_NETSCAPE_CERT_SEQUENCE,PEM_STRING_X509,fp,\
(char *(*)())d2i_NETSCAPE_CERT_SEQUENCE,PEM_STRING_X509,fp,\
(char **)x,cb,u)
(char **)x,cb,u)
#define PEM_write_bio_SSL_SESSION(bp,x) \
PEM_ASN1_write_bio((int (*)())i2d_SSL_SESSION, \
PEM_STRING_SSL_SESSION,bp, (char *)x, NULL,NULL,0,NULL,NULL)
#define PEM_write_bio_X509(bp,x) \
#define PEM_write_bio_X509(bp,x) \
PEM_ASN1_write_bio((int (*)())i2d_X509,PEM_STRING_X509,bp, \
PEM_ASN1_write_bio((int (*)())i2d_X509,PEM_STRING_X509,bp, \
(char *)x, NULL,NULL,0,NULL,NULL)
(char *)x, NULL,NULL,0,NULL,NULL)
...
@@ -451,8 +481,6 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
...
@@ -451,8 +481,6 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
PEM_STRING_X509,bp, \
PEM_STRING_X509,bp, \
(char *)x, NULL,NULL,0,NULL,NULL)
(char *)x, NULL,NULL,0,NULL,NULL)
#define PEM_read_bio_SSL_SESSION(bp,x,cb,u) (SSL_SESSION *)PEM_ASN1_read_bio( \
(char *(*)())d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,bp,(char **)x,cb,u)
#define PEM_read_bio_X509(bp,x,cb,u) (X509 *)PEM_ASN1_read_bio( \
#define PEM_read_bio_X509(bp,x,cb,u) (X509 *)PEM_ASN1_read_bio( \
(char *(*)())d2i_X509,PEM_STRING_X509,bp,(char **)x,cb,u)
(char *(*)())d2i_X509,PEM_STRING_X509,bp,(char **)x,cb,u)
#define PEM_read_bio_X509_REQ(bp,x,cb,u) (X509_REQ *)PEM_ASN1_read_bio( \
#define PEM_read_bio_X509_REQ(bp,x,cb,u) (X509_REQ *)PEM_ASN1_read_bio( \
...
@@ -501,11 +529,17 @@ int PEM_write_bio(BIO *bp,const char *name,char *hdr,unsigned char *data,
...
@@ -501,11 +529,17 @@ int PEM_write_bio(BIO *bp,const char *name,char *hdr,unsigned char *data,
long
len
);
long
len
);
int
PEM_bytes_read_bio
(
unsigned
char
**
pdata
,
long
*
plen
,
char
**
pnm
,
const
char
*
name
,
BIO
*
bp
,
int
PEM_bytes_read_bio
(
unsigned
char
**
pdata
,
long
*
plen
,
char
**
pnm
,
const
char
*
name
,
BIO
*
bp
,
pem_password_cb
*
cb
,
void
*
u
);
pem_password_cb
*
cb
,
void
*
u
);
char
*
PEM_ASN1_read_bio
(
char
*
(
*
d2i
)(),
const
char
*
name
,
BIO
*
bp
,
char
**
x
,
void
*
PEM_ASN1_read_bio
(
void
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
pem_password_cb
*
cb
,
void
*
u
);
const
char
*
name
,
BIO
*
bp
,
void
**
x
,
int
PEM_ASN1_write_bio
(
int
(
*
i2d
)(),
const
char
*
name
,
BIO
*
bp
,
char
*
x
,
pem_password_cb
*
cb
,
void
*
u
);
#define PEM_ASN1_read_bio_of(type,d2i,name,bp,x,cb,u) \
((type *(*)(D2I_OF(type),const char *,BIO *,type **,pem_password_cb *,void *))PEM_ASN1_read_bio)(d2i,name,bp,x,cb,u)
int
PEM_ASN1_write_bio
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
const
char
*
name
,
BIO
*
bp
,
char
*
x
,
const
EVP_CIPHER
*
enc
,
unsigned
char
*
kstr
,
int
klen
,
const
EVP_CIPHER
*
enc
,
unsigned
char
*
kstr
,
int
klen
,
pem_password_cb
*
cb
,
void
*
u
);
pem_password_cb
*
cb
,
void
*
u
);
#define PEM_ASN1_write_bio_of(type,i2d,name,bp,x,enc,kstr,klen,cb,u) \
((int (*)(I2D_OF(type),const char *,BIO *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))PEM_ASN1_write_bio)(i2d,name,bp,x,enc,kstr,klen,cb,u)
STACK_OF
(
X509_INFO
)
*
PEM_X509_INFO_read_bio
(
BIO
*
bp
,
STACK_OF
(
X509_INFO
)
*
sk
,
pem_password_cb
*
cb
,
void
*
u
);
STACK_OF
(
X509_INFO
)
*
PEM_X509_INFO_read_bio
(
BIO
*
bp
,
STACK_OF
(
X509_INFO
)
*
sk
,
pem_password_cb
*
cb
,
void
*
u
);
int
PEM_X509_INFO_write_bio
(
BIO
*
bp
,
X509_INFO
*
xi
,
EVP_CIPHER
*
enc
,
int
PEM_X509_INFO_write_bio
(
BIO
*
bp
,
X509_INFO
*
xi
,
EVP_CIPHER
*
enc
,
unsigned
char
*
kstr
,
int
klen
,
pem_password_cb
*
cd
,
void
*
u
);
unsigned
char
*
kstr
,
int
klen
,
pem_password_cb
*
cd
,
void
*
u
);
...
@@ -515,11 +549,12 @@ int PEM_X509_INFO_write_bio(BIO *bp,X509_INFO *xi, EVP_CIPHER *enc,
...
@@ -515,11 +549,12 @@ int PEM_X509_INFO_write_bio(BIO *bp,X509_INFO *xi, EVP_CIPHER *enc,
int
PEM_read
(
FILE
*
fp
,
char
**
name
,
char
**
header
,
int
PEM_read
(
FILE
*
fp
,
char
**
name
,
char
**
header
,
unsigned
char
**
data
,
long
*
len
);
unsigned
char
**
data
,
long
*
len
);
int
PEM_write
(
FILE
*
fp
,
char
*
name
,
char
*
hdr
,
unsigned
char
*
data
,
long
len
);
int
PEM_write
(
FILE
*
fp
,
char
*
name
,
char
*
hdr
,
unsigned
char
*
data
,
long
len
);
char
*
PEM_ASN1_read
(
char
*
(
*
d2i
)(),
const
char
*
name
,
FILE
*
fp
,
char
**
x
,
void
*
PEM_ASN1_read
(
void
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
pem_password_cb
*
cb
,
void
*
u
);
const
char
*
name
,
FILE
*
fp
,
void
**
x
,
pem_password_cb
*
cb
,
int
PEM_ASN1_write
(
int
(
*
i2d
)(),
const
char
*
name
,
FILE
*
fp
,
char
*
x
,
void
*
u
);
const
EVP_CIPHER
*
enc
,
unsigned
char
*
kstr
,
int
klen
,
int
PEM_ASN1_write
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
const
char
*
name
,
FILE
*
fp
,
pem_password_cb
*
callback
,
void
*
u
);
char
*
x
,
const
EVP_CIPHER
*
enc
,
unsigned
char
*
kstr
,
int
klen
,
pem_password_cb
*
callback
,
void
*
u
);
STACK_OF
(
X509_INFO
)
*
PEM_X509_INFO_read
(
FILE
*
fp
,
STACK_OF
(
X509_INFO
)
*
sk
,
STACK_OF
(
X509_INFO
)
*
PEM_X509_INFO_read
(
FILE
*
fp
,
STACK_OF
(
X509_INFO
)
*
sk
,
pem_password_cb
*
cb
,
void
*
u
);
pem_password_cb
*
cb
,
void
*
u
);
#endif
#endif
...
...
crypto/pem/pem_all.c
浏览文件 @
41a15c4f
...
@@ -188,8 +188,8 @@ RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **rsa, pem_password_cb *cb,
...
@@ -188,8 +188,8 @@ RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **rsa, pem_password_cb *cb,
#endif
#endif
IMPLEMENT_PEM_write_cb
(
RSAPrivateKey
,
RSA
,
PEM_STRING_RSA
,
RSAPrivateKey
)
IMPLEMENT_PEM_write_cb
_const
(
RSAPrivateKey
,
RSA
,
PEM_STRING_RSA
,
RSAPrivateKey
)
IMPLEMENT_PEM_rw
(
RSAPublicKey
,
RSA
,
PEM_STRING_RSA_PUBLIC
,
RSAPublicKey
)
IMPLEMENT_PEM_rw
_const
(
RSAPublicKey
,
RSA
,
PEM_STRING_RSA_PUBLIC
,
RSAPublicKey
)
IMPLEMENT_PEM_rw
(
RSA_PUBKEY
,
RSA
,
PEM_STRING_PUBLIC
,
RSA_PUBKEY
)
IMPLEMENT_PEM_rw
(
RSA_PUBKEY
,
RSA
,
PEM_STRING_PUBLIC
,
RSA_PUBKEY
)
#endif
#endif
...
@@ -218,7 +218,7 @@ DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **dsa, pem_password_cb *cb,
...
@@ -218,7 +218,7 @@ DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **dsa, pem_password_cb *cb,
return
pkey_get_dsa
(
pktmp
,
dsa
);
return
pkey_get_dsa
(
pktmp
,
dsa
);
}
}
IMPLEMENT_PEM_write_cb
(
DSAPrivateKey
,
DSA
,
PEM_STRING_DSA
,
DSAPrivateKey
)
IMPLEMENT_PEM_write_cb
_const
(
DSAPrivateKey
,
DSA
,
PEM_STRING_DSA
,
DSAPrivateKey
)
IMPLEMENT_PEM_rw
(
DSA_PUBKEY
,
DSA
,
PEM_STRING_PUBLIC
,
DSA_PUBKEY
)
IMPLEMENT_PEM_rw
(
DSA_PUBKEY
,
DSA
,
PEM_STRING_PUBLIC
,
DSA_PUBKEY
)
#ifndef OPENSSL_NO_FP_API
#ifndef OPENSSL_NO_FP_API
...
@@ -233,7 +233,7 @@ DSA *PEM_read_DSAPrivateKey(FILE *fp, DSA **dsa, pem_password_cb *cb,
...
@@ -233,7 +233,7 @@ DSA *PEM_read_DSAPrivateKey(FILE *fp, DSA **dsa, pem_password_cb *cb,
#endif
#endif
IMPLEMENT_PEM_rw
(
DSAparams
,
DSA
,
PEM_STRING_DSAPARAMS
,
DSAparams
)
IMPLEMENT_PEM_rw
_const
(
DSAparams
,
DSA
,
PEM_STRING_DSAPARAMS
,
DSAparams
)
#endif
#endif
...
@@ -262,7 +262,7 @@ EC_KEY *PEM_read_bio_ECPrivateKey(BIO *bp, EC_KEY **key, pem_password_cb *cb,
...
@@ -262,7 +262,7 @@ EC_KEY *PEM_read_bio_ECPrivateKey(BIO *bp, EC_KEY **key, pem_password_cb *cb,
return
pkey_get_eckey
(
pktmp
,
key
);
return
pkey_get_eckey
(
pktmp
,
key
);
}
}
IMPLEMENT_PEM_rw
(
ECPKParameters
,
EC_GROUP
,
PEM_STRING_ECPARAMETERS
,
ECPKParameters
)
IMPLEMENT_PEM_rw
_const
(
ECPKParameters
,
EC_GROUP
,
PEM_STRING_ECPARAMETERS
,
ECPKParameters
)
IMPLEMENT_PEM_write_cb
(
ECPrivateKey
,
EC_KEY
,
PEM_STRING_ECPRIVATEKEY
,
ECPrivateKey
)
IMPLEMENT_PEM_write_cb
(
ECPrivateKey
,
EC_KEY
,
PEM_STRING_ECPRIVATEKEY
,
ECPrivateKey
)
...
@@ -284,7 +284,7 @@ EC_KEY *PEM_read_ECPrivateKey(FILE *fp, EC_KEY **eckey, pem_password_cb *cb,
...
@@ -284,7 +284,7 @@ EC_KEY *PEM_read_ECPrivateKey(FILE *fp, EC_KEY **eckey, pem_password_cb *cb,
#ifndef OPENSSL_NO_DH
#ifndef OPENSSL_NO_DH
IMPLEMENT_PEM_rw
(
DHparams
,
DH
,
PEM_STRING_DHPARAMS
,
DHparams
)
IMPLEMENT_PEM_rw
_const
(
DHparams
,
DH
,
PEM_STRING_DHPARAMS
,
DHparams
)
#endif
#endif
...
...
crypto/pem/pem_info.c
浏览文件 @
41a15c4f
...
@@ -88,12 +88,13 @@ STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pe
...
@@ -88,12 +88,13 @@ STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pe
{
{
X509_INFO
*
xi
=
NULL
;
X509_INFO
*
xi
=
NULL
;
char
*
name
=
NULL
,
*
header
=
NULL
,
**
pp
;
char
*
name
=
NULL
,
*
header
=
NULL
,
**
pp
;
unsigned
char
*
data
=
NULL
,
*
p
;
unsigned
char
*
data
=
NULL
;
const
unsigned
char
*
p
;
long
len
,
error
=
0
;
long
len
,
error
=
0
;
int
ok
=
0
;
int
ok
=
0
;
STACK_OF
(
X509_INFO
)
*
ret
=
NULL
;
STACK_OF
(
X509_INFO
)
*
ret
=
NULL
;
unsigned
int
i
,
raw
;
unsigned
int
i
,
raw
;
char
*
(
*
d2i
)();
char
*
(
*
d2i
)(
void
*
,
const
unsigned
char
**
,
long
);
if
(
sk
==
NULL
)
if
(
sk
==
NULL
)
{
{
...
@@ -125,7 +126,7 @@ start:
...
@@ -125,7 +126,7 @@ start:
if
(
(
strcmp
(
name
,
PEM_STRING_X509
)
==
0
)
||
if
(
(
strcmp
(
name
,
PEM_STRING_X509
)
==
0
)
||
(
strcmp
(
name
,
PEM_STRING_X509_OLD
)
==
0
))
(
strcmp
(
name
,
PEM_STRING_X509_OLD
)
==
0
))
{
{
d2i
=
(
char
*
(
*
)())
d2i_X509
;
(
D2I_OF
(
X509
))
d2i
=
d2i_X509
;
if
(
xi
->
x509
!=
NULL
)
if
(
xi
->
x509
!=
NULL
)
{
{
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
...
@@ -136,7 +137,7 @@ start:
...
@@ -136,7 +137,7 @@ start:
}
}
else
if
((
strcmp
(
name
,
PEM_STRING_X509_TRUSTED
)
==
0
))
else
if
((
strcmp
(
name
,
PEM_STRING_X509_TRUSTED
)
==
0
))
{
{
d2i
=
(
char
*
(
*
)())
d2i_X509_AUX
;
(
D2I_OF
(
X509
))
d2i
=
d2i_X509_AUX
;
if
(
xi
->
x509
!=
NULL
)
if
(
xi
->
x509
!=
NULL
)
{
{
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
...
@@ -147,7 +148,7 @@ start:
...
@@ -147,7 +148,7 @@ start:
}
}
else
if
(
strcmp
(
name
,
PEM_STRING_X509_CRL
)
==
0
)
else
if
(
strcmp
(
name
,
PEM_STRING_X509_CRL
)
==
0
)
{
{
d2i
=
(
char
*
(
*
)())
d2i_X509_CRL
;
(
D2I_OF
(
X509_CRL
))
d2i
=
d2i_X509_CRL
;
if
(
xi
->
crl
!=
NULL
)
if
(
xi
->
crl
!=
NULL
)
{
{
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
...
@@ -160,7 +161,7 @@ start:
...
@@ -160,7 +161,7 @@ start:
#ifndef OPENSSL_NO_RSA
#ifndef OPENSSL_NO_RSA
if
(
strcmp
(
name
,
PEM_STRING_RSA
)
==
0
)
if
(
strcmp
(
name
,
PEM_STRING_RSA
)
==
0
)
{
{
d2i
=
(
char
*
(
*
)())
d2i_RSAPrivateKey
;
(
D2I_OF
(
RSA
))
d2i
=
d2i_RSAPrivateKey
;
if
(
xi
->
x_pkey
!=
NULL
)
if
(
xi
->
x_pkey
!=
NULL
)
{
{
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
...
@@ -184,7 +185,7 @@ start:
...
@@ -184,7 +185,7 @@ start:
#ifndef OPENSSL_NO_DSA
#ifndef OPENSSL_NO_DSA
if
(
strcmp
(
name
,
PEM_STRING_DSA
)
==
0
)
if
(
strcmp
(
name
,
PEM_STRING_DSA
)
==
0
)
{
{
d2i
=
(
char
*
(
*
)())
d2i_DSAPrivateKey
;
(
D2I_OF
(
RSA
))
d2i
=
d2i_DSAPrivateKey
;
if
(
xi
->
x_pkey
!=
NULL
)
if
(
xi
->
x_pkey
!=
NULL
)
{
{
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
...
@@ -208,7 +209,7 @@ start:
...
@@ -208,7 +209,7 @@ start:
#ifndef OPENSSL_NO_EC
#ifndef OPENSSL_NO_EC
if
(
strcmp
(
name
,
PEM_STRING_ECPRIVATEKEY
)
==
0
)
if
(
strcmp
(
name
,
PEM_STRING_ECPRIVATEKEY
)
==
0
)
{
{
d2i
=
(
char
*
(
*
)())
d2i_ECPrivateKey
;
(
D2I_OF
(
EC_KEY
))
d2i
=
d2i_ECPrivateKey
;
if
(
xi
->
x_pkey
!=
NULL
)
if
(
xi
->
x_pkey
!=
NULL
)
{
{
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
if
(
!
sk_X509_INFO_push
(
ret
,
xi
))
goto
err
;
...
...
crypto/pem/pem_lib.c
浏览文件 @
41a15c4f
...
@@ -158,11 +158,12 @@ void PEM_dek_info(char *buf, const char *type, int len, char *str)
...
@@ -158,11 +158,12 @@ void PEM_dek_info(char *buf, const char *type, int len, char *str)
}
}
#ifndef OPENSSL_NO_FP_API
#ifndef OPENSSL_NO_FP_API
char
*
PEM_ASN1_read
(
char
*
(
*
d2i
)(),
const
char
*
name
,
FILE
*
fp
,
char
**
x
,
void
*
PEM_ASN1_read
(
void
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
pem_password_cb
*
cb
,
void
*
u
)
const
char
*
name
,
FILE
*
fp
,
void
**
x
,
pem_password_cb
*
cb
,
void
*
u
)
{
{
BIO
*
b
;
BIO
*
b
;
char
*
ret
;
void
*
ret
;
if
((
b
=
BIO_new
(
BIO_s_file
()))
==
NULL
)
if
((
b
=
BIO_new
(
BIO_s_file
()))
==
NULL
)
{
{
...
@@ -260,9 +261,9 @@ err:
...
@@ -260,9 +261,9 @@ err:
}
}
#ifndef OPENSSL_NO_FP_API
#ifndef OPENSSL_NO_FP_API
int
PEM_ASN1_write
(
int
(
*
i2d
)(
),
const
char
*
name
,
FILE
*
fp
,
char
*
x
,
int
PEM_ASN1_write
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
const
char
*
name
,
FILE
*
fp
,
const
EVP_CIPHER
*
enc
,
unsigned
char
*
kstr
,
int
klen
,
char
*
x
,
const
EVP_CIPHER
*
enc
,
unsigned
char
*
kstr
,
pem_password_cb
*
callback
,
void
*
u
)
int
klen
,
pem_password_cb
*
callback
,
void
*
u
)
{
{
BIO
*
b
;
BIO
*
b
;
int
ret
;
int
ret
;
...
@@ -279,9 +280,9 @@ int PEM_ASN1_write(int (*i2d)(), const char *name, FILE *fp, char *x,
...
@@ -279,9 +280,9 @@ int PEM_ASN1_write(int (*i2d)(), const char *name, FILE *fp, char *x,
}
}
#endif
#endif
int
PEM_ASN1_write_bio
(
int
(
*
i2d
)(
),
const
char
*
name
,
BIO
*
bp
,
char
*
x
,
int
PEM_ASN1_write_bio
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
const
char
*
name
,
BIO
*
bp
,
const
EVP_CIPHER
*
enc
,
unsigned
char
*
kstr
,
int
klen
,
char
*
x
,
const
EVP_CIPHER
*
enc
,
unsigned
char
*
kstr
,
pem_password_cb
*
callback
,
void
*
u
)
int
klen
,
pem_password_cb
*
callback
,
void
*
u
)
{
{
EVP_CIPHER_CTX
ctx
;
EVP_CIPHER_CTX
ctx
;
int
dsize
=
0
,
i
,
j
,
ret
=
0
;
int
dsize
=
0
,
i
,
j
,
ret
=
0
;
...
...
crypto/pem/pem_oth.c
浏览文件 @
41a15c4f
...
@@ -67,10 +67,12 @@
...
@@ -67,10 +67,12 @@
/* Handle 'other' PEMs: not private keys */
/* Handle 'other' PEMs: not private keys */
char
*
PEM_ASN1_read_bio
(
char
*
(
*
d2i
)(),
const
char
*
name
,
BIO
*
bp
,
char
**
x
,
void
*
PEM_ASN1_read_bio
(
void
*
(
*
d2i
)(
void
**
,
const
unsigned
char
**
,
long
),
pem_password_cb
*
cb
,
void
*
u
)
const
char
*
name
,
BIO
*
bp
,
void
**
x
,
pem_password_cb
*
cb
,
void
*
u
)
{
{
unsigned
char
*
p
=
NULL
,
*
data
=
NULL
;
const
unsigned
char
*
p
=
NULL
;
unsigned
char
*
data
=
NULL
;
long
len
;
long
len
;
char
*
ret
=
NULL
;
char
*
ret
=
NULL
;
...
...
crypto/pkcs7/pk7_mime.c
浏览文件 @
41a15c4f
...
@@ -110,9 +110,6 @@ static void mime_hdr_free(MIME_HEADER *hdr);
...
@@ -110,9 +110,6 @@ static void mime_hdr_free(MIME_HEADER *hdr);
#define MAX_SMLEN 1024
#define MAX_SMLEN 1024
#define mime_debug(x)
/* x */
#define mime_debug(x)
/* x */
typedef
void
(
*
stkfree
)();
/* Base 64 read and write of PKCS#7 structure */
/* Base 64 read and write of PKCS#7 structure */
static
int
B64_write_PKCS7
(
BIO
*
bio
,
PKCS7
*
p7
)
static
int
B64_write_PKCS7
(
BIO
*
bio
,
PKCS7
*
p7
)
...
...
crypto/rsa/rsa.h
浏览文件 @
41a15c4f
...
@@ -247,11 +247,19 @@ int RSA_print_fp(FILE *fp, const RSA *r,int offset);
...
@@ -247,11 +247,19 @@ int RSA_print_fp(FILE *fp, const RSA *r,int offset);
int
RSA_print
(
BIO
*
bp
,
const
RSA
*
r
,
int
offset
);
int
RSA_print
(
BIO
*
bp
,
const
RSA
*
r
,
int
offset
);
#endif
#endif
int
i2d_RSA_NET
(
const
RSA
*
a
,
unsigned
char
**
pp
,
int
(
*
cb
)(),
int
sgckey
);
int
i2d_RSA_NET
(
const
RSA
*
a
,
unsigned
char
**
pp
,
RSA
*
d2i_RSA_NET
(
RSA
**
a
,
const
unsigned
char
**
pp
,
long
length
,
int
(
*
cb
)(),
int
sgckey
);
int
(
*
cb
)(
char
*
buf
,
int
len
,
const
char
*
prompt
,
int
verify
),
int
sgckey
);
int
i2d_Netscape_RSA
(
const
RSA
*
a
,
unsigned
char
**
pp
,
int
(
*
cb
)());
RSA
*
d2i_RSA_NET
(
RSA
**
a
,
const
unsigned
char
**
pp
,
long
length
,
RSA
*
d2i_Netscape_RSA
(
RSA
**
a
,
const
unsigned
char
**
pp
,
long
length
,
int
(
*
cb
)());
int
(
*
cb
)(
char
*
buf
,
int
len
,
const
char
*
prompt
,
int
verify
),
int
sgckey
);
int
i2d_Netscape_RSA
(
const
RSA
*
a
,
unsigned
char
**
pp
,
int
(
*
cb
)(
char
*
buf
,
int
len
,
const
char
*
prompt
,
int
verify
));
RSA
*
d2i_Netscape_RSA
(
RSA
**
a
,
const
unsigned
char
**
pp
,
long
length
,
int
(
*
cb
)(
char
*
buf
,
int
len
,
const
char
*
prompt
,
int
verify
));
/* The following 2 functions sign and verify a X509_SIG ASN1 object
/* The following 2 functions sign and verify a X509_SIG ASN1 object
* inside PKCS#1 padded RSA encryption */
* inside PKCS#1 padded RSA encryption */
...
...
crypto/rsa/rsa_asn1.c
浏览文件 @
41a15c4f
...
@@ -63,10 +63,10 @@
...
@@ -63,10 +63,10 @@
#include <openssl/asn1t.h>
#include <openssl/asn1t.h>
static
ASN1_METHOD
method
=
{
static
ASN1_METHOD
method
=
{
(
int
(
*
)())
i2d_RSAPrivateKey
,
(
I2D_OF
(
void
))
i2d_RSAPrivateKey
,
(
char
*
(
*
)())
d2i_RSAPrivateKey
,
(
D2I_OF
(
void
))
d2i_RSAPrivateKey
,
(
char
*
(
*
)())
RSA_new
,
(
void
*
(
*
)(
void
))
RSA_new
,
(
void
(
*
)())
RSA_free
};
(
void
(
*
)(
void
*
))
RSA_free
};
ASN1_METHOD
*
RSAPrivateKey_asn1_meth
(
void
)
ASN1_METHOD
*
RSAPrivateKey_asn1_meth
(
void
)
{
{
...
...
crypto/stack/safestack.h
浏览文件 @
41a15c4f
...
@@ -201,7 +201,7 @@ STACK_OF(type) \
...
@@ -201,7 +201,7 @@ STACK_OF(type) \
#define SKM_ASN1_seq_pack(type, st, i2d_func, buf, len) \
#define SKM_ASN1_seq_pack(type, st, i2d_func, buf, len) \
ASN1_seq_pack(st, i2d_func, buf, len)
ASN1_seq_pack(st, i2d_func, buf, len)
#define SKM_ASN1_seq_unpack(type, buf, len, d2i_func, free_func) \
#define SKM_ASN1_seq_unpack(type, buf, len, d2i_func, free_func) \
ASN1_seq_unpack(buf,len,(char *(*)())d2i_func, (void(*)(void *))free_func)
ASN1_seq_unpack(buf,len,(char *(*)(
void *,unsigned char **,long
))d2i_func, (void(*)(void *))free_func)
#define SKM_PKCS12_decrypt_d2i(type, algor, d2i_func, free_func, pass, passlen, oct, seq) \
#define SKM_PKCS12_decrypt_d2i(type, algor, d2i_func, free_func, pass, passlen, oct, seq) \
((STACK *)PKCS12_decrypt_d2i(algor,(char *(*)())d2i_func, (void(*)(void *))free_func,pass,passlen,oct,seq))
((STACK *)PKCS12_decrypt_d2i(algor,(char *(*)())d2i_func, (void(*)(void *))free_func,pass,passlen,oct,seq))
...
...
crypto/txt_db/txt_db.c
浏览文件 @
41a15c4f
...
@@ -92,7 +92,7 @@ TXT_DB *TXT_DB_read(BIO *in, int num)
...
@@ -92,7 +92,7 @@ TXT_DB *TXT_DB_read(BIO *in, int num)
goto
err
;
goto
err
;
if
((
ret
->
index
=
(
LHASH
**
)
OPENSSL_malloc
(
sizeof
(
LHASH
*
)
*
num
))
==
NULL
)
if
((
ret
->
index
=
(
LHASH
**
)
OPENSSL_malloc
(
sizeof
(
LHASH
*
)
*
num
))
==
NULL
)
goto
err
;
goto
err
;
if
((
ret
->
qual
=
(
int
(
**
)(
))
OPENSSL_malloc
(
sizeof
(
int
(
**
)(
))
*
num
))
==
NULL
)
if
((
ret
->
qual
=
(
int
(
**
)(
char
**
))
OPENSSL_malloc
(
sizeof
(
int
(
**
)(
char
**
))
*
num
))
==
NULL
)
goto
err
;
goto
err
;
for
(
i
=
0
;
i
<
num
;
i
++
)
for
(
i
=
0
;
i
<
num
;
i
++
)
{
{
...
@@ -210,11 +210,11 @@ char **TXT_DB_get_by_index(TXT_DB *db, int idx, char **value)
...
@@ -210,11 +210,11 @@ char **TXT_DB_get_by_index(TXT_DB *db, int idx, char **value)
return
(
ret
);
return
(
ret
);
}
}
int
TXT_DB_create_index
(
TXT_DB
*
db
,
int
field
,
int
(
*
qual
)(),
int
TXT_DB_create_index
(
TXT_DB
*
db
,
int
field
,
int
(
*
qual
)(
char
**
),
LHASH_HASH_FN_TYPE
hash
,
LHASH_COMP_FN_TYPE
cmp
)
LHASH_HASH_FN_TYPE
hash
,
LHASH_COMP_FN_TYPE
cmp
)
{
{
LHASH
*
idx
;
LHASH
*
idx
;
char
*
r
;
char
*
*
r
;
int
i
,
n
;
int
i
,
n
;
if
(
field
>=
db
->
num_fields
)
if
(
field
>=
db
->
num_fields
)
...
@@ -230,12 +230,12 @@ int TXT_DB_create_index(TXT_DB *db, int field, int (*qual)(),
...
@@ -230,12 +230,12 @@ int TXT_DB_create_index(TXT_DB *db, int field, int (*qual)(),
n
=
sk_num
(
db
->
data
);
n
=
sk_num
(
db
->
data
);
for
(
i
=
0
;
i
<
n
;
i
++
)
for
(
i
=
0
;
i
<
n
;
i
++
)
{
{
r
=
(
char
*
)
sk_value
(
db
->
data
,
i
);
r
=
(
char
*
*
)
sk_value
(
db
->
data
,
i
);
if
((
qual
!=
NULL
)
&&
(
qual
(
r
)
==
0
))
continue
;
if
((
qual
!=
NULL
)
&&
(
qual
(
r
)
==
0
))
continue
;
if
((
r
=
lh_insert
(
idx
,
r
))
!=
NULL
)
if
((
r
=
lh_insert
(
idx
,
r
))
!=
NULL
)
{
{
db
->
error
=
DB_ERROR_INDEX_CLASH
;
db
->
error
=
DB_ERROR_INDEX_CLASH
;
db
->
arg1
=
sk_find
(
db
->
data
,
r
);
db
->
arg1
=
sk_find
(
db
->
data
,
(
char
*
)
r
);
db
->
arg2
=
i
;
db
->
arg2
=
i
;
lh_free
(
idx
);
lh_free
(
idx
);
return
(
0
);
return
(
0
);
...
...
crypto/txt_db/txt_db.h
浏览文件 @
41a15c4f
...
@@ -82,7 +82,7 @@ typedef struct txt_db_st
...
@@ -82,7 +82,7 @@ typedef struct txt_db_st
int
num_fields
;
int
num_fields
;
STACK
/* char ** */
*
data
;
STACK
/* char ** */
*
data
;
LHASH
**
index
;
LHASH
**
index
;
int
(
**
qual
)();
int
(
**
qual
)(
char
**
);
long
error
;
long
error
;
long
arg1
;
long
arg1
;
long
arg2
;
long
arg2
;
...
@@ -96,7 +96,7 @@ long TXT_DB_write(BIO *out, TXT_DB *db);
...
@@ -96,7 +96,7 @@ long TXT_DB_write(BIO *out, TXT_DB *db);
TXT_DB
*
TXT_DB_read
(
char
*
in
,
int
num
);
TXT_DB
*
TXT_DB_read
(
char
*
in
,
int
num
);
long
TXT_DB_write
(
char
*
out
,
TXT_DB
*
db
);
long
TXT_DB_write
(
char
*
out
,
TXT_DB
*
db
);
#endif
#endif
int
TXT_DB_create_index
(
TXT_DB
*
db
,
int
field
,
int
(
*
qual
)(),
int
TXT_DB_create_index
(
TXT_DB
*
db
,
int
field
,
int
(
*
qual
)(
char
**
),
LHASH_HASH_FN_TYPE
hash
,
LHASH_COMP_FN_TYPE
cmp
);
LHASH_HASH_FN_TYPE
hash
,
LHASH_COMP_FN_TYPE
cmp
);
void
TXT_DB_free
(
TXT_DB
*
db
);
void
TXT_DB_free
(
TXT_DB
*
db
);
char
**
TXT_DB_get_by_index
(
TXT_DB
*
db
,
int
idx
,
char
**
value
);
char
**
TXT_DB_get_by_index
(
TXT_DB
*
db
,
int
idx
,
char
**
value
);
...
...
crypto/ui/ui.h
浏览文件 @
41a15c4f
...
@@ -211,7 +211,7 @@ int UI_process(UI *ui);
...
@@ -211,7 +211,7 @@ int UI_process(UI *ui);
/* Give a user interface parametrised control commands. This can be used to
/* Give a user interface parametrised control commands. This can be used to
send down an integer, a data pointer or a function pointer, as well as
send down an integer, a data pointer or a function pointer, as well as
be used to get information from a UI. */
be used to get information from a UI. */
int
UI_ctrl
(
UI
*
ui
,
int
cmd
,
long
i
,
void
*
p
,
void
(
*
f
)());
int
UI_ctrl
(
UI
*
ui
,
int
cmd
,
long
i
,
void
*
p
,
void
(
*
f
)(
void
));
/* The commands */
/* The commands */
/* Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the
/* Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the
...
...
crypto/ui/ui_lib.c
浏览文件 @
41a15c4f
...
@@ -545,7 +545,7 @@ int UI_process(UI *ui)
...
@@ -545,7 +545,7 @@ int UI_process(UI *ui)
return
ok
;
return
ok
;
}
}
int
UI_ctrl
(
UI
*
ui
,
int
cmd
,
long
i
,
void
*
p
,
void
(
*
f
)())
int
UI_ctrl
(
UI
*
ui
,
int
cmd
,
long
i
,
void
*
p
,
void
(
*
f
)(
void
))
{
{
if
(
ui
==
NULL
)
if
(
ui
==
NULL
)
{
{
...
...
crypto/x509/x509.h
浏览文件 @
41a15c4f
...
@@ -136,8 +136,8 @@ extern "C" {
...
@@ -136,8 +136,8 @@ extern "C" {
typedef
struct
X509_objects_st
typedef
struct
X509_objects_st
{
{
int
nid
;
int
nid
;
int
(
*
a2i
)();
int
(
*
a2i
)(
void
);
int
(
*
i2a
)();
int
(
*
i2a
)(
void
);
}
X509_OBJECTS
;
}
X509_OBJECTS
;
struct
X509_algor_st
struct
X509_algor_st
...
@@ -966,15 +966,16 @@ X509_INFO * X509_INFO_new(void);
...
@@ -966,15 +966,16 @@ X509_INFO * X509_INFO_new(void);
void
X509_INFO_free
(
X509_INFO
*
a
);
void
X509_INFO_free
(
X509_INFO
*
a
);
char
*
X509_NAME_oneline
(
X509_NAME
*
a
,
char
*
buf
,
int
size
);
char
*
X509_NAME_oneline
(
X509_NAME
*
a
,
char
*
buf
,
int
size
);
int
ASN1_verify
(
int
(
*
i2d
)(),
X509_ALGOR
*
algor1
,
int
ASN1_verify
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
X509_ALGOR
*
algor1
,
ASN1_BIT_STRING
*
signature
,
char
*
data
,
EVP_PKEY
*
pkey
);
ASN1_BIT_STRING
*
signature
,
char
*
data
,
EVP_PKEY
*
pkey
);
int
ASN1_digest
(
int
(
*
i2d
)(),
const
EVP_MD
*
type
,
char
*
data
,
int
ASN1_digest
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
unsigned
char
*
md
,
unsigned
int
*
len
);
const
EVP_MD
*
type
,
char
*
data
,
unsigned
char
*
md
,
unsigned
int
*
len
);
int
ASN1_sign
(
int
(
*
i2d
)(
),
X509_ALGOR
*
algor1
,
X509_ALGOR
*
algor2
,
int
ASN1_sign
(
int
(
*
i2d
)(
void
*
,
unsigned
char
**
),
X509_ALGOR
*
algor1
,
ASN1_BIT_STRING
*
signature
,
X509_ALGOR
*
algor2
,
ASN1_BIT_STRING
*
signature
,
char
*
data
,
EVP_PKEY
*
pkey
,
const
EVP_MD
*
type
);
char
*
data
,
EVP_PKEY
*
pkey
,
const
EVP_MD
*
type
);
int
ASN1_item_digest
(
const
ASN1_ITEM
*
it
,
const
EVP_MD
*
type
,
void
*
data
,
int
ASN1_item_digest
(
const
ASN1_ITEM
*
it
,
const
EVP_MD
*
type
,
void
*
data
,
unsigned
char
*
md
,
unsigned
int
*
len
);
unsigned
char
*
md
,
unsigned
int
*
len
);
...
...
crypto/x509/x509_vfy.c
浏览文件 @
41a15c4f
...
@@ -102,7 +102,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx)
...
@@ -102,7 +102,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx)
X509_VERIFY_PARAM
*
param
=
ctx
->
param
;
X509_VERIFY_PARAM
*
param
=
ctx
->
param
;
int
depth
,
i
,
ok
=
0
;
int
depth
,
i
,
ok
=
0
;
int
num
;
int
num
;
int
(
*
cb
)();
int
(
*
cb
)(
int
ok
,
X509_STORE_CTX
*
ctx
);
STACK_OF
(
X509
)
*
sktmp
=
NULL
;
STACK_OF
(
X509
)
*
sktmp
=
NULL
;
if
(
ctx
->
cert
==
NULL
)
if
(
ctx
->
cert
==
NULL
)
{
{
...
@@ -388,7 +388,7 @@ static int check_chain_extensions(X509_STORE_CTX *ctx)
...
@@ -388,7 +388,7 @@ static int check_chain_extensions(X509_STORE_CTX *ctx)
#else
#else
int
i
,
ok
=
0
,
must_be_ca
;
int
i
,
ok
=
0
,
must_be_ca
;
X509
*
x
;
X509
*
x
;
int
(
*
cb
)();
int
(
*
cb
)(
int
ok
,
X509_STORE_CTX
*
ctx
);
int
proxy_path_length
=
0
;
int
proxy_path_length
=
0
;
cb
=
ctx
->
verify_cb
;
cb
=
ctx
->
verify_cb
;
...
@@ -515,7 +515,7 @@ static int check_trust(X509_STORE_CTX *ctx)
...
@@ -515,7 +515,7 @@ static int check_trust(X509_STORE_CTX *ctx)
#else
#else
int
i
,
ok
;
int
i
,
ok
;
X509
*
x
;
X509
*
x
;
int
(
*
cb
)();
int
(
*
cb
)(
int
ok
,
X509_STORE_CTX
*
ctx
);
cb
=
ctx
->
verify_cb
;
cb
=
ctx
->
verify_cb
;
/* For now just check the last certificate in the chain */
/* For now just check the last certificate in the chain */
i
=
sk_X509_num
(
ctx
->
chain
)
-
1
;
i
=
sk_X509_num
(
ctx
->
chain
)
-
1
;
...
@@ -925,7 +925,7 @@ static int internal_verify(X509_STORE_CTX *ctx)
...
@@ -925,7 +925,7 @@ static int internal_verify(X509_STORE_CTX *ctx)
int
ok
=
0
,
n
;
int
ok
=
0
,
n
;
X509
*
xs
,
*
xi
;
X509
*
xs
,
*
xi
;
EVP_PKEY
*
pkey
=
NULL
;
EVP_PKEY
*
pkey
=
NULL
;
int
(
*
cb
)();
int
(
*
cb
)(
int
ok
,
X509_STORE_CTX
*
ctx
);
cb
=
ctx
->
verify_cb
;
cb
=
ctx
->
verify_cb
;
...
...
crypto/x509/x_all.c
浏览文件 @
41a15c4f
...
@@ -225,9 +225,9 @@ RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa)
...
@@ -225,9 +225,9 @@ RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa)
RSA
*
d2i_RSA_PUBKEY_fp
(
FILE
*
fp
,
RSA
**
rsa
)
RSA
*
d2i_RSA_PUBKEY_fp
(
FILE
*
fp
,
RSA
**
rsa
)
{
{
return
((
RSA
*
)
ASN1_d2i_fp
((
char
*
(
*
)(
))
return
ASN1_d2i_fp
((
void
*
(
*
)(
void
))
RSA_new
,(
char
*
(
*
)())
d2i_RSA_PUBKEY
,
(
fp
)
,
RSA_new
,(
D2I_OF
(
void
))
d2i_RSA_PUBKEY
,
fp
,
(
unsigned
char
**
)(
rsa
))
);
(
void
**
)
rsa
);
}
}
int
i2d_RSAPublicKey_fp
(
FILE
*
fp
,
RSA
*
rsa
)
int
i2d_RSAPublicKey_fp
(
FILE
*
fp
,
RSA
*
rsa
)
...
@@ -237,7 +237,7 @@ int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa)
...
@@ -237,7 +237,7 @@ int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa)
int
i2d_RSA_PUBKEY_fp
(
FILE
*
fp
,
RSA
*
rsa
)
int
i2d_RSA_PUBKEY_fp
(
FILE
*
fp
,
RSA
*
rsa
)
{
{
return
(
ASN1_i2d_fp
(
i2d_RSA_PUBKEY
,
fp
,(
unsigned
char
*
)
rsa
)
);
return
ASN1_i2d_fp
((
I2D_OF
(
void
))
i2d_RSA_PUBKEY
,
fp
,
rsa
);
}
}
#endif
#endif
...
@@ -259,9 +259,7 @@ RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa)
...
@@ -259,9 +259,7 @@ RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa)
RSA
*
d2i_RSA_PUBKEY_bio
(
BIO
*
bp
,
RSA
**
rsa
)
RSA
*
d2i_RSA_PUBKEY_bio
(
BIO
*
bp
,
RSA
**
rsa
)
{
{
return
((
RSA
*
)
ASN1_d2i_bio
((
char
*
(
*
)())
return
ASN1_d2i_bio_of
(
RSA
,
RSA_new
,
d2i_RSA_PUBKEY
,
bp
,
rsa
);
RSA_new
,(
char
*
(
*
)())
d2i_RSA_PUBKEY
,
(
bp
),
(
unsigned
char
**
)(
rsa
)));
}
}
int
i2d_RSAPublicKey_bio
(
BIO
*
bp
,
RSA
*
rsa
)
int
i2d_RSAPublicKey_bio
(
BIO
*
bp
,
RSA
*
rsa
)
...
@@ -271,7 +269,7 @@ int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa)
...
@@ -271,7 +269,7 @@ int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa)
int
i2d_RSA_PUBKEY_bio
(
BIO
*
bp
,
RSA
*
rsa
)
int
i2d_RSA_PUBKEY_bio
(
BIO
*
bp
,
RSA
*
rsa
)
{
{
return
(
ASN1_i2d_bio
(
i2d_RSA_PUBKEY
,
bp
,(
unsigned
char
*
)
rsa
)
);
return
ASN1_i2d_bio_of
(
RSA
,
i2d_RSA_PUBKEY
,
bp
,
rsa
);
}
}
#endif
#endif
...
@@ -279,51 +277,44 @@ int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa)
...
@@ -279,51 +277,44 @@ int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa)
#ifndef OPENSSL_NO_FP_API
#ifndef OPENSSL_NO_FP_API
DSA
*
d2i_DSAPrivateKey_fp
(
FILE
*
fp
,
DSA
**
dsa
)
DSA
*
d2i_DSAPrivateKey_fp
(
FILE
*
fp
,
DSA
**
dsa
)
{
{
return
((
DSA
*
)
ASN1_d2i_fp
((
char
*
(
*
)())
return
ASN1_d2i_fp_of
(
DSA
,
DSA_new
,
d2i_DSAPrivateKey
,
fp
,
dsa
);
DSA_new
,(
char
*
(
*
)())
d2i_DSAPrivateKey
,
(
fp
),
(
unsigned
char
**
)(
dsa
)));
}
}
int
i2d_DSAPrivateKey_fp
(
FILE
*
fp
,
DSA
*
dsa
)
int
i2d_DSAPrivateKey_fp
(
FILE
*
fp
,
DSA
*
dsa
)
{
{
return
(
ASN1_i2d_fp
(
i2d_DSAPrivateKey
,
fp
,(
unsigned
char
*
)
dsa
)
);
return
ASN1_i2d_fp_of_const
(
DSA
,
i2d_DSAPrivateKey
,
fp
,
dsa
);
}
}
DSA
*
d2i_DSA_PUBKEY_fp
(
FILE
*
fp
,
DSA
**
dsa
)
DSA
*
d2i_DSA_PUBKEY_fp
(
FILE
*
fp
,
DSA
**
dsa
)
{
{
return
((
DSA
*
)
ASN1_d2i_fp
((
char
*
(
*
)())
return
ASN1_d2i_fp_of
(
DSA
,
DSA_new
,
d2i_DSA_PUBKEY
,
fp
,
dsa
);
DSA_new
,(
char
*
(
*
)())
d2i_DSA_PUBKEY
,
(
fp
),
(
unsigned
char
**
)(
dsa
)));
}
}
int
i2d_DSA_PUBKEY_fp
(
FILE
*
fp
,
DSA
*
dsa
)
int
i2d_DSA_PUBKEY_fp
(
FILE
*
fp
,
DSA
*
dsa
)
{
{
return
(
ASN1_i2d_fp
(
i2d_DSA_PUBKEY
,
fp
,(
unsigned
char
*
)
dsa
)
);
return
ASN1_i2d_fp_of
(
DSA
,
i2d_DSA_PUBKEY
,
fp
,
dsa
);
}
}
#endif
#endif
DSA
*
d2i_DSAPrivateKey_bio
(
BIO
*
bp
,
DSA
**
dsa
)
DSA
*
d2i_DSAPrivateKey_bio
(
BIO
*
bp
,
DSA
**
dsa
)
{
{
return
((
DSA
*
)
ASN1_d2i_bio
((
char
*
(
*
)())
return
ASN1_d2i_bio_of
(
DSA
,
DSA_new
,
d2i_DSAPrivateKey
,
bp
,
dsa
DSA_new
,(
char
*
(
*
)())
d2i_DSAPrivateKey
,
(
bp
),
);
(
unsigned
char
**
)(
dsa
)));
}
}
int
i2d_DSAPrivateKey_bio
(
BIO
*
bp
,
DSA
*
dsa
)
int
i2d_DSAPrivateKey_bio
(
BIO
*
bp
,
DSA
*
dsa
)
{
{
return
(
ASN1_i2d_bio
(
i2d_DSAPrivateKey
,
bp
,(
unsigned
char
*
)
dsa
)
);
return
ASN1_i2d_bio_of_const
(
DSA
,
i2d_DSAPrivateKey
,
bp
,
dsa
);
}
}
DSA
*
d2i_DSA_PUBKEY_bio
(
BIO
*
bp
,
DSA
**
dsa
)
DSA
*
d2i_DSA_PUBKEY_bio
(
BIO
*
bp
,
DSA
**
dsa
)
{
{
return
((
DSA
*
)
ASN1_d2i_bio
((
char
*
(
*
)())
return
ASN1_d2i_bio_of
(
DSA
,
DSA_new
,
d2i_DSA_PUBKEY
,
bp
,
dsa
);
DSA_new
,(
char
*
(
*
)())
d2i_DSA_PUBKEY
,
(
bp
),
(
unsigned
char
**
)(
dsa
)));
}
}
int
i2d_DSA_PUBKEY_bio
(
BIO
*
bp
,
DSA
*
dsa
)
int
i2d_DSA_PUBKEY_bio
(
BIO
*
bp
,
DSA
*
dsa
)
{
{
return
(
ASN1_i2d_bio
(
i2d_DSA_PUBKEY
,
bp
,(
unsigned
char
*
)
dsa
)
);
return
ASN1_i2d_bio_of
(
DSA
,
i2d_DSA_PUBKEY
,
bp
,
dsa
);
}
}
#endif
#endif
...
@@ -332,50 +323,42 @@ int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa)
...
@@ -332,50 +323,42 @@ int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa)
#ifndef OPENSSL_NO_FP_API
#ifndef OPENSSL_NO_FP_API
EC_KEY
*
d2i_EC_PUBKEY_fp
(
FILE
*
fp
,
EC_KEY
**
eckey
)
EC_KEY
*
d2i_EC_PUBKEY_fp
(
FILE
*
fp
,
EC_KEY
**
eckey
)
{
{
return
((
EC_KEY
*
)
ASN1_d2i_fp
((
char
*
(
*
)())
return
ASN1_d2i_fp_of
(
EC_KEY
,
EC_KEY_new
,
d2i_EC_PUBKEY
,
fp
,
eckey
);
EC_KEY_new
,(
char
*
(
*
)())
d2i_EC_PUBKEY
,
(
fp
),
(
unsigned
char
**
)(
eckey
)));
}
}
int
i2d_EC_PUBKEY_fp
(
FILE
*
fp
,
EC_KEY
*
eckey
)
int
i2d_EC_PUBKEY_fp
(
FILE
*
fp
,
EC_KEY
*
eckey
)
{
{
return
(
ASN1_i2d_fp
(
i2d_EC_PUBKEY
,
fp
,(
unsigned
char
*
)
eckey
)
);
return
ASN1_i2d_fp_of
(
EC_KEY
,
i2d_EC_PUBKEY
,
fp
,
eckey
);
}
}
EC_KEY
*
d2i_ECPrivateKey_fp
(
FILE
*
fp
,
EC_KEY
**
eckey
)
EC_KEY
*
d2i_ECPrivateKey_fp
(
FILE
*
fp
,
EC_KEY
**
eckey
)
{
{
return
((
EC_KEY
*
)
ASN1_d2i_fp
((
char
*
(
*
)())
return
ASN1_d2i_fp_of
(
EC_KEY
,
EC_KEY_new
,
d2i_ECPrivateKey
,
fp
,
eckey
);
EC_KEY_new
,(
char
*
(
*
)())
d2i_ECPrivateKey
,
(
fp
),
(
unsigned
char
**
)(
eckey
)));
}
}
int
i2d_ECPrivateKey_fp
(
FILE
*
fp
,
EC_KEY
*
eckey
)
int
i2d_ECPrivateKey_fp
(
FILE
*
fp
,
EC_KEY
*
eckey
)
{
{
return
(
ASN1_i2d_fp
(
i2d_ECPrivateKey
,
fp
,(
unsigned
char
*
)
eckey
)
);
return
ASN1_i2d_fp_of
(
EC_KEY
,
i2d_ECPrivateKey
,
fp
,
eckey
);
}
}
#endif
#endif
EC_KEY
*
d2i_EC_PUBKEY_bio
(
BIO
*
bp
,
EC_KEY
**
eckey
)
EC_KEY
*
d2i_EC_PUBKEY_bio
(
BIO
*
bp
,
EC_KEY
**
eckey
)
{
{
return
((
EC_KEY
*
)
ASN1_d2i_bio
((
char
*
(
*
)())
return
ASN1_d2i_bio_of
(
EC_KEY
,
EC_KEY_new
,
d2i_EC_PUBKEY
,
bp
,
eckey
);
EC_KEY_new
,(
char
*
(
*
)())
d2i_EC_PUBKEY
,
(
bp
),
(
unsigned
char
**
)(
eckey
)));
}
}
int
i2d_EC_PUBKEY_bio
(
BIO
*
bp
,
EC_KEY
*
ecdsa
)
int
i2d_EC_PUBKEY_bio
(
BIO
*
bp
,
EC_KEY
*
ecdsa
)
{
{
return
(
ASN1_i2d_bio
(
i2d_EC_PUBKEY
,
bp
,(
unsigned
char
*
)
ecdsa
)
);
return
ASN1_i2d_bio_of
(
EC_KEY
,
i2d_EC_PUBKEY
,
bp
,
ecdsa
);
}
}
EC_KEY
*
d2i_ECPrivateKey_bio
(
BIO
*
bp
,
EC_KEY
**
eckey
)
EC_KEY
*
d2i_ECPrivateKey_bio
(
BIO
*
bp
,
EC_KEY
**
eckey
)
{
{
return
((
EC_KEY
*
)
ASN1_d2i_bio
((
char
*
(
*
)())
return
ASN1_d2i_bio_of
(
EC_KEY
,
EC_KEY_new
,
d2i_ECPrivateKey
,
bp
,
eckey
);
EC_KEY_new
,(
char
*
(
*
)())
d2i_ECPrivateKey
,
(
bp
),
(
unsigned
char
**
)(
eckey
)));
}
}
int
i2d_ECPrivateKey_bio
(
BIO
*
bp
,
EC_KEY
*
eckey
)
int
i2d_ECPrivateKey_bio
(
BIO
*
bp
,
EC_KEY
*
eckey
)
{
{
return
(
ASN1_i2d_bio
(
i2d_ECPrivateKey
,
bp
,(
unsigned
char
*
)
eckey
)
);
return
ASN1_i2d_bio_of
(
EC_KEY
,
i2d_ECPrivateKey
,
bp
,
eckey
);
}
}
#endif
#endif
...
@@ -424,40 +407,37 @@ int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, const EVP_MD *
...
@@ -424,40 +407,37 @@ int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, const EVP_MD *
#ifndef OPENSSL_NO_FP_API
#ifndef OPENSSL_NO_FP_API
X509_SIG
*
d2i_PKCS8_fp
(
FILE
*
fp
,
X509_SIG
**
p8
)
X509_SIG
*
d2i_PKCS8_fp
(
FILE
*
fp
,
X509_SIG
**
p8
)
{
{
return
((
X509_SIG
*
)
ASN1_d2i_fp
((
char
*
(
*
)())
X509_SIG_new
,
return
ASN1_d2i_fp_of
(
X509_SIG
,
X509_SIG_new
,
d2i_X509_SIG
,
fp
,
p8
);
(
char
*
(
*
)())
d2i_X509_SIG
,
(
fp
),(
unsigned
char
**
)(
p8
)));
}
}
int
i2d_PKCS8_fp
(
FILE
*
fp
,
X509_SIG
*
p8
)
int
i2d_PKCS8_fp
(
FILE
*
fp
,
X509_SIG
*
p8
)
{
{
return
(
ASN1_i2d_fp
(
i2d_X509_SIG
,
fp
,(
unsigned
char
*
)
p8
)
);
return
ASN1_i2d_fp_of
(
X509_SIG
,
i2d_X509_SIG
,
fp
,
p8
);
}
}
#endif
#endif
X509_SIG
*
d2i_PKCS8_bio
(
BIO
*
bp
,
X509_SIG
**
p8
)
X509_SIG
*
d2i_PKCS8_bio
(
BIO
*
bp
,
X509_SIG
**
p8
)
{
{
return
((
X509_SIG
*
)
ASN1_d2i_bio
((
char
*
(
*
)())
X509_SIG_new
,
return
ASN1_d2i_bio_of
(
X509_SIG
,
X509_SIG_new
,
d2i_X509_SIG
,
bp
,
p8
);
(
char
*
(
*
)())
d2i_X509_SIG
,
(
bp
),(
unsigned
char
**
)(
p8
)));
}
}
int
i2d_PKCS8_bio
(
BIO
*
bp
,
X509_SIG
*
p8
)
int
i2d_PKCS8_bio
(
BIO
*
bp
,
X509_SIG
*
p8
)
{
{
return
(
ASN1_i2d_bio
(
i2d_X509_SIG
,
bp
,(
unsigned
char
*
)
p8
)
);
return
ASN1_i2d_bio_of
(
X509_SIG
,
i2d_X509_SIG
,
bp
,
p8
);
}
}
#ifndef OPENSSL_NO_FP_API
#ifndef OPENSSL_NO_FP_API
PKCS8_PRIV_KEY_INFO
*
d2i_PKCS8_PRIV_KEY_INFO_fp
(
FILE
*
fp
,
PKCS8_PRIV_KEY_INFO
*
d2i_PKCS8_PRIV_KEY_INFO_fp
(
FILE
*
fp
,
PKCS8_PRIV_KEY_INFO
**
p8inf
)
PKCS8_PRIV_KEY_INFO
**
p8inf
)
{
{
return
((
PKCS8_PRIV_KEY_INFO
*
)
ASN1_d2i_fp
(
return
ASN1_d2i_fp_of
(
PKCS8_PRIV_KEY_INFO
,
PKCS8_PRIV_KEY_INFO_new
,
(
char
*
(
*
)())
PKCS8_PRIV_KEY_INFO_new
,
d2i_PKCS8_PRIV_KEY_INFO
,
fp
,
p8inf
);
(
char
*
(
*
)())
d2i_PKCS8_PRIV_KEY_INFO
,
(
fp
),
(
unsigned
char
**
)(
p8inf
)));
}
}
int
i2d_PKCS8_PRIV_KEY_INFO_fp
(
FILE
*
fp
,
PKCS8_PRIV_KEY_INFO
*
p8inf
)
int
i2d_PKCS8_PRIV_KEY_INFO_fp
(
FILE
*
fp
,
PKCS8_PRIV_KEY_INFO
*
p8inf
)
{
{
return
(
ASN1_i2d_fp
(
i2d_PKCS8_PRIV_KEY_INFO
,
fp
,(
unsigned
char
*
)
p8inf
));
return
ASN1_i2d_fp_of
(
PKCS8_PRIV_KEY_INFO
,
i2d_PKCS8_PRIV_KEY_INFO
,
fp
,
p8inf
);
}
}
int
i2d_PKCS8PrivateKeyInfo_fp
(
FILE
*
fp
,
EVP_PKEY
*
key
)
int
i2d_PKCS8PrivateKeyInfo_fp
(
FILE
*
fp
,
EVP_PKEY
*
key
)
...
@@ -473,24 +453,22 @@ int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key)
...
@@ -473,24 +453,22 @@ int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key)
int
i2d_PrivateKey_fp
(
FILE
*
fp
,
EVP_PKEY
*
pkey
)
int
i2d_PrivateKey_fp
(
FILE
*
fp
,
EVP_PKEY
*
pkey
)
{
{
return
(
ASN1_i2d_fp
(
i2d_PrivateKey
,
fp
,(
unsigned
char
*
)
pkey
)
);
return
ASN1_i2d_fp_of
(
EVP_PKEY
,
i2d_PrivateKey
,
fp
,
pkey
);
}
}
EVP_PKEY
*
d2i_PrivateKey_fp
(
FILE
*
fp
,
EVP_PKEY
**
a
)
EVP_PKEY
*
d2i_PrivateKey_fp
(
FILE
*
fp
,
EVP_PKEY
**
a
)
{
{
return
((
EVP_PKEY
*
)
ASN1_d2i_fp
((
char
*
(
*
)())
EVP_PKEY_new
,
return
ASN1_d2i_fp_of
(
EVP_PKEY
,
EVP_PKEY_new
,
d2i_AutoPrivateKey
,
fp
,
a
);
(
char
*
(
*
)())
d2i_AutoPrivateKey
,
(
fp
),(
unsigned
char
**
)(
a
)));
}
}
int
i2d_PUBKEY_fp
(
FILE
*
fp
,
EVP_PKEY
*
pkey
)
int
i2d_PUBKEY_fp
(
FILE
*
fp
,
EVP_PKEY
*
pkey
)
{
{
return
(
ASN1_i2d_fp
(
i2d_PUBKEY
,
fp
,(
unsigned
char
*
)
pkey
)
);
return
ASN1_i2d_fp_of
(
EVP_PKEY
,
i2d_PUBKEY
,
fp
,
pkey
);
}
}
EVP_PKEY
*
d2i_PUBKEY_fp
(
FILE
*
fp
,
EVP_PKEY
**
a
)
EVP_PKEY
*
d2i_PUBKEY_fp
(
FILE
*
fp
,
EVP_PKEY
**
a
)
{
{
return
((
EVP_PKEY
*
)
ASN1_d2i_fp
((
char
*
(
*
)())
EVP_PKEY_new
,
return
ASN1_d2i_fp_of
(
EVP_PKEY
,
EVP_PKEY_new
,
d2i_PUBKEY
,
fp
,
a
);
(
char
*
(
*
)())
d2i_PUBKEY
,
(
fp
),(
unsigned
char
**
)(
a
)));
}
}
#endif
#endif
...
@@ -498,15 +476,14 @@ EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a)
...
@@ -498,15 +476,14 @@ EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a)
PKCS8_PRIV_KEY_INFO
*
d2i_PKCS8_PRIV_KEY_INFO_bio
(
BIO
*
bp
,
PKCS8_PRIV_KEY_INFO
*
d2i_PKCS8_PRIV_KEY_INFO_bio
(
BIO
*
bp
,
PKCS8_PRIV_KEY_INFO
**
p8inf
)
PKCS8_PRIV_KEY_INFO
**
p8inf
)
{
{
return
((
PKCS8_PRIV_KEY_INFO
*
)
ASN1_d2i_bio
(
return
ASN1_d2i_bio_of
(
PKCS8_PRIV_KEY_INFO
,
PKCS8_PRIV_KEY_INFO_new
,
(
char
*
(
*
)())
PKCS8_PRIV_KEY_INFO_new
,
d2i_PKCS8_PRIV_KEY_INFO
,
bp
,
p8inf
);
(
char
*
(
*
)())
d2i_PKCS8_PRIV_KEY_INFO
,
(
bp
),
(
unsigned
char
**
)(
p8inf
)));
}
}
int
i2d_PKCS8_PRIV_KEY_INFO_bio
(
BIO
*
bp
,
PKCS8_PRIV_KEY_INFO
*
p8inf
)
int
i2d_PKCS8_PRIV_KEY_INFO_bio
(
BIO
*
bp
,
PKCS8_PRIV_KEY_INFO
*
p8inf
)
{
{
return
(
ASN1_i2d_bio
(
i2d_PKCS8_PRIV_KEY_INFO
,
bp
,(
unsigned
char
*
)
p8inf
));
return
ASN1_i2d_bio_of
(
PKCS8_PRIV_KEY_INFO
,
i2d_PKCS8_PRIV_KEY_INFO
,
bp
,
p8inf
);
}
}
int
i2d_PKCS8PrivateKeyInfo_bio
(
BIO
*
bp
,
EVP_PKEY
*
key
)
int
i2d_PKCS8PrivateKeyInfo_bio
(
BIO
*
bp
,
EVP_PKEY
*
key
)
...
@@ -522,22 +499,20 @@ int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key)
...
@@ -522,22 +499,20 @@ int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key)
int
i2d_PrivateKey_bio
(
BIO
*
bp
,
EVP_PKEY
*
pkey
)
int
i2d_PrivateKey_bio
(
BIO
*
bp
,
EVP_PKEY
*
pkey
)
{
{
return
(
ASN1_i2d_bio
(
i2d_PrivateKey
,
bp
,(
unsigned
char
*
)
pkey
)
);
return
ASN1_i2d_bio_of
(
EVP_PKEY
,
i2d_PrivateKey
,
bp
,
pkey
);
}
}
EVP_PKEY
*
d2i_PrivateKey_bio
(
BIO
*
bp
,
EVP_PKEY
**
a
)
EVP_PKEY
*
d2i_PrivateKey_bio
(
BIO
*
bp
,
EVP_PKEY
**
a
)
{
{
return
((
EVP_PKEY
*
)
ASN1_d2i_bio
((
char
*
(
*
)())
EVP_PKEY_new
,
return
ASN1_d2i_bio_of
(
EVP_PKEY
,
EVP_PKEY_new
,
d2i_AutoPrivateKey
,
bp
,
a
);
(
char
*
(
*
)())
d2i_AutoPrivateKey
,
(
bp
),(
unsigned
char
**
)(
a
)));
}
}
int
i2d_PUBKEY_bio
(
BIO
*
bp
,
EVP_PKEY
*
pkey
)
int
i2d_PUBKEY_bio
(
BIO
*
bp
,
EVP_PKEY
*
pkey
)
{
{
return
(
ASN1_i2d_bio
(
i2d_PUBKEY
,
bp
,(
unsigned
char
*
)
pkey
)
);
return
ASN1_i2d_bio_of
(
EVP_PKEY
,
i2d_PUBKEY
,
bp
,
pkey
);
}
}
EVP_PKEY
*
d2i_PUBKEY_bio
(
BIO
*
bp
,
EVP_PKEY
**
a
)
EVP_PKEY
*
d2i_PUBKEY_bio
(
BIO
*
bp
,
EVP_PKEY
**
a
)
{
{
return
((
EVP_PKEY
*
)
ASN1_d2i_bio
((
char
*
(
*
)())
EVP_PKEY_new
,
return
ASN1_d2i_bio_of
(
EVP_PKEY
,
EVP_PKEY_new
,
d2i_PUBKEY
,
bp
,
a
);
(
char
*
(
*
)())
d2i_PUBKEY
,
(
bp
),(
unsigned
char
**
)(
a
)));
}
}
engines/vendor_defns/aep.h
浏览文件 @
41a15c4f
...
@@ -171,8 +171,8 @@ typedef AEP_RV t_AEP_GenRandom(AEP_CONNECTION_HNDL hConnection,
...
@@ -171,8 +171,8 @@ typedef AEP_RV t_AEP_GenRandom(AEP_CONNECTION_HNDL hConnection,
#endif
#endif
typedef
AEP_RV
t_AEP_Initialize
(
AEP_VOID_PTR
pInitArgs
);
typedef
AEP_RV
t_AEP_Initialize
(
AEP_VOID_PTR
pInitArgs
);
typedef
AEP_RV
t_AEP_Finalize
();
typedef
AEP_RV
t_AEP_Finalize
(
void
);
typedef
AEP_RV
t_AEP_SetBNCallBacks
(
AEP_RV
(
*
GetBigNumSizeFunc
)(),
typedef
AEP_RV
t_AEP_SetBNCallBacks
(
AEP_RV
(
*
GetBigNumSizeFunc
)(
AEP_VOID_PTR
ArbBigNum
,
AEP_U32
*
BigNumSize
),
AEP_RV
(
*
MakeAEPBigNumFunc
)(),
AEP_RV
(
*
MakeAEPBigNumFunc
)(
AEP_VOID_PTR
ArbBigNum
,
AEP_U32
BigNumSize
,
unsigned
char
*
AEP_BigNum
),
AEP_RV
(
*
ConverAEPBigNumFunc
)());
AEP_RV
(
*
ConverAEPBigNumFunc
)(
void
*
ArbBigNum
,
AEP_U32
BigNumSize
,
unsigned
char
*
AEP_BigNum
));
engines/vendor_defns/sureware.h
浏览文件 @
41a15c4f
...
@@ -47,7 +47,7 @@ extern SW_EXPORT SureWareHook_Init_t SureWareHook_Init;
...
@@ -47,7 +47,7 @@ extern SW_EXPORT SureWareHook_Init_t SureWareHook_Init;
/*
/*
* SureWare Finish function
* SureWare Finish function
*/
*/
typedef
void
SureWareHook_Finish_t
();
typedef
void
SureWareHook_Finish_t
(
void
);
extern
SW_EXPORT
SureWareHook_Finish_t
SureWareHook_Finish
;
extern
SW_EXPORT
SureWareHook_Finish_t
SureWareHook_Finish
;
/*
/*
* PRE_CONDITION:
* PRE_CONDITION:
...
...
ssl/bio_ssl.c
浏览文件 @
41a15c4f
...
@@ -465,9 +465,9 @@ static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr)
...
@@ -465,9 +465,9 @@ static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr)
break
;
break
;
case
BIO_CTRL_GET_CALLBACK
:
case
BIO_CTRL_GET_CALLBACK
:
{
{
void
(
**
fptr
)();
void
(
**
fptr
)(
const
SSL
*
ssl
,
int
type
,
int
val
);
fptr
=
(
void
(
**
)())
ptr
;
fptr
=
(
void
(
**
)(
const
SSL
*
ssl
,
int
type
,
int
val
))
ptr
;
*
fptr
=
SSL_get_info_callback
(
ssl
);
*
fptr
=
SSL_get_info_callback
(
ssl
);
}
}
break
;
break
;
...
...
ssl/s23_lib.c
浏览文件 @
41a15c4f
...
@@ -93,7 +93,7 @@ static SSL_METHOD SSLv23_data= {
...
@@ -93,7 +93,7 @@ static SSL_METHOD SSLv23_data= {
ssl_bad_method
,
ssl_bad_method
,
ssl23_default_timeout
,
ssl23_default_timeout
,
&
ssl3_undef_enc_method
,
&
ssl3_undef_enc_method
,
ssl_undefined_function
,
ssl_undefined_
void_
function
,
ssl3_callback_ctrl
,
ssl3_callback_ctrl
,
ssl3_ctx_callback_ctrl
,
ssl3_ctx_callback_ctrl
,
};
};
...
...
ssl/s2_lib.c
浏览文件 @
41a15c4f
...
@@ -234,7 +234,7 @@ static SSL_METHOD SSLv2_data= {
...
@@ -234,7 +234,7 @@ static SSL_METHOD SSLv2_data= {
ssl_bad_method
,
ssl_bad_method
,
ssl2_default_timeout
,
ssl2_default_timeout
,
&
ssl3_undef_enc_method
,
&
ssl3_undef_enc_method
,
ssl_undefined_function
,
ssl_undefined_
void_
function
,
ssl2_callback_ctrl
,
/* local */
ssl2_callback_ctrl
,
/* local */
ssl2_ctx_callback_ctrl
,
/* local */
ssl2_ctx_callback_ctrl
,
/* local */
};
};
...
@@ -348,7 +348,7 @@ long ssl2_ctrl(SSL *s, int cmd, long larg, void *parg)
...
@@ -348,7 +348,7 @@ long ssl2_ctrl(SSL *s, int cmd, long larg, void *parg)
return
(
ret
);
return
(
ret
);
}
}
long
ssl2_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)())
long
ssl2_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)(
void
))
{
{
return
(
0
);
return
(
0
);
}
}
...
@@ -358,7 +358,7 @@ long ssl2_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
...
@@ -358,7 +358,7 @@ long ssl2_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
return
(
0
);
return
(
0
);
}
}
long
ssl2_ctx_callback_ctrl
(
SSL_CTX
*
ctx
,
int
cmd
,
void
(
*
fp
)())
long
ssl2_ctx_callback_ctrl
(
SSL_CTX
*
ctx
,
int
cmd
,
void
(
*
fp
)(
void
))
{
{
return
(
0
);
return
(
0
);
}
}
...
...
ssl/s3_lib.c
浏览文件 @
41a15c4f
...
@@ -1391,7 +1391,7 @@ static SSL_METHOD SSLv3_data= {
...
@@ -1391,7 +1391,7 @@ static SSL_METHOD SSLv3_data= {
ssl_bad_method
,
ssl_bad_method
,
ssl3_default_timeout
,
ssl3_default_timeout
,
&
SSLv3_enc_data
,
&
SSLv3_enc_data
,
ssl_undefined_function
,
ssl_undefined_
void_
function
,
ssl3_callback_ctrl
,
ssl3_callback_ctrl
,
ssl3_ctx_callback_ctrl
,
ssl3_ctx_callback_ctrl
,
};
};
...
@@ -1680,7 +1680,7 @@ long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
...
@@ -1680,7 +1680,7 @@ long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
return
(
ret
);
return
(
ret
);
}
}
long
ssl3_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)())
long
ssl3_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)(
void
))
{
{
int
ret
=
0
;
int
ret
=
0
;
...
@@ -1874,7 +1874,7 @@ long ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
...
@@ -1874,7 +1874,7 @@ long ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
return
(
1
);
return
(
1
);
}
}
long
ssl3_ctx_callback_ctrl
(
SSL_CTX
*
ctx
,
int
cmd
,
void
(
*
fp
)())
long
ssl3_ctx_callback_ctrl
(
SSL_CTX
*
ctx
,
int
cmd
,
void
(
*
fp
)(
void
))
{
{
CERT
*
cert
;
CERT
*
cert
;
...
...
ssl/ssl.h
浏览文件 @
41a15c4f
...
@@ -386,9 +386,9 @@ typedef struct ssl_method_st
...
@@ -386,9 +386,9 @@ typedef struct ssl_method_st
struct
ssl_method_st
*
(
*
get_ssl_method
)(
int
version
);
struct
ssl_method_st
*
(
*
get_ssl_method
)(
int
version
);
long
(
*
get_timeout
)(
void
);
long
(
*
get_timeout
)(
void
);
struct
ssl3_enc_method
*
ssl3_enc
;
/* Extra SSLv3/TLS stuff */
struct
ssl3_enc_method
*
ssl3_enc
;
/* Extra SSLv3/TLS stuff */
int
(
*
ssl_version
)();
int
(
*
ssl_version
)(
void
);
long
(
*
ssl_callback_ctrl
)(
SSL
*
s
,
int
cb_id
,
void
(
*
fp
)());
long
(
*
ssl_callback_ctrl
)(
SSL
*
s
,
int
cb_id
,
void
(
*
fp
)(
void
));
long
(
*
ssl_ctx_callback_ctrl
)(
SSL_CTX
*
s
,
int
cb_id
,
void
(
*
fp
)());
long
(
*
ssl_ctx_callback_ctrl
)(
SSL_CTX
*
s
,
int
cb_id
,
void
(
*
fp
)(
void
));
}
SSL_METHOD
;
}
SSL_METHOD
;
/* Lets make this into an ASN.1 type structure as follows
/* Lets make this into an ASN.1 type structure as follows
...
@@ -819,7 +819,7 @@ struct ssl_st
...
@@ -819,7 +819,7 @@ struct ssl_st
/* true when we are actually in SSL_accept() or SSL_connect() */
/* true when we are actually in SSL_accept() or SSL_connect() */
int
in_handshake
;
int
in_handshake
;
int
(
*
handshake_func
)();
int
(
*
handshake_func
)(
SSL
*
);
/* Imagine that here's a boolean member "init" that is
/* Imagine that here's a boolean member "init" that is
* switched as soon as SSL_set_{accept/connect}_state
* switched as soon as SSL_set_{accept/connect}_state
...
@@ -1050,21 +1050,16 @@ size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count);
...
@@ -1050,21 +1050,16 @@ size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count);
#define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b))
#define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b))
#if 1
/*SSLEAY_MACROS*/
#if 1
/*SSLEAY_MACROS*/
#define d2i_SSL_SESSION_bio(bp,s_id) (SSL_SESSION *)ASN1_d2i_bio( \
#define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id)
(char *(*)())SSL_SESSION_new,(char *(*)())d2i_SSL_SESSION, \
#define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id)
(bp),(unsigned char **)(s_id))
#define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio(i2d_SSL_SESSION, \
bp,(unsigned char *)s_id)
#define PEM_read_SSL_SESSION(fp,x,cb,u) (SSL_SESSION *)PEM_ASN1_read( \
#define PEM_read_SSL_SESSION(fp,x,cb,u) (SSL_SESSION *)PEM_ASN1_read( \
(char *(*)())d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,fp,(char **)x,cb,u)
(char *(*)())d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,fp,(char **)x,cb,u)
#define PEM_read_bio_SSL_SESSION(bp,x,cb,u) (SSL_SESSION *)PEM_ASN1_read_bio( \
#define PEM_read_bio_SSL_SESSION(bp,x,cb,u) PEM_ASN1_read_bio_of(SSL_SESSION,d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,bp,x,cb,u)
(char *(*)())d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,bp,(char **)x,cb,u)
#define PEM_write_SSL_SESSION(fp,x) \
#define PEM_write_SSL_SESSION(fp,x) \
PEM_ASN1_write((int (*)())i2d_SSL_SESSION, \
PEM_ASN1_write((int (*)())i2d_SSL_SESSION, \
PEM_STRING_SSL_SESSION,fp, (char *)x, NULL,NULL,0,NULL,NULL)
PEM_STRING_SSL_SESSION,fp, (char *)x, NULL,NULL,0,NULL,NULL)
#define PEM_write_bio_SSL_SESSION(bp,x) \
#define PEM_write_bio_SSL_SESSION(bp,x) \
PEM_ASN1_write_bio((int (*)())i2d_SSL_SESSION, \
PEM_ASN1_write_bio_of(SSL_SESSION,i2d_SSL_SESSION,PEM_STRING_SSL_SESSION,bp,x,NULL,NULL,0,NULL,NULL)
PEM_STRING_SSL_SESSION,bp, (char *)x, NULL,NULL,0,NULL,NULL)
#endif
#endif
#define SSL_AD_REASON_OFFSET 1000
#define SSL_AD_REASON_OFFSET 1000
...
@@ -1290,7 +1285,7 @@ int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB);
...
@@ -1290,7 +1285,7 @@ int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB);
int
SSL_set_generate_session_id
(
SSL
*
,
GEN_SESSION_CB
);
int
SSL_set_generate_session_id
(
SSL
*
,
GEN_SESSION_CB
);
int
SSL_has_matching_session_id
(
const
SSL
*
ssl
,
const
unsigned
char
*
id
,
int
SSL_has_matching_session_id
(
const
SSL
*
ssl
,
const
unsigned
char
*
id
,
unsigned
int
id_len
);
unsigned
int
id_len
);
SSL_SESSION
*
d2i_SSL_SESSION
(
SSL_SESSION
**
a
,
const
unsigned
char
*
const
*
pp
,
SSL_SESSION
*
d2i_SSL_SESSION
(
SSL_SESSION
**
a
,
const
unsigned
char
**
pp
,
long
length
);
long
length
);
#ifdef HEADER_X509_H
#ifdef HEADER_X509_H
...
@@ -1341,9 +1336,9 @@ int SSL_read(SSL *ssl,void *buf,int num);
...
@@ -1341,9 +1336,9 @@ int SSL_read(SSL *ssl,void *buf,int num);
int
SSL_peek
(
SSL
*
ssl
,
void
*
buf
,
int
num
);
int
SSL_peek
(
SSL
*
ssl
,
void
*
buf
,
int
num
);
int
SSL_write
(
SSL
*
ssl
,
const
void
*
buf
,
int
num
);
int
SSL_write
(
SSL
*
ssl
,
const
void
*
buf
,
int
num
);
long
SSL_ctrl
(
SSL
*
ssl
,
int
cmd
,
long
larg
,
void
*
parg
);
long
SSL_ctrl
(
SSL
*
ssl
,
int
cmd
,
long
larg
,
void
*
parg
);
long
SSL_callback_ctrl
(
SSL
*
,
int
,
void
(
*
)());
long
SSL_callback_ctrl
(
SSL
*
,
int
,
void
(
*
)(
void
));
long
SSL_CTX_ctrl
(
SSL_CTX
*
ctx
,
int
cmd
,
long
larg
,
void
*
parg
);
long
SSL_CTX_ctrl
(
SSL_CTX
*
ctx
,
int
cmd
,
long
larg
,
void
*
parg
);
long
SSL_CTX_callback_ctrl
(
SSL_CTX
*
,
int
,
void
(
*
)());
long
SSL_CTX_callback_ctrl
(
SSL_CTX
*
,
int
,
void
(
*
)(
void
));
int
SSL_get_error
(
const
SSL
*
s
,
int
ret_code
);
int
SSL_get_error
(
const
SSL
*
s
,
int
ret_code
);
const
char
*
SSL_get_version
(
const
SSL
*
s
);
const
char
*
SSL_get_version
(
const
SSL
*
s
);
...
@@ -1645,6 +1640,7 @@ void ERR_load_SSL_strings(void);
...
@@ -1645,6 +1640,7 @@ void ERR_load_SSL_strings(void);
#define SSL_F_SSL_SHUTDOWN 224
#define SSL_F_SSL_SHUTDOWN 224
#define SSL_F_SSL_UNDEFINED_CONST_FUNCTION 243
#define SSL_F_SSL_UNDEFINED_CONST_FUNCTION 243
#define SSL_F_SSL_UNDEFINED_FUNCTION 197
#define SSL_F_SSL_UNDEFINED_FUNCTION 197
#define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244
#define SSL_F_SSL_USE_CERTIFICATE 198
#define SSL_F_SSL_USE_CERTIFICATE 198
#define SSL_F_SSL_USE_CERTIFICATE_ASN1 199
#define SSL_F_SSL_USE_CERTIFICATE_ASN1 199
#define SSL_F_SSL_USE_CERTIFICATE_FILE 200
#define SSL_F_SSL_USE_CERTIFICATE_FILE 200
...
...
ssl/ssl_asn1.c
浏览文件 @
41a15c4f
...
@@ -226,7 +226,7 @@ int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp)
...
@@ -226,7 +226,7 @@ int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp)
M_ASN1_I2D_finish
();
M_ASN1_I2D_finish
();
}
}
SSL_SESSION
*
d2i_SSL_SESSION
(
SSL_SESSION
**
a
,
const
unsigned
char
*
const
*
pp
,
SSL_SESSION
*
d2i_SSL_SESSION
(
SSL_SESSION
**
a
,
const
unsigned
char
**
pp
,
long
length
)
long
length
)
{
{
int
version
,
ssl_version
=
0
,
i
;
int
version
,
ssl_version
=
0
,
i
;
...
@@ -242,18 +242,18 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char * const *pp,
...
@@ -242,18 +242,18 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char * const *pp,
M_ASN1_D2I_start_sequence
();
M_ASN1_D2I_start_sequence
();
ai
.
data
=
NULL
;
ai
.
length
=
0
;
ai
.
data
=
NULL
;
ai
.
length
=
0
;
M_ASN1_D2I_get
(
aip
,
d2i_ASN1_INTEGER
);
M_ASN1_D2I_get
(
ASN1_INTEGER
,
aip
,
d2i_ASN1_INTEGER
);
version
=
(
int
)
ASN1_INTEGER_get
(
aip
);
version
=
(
int
)
ASN1_INTEGER_get
(
aip
);
if
(
ai
.
data
!=
NULL
)
{
OPENSSL_free
(
ai
.
data
);
ai
.
data
=
NULL
;
ai
.
length
=
0
;
}
if
(
ai
.
data
!=
NULL
)
{
OPENSSL_free
(
ai
.
data
);
ai
.
data
=
NULL
;
ai
.
length
=
0
;
}
/* we don't care about the version right now :-) */
/* we don't care about the version right now :-) */
M_ASN1_D2I_get
(
aip
,
d2i_ASN1_INTEGER
);
M_ASN1_D2I_get
(
ASN1_INTEGER
,
aip
,
d2i_ASN1_INTEGER
);
ssl_version
=
(
int
)
ASN1_INTEGER_get
(
aip
);
ssl_version
=
(
int
)
ASN1_INTEGER_get
(
aip
);
ret
->
ssl_version
=
ssl_version
;
ret
->
ssl_version
=
ssl_version
;
if
(
ai
.
data
!=
NULL
)
{
OPENSSL_free
(
ai
.
data
);
ai
.
data
=
NULL
;
ai
.
length
=
0
;
}
if
(
ai
.
data
!=
NULL
)
{
OPENSSL_free
(
ai
.
data
);
ai
.
data
=
NULL
;
ai
.
length
=
0
;
}
os
.
data
=
NULL
;
os
.
length
=
0
;
os
.
data
=
NULL
;
os
.
length
=
0
;
M_ASN1_D2I_get
(
osp
,
d2i_ASN1_OCTET_STRING
);
M_ASN1_D2I_get
(
ASN1_OCTET_STRING
,
osp
,
d2i_ASN1_OCTET_STRING
);
if
(
ssl_version
==
SSL2_VERSION
)
if
(
ssl_version
==
SSL2_VERSION
)
{
{
if
(
os
.
length
!=
3
)
if
(
os
.
length
!=
3
)
...
@@ -286,7 +286,7 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char * const *pp,
...
@@ -286,7 +286,7 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char * const *pp,
ret
->
cipher
=
NULL
;
ret
->
cipher
=
NULL
;
ret
->
cipher_id
=
id
;
ret
->
cipher_id
=
id
;
M_ASN1_D2I_get
(
osp
,
d2i_ASN1_OCTET_STRING
);
M_ASN1_D2I_get
(
ASN1_OCTET_STRING
,
osp
,
d2i_ASN1_OCTET_STRING
);
if
((
ssl_version
>>
8
)
==
SSL3_VERSION
)
if
((
ssl_version
>>
8
)
==
SSL3_VERSION
)
i
=
SSL3_MAX_SSL_SESSION_ID_LENGTH
;
i
=
SSL3_MAX_SSL_SESSION_ID_LENGTH
;
else
/* if (ssl_version == SSL2_VERSION) */
else
/* if (ssl_version == SSL2_VERSION) */
...
@@ -301,7 +301,7 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char * const *pp,
...
@@ -301,7 +301,7 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char * const *pp,
OPENSSL_assert
(
os
.
length
<=
(
int
)
sizeof
(
ret
->
session_id
));
OPENSSL_assert
(
os
.
length
<=
(
int
)
sizeof
(
ret
->
session_id
));
memcpy
(
ret
->
session_id
,
os
.
data
,
os
.
length
);
memcpy
(
ret
->
session_id
,
os
.
data
,
os
.
length
);
M_ASN1_D2I_get
(
osp
,
d2i_ASN1_OCTET_STRING
);
M_ASN1_D2I_get
(
ASN1_OCTET_STRING
,
osp
,
d2i_ASN1_OCTET_STRING
);
if
(
ret
->
master_key_length
>
SSL_MAX_MASTER_KEY_LENGTH
)
if
(
ret
->
master_key_length
>
SSL_MAX_MASTER_KEY_LENGTH
)
ret
->
master_key_length
=
SSL_MAX_MASTER_KEY_LENGTH
;
ret
->
master_key_length
=
SSL_MAX_MASTER_KEY_LENGTH
;
else
else
...
...
ssl/ssl_err.c
浏览文件 @
41a15c4f
/* ssl/ssl_err.c */
/* ssl/ssl_err.c */
/* ====================================================================
/* ====================================================================
* Copyright (c) 1999-200
3
The OpenSSL Project. All rights reserved.
* Copyright (c) 1999-200
5
The OpenSSL Project. All rights reserved.
*
*
* Redistribution and use in source and binary forms, with or without
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* modification, are permitted provided that the following conditions
...
@@ -195,6 +195,7 @@ static ERR_STRING_DATA SSL_str_functs[]=
...
@@ -195,6 +195,7 @@ static ERR_STRING_DATA SSL_str_functs[]=
{
ERR_PACK
(
0
,
SSL_F_SSL_SHUTDOWN
,
0
),
"SSL_shutdown"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_SHUTDOWN
,
0
),
"SSL_shutdown"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_UNDEFINED_CONST_FUNCTION
,
0
),
"SSL_UNDEFINED_CONST_FUNCTION"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_UNDEFINED_CONST_FUNCTION
,
0
),
"SSL_UNDEFINED_CONST_FUNCTION"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_UNDEFINED_FUNCTION
,
0
),
"SSL_UNDEFINED_FUNCTION"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_UNDEFINED_FUNCTION
,
0
),
"SSL_UNDEFINED_FUNCTION"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_UNDEFINED_VOID_FUNCTION
,
0
),
"SSL_UNDEFINED_VOID_FUNCTION"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_USE_CERTIFICATE
,
0
),
"SSL_use_certificate"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_USE_CERTIFICATE
,
0
),
"SSL_use_certificate"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_USE_CERTIFICATE_ASN1
,
0
),
"SSL_use_certificate_ASN1"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_USE_CERTIFICATE_ASN1
,
0
),
"SSL_use_certificate_ASN1"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_USE_CERTIFICATE_FILE
,
0
),
"SSL_use_certificate_file"
},
{
ERR_PACK
(
0
,
SSL_F_SSL_USE_CERTIFICATE_FILE
,
0
),
"SSL_use_certificate_file"
},
...
...
ssl/ssl_lib.c
浏览文件 @
41a15c4f
...
@@ -962,7 +962,7 @@ long SSL_ctrl(SSL *s,int cmd,long larg,void *parg)
...
@@ -962,7 +962,7 @@ long SSL_ctrl(SSL *s,int cmd,long larg,void *parg)
}
}
}
}
long
SSL_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)())
long
SSL_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)(
void
))
{
{
switch
(
cmd
)
switch
(
cmd
)
{
{
...
@@ -1050,7 +1050,7 @@ long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd,long larg,void *parg)
...
@@ -1050,7 +1050,7 @@ long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd,long larg,void *parg)
}
}
}
}
long
SSL_CTX_callback_ctrl
(
SSL_CTX
*
ctx
,
int
cmd
,
void
(
*
fp
)())
long
SSL_CTX_callback_ctrl
(
SSL_CTX
*
ctx
,
int
cmd
,
void
(
*
fp
)(
void
))
{
{
switch
(
cmd
)
switch
(
cmd
)
{
{
...
@@ -2029,6 +2029,12 @@ int ssl_undefined_function(SSL *s)
...
@@ -2029,6 +2029,12 @@ int ssl_undefined_function(SSL *s)
return
(
0
);
return
(
0
);
}
}
int
ssl_undefined_void_function
(
void
)
{
SSLerr
(
SSL_F_SSL_UNDEFINED_VOID_FUNCTION
,
ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED
);
return
(
0
);
}
int
ssl_undefined_const_function
(
const
SSL
*
s
)
int
ssl_undefined_const_function
(
const
SSL
*
s
)
{
{
SSLerr
(
SSL_F_SSL_UNDEFINED_CONST_FUNCTION
,
ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED
);
SSLerr
(
SSL_F_SSL_UNDEFINED_CONST_FUNCTION
,
ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED
);
...
@@ -2446,14 +2452,14 @@ void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx,RSA *(*cb)(SSL *ssl,
...
@@ -2446,14 +2452,14 @@ void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx,RSA *(*cb)(SSL *ssl,
int
is_export
,
int
is_export
,
int
keylength
))
int
keylength
))
{
{
SSL_CTX_callback_ctrl
(
ctx
,
SSL_CTRL_SET_TMP_RSA_CB
,(
void
(
*
)())
cb
);
SSL_CTX_callback_ctrl
(
ctx
,
SSL_CTRL_SET_TMP_RSA_CB
,(
void
(
*
)(
void
))
cb
);
}
}
void
SSL_set_tmp_rsa_callback
(
SSL
*
ssl
,
RSA
*
(
*
cb
)(
SSL
*
ssl
,
void
SSL_set_tmp_rsa_callback
(
SSL
*
ssl
,
RSA
*
(
*
cb
)(
SSL
*
ssl
,
int
is_export
,
int
is_export
,
int
keylength
))
int
keylength
))
{
{
SSL_callback_ctrl
(
ssl
,
SSL_CTRL_SET_TMP_RSA_CB
,(
void
(
*
)())
cb
);
SSL_callback_ctrl
(
ssl
,
SSL_CTRL_SET_TMP_RSA_CB
,(
void
(
*
)(
void
))
cb
);
}
}
#endif
#endif
...
@@ -2482,13 +2488,13 @@ RSA *cb(SSL *ssl,int is_export,int keylength)
...
@@ -2482,13 +2488,13 @@ RSA *cb(SSL *ssl,int is_export,int keylength)
void
SSL_CTX_set_tmp_dh_callback
(
SSL_CTX
*
ctx
,
DH
*
(
*
dh
)(
SSL
*
ssl
,
int
is_export
,
void
SSL_CTX_set_tmp_dh_callback
(
SSL_CTX
*
ctx
,
DH
*
(
*
dh
)(
SSL
*
ssl
,
int
is_export
,
int
keylength
))
int
keylength
))
{
{
SSL_CTX_callback_ctrl
(
ctx
,
SSL_CTRL_SET_TMP_DH_CB
,(
void
(
*
)())
dh
);
SSL_CTX_callback_ctrl
(
ctx
,
SSL_CTRL_SET_TMP_DH_CB
,(
void
(
*
)(
void
))
dh
);
}
}
void
SSL_set_tmp_dh_callback
(
SSL
*
ssl
,
DH
*
(
*
dh
)(
SSL
*
ssl
,
int
is_export
,
void
SSL_set_tmp_dh_callback
(
SSL
*
ssl
,
DH
*
(
*
dh
)(
SSL
*
ssl
,
int
is_export
,
int
keylength
))
int
keylength
))
{
{
SSL_callback_ctrl
(
ssl
,
SSL_CTRL_SET_TMP_DH_CB
,(
void
(
*
)())
dh
);
SSL_callback_ctrl
(
ssl
,
SSL_CTRL_SET_TMP_DH_CB
,(
void
(
*
)(
void
))
dh
);
}
}
#endif
#endif
...
@@ -2496,24 +2502,24 @@ void SSL_set_tmp_dh_callback(SSL *ssl,DH *(*dh)(SSL *ssl,int is_export,
...
@@ -2496,24 +2502,24 @@ void SSL_set_tmp_dh_callback(SSL *ssl,DH *(*dh)(SSL *ssl,int is_export,
void
SSL_CTX_set_tmp_ecdh_callback
(
SSL_CTX
*
ctx
,
EC_KEY
*
(
*
ecdh
)(
SSL
*
ssl
,
int
is_export
,
void
SSL_CTX_set_tmp_ecdh_callback
(
SSL_CTX
*
ctx
,
EC_KEY
*
(
*
ecdh
)(
SSL
*
ssl
,
int
is_export
,
int
keylength
))
int
keylength
))
{
{
SSL_CTX_callback_ctrl
(
ctx
,
SSL_CTRL_SET_TMP_ECDH_CB
,(
void
(
*
)())
ecdh
);
SSL_CTX_callback_ctrl
(
ctx
,
SSL_CTRL_SET_TMP_ECDH_CB
,(
void
(
*
)(
void
))
ecdh
);
}
}
void
SSL_set_tmp_ecdh_callback
(
SSL
*
ssl
,
EC_KEY
*
(
*
ecdh
)(
SSL
*
ssl
,
int
is_export
,
void
SSL_set_tmp_ecdh_callback
(
SSL
*
ssl
,
EC_KEY
*
(
*
ecdh
)(
SSL
*
ssl
,
int
is_export
,
int
keylength
))
int
keylength
))
{
{
SSL_callback_ctrl
(
ssl
,
SSL_CTRL_SET_TMP_ECDH_CB
,(
void
(
*
)())
ecdh
);
SSL_callback_ctrl
(
ssl
,
SSL_CTRL_SET_TMP_ECDH_CB
,(
void
(
*
)(
void
))
ecdh
);
}
}
#endif
#endif
void
SSL_CTX_set_msg_callback
(
SSL_CTX
*
ctx
,
void
(
*
cb
)(
int
write_p
,
int
version
,
int
content_type
,
const
void
*
buf
,
size_t
len
,
SSL
*
ssl
,
void
*
arg
))
void
SSL_CTX_set_msg_callback
(
SSL_CTX
*
ctx
,
void
(
*
cb
)(
int
write_p
,
int
version
,
int
content_type
,
const
void
*
buf
,
size_t
len
,
SSL
*
ssl
,
void
*
arg
))
{
{
SSL_CTX_callback_ctrl
(
ctx
,
SSL_CTRL_SET_MSG_CALLBACK
,
(
void
(
*
)())
cb
);
SSL_CTX_callback_ctrl
(
ctx
,
SSL_CTRL_SET_MSG_CALLBACK
,
(
void
(
*
)(
void
))
cb
);
}
}
void
SSL_set_msg_callback
(
SSL
*
ssl
,
void
(
*
cb
)(
int
write_p
,
int
version
,
int
content_type
,
const
void
*
buf
,
size_t
len
,
SSL
*
ssl
,
void
*
arg
))
void
SSL_set_msg_callback
(
SSL
*
ssl
,
void
(
*
cb
)(
int
write_p
,
int
version
,
int
content_type
,
const
void
*
buf
,
size_t
len
,
SSL
*
ssl
,
void
*
arg
))
{
{
SSL_callback_ctrl
(
ssl
,
SSL_CTRL_SET_MSG_CALLBACK
,
(
void
(
*
)())
cb
);
SSL_callback_ctrl
(
ssl
,
SSL_CTRL_SET_MSG_CALLBACK
,
(
void
(
*
)(
void
))
cb
);
}
}
...
...
ssl/ssl_locl.h
浏览文件 @
41a15c4f
...
@@ -523,6 +523,7 @@ int ssl_cipher_get_evp(const SSL_SESSION *s,const EVP_CIPHER **enc,
...
@@ -523,6 +523,7 @@ int ssl_cipher_get_evp(const SSL_SESSION *s,const EVP_CIPHER **enc,
const
EVP_MD
**
md
,
SSL_COMP
**
comp
);
const
EVP_MD
**
md
,
SSL_COMP
**
comp
);
int
ssl_verify_cert_chain
(
SSL
*
s
,
STACK_OF
(
X509
)
*
sk
);
int
ssl_verify_cert_chain
(
SSL
*
s
,
STACK_OF
(
X509
)
*
sk
);
int
ssl_undefined_function
(
SSL
*
s
);
int
ssl_undefined_function
(
SSL
*
s
);
int
ssl_undefined_void_function
(
void
);
int
ssl_undefined_const_function
(
const
SSL
*
s
);
int
ssl_undefined_const_function
(
const
SSL
*
s
);
X509
*
ssl_get_server_send_cert
(
SSL
*
);
X509
*
ssl_get_server_send_cert
(
SSL
*
);
EVP_PKEY
*
ssl_get_sign_pkey
(
SSL
*
,
SSL_CIPHER
*
);
EVP_PKEY
*
ssl_get_sign_pkey
(
SSL
*
,
SSL_CIPHER
*
);
...
@@ -555,8 +556,8 @@ int ssl2_shutdown(SSL *s);
...
@@ -555,8 +556,8 @@ int ssl2_shutdown(SSL *s);
void
ssl2_clear
(
SSL
*
s
);
void
ssl2_clear
(
SSL
*
s
);
long
ssl2_ctrl
(
SSL
*
s
,
int
cmd
,
long
larg
,
void
*
parg
);
long
ssl2_ctrl
(
SSL
*
s
,
int
cmd
,
long
larg
,
void
*
parg
);
long
ssl2_ctx_ctrl
(
SSL_CTX
*
s
,
int
cmd
,
long
larg
,
void
*
parg
);
long
ssl2_ctx_ctrl
(
SSL_CTX
*
s
,
int
cmd
,
long
larg
,
void
*
parg
);
long
ssl2_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)());
long
ssl2_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)(
void
));
long
ssl2_ctx_callback_ctrl
(
SSL_CTX
*
s
,
int
cmd
,
void
(
*
fp
)());
long
ssl2_ctx_callback_ctrl
(
SSL_CTX
*
s
,
int
cmd
,
void
(
*
fp
)(
void
));
int
ssl2_pending
(
const
SSL
*
s
);
int
ssl2_pending
(
const
SSL
*
s
);
SSL_CIPHER
*
ssl3_get_cipher_by_char
(
const
unsigned
char
*
p
);
SSL_CIPHER
*
ssl3_get_cipher_by_char
(
const
unsigned
char
*
p
);
...
@@ -603,8 +604,8 @@ int ssl3_shutdown(SSL *s);
...
@@ -603,8 +604,8 @@ int ssl3_shutdown(SSL *s);
void
ssl3_clear
(
SSL
*
s
);
void
ssl3_clear
(
SSL
*
s
);
long
ssl3_ctrl
(
SSL
*
s
,
int
cmd
,
long
larg
,
void
*
parg
);
long
ssl3_ctrl
(
SSL
*
s
,
int
cmd
,
long
larg
,
void
*
parg
);
long
ssl3_ctx_ctrl
(
SSL_CTX
*
s
,
int
cmd
,
long
larg
,
void
*
parg
);
long
ssl3_ctx_ctrl
(
SSL_CTX
*
s
,
int
cmd
,
long
larg
,
void
*
parg
);
long
ssl3_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)());
long
ssl3_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)(
void
));
long
ssl3_ctx_callback_ctrl
(
SSL_CTX
*
s
,
int
cmd
,
void
(
*
fp
)());
long
ssl3_ctx_callback_ctrl
(
SSL_CTX
*
s
,
int
cmd
,
void
(
*
fp
)(
void
));
int
ssl3_pending
(
const
SSL
*
s
);
int
ssl3_pending
(
const
SSL
*
s
);
int
ssl23_accept
(
SSL
*
s
);
int
ssl23_accept
(
SSL
*
s
);
...
@@ -616,7 +617,7 @@ int tls1_new(SSL *s);
...
@@ -616,7 +617,7 @@ int tls1_new(SSL *s);
void
tls1_free
(
SSL
*
s
);
void
tls1_free
(
SSL
*
s
);
void
tls1_clear
(
SSL
*
s
);
void
tls1_clear
(
SSL
*
s
);
long
tls1_ctrl
(
SSL
*
s
,
int
cmd
,
long
larg
,
void
*
parg
);
long
tls1_ctrl
(
SSL
*
s
,
int
cmd
,
long
larg
,
void
*
parg
);
long
tls1_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)());
long
tls1_callback_ctrl
(
SSL
*
s
,
int
cmd
,
void
(
*
fp
)(
void
));
SSL_METHOD
*
tlsv1_base_method
(
void
);
SSL_METHOD
*
tlsv1_base_method
(
void
);
int
ssl_init_wbio_buffer
(
SSL
*
s
,
int
push
);
int
ssl_init_wbio_buffer
(
SSL
*
s
,
int
push
);
...
...
ssl/t1_lib.c
浏览文件 @
41a15c4f
...
@@ -101,7 +101,7 @@ static SSL_METHOD TLSv1_data= {
...
@@ -101,7 +101,7 @@ static SSL_METHOD TLSv1_data= {
ssl_bad_method
,
ssl_bad_method
,
tls1_default_timeout
,
tls1_default_timeout
,
&
TLSv1_enc_data
,
&
TLSv1_enc_data
,
ssl_undefined_function
,
ssl_undefined_
void_
function
,
ssl3_callback_ctrl
,
ssl3_callback_ctrl
,
ssl3_ctx_callback_ctrl
,
ssl3_ctx_callback_ctrl
,
};
};
...
...
test/Makefile
浏览文件 @
41a15c4f
...
@@ -974,8 +974,11 @@ md5test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
...
@@ -974,8 +974,11 @@ md5test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
md5test.o
:
../include/openssl/opensslconf.h ../include/openssl/opensslv.h
md5test.o
:
../include/openssl/opensslconf.h ../include/openssl/opensslv.h
md5test.o
:
../include/openssl/ossl_typ.h ../include/openssl/safestack.h
md5test.o
:
../include/openssl/ossl_typ.h ../include/openssl/safestack.h
md5test.o
:
../include/openssl/stack.h ../include/openssl/symhacks.h md5test.c
md5test.o
:
../include/openssl/stack.h ../include/openssl/symhacks.h md5test.c
mdc2test.o
:
../e_os.h ../include/openssl/e_os2.h
mdc2test.o
:
../include/openssl/buffer.h ../include/openssl/crypto.h
mdc2test.o
:
../include/openssl/opensslconf.h mdc2test.c
mdc2test.o
:
../include/openssl/e_os2.h ../include/openssl/opensslconf.h
mdc2test.o
:
../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
mdc2test.o
:
../include/openssl/safestack.h ../include/openssl/stack.h
mdc2test.o
:
../include/openssl/symhacks.h mdc2test.c
randtest.o
:
../e_os.h ../include/openssl/e_os2.h
randtest.o
:
../e_os.h ../include/openssl/e_os2.h
randtest.o
:
../include/openssl/opensslconf.h ../include/openssl/ossl_typ.h
randtest.o
:
../include/openssl/opensslconf.h ../include/openssl/ossl_typ.h
randtest.o
:
../include/openssl/rand.h randtest.c
randtest.o
:
../include/openssl/rand.h randtest.c
...
@@ -984,8 +987,11 @@ rc2test.o: ../include/openssl/opensslconf.h ../include/openssl/rc2.h rc2test.c
...
@@ -984,8 +987,11 @@ rc2test.o: ../include/openssl/opensslconf.h ../include/openssl/rc2.h rc2test.c
rc4test.o
:
../e_os.h ../include/openssl/e_os2.h
rc4test.o
:
../e_os.h ../include/openssl/e_os2.h
rc4test.o
:
../include/openssl/opensslconf.h ../include/openssl/rc4.h
rc4test.o
:
../include/openssl/opensslconf.h ../include/openssl/rc4.h
rc4test.o
:
../include/openssl/sha.h rc4test.c
rc4test.o
:
../include/openssl/sha.h rc4test.c
rc5test.o
:
../e_os.h ../include/openssl/e_os2.h
rc5test.o
:
../include/openssl/buffer.h ../include/openssl/crypto.h
rc5test.o
:
../include/openssl/opensslconf.h rc5test.c
rc5test.o
:
../include/openssl/e_os2.h ../include/openssl/opensslconf.h
rc5test.o
:
../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
rc5test.o
:
../include/openssl/safestack.h ../include/openssl/stack.h
rc5test.o
:
../include/openssl/symhacks.h rc5test.c
rmdtest.o
:
../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
rmdtest.o
:
../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
rmdtest.o
:
../include/openssl/crypto.h ../include/openssl/e_os2.h
rmdtest.o
:
../include/openssl/crypto.h ../include/openssl/e_os2.h
rmdtest.o
:
../include/openssl/evp.h ../include/openssl/obj_mac.h
rmdtest.o
:
../include/openssl/evp.h ../include/openssl/obj_mac.h
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录